Professional Documents
Culture Documents
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
2-1
Diciembre de 1999.
UN
S
Introduccin
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
-C
ay
ss
ial
s-
La realizacin de dispositivos de lgica programable tiene sus comienzos con los PAL
(Programmable Logic Array), que en un principio implementaban la sntesis de funciones
lgicas combinacionales, para luego insertar elementos de memoria y permitir la sntesis
de mquinas secuenciales. Desarrollos posteriores brindaron gran diversidad de formas de
programacin, es decir, gran diversidad de elementos bsicos de interconexin como son
los Antifuses, switches EPROM / EEPROM y switches SRAM.
Or
oz
co
Gi
lar
do
ni
-
Diciembre de 1999.
UN
S
programable. Como ventaja adicional, pueden re-utilizarse especificaciones que han sido
verificadas exhaustivamente en la realizacin de proyectos anteriores, en nuevos proyectos
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Es de esta manera que en el ao 1987 fue definido como el estndar IEEE 1076, un
lenguaje de especificacin de hardware denominado VHDL donde la letra V significa
VHSIC (Very High Speed Integrated Circuit) y la sigla HDL significa Hardware
Description Language. A comienzos de los aos '90 el lenguaje VHDL fue usado para el
diseo de circuitos integrados desarrollados con una aplicacin especfica (ASIC del ingls
Application Specific Integrated Circuit) y en la segunda mitad de la dcada se comenz a
usar dentro del rea de los PLDs (Programmable Logic Device).
-C
ay
ss
ial
s-
Or
oz
co
alta complejidad. El objetivo planteado para la utilizacin de todos estos conceptos fue la
realizacin de un controlador de memoria dinmica que cumple con el estndar JEDEC de
72 contactos. Las herramientas y dispositivos utilizados en la implementacin de este
controlador fueron provistos por la firma Altera en el marco del programa universitario del
Gi
lar
do
ni
-
ii
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Anlisis y diseo de un controlador de memorias dinmicas SIMM (Single InLine Memory Module) de 72 contactos. Captulo 5.
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
sistema.
iii
Diciembre de 1999.
UN
S
Tabla de Contenidos
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Captulo 1.................................................................................................................................................................1-1
Dispositivos Lgicos Programables (P.L.Ds) ..........................................................................................................1-1
1. Alternativas para la sntesis de funciones lgicas ............................................................................................1-1
1.1
Simplificacin Algebraica de una Funcin Lgica. .................................................................................1-1
1.2
Multiplexores y Demultiplexores.............................................................................................................1-1
1.3
ROM (Read Only Memory) .....................................................................................................................1-3
1.4
Tablas de LookUp (LUTs).....................................................................................................................1-3
1.5
Comparacin de las distintas alternativas ................................................................................................1-4
2. Los PAL ...........................................................................................................................................................1-5
2.1
PALs Primitivos.......................................................................................................................................1-5
2.2
Incorporacin de Elementos de Memoria ................................................................................................1-5
2.3
PALs Modernos .......................................................................................................................................1-6
3. Elementos Bsicos de Interconexin ...............................................................................................................1-7
4. Celdas Lgicas: granularidad y jerarquas de conectividad .............................................................................1-7
5. Celdas de Entrada/Salida .................................................................................................................................1-8
6. Redes de Cableado ...........................................................................................................................................1-9
6.1
Interconexiones Locales...........................................................................................................................1-9
6.2
Interconexiones Vecinales .......................................................................................................................1-9
6.3
Interconexiones Globales.......................................................................................................................1-10
7. Las Familias MAX 7000 y FLEX 10K de ALTERA.....................................................................................1-10
7.1
La Familia MAX 7000/7000E/7000S ....................................................................................................1-10
7.1.1.
Terminologa ..................................................................................................................................1-10
7.1.2.
Descripcin General.......................................................................................................................1-11
7.1.2.1.
MAX7000 y MAX7000E.......................................................................................................1-11
7.1.2.2.
MAX7000S ............................................................................................................................1-11
7.1.3.
Arquitectura (Descripcin Funcional)............................................................................................1-12
7.1.3.1.
Macroceldas ...........................................................................................................................1-13
7.1.3.2.
Logic Array Blocks ................................................................................................................1-16
7.1.3.3.
Expansores de Trminos Producto (Expansores Paralelos y Compartidos)...........................1-17
7.1.3.4.
Expansores Compartidos........................................................................................................1-17
7.1.3.5.
Expansores Paralelos..............................................................................................................1-18
7.1.3.6.
Programmable Interconnect Array (PIA) ...............................................................................1-19
7.1.3.7.
I/O Control Blocks (Celdas de Entrada/Salida) .....................................................................1-20
7.1.4.
In-System Programmability (ISP) ..................................................................................................1-22
7.1.5.
Control de Velocidad / Potencia Programable ...............................................................................1-22
7.1.6.
Interfase Multi Voltaje de Entrada/Salida. (MultiVolt I/O Interface) ............................................1-22
7.1.7.
Slew-Rate Control..........................................................................................................................1-23
7.2
La Familia FLEX 10K ...........................................................................................................................1-24
7.2.1.
Terminologa ..................................................................................................................................1-24
7.2.2.
Descripcin General.......................................................................................................................1-24
7.2.3.
Arquitectura (Descripcin Funcional)............................................................................................1-25
7.2.3.1.
Embedded Array Blocks ........................................................................................................1-26
7.2.3.2.
Logic Array Block (LAB) ......................................................................................................1-27
7.2.3.3.
Logic Element (Elementos lgicos) .......................................................................................1-29
7.2.3.4.
Cadenas de Carry ...................................................................................................................1-30
7.2.3.5.
Cadenas de Cascada ...............................................................................................................1-31
7.2.3.6.
Modos de Operacin de los Elementos Lgicos ....................................................................1-32
7.2.3.7.
FastTrack Interconnect...........................................................................................................1-34
7.2.3.8.
I/O Elements (Elementos de Entrada/Salida) .........................................................................1-37
7.2.3.9.
Conexin Filas Elementos E/S ............................................................................................1-39
7.2.3.10. Conexin Columnas Elementos E/S....................................................................................1-40
7.2.4.
Distribucin de seales de reloj .....................................................................................................1-40
7.2.5.
Configuracin de Salida.................................................................................................................1-41
7.2.5.1.
Interfase Multi Voltaje de Entrada/Salida. (MultiVolt I/O Interface) ....................................1-41
7.2.5.2.
Slew-Rate Control..................................................................................................................1-42
7.2.5.3.
Esquemas de Configuracin...................................................................................................1-42
iv
Gilardoni - Orozco - Cayssials
Laboratorio de Sistemas Digitales - UNS
Diciembre de 1999.
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 2.................................................................................................................................................................2-1
Introduccin a VHDL: Un Lenguaje de Especificacin de Hardware.....................................................................2-1
1. Que significa VHDL? ....................................................................................................................................2-1
2. Limitaciones del VHDL...................................................................................................................................2-2
3. Estilos de Escritura de VHDL..........................................................................................................................2-2
4. Conceptos Principales del Lenguaje ................................................................................................................2-3
4.1
Sintaxis.....................................................................................................................................................2-4
4.2
Arquitectura .............................................................................................................................................2-5
4.3
Jerarqua...................................................................................................................................................2-6
4.4
Declaraciones ...........................................................................................................................................2-8
4.5
Configuraciones .......................................................................................................................................2-9
4.6
Configuracin por Defecto.....................................................................................................................2-10
4.7
Procesos y tipos......................................................................................................................................2-11
4.8
Package ..................................................................................................................................................2-13
4.9
Esquema Completo ................................................................................................................................2-14
5. Seales y Tipos de Datos ...............................................................................................................................2-15
5.1
Concepto de Tipo y Especificacin........................................................................................................2-16
5.2
Tipos de Datos Estndar ........................................................................................................................2-17
5.3
Asignacin de Seales ...........................................................................................................................2-18
5.4
Arreglos (Arrays) ...................................................................................................................................2-20
5.5
Concatenacin y Agregado ....................................................................................................................2-21
5.6
Definicin de Tipos................................................................................................................................2-23
5.7
Lgica MultiValuada .............................................................................................................................2-25
5.8
Usando Lgica Standard ........................................................................................................................2-27
Captulo 3.................................................................................................................................................................3-1
AHDL: Un Lenguaje de Descripcin de Hardware .................................................................................................3-1
Estructura de diseo.................................................................................................................................................3-2
1. Sentencia "Title" ..............................................................................................................................................3-3
2. Sentencia "Parameters" ....................................................................................................................................3-3
3. Sentencia "Include"..........................................................................................................................................3-5
4. Sentencia "Constant"........................................................................................................................................3-6
5. Sentencia "Define" ...........................................................................................................................................3-7
6. Sentencia "Function Prototype" .......................................................................................................................3-8
7. Sentencia "Options" .........................................................................................................................................3-8
8. Sentencia "Assert"............................................................................................................................................3-9
9. Seccin de Subdiseo ......................................................................................................................................3-9
10.
Seccin de Declaracin de Variables.........................................................................................................3-10
10.1 Declaracin de Instancias.......................................................................................................................3-11
10.2 Declaracin de Nodos ............................................................................................................................3-12
10.3 Declaracin de Registros .......................................................................................................................3-13
10.4 Declaracin de Maquinas de Estado ......................................................................................................3-13
10.5 Declaracin de Alias de Maquinas de Estado ........................................................................................3-14
11.
Seccin Lgica...........................................................................................................................................3-15
11.1 Ecuaciones Booleanas............................................................................................................................3-16
11.2 Ecuaciones de Control Booleanas..........................................................................................................3-18
11.3 Sentencia CASE.....................................................................................................................................3-19
11.4 Sentencia DEFAULTS...........................................................................................................................3-20
11.5 Sentencia IF-THEN................................................................................................................................3-21
11.6 Sentencia IF-GENERATE. ....................................................................................................................3-22
11.7 Sentencia FOR-GENERATE. ................................................................................................................3-22
11.8 Sentencia TRUTH TABLE. ...................................................................................................................3-23
Captulo 4.................................................................................................................................................................4-1
Sistema de desarrollo de ALTERA: MAX + PLUS II y placa de desarrollo universal UP1 ...................................4-1
1. Qu es ALTERA MAX+PLUS II ? ..............................................................................................................4-1
1.1
Ejemplo Demostrativo .............................................................................................................................4-2
1.2
Sntesis .....................................................................................................................................................4-2
1.3
Tipos de Archivos ....................................................................................................................................4-3
1.4
Interpretacin del Cdigo VHDL ............................................................................................................4-4
1.4.1.
Cdigo VHDL..................................................................................................................................4-4
Gilardoni - Orozco - Cayssials
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
vi
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 1
-C
ay
ss
ial
s-
Existen mtodos grficos y tabulares que permiten simplificar una funcin lgica en
forma sistemtica. Si bien la solucin obtenida puede ser ptima en el sentido de que
minimiza su expresin en el nmero de compuertas utilizadas para su implementacin,
tiene la desventaja de que la solucin obtenida es totalmente rgida y el menor cambio
puede significar un rediseo total. El criterio de optimalidad de estos mtodos,
Or
oz
co
Gi
lar
do
ni
-
1-1
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
utilizacin de un multiplexor.
Figura 1.1
Se observa que las lneas de seleccin de entradas del multiplexor son las variables de la
funcin y, por lo tanto, para generar la funcin deseada slo se debe colocar un cero o un
uno en la entrada correspondiente.
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
Figura 1.2
1-2
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 1.3
Una ventaja muy importante de este tipo de sntesis es que permite la implementacin
-C
ay
ss
ial
s-
Or
oz
co
dichos elementos. Por lo tanto una LUT puede ser dividida en dos reas:
rea de configuracin.
rea de operacin.
Gi
lar
do
ni
-
lgica deseada, les atribuye el carcter de programabilidad. Por este motivo son una muy
buena alternativa para la implementacin de dispositivos de lgica programable.
1-3
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.4
La cantidad de bits de memoria requeridos para configurar una tabla de LookUp crece
en forma exponencial con el nmero de variables de entrada, por lo que en general las
LUTs suelen ser de entre 4 y 5 variables (16 a 32 bits de memoria).
-C
ay
ss
ial
s-
la suma de todos los minitrminos posibles. Esto puede resultar en un uso ineficiente del
dispositivo. Por ejemplo, en el caso de un multiplexor de 8::1, implementar una funcin de
tres variables que necesite slo dos o tres trminos productos estara desaprovechando los
recursos fsicos del dispositivo.
Or
oz
co
slo 5 a 7 implicantes de orden superior (trminos productos). Por lo tanto se pens que
sera ms eficiente, en cuanto a recursos fsicos utilizados, un dispositivo que
implementara un subconjunto de todos los trminos productos posibles.
Este fue el criterio que llev a la creacin de los Arreglos Lgicos Programables (PAL
Gi
lar
do
ni
-
1-4
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
2. Los PAL
Figura 1.5
-C
ay
ss
ial
s-
permite que ingresen a la matriz de interconexin el valor negado y sin negar de la misma.
Cada trmino producto puede ser generado a partir de la interseccin de un gran nmero de
variables, lo que es de gran utilidad para implementar funciones de gran fanin. La
cantidad de trminos productos que es posible sumar est usualmente acotado entre seis y
ocho. Cada trmino producto ocupa gran superficie del chip e involucra un elevado
nmero de fusibles.
Or
oz
co
Gi
lar
do
ni
-
1-5
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.6
Diversas arquitecturas han sido propuestas para poder implementar la mayor cantidad
de funciones lgicas, evitando sobredimensionar la estructura del dispositivo programable.
De esta manera, los PALs modernos utilizan una arquitectura basada en celdas lgicas.
Una celda lgica es un conjunto de elementos combinacionales y registros de
configuracin que constituyen un bloque funcional mnimo dentro del dispositivo. La
siguiente figura muestra una celda lgica de un PAL simple moderno, particularmente de
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.7
1-6
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Llaves SRAM: basados en llaves de paso MOS controladas desde un flip flop
esttico, cuyo contenido se pierde al interrumpirse la energa.
-C
ay
ss
ial
s-
Una celda lgica es un bloque funcional mnimo capaz de resolver una funcin
combinacional o secuencial. Una celda que por s sola puede llegar a resolver una funcin
Or
oz
co
Gi
lar
do
ni
-
de no aprovechar todos sus recursos. Sin embargo, en este caso la mayor parte del
problema es resuelta dentro de la celda y por ello se requieren menos recursos de
interconexin con otras celdas. Cuanto ms simples son las celdas, ms cantidad de ellas se
requieren para resolver un dado problema, pero son usadas plenamente (el subempleo de
1-7
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
-C
ay
ss
ial
s-
5. Celdas de Entrada/Salida
Las celdas de Entrada/Salida son las encargadas de la interconexin del dispositivo con
el mundo exterior. Deben ser capaces de manejar corrientes elevadas, capacidades
parsitas decenas de veces mayores a las existentes dentro del chip y brindar la posibilidad
de configurarlas como entrada, salida, bidireccionales o de alta impedancia. Estas
Or
oz
co
Gi
lar
do
ni
-
Las celdas de Entrada/Salida podran ser clasificadas en dos tipos: las elementales y las
complejas.
Las celdas de Entrada/Salida elementales slo permiten definir si sern de entrada,
salida o bidireccionales y cada celda estar asociada a una celda lgica determinada.
1-8
Diciembre de 1999.
UN
S
Las celdas de Entrada/Salida complejas pueden definirse, al igual que las celdas
simples, como de entrada, salida o bidireccionales, pero se diferencian en que no estn
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
asociadas a una celda lgica en particular, sino que hacen uso de los recursos de
interconexin para vincularse con las mismas. Tambin cuentan con muchas opciones de
configuracin como son: control de slew rate, de pullups o pulldowns, agregado de
retardos, etc.
6. Redes de Cableado
Las redes de cableado son las encargadas de realizar las interconexiones de las celdas
dentro de los dispositivos. Estn fuertemente relacionadas con la granularidad, ya que
cuanto menores sean las celdas lgicas, mayores sern los recursos de interconexin
necesarios para realizar la misma funcin.
Las redes de cableados pueden jerarquizarse, segn el alcance de las mismas, en:
Locales.
Vecinales.
Globales.
-C
ay
ss
ial
s-
Estas interconexiones permiten conectar cada celda lgica a las celdas vecinas
contiguas. En la familia FLEX 10K de la firma ALTERA, las interconexiones locales se
realizan por medio de las cadenas de Carry y Cascada. stas conectan cada celda lgica
con las inmediatas superior e inferior y estn orientadas especialmente para acelerar la
realizacin de operaciones aritmticas.
Or
oz
co
Gi
lar
do
ni
-
define una matriz de conexionado rpido entre ellos, con acceso a los sistemas de
interconexin global y a los grupos de celdas vecinos. Estos grupos de celdas lgicas son
llamados LABs (Logic Array Blocks).
1-9
Diciembre de 1999.
UN
S
Estas interconexiones permiten conectar cualquier celda lgica con cualquier otra
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
dentro del dispositivo. Suelen hacer uso de lneas rpidas (en general metlicas) y son
usadas para distribucin de seales globales, como por ejemplo, seales de clock, output
enable y reset.
-C
ay
ss
ial
s-
generalmente poseen menos celdas lgicas que contactos de Entrada/Salida. Esto implica
que ante la necesidad de usar un flip flop o un trmino lgico intermedio (sin acceso a los
contactos del dispositivo), a veces se deba desperdiciar un contacto de Entrada/Salida.
Adems, en los primeros PALs, el uso de fusibles de programacin afectaba seriamente la
confiabilidad del dispositivo.
Or
oz
co
donde se reagruparon celdas lgicas en bloques (Logic Array Blocks o LABs). Tambin se
logr un mejor aprovechamiento de la superficie de conexin a travs de la generacin de
reas de conexionado global y de reas de interconexin local. Adems se agregaron reas
de generacin de trminos producto auxiliares (expansores) y se implement una
Gi
lar
do
ni
-
7.1.1.
Terminologa
ALTERA define sus propios trminos para referirse a los dispositivos de la familia
1-10
Diciembre de 1999.
de la familia MAX.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Interconnect
interconexin global.
7.1.2.
Array
(PIA):
Estructura
continua
de
Descripcin General
-C
ay
ss
ial
s-
Or
oz
co
7.1.2.2. MAX7000S
La familia MAX7000S es una versin mejorada de las familias 7000 y 7000E que posee
la facilidad de programacin en circuito ISP (In-System Programmability) y en los
Gi
lar
do
ni
-
consumo total y el ruido que genera el sistema. Estas caractersticas potencian a la familia
MAX 7000S y le permiten resolver un amplio rango de aplicaciones a nivel de sistema.
1-11
7.1.3.
UN
S
Diciembre de 1999.
Macroceldas
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
La familia MAX7000 posee 4 entradas dedicadas que pueden ser usadas, para cada
macrocelda o contacto de Entrada/Salida, como:
Entradas de propsito general
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.8
1-12
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
posee el nmero 7 que indica que pertenece a la familia MAX7000, y el nmero 32 que
-C
ay
ss
ial
s-
Figura 1.9
Comparando las figuras 1.8 y 1.9 puede observarse que la diferencia entre ambas
Or
oz
co
7.1.3.1. Macroceldas
Gi
lar
do
ni
-
Las macroceldas en las dispositivos de la familia MAX 7000, pueden ser configuradas
1-13
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.10
Or
oz
co
-C
ay
ss
ial
s-
MAX7000E y MAX7000S.
Figura 1.11
Gi
lar
do
ni
-
trminos producto ser a las entradas lgicas primarias (Compuertas OR o XOR), para
implementar funciones combinacionales, o a las entradas secundarias (clear, preset, clock
1-14
Diciembre de 1999.
UN
S
Dos clases de expansores de trminos productos son disponibles para ampliar los
recursos de las macroceldas:
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Para realizar funciones lgicas que utilicen registros, el flip flop de cada macrocelda
puede ser individualmente programado para implementar los tipos: D, T, JK o SR.
Adems, el flip flop puede deseleccionarse para implementar una funcin combinacional
en la macrocelda.
A cada registro programable puede ingresar la seal de reloj de tres modos diferentes:
Seal de reloj global: Este modo utiliza el contacto de entrada dedicado "global
clock". Brinda la mayor performance en cuanto a velocidad de propagacin
puesto que es la forma ms rpida de propagar la seal de reloj hacia todos los
flip-flops del dispositivo.
Seal de reloj global habilitada por una seal clock enable activa en high:
Este modo provee la habilitacin de la seal de reloj que ingresa a cada flip flop,
y adems mantiene la performance en cuanto a velocidad como en el modo de
-C
ay
ss
ial
s-
operacin anterior.
Or
oz
co
reloj est disponible, como muestra la figura 1.8, a travs del contacto denominado
GCLK1.
En los dispositivos de la familia MAX 7000E y MAX 7000S estn disponibles dos
seales de reloj globales a travs de los contactos denominados GCLK1 y GCLK2. Como
Gi
lar
do
ni
-
muestra la figura 1.9, estas seales pueden ingresar al dispositivo en forma directa,
invertidas o permutadas.
Cada registro de las macroceldas soporta funciones de clear y preset asincrnicas.
Como muestran las figuras 1.10 y 1.11, la matriz de seleccin de trminos producto asigna
los recursos necesarios para controlar esas funciones. Adems, la seal clear de cada
1-15
Diciembre de 1999.
UN
S
registro puede ser individualmente accedida a travs del contacto global clear, denominado
GCLRn.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Todos los contactos de Entrada/Salida de los dispositivos MAX 7000E y MAX 7000S
poseen caminos de entrada rpidos hacia los registros de las macroceldas. Estos caminos
dedicados permiten que la seal de entrada evite los retardos producidos en la PIA
(Programmable Interconnect Array) y en la lgica combinacional, para acceder
directamente a la entrada D del flip flop con un retardo de 3ns.
Figura 1.12
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
bus global al cual llegan tambin, seales provenientes de las celdas de Entrada/Salida.
1-16
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Aunque la mayora de las funciones lgicas pueden ser implementadas con los cinco
trminos producto disponibles en una sola macrocelda, funciones lgicas ms complejas
requieren trminos productos adicionales. De esta forma otra macrocelda puede ser usada
para suplir los recursos lgicos requeridos. La arquitectura MAX7000 slo permite que
ambos expansores de trminos productos, paralelos y compartidos, provean trminos
-C
ay
ss
ial
s-
Or
oz
co
expansores que pueden ser vistos como simples trminos productos con salidas invertidas
que se realimentan al arreglo lgico. Pueden ser usados y compartidos por una o todas las
macroceldas del LAB correspondiente para construir funciones lgicas complejas. El
Gi
lar
do
ni
-
retardo producido cuando un expansor compartido es utilizado, no supera los 10ns. En las
especificaciones tcnicas pueden observarse los valores tpicos de este retardo denominado
tSEXP .
La figura 1.13 muestra cmo pueden ser alimentadas mltiples macroceldas con
expansores compartidos.
1-17
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.13
Los expansores paralelos son trminos productos, no utilizados en una macrocelda, que
pueden ser asignados a macroceldas vecinas, dentro de un mismo LAB, para implementar
funciones rpidas y complejas. Estos permiten que hasta un total de 20 trminos productos
puedan sumarse en una macrocelda, formados por los 5 trminos provistos por la
LAB.
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
9 hasta 16) integran 2 cadenas para ceder o adquirir expansores paralelos. Una macrocelda
adquiere expansores paralelos desde la macrocelda anterior. Por ejemplo, la macrocelda 8
puede obtener expansores paralelos desde la macrocelda 7, de las macroceldas 7 y 6 o
desde las macroceldas 7, 6 y 5. Dentro de cada grupo de 8 macroceldas, una macrocelda
slo puede ceder expansores paralelos a una macrocelda de mayor numeracin y, por el
1-18
Diciembre de 1999.
UN
S
contrario, una macrocelda slo puede obtener expansores paralelos desde una macrocelda
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
de menor numeracin.
Figura 1.14
-C
ay
ss
ial
s-
La figura 1.14 muestra cmo son apropiados los expansores paralelos desde las
macroceldas vecinas.
Or
oz
co
programable (PIA). Este es un bus global que conecta cualquier fuente de seal a cualquier
destino dentro del dispositivo. Todas las entradas dedicadas, los contactos de
Entrada/Salida y las salidas de las macroceldas, ingresan a la PIA. Esto posibilita que
dichas seales estn disponibles a lo largo de todo el dispositivo.
Gi
lar
do
ni
-
La figura 1.15 muestra cmo las seales son ruteadas desde la PIA hacia un LAB. Una
celda EEPROM controla una de las dos entradas de una compuerta AND, la cual permite
que dicha seal ingrese, o no, al LAB correspondiente. Adems puede observarse el
ingreso al LAB tanto de la seal como de la seal negada.
1-19
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.15
Los retardos de propagacin de las seales en la PIA son fijos. Esta es la principal
diferencia con respecto a los FPGAs (Field Programmable Gate Arrays) cuyos retardos son
acumulativos y dependientes del camino recorrido.
Los bloques de control de Entrada/Salida permiten que cada contacto del dispositivo
pueda ser individualmente configurado como entrada, salida o bidireccional. Todos los
contactos de Entrada/Salida poseen un buffer de tres estados (tri-state) que puede ser
-C
ay
ss
ial
s-
controlado individualmente por una de las seales globales de output enable, o ser
conectados directamente a tierra o VCC.
La figura 1.16 muestra una celda de Entrada/Salida de los dispositivos de la familia
MAX7000, EPM7032, EPM7032V, EPM7064 y EPM7096. La figura 1.17 lo hace con los
Gi
lar
do
ni
-
Or
oz
co
Figura 1.16
1-20
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.17
-C
ay
ss
ial
s-
Or
oz
co
Entrada/Salida.
Gi
lar
do
ni
-
realimentar seal desde una celda de Entrada/Salida hacia la PIA. Es posible realimentar
seal tanto de la entrada como de la salida del buffer de tres estados.
1-21
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
7.1.4.
Los otros dispositivos de la familia MAX7000 que no son ISP compatibles, son
programados a travs de un hardware especfico, conocido como MPU (Master
Programming Unit), controlado a travs del software de sntesis y programacin
MAX+PLUS II de ALTERA.
7.1.5.
-C
ay
ss
ial
s-
7.1.6.
Or
oz
co
Interface)
Gi
lar
do
ni
-
1-22
Diciembre de 1999.
UN
S
alimentacin est asociado con los contactos de Entrada/Salida y son stos los que deben
poseer la caracterstica de multi voltaje. Dichos contactos, designados VCCIO, pueden
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 1.18
La figura 1.18 muestra dos de los encapsulados posibles utilizados en la familia
MAX7000; ellos muestran la existencia de los dos conjuntos de contactos de alimentacin:
VCCINT y VCCIO.
-C
ay
ss
ial
s-
7.1.7.
Slew-Rate Control
Or
oz
co
Un elevado slew rate provee alta velocidad de transicin de la seal de salida, ideal para
Gi
lar
do
ni
-
aplicaciones de alta velocidad. Sin embargo, estas elevadas velocidades pueden introducir
ruidos en el sistema.
Un pequeo slew rate reduce el ruido en el sistema pero adiciona un retardo adicional
de 4 a 5 ns. En los dispositivos MAX7000E existe un bit denominado "Turbo Bit". Cuando
ste posee un valor cero, el slew rate es pequeo y cundo es uno, el slew rate es elevado.
La desventaja en estos dispositivos es que el Turbo Bit configura el slew rate de todos los
1-23
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Entrada/Salida posee un control individual del slew rate a travs del estado de una celda
Terminologa
-C
ay
ss
ial
s-
Or
oz
co
Descripcin General
Gi
lar
do
ni
-
7.2.2.
dedicada a satisfacer necesidades propias de diseos mediante gate arrays. Los dispositivos
de esta familia incorporan bloques internos de memoria, lazos de enganche de fase (PLLs)
para la distribucin de relojes de alta velocidad dentro del chip y un esquema de
interconexin de alta velocidad y retardos predecibles (FastTrack). Estas caractersticas
1-24
Diciembre de 1999.
UN
S
hacen de esta familia la opcin ideal para aplicaciones de alta complejidad o donde se
requiera la realizacin de tareas de cmputo numrico en forma eficiente (aplicaciones
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Los bloques internos de memoria EAB (del ingles Embedded Array Blocks) posibilitan
combinar la potencia combinacional de los LEs (lgica masiva de grano fino, plenamente
interconectada) con la facilidad para generar tablas o funciones de gran fan-in propias de
las memorias ROM / RAM. A diferencia de otras FPGAs, el uso de memoria de las FLEX
10K no se hace a costa de la perdida de recursos lgicos.
7.2.3.
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.19
1-25
Diciembre de 1999.
UN
S
Los EAB (Embedded Array Blocks) son bloques de memoria RAM con registros en los
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
ports de entrada y salida. Los EAB son usados para implementar multiplicadores, circuitos
de correccin de errores y funciones de gran fan-in.
Es posible implementar funciones lgicas configurando los EAB con un patrn de slo
lectura durante la configuracin lo que crea una gran tabla de look-up (LUT). Con LUTs
las funciones combinacionales son implementadas buscando los resultados en lugar de
computarlos. Esta implementacin de funciones combinacionales puede ser ms rpida que
el uso de algoritmos implementados sin el uso de tablas de look-up.
Los EABs poseen ventajas sobre los FPGA (Field programmable Gate Array). Los
FPGA implementan RAM como pequeos bloques RAM distribuidos a lo largo del
dispositivo. Estos bloques RAM contienen retardos de propagacin que son menos
predecibles cuanto ms bloques RAM sean utilizados. Adems, el hecho de que la RAM
-C
ay
ss
ial
s-
Los EABs, cuando son utilizados como memorias RAM, pueden configurarse en
cualquiera de los siguientes tamaos: 256x8, 512x4, 1024x2 2048x1. Adems, pueden
interconectarse mltiples EABs para aumentar la capacidad. Tambin proveen opciones de
Or
oz
co
configuracin para conducir y controlar seales de reloj. Pueden ser usados diferentes
relojes para las entradas y salidas de los EABs. Pueden insertarse registros en forma
independiente en la entrada de datos, en el bus de salida, en el bus de direcciones y en la
Gi
lar
do
ni
-
seal "write enable" (WE) de los EABs. Las seales globales dedicadas y el sistema de
interconexin local de los EABs pueden propagar la seal de WE.
1-26
Diciembre de 1999.
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.20
Las seales acceden a cada EAB por una fila de interconexin y pueden salir de l tanto
por una fila o un columna de interconexin. Cada salida de un EAB puede propagar hasta
dos canales de filas y hasta dos canales de columnas; los canales no utilizados pueden ser
utilizados por otros elementos lgicos (LEs).
La figura 1.20 muestra en diagrama de bloques, la composicin de un EAB (Embedded
Or
oz
co
Array Block).
Gi
lar
do
ni
-
(LEs), las cadenas de carry y cascada asociadas, seales de control del LAB y el arreglo de
interconexin local del LAB. Los LABs proveen una estructura de grano grueso,
facilitando un ruteado eficiente con ptima utilizacin del dispositivo y alta performance.
La figura 1.21 muestra la arquitectura de un Logic Array Block (LAB).
1-27
Diciembre de 1999.
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.21
Cada LAB provee cuatro seales de control, con inversin programable que pueden ser
utilizadas por todos los LEs. Dos de estas seales pueden ser usadas como relojes, las otras
dos pueden ser usadas para control de clear/preset. Las seales de reloj que ingresan a los
Or
oz
co
LABs pueden provenir de los contactos de entrada de seal de reloj dedicados, de las
seales globales, de las seales de Entrada/Salida o de seales internas a travs del arreglo
de interconexin local del LAB respectivo. Las seales de control de clear/preset pueden
provenir de las seales globales, de las seales de Entrada/Salida o de las seales internas a
Gi
lar
do
ni
-
travs del arreglo de interconexin local del LAB respectivo. Las seales de control recin
mencionadas pueden observarse en la figura 1.21.
Las seales de control globales son generalmente usadas para propagar seales de reloj,
clear o preset.
1-28
Diciembre de 1999.
UN
S
Si alguna lgica es requerida sobre alguna seal de control, sta puede ser generada en
uno o ms LEs de cualquier LAB y ser propagada hacia el arreglo de interconexin local
salidas de los LEs.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
del LAB deseado. Adems, las seales de control global pueden ser generadas desde las
El flip flop programable de cada LE puede ser configurado para funcionar como flip
flop D, T, JK o SR. Las seales de control de reloj, clear y preset que ingresan al flip flop,
pueden provenir de seales globales, de contactos de Entrada/Salida de propsito general o
de cualquier lgica interna. Para implementar funciones combinacionales, el flip flop es
evitado y la salida de la LUT es conducida hacia la salida del LE.
-C
ay
ss
ial
s-
El LE posee dos salidas; una destinada a la interconexin local dentro del LAB y la otra
destinada a la interconexin global que accede a las columnas o a las filas de la estructura
de interconexin FastTrack. Estas dos salidas pueden ser usadas y controladas
independientemente; por ejemplo, la LUT puede utilizar una de las salidas mientras el
registro del LE utiliza la otra. Esta caracterstica es denominada "register packing" y puede
mejorar la utilizacin del LE debido a que la LUT y el registro del LE pueden ser usados
Or
oz
co
Gi
lar
do
ni
-
1-29
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
limitada a porciones del diseo donde fuera necesaria una elevada performance en lo que a
Figura 1.22
-C
ay
ss
ial
s-
Las cadenas de carry proveen muy alta velocidad (0.2 ns.) para realizar funciones
aritmticas entre LEs. En operaciones de bits donde existen acarreos, la seal de acarreo de
un LE es conducida a travs de la cadena de carry hacia la LUT de un LE adyacente. Esta
caracterstica permite implementar eficientemente contadores de alta velocidad, sumadores
Or
oz
co
Gi
lar
do
ni
-
Las cadenas de carry que superan los ocho LEs de un LAB, son automticamente
1-30
Diciembre de 1999.
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.23
La figura 1.23 muestra cmo puede ser implementado un sumador de n bits con n + 1
LEs, utilizando la cadena de carry. Una porcin de las LUT generan la suma de dos bits
Or
oz
co
usando las seales de entrada y la seal de acarreo; la suma es ruteada a la salida del LE.
El registro puede ser evitado en la implementacin de sumadores simples o utilizado como
acumulador. Otra porcin de la LUT y la lgica asociada a la cadena de carry, generan la
seal de carry de salida, la cual es ruteada directamente a la entrada de carry del prximo
Gi
lar
do
ni
-
bit a sumar. La seal de carry final es ruteada a un LE donde puede ser utilizada como una
adyacentes pueden ser usadas para computar porciones de la funcin en paralelo; siendo la
cadena de cascada la que conecte serialmente los valores intermedios. La cadena de
1-31
Diciembre de 1999.
UN
S
cascada puede utilizar una operacin lgica OR o una AND (segn la lgica utilizada) para
conector las salidas de los LEs adyacentes. Cada LE adicional provee cuatro posibles
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
entradas ms, con un retardo de propagacin de 0,7 ns por LE. La lgica asociada a la
cadena de cascada puede ser creada automticamente por el software MAX+PLUS II o
especificada por el diseador.
Las cadenas de cascada que superan los ocho LEs de un LAB son automticamente
implementadas enlazando mltiples LABs.
La figura 1.24 muestra cmo el uso de cadenas de cascada permite conectar LEs
adyacentes para formar funciones de gran fanin. Estos ejemplos muestran funciones de
4.n variables de entrada implementadas con 4 LEs, es decir, n = 4. El retardo de
-C
ay
ss
ial
s-
Figura 1.24
Or
oz
co
Gi
lar
do
ni
-
siguientes modos:
Modo Normal
Modo Aritmtico
Modo Contador Ascendente/Descendente Up / Down
Modo Contador Borrable.
Cada uno de estos modos de operacin usa diferentes recursos de los LEs. En
cualquiera de ellos, existen disponibles siete entradas a los LEs. Cuatro entradas de datos
1-32
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Tres seales de entrada al LE proveen controles de reloj, clear y preset para el registro
programable.
-C
ay
ss
ial
s-
Figura 1.25
La arquitectura provee una seal sincrnica de clock enable para el registro, en todos
los modos de operacin.
Or
oz
co
La figura 1.25 muestra los modos de operacin normal y aritmtica. La figura 1.26
muestra los modos de operacin del Contador Ascendente/Descendente y del Contador
Gi
lar
do
ni
-
inicializable en cero.
1-33
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.26
-C
ay
ss
ial
s-
En la arquitectura de la familia FLEX 10K, las conexiones entre LEs y los contactos de
Entrada/Salida son provistas por la estructura de interconexin "FastTrack". sta consiste
en una serie de conexiones continuas, horizontales y verticales, que atraviesan el
dispositivo. El conjunto se estas conexiones horizontales y verticales son denominadas
filas y columnas de interconexin, respectivamente. Esta estructura de interconexin
global permite predecir la performance, en cuanto a velocidad de propagacin de las
Or
oz
co
seales, aun en diseos complejos. sta es la principal diferencia con los dispositivos
FPGAs, ya que stos poseen una estructura de interconexin global segmentada. Por lo
tanto, los dispositivos FPGA requieren matrices de interconexin para conectar un nmero
Gi
lar
do
ni
-
variable de caminos. Esto incrementa el retardo de propagacin entre los recursos lgicos y
reduce la performance.
La figura 1.27 muestra la diferencia en la estructura de interconexin global entre los
1-34
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.27
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.28
1-35
Diciembre de 1999.
UN
S
Las filas y columnas de interconexin estn compuestas por canales de filas y canales
de columnas respectivamente. Un canal de fila puede ser usado por un LE o por uno de tres
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
canales de columnas. Estas cuatro seales alimentan un multiplexor dual de 4::1, como
puede observarse en la figura 1.28, el cual deriva las seales a dos canales de filas
especficos. Estos multiplexores, conectados a cada LE, permiten a los canales de
columnas conectarse con los canales de filas, aun cuando todos los LEs de un LAB estn
conectados a la fila de interconexin.
Cada columna de LABs es servida por una columna de interconexin dedicada. Una
seal proveniente de una columna de interconexin debe ser ruteada a una fila de
interconexin antes de que pueda entrar a un LAB o a un EAB.
Figura 1.29
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
arreglo de interconexin local, como as tambin las cadenas de carry y cascada asociadas.
Cada LAB es designado de acuerdo a su locacin fsica dentro del dispositivo: una letra
1-36
Diciembre de 1999.
UN
S
representa la fila y un nmero representa la columna. Por ejemplo, el LAB B3 est situado
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
en la fila B, columna 3.
Figura 1.30
Or
oz
co
registro puede ser utilizado como registro de entrada, para datos que requieran un corto
tiempo de setup, o como registro de salida, para datos que requieran un tiempo rpido de
propagacin de seales hacia el exterior. En algunos casos, el uso de un registro de un LE,
como registro de entrada, podra producir un menor tiempo de setup que el logrado
Gi
lar
do
ni
-
1-37
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.31
Cada elemento de Entrada/Salida selecciona las seales de control de clock, clear, clock
perifrico".
-C
ay
ss
ial
s-
enable y output enable de una red de seales de control, denominada "bus de control
Este bus de control perifrico provee hasta 12 seales de control perifricas que pueden
ser destinadas a los siguientes usos:
Or
oz
co
Si ms de seis seales de clock enable u ocho seales de output enable son requeridas,
Gi
lar
do
ni
-
cada elemento de Entrada/Salida del dispositivo puede ser controlado por seales de output
enable y clock enable provenientes de LEs especficos. Adems de las dos seales de clock
1-38
Diciembre de 1999.
UN
S
La seal global de reset es la seal de control de mayor prioridad y resetear a todos los
registros de los elementos de Entrada/Salida.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
En la figura 1.32 puede verse cmo los elementos de E/S acceden a las filas de
interconexin.
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.32
Figura 1.33
1-39
Diciembre de 1999.
UN
S
Los valores de n (canales por fila) y m (canales por contacto) varan de acuerdo al
dispositivo. La figura 1.33 muestra en forma tabular los recursos de interconexin
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
En la figura 1.34 puede verse como los elementos de E/S acceden a las columnas de
interconexin.
La figura 1.35 muestra en forma tabular los recursos de interconexin disponibles, entre
7.2.4.
Or
oz
co
-C
ay
ss
ial
s-
Figura 1.34
Gi
lar
do
ni
-
Para soportar diseos de alta velocidad, los dispositivos FLEX 10K ofrecen dos
1-40
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 1.35
La opcin "ClockLock" utiliza un PLL que reduce los retardos de propagacin y las
asimetras dentro del dispositivo.
-C
ay
ss
ial
s-
Configuracin de Salida
Or
oz
co
7.2.5.
Gi
lar
do
ni
-
Al igual que los dispositivos MAX7000, la familia FLEX 10K posee la caracterstica de
multi voltaje. Esta caracterstica permite que los dispositivos FLEX 10K puedan
interactuar e intercambiar informacin con dispositivos o sistemas que posean diferentes
voltajes de alimentacin.
1-41
Diciembre de 1999.
UN
S
Los dispositivos que poseen esta caracterstica poseen dos conjuntos de contactos de
entrada de alimentacin independientes. Un conjunto es usado para la operacin interna
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
del dispositivo y para uso en los buffers de entrada; estos contactos son designados como
VCCINT y deben ser siempre conectados a 5volts. El otro conjunto de contactos de
entrada de alimentacin est asociado con los contactos de Entrada/Salida y son stos los
que deben poseer la caracterstica de multi voltaje. Pueden conectarse tanto a 3,3 como a
5volts. Ellos son designados con el nombre de VCCIO.
Un slew rate bajo reduce el ruido generado en el sistema pero adiciona un retardo de
propagacin adicional de 2.9 ns.
Un slew rate elevado provee alta velocidad de transicin de la seal de salida, ideal para
aplicaciones de alta velocidad. Sin embargo, debera utilizarse en sistemas que estn
adecuadamente protegidos contra el ruido.
Todos los contactos de E/S poseen un control individual del slew rate.
-C
ay
ss
ial
s-
Las arquitectura de la familia FLEX 10K utiliza elementos de configuracin SRAM que
requieren ser cargados al dispositivo cada vez que ste sea energizado. El proceso de
cargar fsicamente los datos en los elementos de memoria SRAM del dispositivo, es
denominado "configuracin".
Gi
lar
do
ni
-
Or
oz
co
Figura 1.36
1-42
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 2
VHDL son las siglas con que es conocido el Lenguaje de Descripcin de Hardware
-C
ay
ss
ial
s-
definido como el estndar 1076 del IEEE. La letra "V" significa "Circuitos Integrados de
Muy Alta Velocidad" (abreviatura de VHSIC del ingls "Very High Speed Integrated
Circuit") y la sigla "HDL" significa Lenguaje de Descripcin de Hardware (del ingls
"Hardware Description Language"). Por lo tanto en castellano VHDL significara
"Lenguaje de Descripcin de Hardware para Circuitos Integrados de Muy Alta Velocidad".
Este lenguaje fue desarrollado a principios de la dcada del 80 y fue definido como el
Or
oz
co
estndar 1076 por la IEEE en 1987. Una nueva versin compatible con la anterior,
desarrollada en 1993, agreg nuevas capacidades y removi alguna ambigedades de la
versin anterior.
Gi
lar
do
ni
-
2-1
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
El estndar define el lenguaje y su sintaxis, pero no describe el estilo que debe utilizarse
en la especificacin de un proyecto. Esto provoca que las diferentes herramientas de
sntesis tengan ciertas diferencias, pero sin embargo estas diferencias son escasas y es
posible modificar ligeramente los cdigos para adaptarlos a cada una de las herramientas
de sntesis.
Hay cuatro niveles principales de abstraccin, los cuales son representados en la figura
Or
oz
co
-C
ay
ss
ial
s-
2.1.
Figura 2.1
Gi
lar
do
ni
-
2-2
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Por ltimo, el cuarto nivel es el BEHAVIORAL (comportamiento). Este nivel hace uso
del VHDL para describir la funcin del diseo, sin especificar la arquitectura de registros.
Aunque es el nivel de mayor abstraccin, el cdigo desarrollado a este nivel puede
contener tanta informacin de temporizado como la que el diseador requiera para
representar su funcin.
Hoy en da la mayora de las herramientas de sntesis requieren que el cdigo sea escrito
a nivel RTL (Register Transfer Level). Por este motivo ser adoptado en este informe
como el estilo de escritura de VHDL.
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
conexin.
Figura 2.2
2-3
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 2.3
-C
ay
ss
ial
s-
4.1 Sintaxis
Llamaremos bloque a cada parte constitutiva del diseo. Por lo tanto, un diseo estar
formado por la interconexin e interaccin de distintos bloques.
A continuacin se describe la sintaxis de VHDL, comenzando con el cdigo que
representa el bloque de construccin principal de cualquier diseo, denominado
ENTIDAD.
Or
oz
co
Gi
lar
do
ni
-
La sintaxis para una entidad comienza con la palabra reservada ENTITY, seguida por
el nombre que se desee dar a dicha entidad y luego se coloca la palabra IS.
Las entradas y salidas estn contenidas en el cuerpo de la sentencia PORT, donde se
listan la direccin y estados de cada una de las seales a nivel de bit. Finalmente se tiene la
palabra reservada END y el nombre de la entidad, seguida por un punto y coma.
2-4
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.4
Se debe notar que el uso correcto de los punto y coma en la sentencia PORT es como
lo muestra la figura 2.5.
Figura 2.5
-C
ay
ss
ial
s-
4.2 Arquitectura
Or
oz
co
llamado arquitectura.
Figura 2.6
Gi
lar
do
ni
-
La figura 2.6 muestra una forma de definir el comportamiento del medio sumador de la
2-5
Diciembre de 1999.
UN
S
Una arquitectura siempre est asociada con una entidad y por ello existe la palabra
reservada OF para referenciarla. Luego del nombre de la entidad a la que est asociada la
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Cabe sealar que una entidad puede tener ms de una arquitectura. De esta manera, en
el ejemplo desarrollado, pueden existir varias formas en especificar un medio sumador
mediante la definicin de varias arquitecturas.
4.3 Jerarqua
La entidad y la arquitectura son los bloques de construccin principales con los que una
jerarqua es construida. A continuacin se describe cmo una jerarqua es representada en
VHDL, usando como ejemplo la definicin de un sumador completo (FULLADD)
-C
ay
ss
ial
s-
Figura 2.7
Gi
lar
do
ni
-
Or
oz
co
Figura 2.8
2-6
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
entidad. Es necesario definir las seales internas I1, I2 e I3 con la palabra reservada
SIGNAL para poder interconectar las distintas arquitecturas instanciadas.
Figura 2.9
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 2.10
2-7
Diciembre de 1999.
UN
S
PORT MAP definiendo entre parntesis el nombre que cada una de las seales de la
entidad tendr en la instancia definida.
4.4 Declaraciones
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Antes de realizar una instancia de una entidad, tal como U1 fue instanciada de
HALFADD, es necesario declarar la entidad HALFADD dentro de la arquitectura de
FULLADD. Esto es llamado declaracin de componentes y se realiza en el lugar marcado
con "other declarations" en la arquitectura de FULLADD.
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
Figura 2.11
2-8
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
component HALFADD
port
(A,B : in bit;
(A,B : in bit;
Z : out bit);
end component;
begin
-C
ay
ss
ial
s-
4.5 Configuraciones
Consideremos que un diseo jerrquico completo consiste de entidades, donde cada una
de las cuales puede tener mltiples arquitecturas que describan distintos comportamientos.
Or
oz
co
El objetivo de la configuracin especifica cul arquitectura va a ser usada por cada una de
las entidades.
Gi
lar
do
ni
-
durante la simulacin.
2-9
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.12
Figura 2.13
-C
ay
ss
ial
s-
sintetizada.
Or
oz
co
Es importante notar que siempre que se utilice la configuracin por defecto se realizar
una especificacin ms portable.
Gi
lar
do
ni
-
2-10
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.14
Una configuracin tiene nombre propio y est asociada con la entidad del nivel ms alto
de la jerarqua.
Un proceso es una regin de cdigo VHDL dentro de la cual las sentencias son
ejecutadas en secuencia. Un proceso existe dentro de una arquitectura y mltiples procesos
Gi
lar
do
ni
-
Or
oz
co
en VHDL.
-C
ay
ss
ial
s-
interactan con cada uno de los otros concurrentemente. La figura 2.15 resalta un proceso
Figura 2.15
2-11
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 2.16
No existe ninguna limitacin sobre el nmero de procesos que puede contener una
arquitectura.
Cada seal en un diseo en VHDL tiene asociado un TIPO. Un tipo define el conjunto
-C
ay
ss
ial
s-
de valores que pueden ser asignados a la seal. Existen tipos pre definidos en el lenguaje
estndar, pero el usuario puede definir sus propios tipos. Un ejemplo es el tipo pre definido
"bit", el cual puede tener los valores 0 y 1.
Gi
lar
do
ni
-
Or
oz
co
La figura 2.17 muestra los tipos pre definidos y algunos definidos por el usuario.
Figura 2.17
2-12
Diciembre de 1999.
UN
S
4.8 Package
Un package contiene una coleccin de definiciones que pueden ser referenciadas por
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
distintos diseos en forma simultnea. Colocando definiciones que son comunes entre los
diseos, permite al equipo de diseo trabajar ms consistentemente.
Figura 2.18
Un package es una unidad de diseo separada en VHDL tal como lo son las entidades,
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
arquitecturas y configuraciones.
Figura 2.19
2-13
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.20
La jerarqua de un diseo completo est definida por mltiples entidades, las cuales
tienen al menos una arquitectura. Slo una arquitectura es referenciada por cada entidad en
-C
ay
ss
ial
s-
Figura 2.21
Gi
lar
do
ni
-
Or
oz
co
definiciones comunes.
Figura 2.22
2-14
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 2.23
-C
ay
ss
ial
s-
Figura 2.24
Or
oz
co
concepto de tipo de dato y los diferentes tipos estndar que son definidos como parte del
lenguaje. Luego se describe el concepto de un array (arreglo) y se proponen diferentes
ejemplos de cmo simples bits y arreglos de seales pueden ser manipulados dentro de
Gi
lar
do
ni
-
VHDL. Se describe tambin la forma en que el diseador puede especificar sus propios
tipos de datos, denominados enumerated type (tipos enumerados). Finalmente se detalla la
definicin de un tipo de dato conocido como "standard logic" (lgica estndar), el cual ha
sido adoptado como estndar en la descripcin de seales en VHDL.
2-15
UN
S
Diciembre de 1999.
El lenguaje VHDL define que cada seal debe tener un tipo de dato asociado cuando la
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
seal es declarada. El tipo de dato de una seal define el conjunto de valores que pueden
ser asignados a dicha seal. En el ejemplo de la figura 2.25, no es posible asignar a
N_SUM una seal que pertenezca a otro tipo de dato que no sea el tipo bit.
Figura 2.25
Una seal es, generalmente, declarada en la seccin PORT de una ENTIDAD o dentro
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
Figura 2.26
Cuando se asigna un valor a una seal, el tipo de dato a ambos lados del operador de
asignacin debe ser el mismo. En el siguiente ejemplo, el resultado de A xor B debe ser
de tipo BIT para poder ser asignado a SUM, que tambin es tipo BIT.
2-16
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.27
Los tipos de datos estndar son especificados como cdigo fuente VHDL y el lenguaje
-C
ay
ss
ial
s-
Figura 2.28
El tipo de dato boolean define dos valores: verdadero y falso. El tipo de dato time es
Gi
lar
do
ni
-
Or
oz
co
Figura 2.29
2-17
Diciembre de 1999.
UN
S
El tipo de dato bit puede ser usado para modelar un simple bit y consiste en los valores
0 y 1. El tipo de dato bit_vector define una coleccin de bits y puede ser usado para
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Figura 2.30
Como el nombre lo indica, el tipo de dato character define un simple carcter en VHDL
y el tipo de dato string define un arreglo o cadena de caracteres.
Figura 2.31
-C
ay
ss
ial
s-
Figura 2.32
Or
oz
co
VHDL define que la asignacin de un nuevo valor a una seal, debe realizarse mediante
la "sentencia de asignacin de seal" utilizando el smbolo "<=".
Gi
lar
do
ni
-
utilizado en una compuerta lgica en un hardware real, es decir, la salida toma el valor de
la entrada sin que sta se modifique.
2-18
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.33
Figura 2.34
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
Figura 2.35
2-19
Diciembre de 1999.
UN
S
Todos los tipos de datos enunciados anteriormente no son del tipo resoluble, por lo
tanto son llamados irresolubles y no permiten tener ms de un driver. Ms adelante se
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Un arreglo es una coleccin de objetos, donde cada uno de ellos es del mismo tipo de
dato. El lenguaje define dos tipos de arreglos estndar: bit_vector y string.
Figura 2.36
-C
ay
ss
ial
s-
Figura 2.37
Dos arreglos pueden ser asignados el uno al otro si el tamao y el tipo es el mismo. El
siguiente diagrama describe la forma en que se realiza la asignacin de vectores. Se debe
Or
oz
co
Gi
lar
do
ni
-
2-20
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
-C
ay
ss
ial
s-
Figura 2.38
Figura 2.39
Or
oz
co
siguiente ejemplo muestra cmo simples bits pueden concatenarse para formar nuevos
Gi
lar
do
ni
-
vectores.
2-21
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.40
Figura 2.41
Or
oz
co
-C
ay
ss
ial
s-
contenido entre parntesis y la asignacin a cada elemento est separada por comas.
Gi
lar
do
ni
-
por nombre.
2-22
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.42
Los agregados pueden hacer uso de la sentencia others, la cual asignar un valor a
todos los elementos restantes del arreglo que no hayan sido especificados.
Figura 2.43
Gi
lar
do
ni
-
Or
oz
co
de datos.
-C
ay
ss
ial
s-
A continuacin se detalla la forma en que el diseador puede definir sus propios tipos
Figura 2.44
2-23
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Para definir un tipo enumerado es necesario especificar el nombre del tipo, seguido de
la lista de valores que componen al mismo, separados por comas. La sintaxis de la
declaracin es mostrada en la figura 2.45.
Figura 2.45
La definicin del tipo de dato, permite definir seales de ese tipo. En el siguiente
ejemplo se declara la seal STATE como tipo de dato MY_STATE (definido en la figura
2.45), indicando asignaciones vlidas e invlidas. Debe tenerse en cuenta que no pueden
asignarse a la seal STATE otros valores que no hayan sido especificados en la definicin
-C
ay
ss
ial
s-
de MY_STATE.
Figura 2.46
Usualmente el tipo de dato enumerado tiene un nmero mnimo de bits requeridos para
representar todos los valores posibles. El siguiente ejemplo muestra cmo con 2 bits se
Gi
lar
do
ni
-
Or
oz
co
representan 4 valores.
Figura 2.47
2-24
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
para simular o especificar un diseo. En una simulacin puede ser necesario representar
otros valores de la seal como, por ejemplo, desconocido (unknown), no inicializado
(un_initialized), alta impedancia (high impedance) y drive strengths. En la sntesis puede
ser necesario especificar condiciones de dont care.
Figura 2.48
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
2-25
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.49
El tipo std_ulogic es un tipo de dato irresoluble y slo puede tener un driver. Este es
-C
ay
ss
ial
s-
Figura 2.50
Gi
lar
do
ni
-
Or
oz
co
Figura 2.51
2-26
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.52
-C
ay
ss
ial
s-
Figura 2.53
Or
oz
co
Gi
lar
do
ni
-
Es necesario incluir dichas lneas en la especificacin para poder definir entidades que
2-27
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 2.54
Como muestra la figura 2.55, es posible asignar libremente objetos del tipo std_logic a
objetos del tipo std_ulogic, y viceversa.
Figura 2.55
Si existen mltiples drivers sobre una seal, debe utilizarse el tipo std_logic, ya que es
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
Figura 2.56
slo una introduccin al mismo, y es por ello que no se profundizo en la sintaxis, ni en las
sentencias componentes del lenguaje.
2-28
Diciembre de 1999.
UN
S
El objetivo de este captulo fue describir las estructuras y conceptos bsicos del
lenguaje para que nos sea posible tomar una herramienta de diseo cualquiera, como por
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
VHDL.
2-29
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 3
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
3-1
Diciembre de 1999.
UN
S
Estructura de diseo
Figura 3.1
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
3-2
Diciembre de 1999.
UN
S
1. Sentencia "Title"
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Debe comenzar con la palabra reservada TITLE, seguida por un texto encerrado
entre comillas, finalizando con un punto y coma.
Para incluir comillas dentro del texto deben usarse dos comillas, por ejemplo:
TITLE " ""MAX 7000"" Controlador de Display";
Debe ser colocada fuera de todas las otras secciones del diseo.
-C
ay
ss
ial
s-
2. Sentencia "Parameters"
Tambin permite crear un diseo parametrizado para ser utilizado como librera de otro
Or
oz
co
Gi
lar
do
ni
-
3-3
Diciembre de 1999.
PARAMETERS
(
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
parmetro ANCHO. Los parmetros que tengan asignados valores por defecto pueden
NOMBRE = "miarchivo.mio",
ANCHO,
BYTE = 8,
PALABRA = 2*BYTE
);
Comienza con la palabra reservada PARAMETERS seguida por una lista de uno
o ms parmetros, encerrados entre parntesis. La Sentencia finaliza con un
punto y coma.
Los parmetros de la lista deben ser separados por comas y pueden asignarse
opcionalmente valores por defecto usando el signo igual (=). En la lista
mostrada arriba, slo el parmetro ANCHO no tiene asignado un valor por
defecto.
-C
ay
ss
ial
s-
Los nombres de los parmetros pueden ser definidos por el usuario o ser
parmetros predefinidos por ALTERA.
Los valores asignados a los parmetros pueden ser cadenas de caracteres
encerrados entre comillas, valores numricos o expresiones algebraicas entre
parmetros ya declarados.
Or
oz
co
Gi
lar
do
ni
-
3-4
Diciembre de 1999.
UN
S
3. Sentencia "Include"
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
La sentencia include permite importar texto desde un archivo con extensin .inc, al
archivo que contiene la sentencia.
INCLUDE "lpm_counter.inc";
El diseador puede generar un archivo de tipo include a partir del archivo de diseo
-C
ay
ss
ial
s-
TDF, utilizando la opcin Create Default Include File del software MAX+PLUS II.
Un ejemplo del contenido de un archivo include, llamado dramcontrol.inc, es el
siguiente:
Or
oz
co
address_in[15..0])
Gi
lar
do
ni
-
3-5
Diciembre de 1999.
sentencia include.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
dramcontrol.tdf, que debe encontrarse en el mismo directorio del archivo que contiene la
Puede ser usada un nmero arbitrario de veces dentro del mismo archivo de
diseo.
Debe ser colocada fuera de todas las otras secciones del diseo.
4. Sentencia "Constant"
-C
ay
ss
ial
s-
Or
oz
co
Una vez declarada una constante esta puede ser utilizada a lo largo de todo el
archivo de diseo.
Los nombres de las constantes deben ser nicos y pueden ser utilizados un
Gi
lar
do
ni
-
3-6
Diciembre de 1999.
UN
S
5. Sentencia "Define"
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
La sentencia define permite especificar una funcin matemtica que retorna valores en
funcin de los argumentos que recibe.
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
anteriormente:
DEFINE Positivo(x) = MAX(0,x) + 1;
3-7
UN
S
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
La sentencia function prototype (Prototipo de funcin) posee la misma funcin que los
smbolos de un archivo esquemtico. Ambos proveen una mnima descripcin de la
funcin lgica que ellos representan, listando su nombre y ports de entrada, salida y
bidireccionales.
-C
ay
ss
ial
s-
Or
oz
co
7. Sentencia "Options"
La sentencia options especifica la opcin BIT0 para especificar la posicin del bit ms
Gi
lar
do
ni
-
3-8
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
8. Sentencia "Assert"
SEVERITY
ERROR;
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
9. Seccin de Subdiseo
La seccin de subdiseo es el lugar del archivo de diseo donde se realiza la
3-9
Diciembre de 1999.
address[16..0]
: OUTPUT;
datos[7..0]
: BIDIR;
UN
S
/ras, /cas
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Los nombres de las seales son separados por comas, seguidos por dos puntos
":" y el tipo del port.
Los tipos de ports pueden ser INPUT, OUTPUT, BIDIR, MACHINE INPUT o
MACHINE OUTPUT.
Es posible asignar un valor por defecto (VCC o GND) despus de definir el tipo
de port.
-C
ay
ss
ial
s-
Or
oz
co
VARIABLE
a, b, c
: NODE;
temp
: halfadd;
ts_node
: TRI_STATE_NODE;
Gi
lar
do
ni
-
: flex_adder;
d,e
: NODE;
ELSE GENERATE
7kadder
: pterm_adder;
f,g
: NODE;
END GENERATE;
3-10
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
la estructura. Es muy frecuente ver el uso de esta estructura en las libreras de mdulos
La seccin de declaracin de variables puede incluir una o ms de las siguientes
sentencias o construcciones:
Declaracin de Instancias
Declaracin de Nodos
Declaracin de Registros
Cuando se desea utilizar funciones ya definidas en un nuevo proyecto, stas deben estar
definidas en el mismo archivo de diseo o deben ser incluidas con la sentencia include.
Luego pueden ser declaradas como variables con una declaracin de instancias en la
seccin de declaracin de variables. Despus de ser declaradas, los ports de entrada y
salida de cada una de las funciones pueden ser utilizados como ports en la seccin lgica.
-C
ay
ss
ial
s-
Por ejemplo, si se desea incorporar las funciones comparador y sumador a partir de las
funciones ya definidas, compare y lpm_add_sub, la declaracin de instancias puede ser
realizada como se muestra a continuacin:
VARIABLE
comparador
: compare;
sumador
Or
oz
co
-- Entradas de comparador
: OUTPUT;
-- Salidas de comparador
a[8..1], b[8..1]
: INPUT;
-- Entradas de sumador
sum[8..1]
: OUTPUT;
-- Salidas de sumador
Gi
lar
do
ni
-
a[3..0], b[3..0]
3-11
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
cable_tri_state
BEGIN
: OUTPUT;
: NODE;
-C
ay
ss
ial
s-
VARIABLE
: INPUT;
: TRI_STATE_NODE;
cable = in1;
cable = in2;
out = cable;
Or
oz
co
END;
Gi
lar
do
ni
-
En este ejemplo se observa dos usos tpicos de nodos. Para el caso del nodo tipo NODE,
AND u OR segn sea el valor por defecto de las seales, que intervienen en la asignacin,
VCC o GND respectivamente. Si no se especifica lo contrario, las seales poseen el valor
3-12
Diciembre de 1999.
UN
S
GND por defecto. Por lo tanto las mltiples asignaciones sern realizadas a travs de
compuertas OR.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Luego de realizar esta declaracin se pueden utilizar los ports de entrada y salida de
siguiente:
-C
ay
ss
ial
s-
Or
oz
co
FFlop.clrn
FFlop.prn
FFlop.q
Gi
lar
do
ni
-
3-13
Diciembre de 1999.
UN
S
ss :
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
s1 = B"000",
s2 = B"010",
s3 = B"111");
El nombre de la mquina de estados es ss y los bits componentes de cada estado son q1,
q2 y q3, los cuales son las salidas de los flip flops que implementan la mquina. Los
estados son s1, s2 y s3.
En forma opcional, el nombre de los bits de estado, con las palabras reservadas
OF BITS(..).
El primer estado listado en la clusula WITH STATES, (s1, en este ejemplo) ser el
estado de reset de la mquina de estados.
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
VARIABLE
ss : MACHINE;
BEGIN
ss = ss_def (sys_clk, reset, !hold);
3-14
Diciembre de 1999.
UN
S
IF ss == s0 THEN
M
M
END;
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
ELSIF ss == s1 THEN
La seccin lgica especifica las operaciones lgicas del diseo y es la seccin principal
de archivo TDF. Esta seccin no es opcional y siempre existe en un archivo TDF. Una o
ms de las siguientes sentencias o construcciones pueden existir en esta seccin:
Ecuaciones Booleanas.
Sentencia DEFAULTS.
Sentencia IF-THEN.
Sentencia IF-GENERATE.
Sentencia FOR-GENERATE.
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
Descripcin
Ejemplo
Prioridad
+ (unario)
Positivo
+1
- (unario)
Negativo
-1
NOT
!a
Exponente
a^2
3-15
Mdulo
4 MOD 2
DIV
divisin
4 DIV 2
multiplicacin
a*2
LOG2
Logaritmo base2
LOG2(4-3)
adicin
1+1
sustraccin
1-1
Igualdad numrica
5 == 5
Igualdad alfabtica
"a" == "b"
Distinto que
5 != 4
Mayor que
5>4
5 >= 5
Menor que
a < b+2
a <= b+2
AND
a&b
+
== (numrica)
== (alfabtica)
!=
>
>=
<
<=
&
AND
a AND b
!&
NAND
$
XNOR
NOR
1 !$ 1
a#b
-C
ay
ss
ial
s-
!#
1$1
1 XNOR 1
OR
OR
1 XOR 1
!$
1 !& 0
1 NAND 0
XOR
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
MOD
UN
S
Diciembre de 1999.
a OR b
a !# b
a NOR b
Ternario
(5<4) ? 3:4
Or
oz
co
Gi
lar
do
ni
-
3-16
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
una expresin booleana, la cual es evaluada de acuerdo a la prioridad de cada operador que
El smbolo igual (=) es usado en ecuaciones booleanas para indicar que el resultado de
la expresin booleana del lado derecho es asignado al nodo, variable o grupo de bits del
lado izquierdo.
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
3-17
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
lgicos OR, excepto cuando el valor por defecto de las variables es seteado a
Si un simple nodo, GND o VCC sobre el lado derecho de una ecuacin es
asignado a un grupo, el nodo o constante es duplicado para que el tamao de
este se corresponda con el tamao del grupo. Por ejemplo: (a, b) = e; que es
equivalente a a = e; y b = e;
-C
ay
ss
ial
s-
Las ecuaciones de control son ecuaciones booleanas usadas en la seccin lgica para
setear las seales de clock, reset y clock enable de las mquinas de estados.
El siguiente ejemplo muestra ecuaciones de control booleanas:
Maquina.clk = clk1;
Maquina.reset = a & b;
Or
oz
co
Maquina.ena = clk1ena;
Gi
lar
do
ni
-
Pueden definirse las entradas clock, reset, y clock enable de una mquina de
3-18
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
La sentencia case lista una serie de alternativas que pueden ser activadas dependiendo
del valor de una variable, grupo o expresin y de esta forma describir distintos
comportamientos del sistema.
-C
ay
ss
ial
s-
count[].d = count[].q + 1;
f[].d = f[].q;
Or
oz
co
END CASE;
Gi
lar
do
ni
-
3-19
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
valores constantes H"02", H"03", H"04" son listados en una clusula WHEN,
mientras que los valores H"00" y H"01" son listados en clusulas separadas.
Si la expresin booleana de la sentencia case evala una alternativa que no se
corresponde con los distintos valores de las clusulas WHEN, se activar el
comportamiento descripto en la clusula WHEN OTHERS.
La sentencia defaults, permite especificar valores por defecto para las variables
utilizadas en tablas de verdad, sentencias if-then y sentencias case. Ya que las seales
activas en high son automticamente seteadas por defecto a GND, la sentencia defaults
slo es requerida para seales activas en low.
No debe confundirse los valores por defecto de variables con los valores por defecto de
los ports, asignados en la seccin de subdiseo.
-C
ay
ss
ial
s-
END DEFAULTS;
IF y & z THEN
a = GND;
% a es activa en low %
END IF;
END;
Or
oz
co
Gi
lar
do
ni
-
3-20
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
No puede utilizarse para asignar valores por defecto de X (don't care) a una
variable.
addr[3..1] = f[3..1].q;
f[].d = addr[] + 1;
ELSIF g3 $ g4 THEN
f[].d = addr[];
ELSE
END IF;
-C
ay
ss
ial
s-
d = VCC;
Or
oz
co
estructura ELSIF, permite evaluar otra expresin booleana, cuando la expresin anterior
dio como resultado un valor falso y evaluar las sentencias que suceden a la palabra
reservada THEN en funcin del resultado de esta nueva expresin. El uso de la palabra
reservada ELSE permite evaluar las sentencias que la suceden, si la expresin evaluada en
Gi
lar
do
ni
-
la estructura anterior fue falsa. Toda sentencia if-then finaliza con las palabras reservadas
END IF y un punto y coma.
Una estructura if-then que utilice las palabras reservadas ELSIF y ELSE puede
representarse utilizando slo las palabras reservadas IF, THEN y END IF. El siguiente
ejemplo muestra este hecho:
3-21
Diciembre de 1999.
c = d;
UN
S
IF a THEN
c = d;
ELSIF b THEN
c = e;
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
END IF;
IF !a & b THEN
c = e;
END IF;
ELSE
IF !a & !b THEN
c = f;
END IF;
END IF;
Puede ser usada tanto en la seccin lgica como en la seccin variable. La estructura de
esta sentencia hace uso de las siguientes palabras reservadas: IF-GENERATE, ELSEGENERATE y END GENERATE.
-C
ay
ss
ial
s-
Or
oz
co
La sentencia if-generate difiere con respecto a la sentencia if-then, en que esta ltima, es
totalmente implementada en el hardware, mientras que la sentencia if-generate permitir
implementar distintas sentencias en funcin del resultado de una expresin aritmtica. Es
Gi
lar
do
ni
-
3-22
Diciembre de 1999.
UN
S
La estructura de esta sentencia hace uso de las siguientes palabras reservadas: FORGENERATE y END GENERATE.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
: INPUT;
c[NUM_OF_ADDERS..1], cout
: OUTPUT;
)
VARIABLE
carry_out[(NUM_OF_ADDERS+1)..1] : NODE;
BEGIN
carry_out[1] = cin;
% Full Adder %
cout = carry_out[NUM_OF_ADDERS+1];
END;
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
3-23
Diciembre de 1999.
TABLE
f[4..1].q
0,
B"0000"
0,
B"0100"
1,
B"0XXX"
X,
B"1111"
END TABLE;
=>
f[4..1].d,
control;
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
a0,
UN
S
=>
B"0001",
1;
=>
B"0010",
0;
=>
B"0100",
0;
=>
B"0101",
1;
Las seales de entrada de la tabla son a0 y f[4..1].q y las salidas son f[4..1].d y control.
Estas seales deben colocarse en la primera lnea formando el encabezado de la tabla.
Luego en las lneas siguientes se especifican los distintos valores posibles para las seales,
tanto de entradas como de salidas.
Los valores de entrada y salida pueden ser nmeros, constantes predefinidas como VCC
o GND, constantes definidas por el usuario y grupos de nmeros o constantes. Los valores
de entrada pueden ser asignados a don't care utilizando la letra X para representarlos.
Conclusiones
En este captulo se describieron los principales conceptos del lenguaje AHDL para la
especificacin de hardware. Se detall la estructura de un diseo y la sintaxis de las
Gi
lar
do
ni
-
Or
oz
co
un proyecto.
-C
ay
ss
ial
s-
3-24
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 4
En este captulo se describen las partes integrantes del sistema de desarrollo de lgica
programable de la firma ALTERA, compuesto por el software MAX + PLUS II y la placa
de desarrollo UP1.
1. Qu es ALTERA MAX+PLUS II ?
-C
ay
ss
ial
s-
descripcin de hardware, como son: VHDL, VERILOG HDL y AHDL. Tambin permite
especificar un diseo en forma grfica a travs de diagramas esquemticos,
interconectando distintos elementos lgicos como compuertas, flip flops, contadores, etc.
Si tenemos un conocimiento bsico del lenguaje VHDL, podramos ejecutar el software
MAX+PLUS II e intentar describir un hardware sencillo. Sin embargo, nos encontraramos
Or
oz
co
Por lo tanto, el objetivo planteado, es poder mostrar cmo se realiza un diseo completo
Gi
lar
do
ni
-
4-1
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Para configurar el software de manera tal que el proyecto a realizar se basar en este
archivo, debe ejecutarse la siguiente secuencia:
-C
ay
ss
ial
s-
Una vez configurado como el archivo del proyecto, podemos ir al icono de apertura de
la ventana de jerarquas.
Or
oz
co
Gi
lar
do
ni
-
de dispositivos ALTERA.
1.2 Sntesis
El sintetizador del software MAX+PLUS II es un procesador de diseos, altamente
4-2
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Cuando el sintetizador comienza a trabajar sobre un archivo de diseo, ejecuta una serie
de procesos hasta crear uno o ms archivos de programacin. Mientras que el sintetizador
permite sintetizar un diseo con una mnima intervencin del usuario, tambin es posible
modificar ciertos parmetros para obtener mejores resultados, ya sea en cuanto velocidad o
utilizacin de recursos fsicos.
Or
oz
co
-C
ay
ss
ial
s-
A su vez, cada tipo puede tener distintas extensiones como pueden ser:
Editor grfico: .gdf, .sch
Gi
lar
do
ni
-
.mtf, .plf, .rpt, .sdo, .smf, .tao, .tbl, .tdf, .tdo, .tdx, .ttf, .vec, .vhd, .vho, .vmo,
.vo, .xnf, o cualquier otro archivo de texto ASCII.
Editor de formas de ondas: .scf, .wdf
4-3
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
1.4.1.
Cdigo VHDL
ARCHIVO adder.vhd
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY adder IS
PORT (
op1, op2
result
: OUT INTEGER);
-C
ay
ss
ial
s-
END adder;
: IN
Or
oz
co
Gi
lar
do
ni
-
La palabra reservada UNSIGNED es un tipo de datos que est definido dentro del
package std_logic_arith contenido en la librera ieee. El tipo UNSIGNED representa
valores numricos sin signo los cuales slo pueden ser positivos o cero.
El software MAX+PLUS II interpreta cada tipo UNSIGNED como un nmero binario,
4-4
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Por lo tanto, este cdigo implementa un sumador de 8-bits con entradas declaradas tipo
UNSIGNED y salida declarada tipo INTEGER.
En la arquitectura, op1 y op2, son ambas de tipo UNSIGNED. Las mismas son sumadas
y convertidas a tipo INTEGER con la funcin de conversin CONV_INTEGER. Luego el
resultado de la conversin se asigna a result declarada tipo INTEGER.
Nota: Si bien el tipo INTEGER posee 32 bits de representacin, slo se utilizan 9 bits
ya que el resultado de sumar seales de 8 bits a lo sumo dar como resultado una palabra
de 9 bits. Entonces al nivel del dispositivo tendremos slo 9 contactos de salida usados.
El software MAX+PLUS II versin estudiantil 7.21 puede ser obtenido gratuitamente
de la pgina web de ALTERA: http://www.altera.com/
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
4-5
UN
S
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
-C
ay
ss
ial
s-
La placa posee una serie de elementos, entre los cuales figuran un regulador de tensin,
un oscilador a cristal integrado, conectores, switches, leds y displays.
Como se ve en la figura anterior, la placa UP1 est compuesta por dos dispositivos de
lgica programable: el EPM7128S de la familia MAX7000, y el EPF10K20 de la familia
FLEX10K.
Or
oz
co
de 25.157 Mhz cableada directamente a los contactos de entrada del reloj global de cada
dispositivo. Esto es el contacto 83 para el dispositivo EPM7128S y el contacto 91 para el
dispositivo EPF10K20.
Gi
lar
do
ni
-
4-6
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Nota: Cabe notar que el dispositivo de la familia FLEX10K, el EPF10K20, est cableado a
un conector de video VGA, y es por eso que el oscilador a cristal es de 25.175 Mhz, que es
la frecuencia especificada por el estndar VGA. Esta es la nica razn por la que no ha
sido conectado a un reloj de mayor frecuencia, ya que ambos dispositivos podran
funcionar al triple de frecuencia.
Los dispositivos estn conectados en cadena JTAG (IEEE 1149.1 Join Test Action
Group ). JTAG es una interfase estndar que permite que los dispositivos sean ISP (InSystem Programmability) de forma tal de poder programar y/o configurar, a travs de la
interfase ByteBlaster a uno o ambos dispositivos en forma secuencial.
La placa UP1 posee una serie de switches para configurar dicha cadena, pudiendo
seleccionar la programacin del dispositivo EPM7128S, o la configuracin del dispositivo
-C
ay
ss
ial
s-
Para mayor informacin sobre la placa educacional UP1 debe referirse a la gua del
usuario de ALTERA:
Or
oz
co
Gi
lar
do
ni
-
4-7
Diciembre de 1999.
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Or
oz
co
configurados cada vez que se energizan. Pueden ser configurados a travs de una
memoria previamente programada, en donde el dispositivo configurable,
automticamente, lee la informacin necesaria y se autoconfigura.
Gi
lar
do
ni
-
4-8
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Captulo 5
-C
ay
ss
ial
s-
de 72 contactos.
Or
oz
co
Gi
lar
do
ni
-
5-1
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 5.1
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
Figura 5.2
5-2
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 5.3
-C
ay
ss
ial
s-
Gi
lar
do
ni
-
Or
oz
co
5-3
Dinmicas.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Diciembre de 1999.
Las seales asociadas a los distintos contactos de entrada y salida pueden dividirse en
tres grupos segn sea su interaccin con y desde el mundo exterior.
Estas seales son:
-C
ay
ss
ial
s-
Las seales dramcontrol mdulo SIMM, que interactan en forma directa con el
mdulo SIMM.
Seales independientes
Or
oz
co
2.1.1.
Existen slo dos seales independientes: 1) la seal de entrada clk, que ser utilizada
como la seal de sincronismo de toda la lgica secuencial utilizada en la implementacin
Gi
lar
do
ni
-
2.1.2.
5-4
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Igual que la seal /ras, la seal de salida /cas es aplicada a la memoria dinmica.
-C
ay
ss
ial
s-
Esta seal es activa en cero y es llevada a su estado low indicando que las
direcciones de columnas ya estn presentes.
address_out son las 10 lneas de direcciones multiplexadas de filas y columnas
hacia el mdulo SIMM.
Or
oz
co
Gi
lar
do
ni
-
Dinmicas.
El mdulo SIMM de 72 contactos de 1M * 32 bits, ser visto como una memoria RAM
5-5
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
controlador y otra parte que interacta con la memoria dinmica, llamada controlador
Como indica la figura 5.4, el ciclo de lectura comienza cuando el microprocesador baja
la seal /read, y la seal /write permanece en nivel alto. En el flanco descendente de la
seal /read se almacenan en registros las direcciones address_in provenientes del
-C
ay
ss
ial
s-
Aclaracin: los valores, tanto de la direccin de escritura como el del dato ledo, fueron
Gi
lar
do
ni
-
Or
oz
co
Figura 5.4
5-6
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
baja la seal /write, y la seal /read permanece en nivel alto. En el flanco descendente de
la seal /write se almacenan en registros las direcciones address_in provenientes del
microprocesador previamente establecidas. Luego el microprocesador debe colocar el dato
a escribir en las lneas bidir_up. El dato ser almacenado por el controlador dramcontrol,
con el flanco ascendente de la seal /write. Luego, controlador acceder a la memoria
dinmica para escribir el dato deseado en el lugar de memoria deseado.
Figura 5.5
-C
ay
ss
ial
s-
previamente establecida. Tambin cabe notar que el registro de paginado es de 6 bits y por
lo tanto el valor que tomar dicho registro, luego del ciclo de escritura, ser el de los 6 bits
menos significativos del bus de datos proveniente del microprocesador.
La direccin de paginado ser la indicada por la constante dir_paginado definida en el
cdigo AHDL, por lo tanto cuando se escriba en esa direccin no se acceder a la memoria
Or
oz
co
Gi
lar
do
ni
-
controlador no realiza ninguna funcin, por lo tanto no se puede saber cul es el valor
actual del registro de paginado. Slo se puede modificar.
En la figura 5.6 se muestra el ciclo de cambio de pgina recin descripto, y los valores,
tanto de la direccin de paginado como el del valor de la pgina, fueron elegidos en forma
arbitraria.
5-7
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 5.6
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
5-8
Diciembre de 1999.
-C
ay
ss
ial
s-
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Or
oz
co
Gi
lar
do
ni
-
El ciclo de lectura controlador memoria dinmica tiene que realizarse antes que
finalice el ciclo microprocesador controlador. Para asegurar que esto ocurra se bajar
5-9
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
JEDEC de 72 contactos.
En la figura 5.7 se ve que luego de bajar la seal /read, el controlador establece las
direcciones de filas con el valor 00F y se baja la seal /ras, con lo que la memoria
latchea las direcciones de filas. Luego el controlador coloca las direcciones de columnas
3C3 y se baja la seal /cas. En un tiempo no mayor a los 20ns el dato ledo aparece en el
bus de datos bidir_simm, siendo este latcheado y presentado al microprocesador hasta que
el ciclo microprocesador controlador termine.
Figura 5.7
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
Luego el controlador establecen las direcciones de filas con el valor 00F y se baja la
seal /ras, con lo que la memoria latchea las direcciones de filas. Posteriormente el
controlador coloca las direcciones de columnas 3C3 y se baja la seal /cas. Se observa
5-10
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 5.8
Como toda memoria dinmica, para asegurar la integridad de los datos, debe ser
refrescada peridicamente. Las memorias utilizadas tienen un ciclo de refresco de 16ms y
estn estructuradas como una gran matriz de 1024 filas por 1024 columnas, por lo tanto
una forma de refrescar toda la memoria sera leer 1024 filas en un tiempo menor a los
16ms, usando solamente la seal /ras. Est tipo de refresco es el denominado RAS only y
tiene la desventaja de tener que llevar un contador externo con las direcciones de filas a
refrescar.
Otro tipo de refresco es el CAS before RAS, que fue el utilizado, y tiene la ventaja con
respecto al anterior, que no es necesario colocar las direcciones de filas, ni llevar un conteo
externo, ya que esto lo hace automticamente la memoria dinmica con su propio contador
-C
ay
ss
ial
s-
interno. Como su nombre lo indica, para que la memoria interprete que se quiere hacer un
ciclo de refresco CAS before RAS, el controlador debe realizar el siguiente handshake:
primero se baja la lnea /cas y se sube la lnea /write_dram y se baja la lnea /ras. Se
mantienen estos estados y se levanta la lnea /cas al mismo tiempo que se baja la lnea
Figura 5.9
Gi
lar
do
ni
-
Or
oz
co
5-11
Diciembre de 1999.
4. Funcionamiento
Lgico
del
Controlador
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Memorias Dinmicas.
de
UN
S
El controlador de memorias dinmicas est formado por dos mquinas de estados que
evolucionan sincrnicamente con la seal de reloj y en funcin de distintas variables de
entrada que definen cul es el prximo estado.
Luego de una inicializacin del controlador, las mquinas de estados se inician en los
estados espera en la mquina 1 y Standby en la mquina 2. Como sus nombres lo indican
estos estados son estados de espera, e indican que el controlador se encuentra disponible
para realizar cualquiera de las funciones microprocesador controlador y controlador
memoria dinmica, mencionadas anteriormente.
Las tres seales lgicas recin mencionadas son definidas en el cdigo AHDL y se
-C
ay
ss
ial
s-
Or
oz
co
que son las salidas de dos flip flops D con seal de enable. Estos flip flops son
configurados por la mquina 1 para comenzar un ciclo de lectura o escritura en la mquina
2 y son borrados por la mquina 2 cuando los ciclos terminan. Por lo tanto estas seales
funcionan como nexos de comunicacin entra las dos mquinas de estados.
Gi
lar
do
ni
-
5-12
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
-C
ay
ss
ial
s-
escritura_fin:
Or
oz
co
Gi
lar
do
ni
-
5-13
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
=>
5 estados.
Ciclo de lectura
=>
6 estados.
Ciclo de escritura
=>
6 estados.
escritura, lectura o refresco. Las seales toman los valores definidos por defecto.
Idle: Este estado solo cumple la funcin de insertar un intervalo de tiempo de un
ciclo de reloj de duracin, luego de un ciclo de lectura y / o escritura. Las
seales toman los valores definidos por defecto.
Ciclo de Refresco:
-C
ay
ss
ial
s-
Or
oz
co
Gi
lar
do
ni
-
Nota: En realidad el ciclo de refresco termina al llegar al estado standby, ya que aqu
se sube la seal /ras.
5-14
Diciembre de 1999.
Read1:
UN
S
Ciclo de Lectura:
Este es el primer estado que implementa el ciclo de lectura. Se
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
accede a ste desde el estado standby, si hay una seal de lectura pendiente. Esta
seal de lectura pendiente, proviene de un elemento de memoria (Flip Flop D),
llamado en el cdigo AHDL, lectura_pendiente.q. Este flip flop es seteado por
la mquina de estados 1 cuando el microprocesador baja la seal /read. En este
estado se establecen las direcciones de filas hacia el mdulo SIMM y se pasa al
estado siguiente que es read2.
Read2:
Read6:
-C
ay
ss
ial
s-
accede a ste desde el estado standby si hay una seal de escritura pendiente.
Esta seal de escritura pendiente es seteada por la mquina de estados 1 y
proviene de un elemento de memoria (Flip Flop D), llamado en el cdigo
Or
oz
co
Gi
lar
do
ni
-
Write2:
5-15
Diciembre de 1999.
UN
S
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
Write4:
mdulo SIMM, se mantiene la seal /ras en low, se determina que bit de la seal
/cas[0..3] se debe llevar a low para escribir el byte correcto y por ltimo se pasa
al estado siguiente que es write5.
Write5:
-C
ay
ss
ial
s-
Se puede observar la existencia de dos latchs encargados de almacenar los datos que
entran al dispositivo de lgica programable, tanto del port bidir_up[7..0] como del port
Or
oz
co
Gi
lar
do
ni
-
5-16
Diciembre de 1999.
La
bo
ra
to
rio
de
Si
ste
ma
sD
igi
tal
es
-
UN
S
Figura 5.10
Los datos salen por los ports bidireccionales a travs de los buffers tri estados
up_tri_state[7..0]
simm_tri_state[7..0]
cuando
las
seales
de
output
enable
Gi
lar
do
ni
-
Or
oz
co
-C
ay
ss
ial
s-
5-17