gal 22v10 herramientas software - san valeroprofesores.sanvalero.net/~arnadillo/documentos/... ·...

13
09/04/2013 1 GAL22V10 GAL 22V10 Herramientas software Departamento de Electrónica Fundación San Valero Dispositivo GAL 22V10 •DESCRIPCIÓN FUNCIONAL DEL DISPOSITIVO

Upload: others

Post on 29-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

1

GAL22V10

GAL 22V10

Herramientas software

Departamento de ElectrónicaFundación San Valero

Dispositivo GAL 22V10

•DESCRIPCIÓN FUNCIONAL DEL DISPOSITIVO

Page 2: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

2

Dispositivo GAL 22V10

•DESCRIPCIÓN FUNCIONAL DEL MÓDULO DE TRABAJO

Fases del diseño

Page 3: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

3

Herramientas Software

•Para realizar la programación en ABEL es necesario utilizar el software: ISPDesignExpert de Latticce para posteriormente programar el dispositivo GAL22V10.

Herramientas Software

•Para la grabación del dispositivo es necesario utilizar la herramienta software ISPVM System de Latticce para la programación de este dispositivo.

Page 4: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

4

Iniciar un proyecto

•INICIAR UN PROYECTO

Seleccionar dispositivo haciendo doble click en el icono del dispositivoSeguidamente seleccionar la fuente con la que vamos a trabajar (ABEL-HDL)

Iniciar un proyecto

•Tras definir el nombre del módulo, fichero y titulo podemos comenzar a escribir el programa

•Una vez escrito el programa lo grabamos y pinchamos en “Ejemplo.abl”

Page 5: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

5

Iniciar un proyecto

Seguidamente debemos ejecutar:Compilador Lógico: “Compile Logic”Chequeo de sintaxis: “Check Sintax”Obtener las ecuaciones reducidas: “Reduce Logic”

Iniciar un proyecto

Una vez hemos comprobado que el fichero es correcto se procede a obtener el fichero “JEDEC” que se empleará posteriormente en la grabación del dispositivo.Para ello seleccionar en la parte izquierda “Source in Project” el dispositivo GAL22V10C y ejecutar cada una de las opciones a la derecha:

Link Design, Fit DesignCrear mapa de fusibles: “Create Fuse Map”

Page 6: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

6

Simulación en proteus

Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y cargamos el fichero para su ejecución.

Simulación en proteus

Si pulsamos “Play” podremos ver el funcionamiento real del circuito.

Page 7: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

7

Lenguaje HDL

Lenguaje HDL(Hardware Description Languages)

Departamento de ElectrónicaFundación San Valero

Lenguaje HDL

HDL es un lenguaje de descripción de sistemas digitales. Es de tipo noestructurado y permite la descripción de cualquier lógico tantocombinacional como secuencial.La descripción del circuito se puede realizar empleando tablas de verdad,ecuaciones lógicas y, para los sistemas secuenciales diagramas de estado.

SINTAXIS DEL PROGRAMA HDL:

Cabecera: Inicia el comienzo del programa Abel. El nombre delprograma se indica tras el comando Module. Tenemos la opción deañadir un título tras la sentencia Title.Declaraciones: En este apartado se realiza una relación entre losnombres de las señales que se van a emplear durante el programa y lospines de E/S del chip a los que corresponden. Es importante conocercuáles son los números de pines del dispositivo con el que trabajamospara no cometer errores. En este apartado también podemos realizardeclaraciones de constantes, sin más que poner el nombre de la mismaseguido del signo igual (=) y el valor que deseamos posea a lo largo delprograma.

Page 8: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

8

Lenguaje HDL

Descripción lógica: Este es el cuerpo principal del programa Abel. Esdonde se realiza la descripción lógica del proyecto a resolver. Cuandose compila, se obtiene un fichero interpretado por el grabador y quedefine las conexiones internas que hay que realizar sobre el dispositivoGAL. Fundamentalmente podemos encontrar tres tipos de estructurasdentro de la descripción lógica: tablas de la verdad, ecuaciones lógicasy diagramas de estado para aplicaciones secuenciales.

Vectores de test: Este apartado es opcional y en el se pueden indicaruna serie de vectores que serán aplicados para comprobar el correctofuncionamiento de la aplicación. Dicha comprobación se puede simular anivel de software y permite comprobar el chip una vez grabado. En losvectores de test se indica tanto el valor que pueden tener las entradascomo el valor que deben adquirir las salidas en función de esasentradas.

Final del programa: Se indica el comando “End” seguido del nombre delfichero. Cuando el compilador encuentra dicho comando, se finaliza elproceso de compilación.

Lenguaje HDL

Page 9: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

9

Normas de sintaxis en HDL

Una línea puede tener hasta 150 caracteres

Cada linea termina mediante un retorno de carro

Las palabras clave, identificadores y números deben estar separados por al menos unespacio. Excepciones a esta regla son las listas de identificadores separados por comas,expresiones donde los identificadores o números son separados por operadores o dondela separación la proporciona los paréntesis.

Ni espacios, ni puntos pueden ser incluidos en una palabra clave, número, operador oidentificador. Los espacios pueden aparecer en cadenas de caracteres, comentarios,bloques y argumentos.

Las palabras clave se pueden escribir en mayúsculas, minúsculas o combinadas.

Los identificadores pueden ser escritas en mayúsculas, minúsculas o combinadas, pero essensible al tipo de letra: el identificador, salida, escrito completamente en minúsculas,no es el mismo que el identificador Salida.

Caracteres y constantes

Caracteres soportados:a - z (lowercase alphabet)A - Z (uppercase alphabet)0 - 9 (digits)<space><tab>! @ # $ ? + & * ( ) -_ = + [ ] { } ; : ' "` \ | , < > . / ^ %

Cosntantes soportadas:

.C. Entrada registrada (transición 0-1-0)

.D. Reloj con el flanco de bajada

.F. Señal flotante de entrada o salida

.K. Entrada registrada (transición 1-0-1)

.P. Registro pre cargado

.U. Reloj c9on flanco de subida

.X. Condición indeterminada

.Z. Valor triestado

Page 10: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

10

Ecuaciones Lógicas

Para la realización de ecuaciones lógicas en Abel, disponemos de cuatro tipos deoperadores:Operadores lógicos:Operador Descripción! NOT& AND# OR$ XOR!$ XNOR

Operadores aritméticos:Operador Ejemplo Descripción- -A Complemento a 2- A-B Resta+ A+B SumaNo Válidos para conjuntos:* A*B Multiplicación/ A/B División entera sin signo% A%B Módulo, resto de división<< A<<B Rotar A a izquierda B bits>> A>>B Rotar B a izquierda B bits

Operadores y Tablas de verdad

Operadores relacionales:Operador Descripción== igual!= no es igual< menor que<= menor o igual que> Mayor que>= mayor o igual que

TABLAS DE VERDAD:

Las tablas de la verdad definen la lógica de los circuitos mediante una lista en la quese especifican los valores que deben tomar las salidas para cada combinación de lasseñales de entrada.Las tablas de la verdad pueden emplearse para la resolución de ejercicioscombinacionales, cuando se realiza la asignación “->” entre las señales de entrada yde salida. En este caso es necesario que las señales de salida sean definidas comocombinacionales mediante la declaración: istype ´com´También es posible para secuenciales mediante: istype ´reg´

Page 11: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

11

Bloques de ecuaciones

El bloque de ecuaciones permite especificar funciones más complejas yobtener ecuaciones más fáciles de interpretar. Un bloque se define cerrándoloentre llaves ({}).

CASE: La sentencia CASE se emplea bajo la sección State_diagram paraindicar la transición de un estado de la máquina cuando hay múltiplescondiciones que afectan la transición de estados. Se pueden encadenarsentencias CASE con IF-THEN-ELSE, GOTO y otras sentencias CASE, y sepueden además usar bloques de ecuaciones.

IF-THEN-ELSE: Es una forma fácil de describir la progresión de un estado aotro en una máquina de estados. La expresión que sigue a la palabra clave IF esevaluada y, si el resultado es verdadero, la máquina va al estado indicado porstate_exp que sigue a la palabra clave THEN. Si el resultado de la expresiónes falso, la máquina avanza al estado indicado por la palabra clave ELSE.

Bloques de ecuaciones

Ejemplo IF-THEN-ELSE:

IF A==b THEN 2;”Si A es igual a B ir al estado 2”IF X-Y THEN J ELSE K; “Si x-y no eso j, sino k

WHEN-THEN-ELSE: Esta sentencia se emplea en ecuaciones.

WITH: La sentencia With se emplea en la sección de diagramas de estados.Cuando se usa conjuntamente con sentencias IF-THEN o CASE, permiteescribir en términos de transiciones

GRAFICOS DEC ESTADO: Es posible definir en Abel el comportamiento de unsistema secuencia sincrono, que comienza con la palabra claveSTATE_DIAGRAM. En estas estructuras secuenciales pueden usarsesentencias de alto nivel como IF..THEN y CASE, la sintaxis es la siguiente:STATE_DIAGRAM lista_de_variables_de_estado o bienSTATE_DIAGRAM vewctor_de_estado

Page 12: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

12

Ejemplos de programación

GN

D1

GN

D2

VC

C3

VC

C4

I0-C

LK

(2)

5

I1(3

)6

I2(4

)7

I3(5

)8

I4(6

)9

I5(7

)10

I6(9

)11

I7(1

0)12

I8(1

1)13

I9(1

2)14

I10(

13)

15

I11(

16)

16

I/O

/Q0(

17)

17

I/O

/Q1(

18)

18

I/O

/Q2(

19)

19

I/O

/Q3(

20)

20

I/O

/Q4(

21)

21

I/O

/Q5(

23)

22

I/O

/Q6(

24)

23

I/O

/Q7(

25)

24

I/O

/Q8(

26)

25

I/O

/Q9(

27)

26

PLD

VCC

S?

SW SPSTS?

SW SPSTS?

SW SPSTS?

SW SPST

S?

SW SPSTS?

SW SPSTS?

SW SPSTS?

SW SPST

D?LED

D?LED

D?LED

D?LED

VCC

Ejemplos de programación

GN

D1

GN

D2

VC

C3

VC

C4

I0-C

LK

(2)

5

I1(3

)6

I2(4

)7

I3(5

)8

I4(6

)9

I5(7

)10

I6(9

)11

I7(1

0)12

I8(1

1)13

I9(1

2)14

I10(

13)

15

I11(

16)

16

I/O

/Q0(

17)

17

I/O

/Q1(

18)

18

I/O

/Q2(

19)

19

I/O

/Q3(

20)

20

I/O

/Q4(

21)

21

I/O

/Q5(

23)

22

I/O

/Q6(

24)

23

I/O

/Q7(

25)

24

I/O

/Q8(

26)

25

I/O

/Q9(

27)

26

PLD

VCC

a

bf

c

g

de

DPY1234567

a

b

c

d

e

fg

8 dp

dp

DS?

DPY_7-SEG_DP

S?

SW SPSTS?

SW SPSTS?

SW SPSTS?

SW SPST

VCC

VCC

R1220

Page 13: GAL 22V10 Herramientas software - San Valeroprofesores.sanvalero.net/~arnadillo/Documentos/... · Una vez generado el fichero .jed realizamos el diseño del circuito en Proteus y

09/04/2013

13

Ejemplos de programación

EXPENDEDORA DE CAFÉ: Vamos a realizar el control del monedero de una máquina decafé. Cada café vale 100 pesetas y también se admiten monedas de 25, 50 y 100. Laexpendedora posee incorporado un circuito que detecta las monedas y envia dos señaleseléctricas para indicarnos qué moneda se ha introducido.

Si las señales indican 00 no hay ninguna moneda introducida, si se indica 01, se haintroducido una moneda de 25, con 10 una de 50 y con 11 una de 100 pesetas.

Cuando se hayan insertado las monedas suficientes se activará una señal que indicará lasalida del café.

Inicialmente tendremos 5 estados:Cuando no haya ninguna moneda introducidaEl final cuando alcancemos o superemos el precioLos otros tres estados posibles serán (Hay25, Hay 50 y Hay 75)Después de llegar al estado fin y servir el café, se deberá ir automáticamente alestado Vacio en el siguiente ciclo de reloj.

Ejemplos de programación

GN

D1

GN

D2

VC

C3

VC

C4

I0-C

LK

(2)

5

I1(3

)6

I2(4

)7

I3(5

)8

I4(6

)9

I5(7

)10

I6(9

)11

I7(1

0)12

I8(1

1)13

I9(1

2)14

I10(

13)

15

I11(

16)

16

I/O

/Q0(

17)

17

I/O

/Q1(

18)

18

I/O

/Q2(

19)

19

I/O

/Q3(

20)

20

I/O

/Q4(

21)

21

I/O

/Q5(

23)

22

I/O

/Q6(

24)

23

I/O

/Q7(

25)

24

I/O

/Q8(

26)

25

I/O

/Q9(

27)

26

PLD

VCC

S?

RESETS?

AS?

B

VCC

RELOJ

D?

CAFE

D?Q2

D?Q1

D?Q0