Xilinx Foundation Series Bibliotecas unificadas · cantidad de elementos de diseño funcional, ......

19
Digital II Xilinx Foundation Series Bibliotecas unificadas Rosa Corti 2007 Departamento de Sistemas e Informática Escuela de Electrónica Facultad de Ciencias Exactas, Ingeniería y Agrimensura Universidad Nacional de Rosario

Transcript of Xilinx Foundation Series Bibliotecas unificadas · cantidad de elementos de diseño funcional, ......

Digital II

Xilinx Foundation Series Bibliotecas unificadas

Rosa Corti

2007

Departamento de Sistemas e Informática

Escuela de Electrónica

Facultad de Ciencias Exactas, Ingeniería y

Agrimensura

Universidad Nacional de Rosario

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 2 de 19

Contenido del apunte

1 El concepto de Bibliotecas unificadas......................................4

2 Incorporación de los dispositivos en el diseño .........................5

3 Categorías funcionales .............................................................5

4 Dispositivos combinacionales. ..................................................5

4.1 Compuertas. ................................................................................5 4.2 Sumadores (ADD4, ADD8, ADD16)..........................................6 4.3 Sumadores/Restadores (ADDSU4, ADDSU8, ADDSU16). ......6 4.4 Multiplexores. .............................................................................7 4.5 Comparadores. ............................................................................8 4.6 Funciones de I/O. .......................................................................8

4.6.1 Buffers de entrada. ...........................................................................8 4.6.2 Buffers de salida. ..............................................................................9 4.6.3 Pads de entrada.................................................................................9 4.6.4 Pads de salida....................................................................................9 4.6.5 Pads bidireccionales. ........................................................................9

5 Dispositivos secuenciales. .......................................................10

5.1 Implementación del Clock Enable (CE). .................................10 5.2 Flip-Flops D..............................................................................11

5.2.1 Flip-Flops D con CLR. ...................................................................11 5.2.2 Flip-Flops D con CE y/o entradas de seteo y reseteo. .................11

5.3 Flip-Flops de entrada. ..............................................................12 5.4 Flip-flops JK. ............................................................................13 5.5 Contadores binarios con CE y clear asincrónico conectables

en cascada ..................................................................................................13 5.6 Contadores binarios con carga paralela, CE y clear

asincrónico conectables en cascada..........................................................13 5.7 Contadores binarios bidireccionales con carga paralela, CE y

clear asincrónico conectables en cascada. ...............................................13 5.8 Contadores binarios con CE y reset sincrónico, conectables en

cascada……………… ...............................................................................14 5.9 Registros de datos. ....................................................................15

5.9.1 Registros de datos con CE y CLR. .................................................15 5.9.2 Registros de datos con CE y R.......................................................15

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 3 de 19

5.10 Registros de desplazamiento con entrada serie, salida paralela, CE y clear asincrónico. ..............................................................15

5.11 Registros de desplazamiento con entrada serie/paralelo, salida paralela, CE y clear asincrónico. ...................................................16

5.12 Registros de desplazamiento bidireccionales con entrada serie, salida paralela, CE y clear asincrónico ..........................................16

5.13 Registros de desplazamiento con entrada serie, salida paralela, CE y reset sincrónico..................................................................17

5.14 Registros de desplazamiento con entrada serie/paralelo, salida paralela, CE y reset sincrónico.......................................................17

5.15 Registros de desplazamiento bidereccionales con entrada serie, salida paralela, CE y reset sincrónico............................................17

5.16 Memorias RAM sincrónicas. ................................................17 5.17 Memorias RAM de puerto doble...........................................18 5.18 Memorias ROM. ....................................................................19 5.19 Definición de la propiedad INIT en los bloques de memoria

de biblioteca................................................................................................19

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 4 de 19

XILINX FOUNDATION SERIES BIBLIOTECAS UNIFICADAS1

1 El concepto de Bibliotecas unificadas

La empresa Xilinx mantiene bibliotecas asociadas con las distintas familias de dispositivos programables que fabrica. Estas bibliotecas están compuestas por gran cantidad de elementos de diseño funcional, que pueden ser primitivas o macros2. Si bien en Digital II trabajamos con los dispositivos de las familias Spartan2 y/o Spartan3, cuyas bibliotecas incluyen los elementos sintetizables con la arquitectura propia de la familia, en cada familia de dispositivos, sean estos del tipo FPGA o CPLD, existe una biblioteca de características similares.

Xilinx aborda una aproximación “unificada” de sus bibliotecas, lo que significa que se pueden implementar diseños creados con cualquiera de ellas utilizando otra familia de dispositivos, siempre y cuando la biblioteca destino soporte los elementos incluidos. Por lo general esta situación se presenta cuando escalamos hacia familias más avanzadas,

que es lo que normalmente ocurre. La compatibilidad “hacia abajo”, es más complicada si se utilizan elementos de diseño novedosos, incorporados por las nuevas arquitecturas.

Los elementos que existen en las bibliotecas de distintas familias no sólo tienen la misma apariencia sino que funcionan de forma similar, pese a que su implementación puede diferir de una a otra por motivos de eficiencia. En cada biblioteca los símbolos aparecen repetidos lo cual es necesario para la simulación (especialmente a nivel placa), ya que las características de temporización son particulares a cada arquitectura.

En consonancia con este

enfoque, se definen convenciones de nombres que se utilizan en todas las bibliotecas, y que ponen de manifiesto algunas de sus características como ser la funcionalidad, tamaño y entradas disponibles. En la Figura 1 tomada de una publicación de la empresa sobre este tema, se muestran estas convenciones generales. En las mismas, los nombres comienzan con la funcionalidad del bloque, seguida por el número de bits. En las puertas es común que se indique el número

Figura 1

1 El contenido de este apunte se basa en el documento de Xilinx sobre las bibliotecas de su

ambiente de desarrollo. Las figuras mostradas corresponden a dicha publicación. 2 Elementos compuestos por varias primitivas u otras macros que se encapsulan y almacenan en las

bibliotecas. Son un ejemplo de diseño jerárquico.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 5 de 19

de entradas sin negar y negadas, mientras que en bloques secuenciales se listan las entradas de control ordenadas por prioridad.

Es importante destacar, que el usuario puede definir sus propios bloques a partir de los elementos disponibles en las bibliotecas. Los mismos pueden ser encapsulados y reutilizados con el fin de ahorrar esfuerzo en desarrollos futuros.

2 Incorporación de los dispositivos en el diseño

Cuando se aborda un proyecto en el ambiente de diseño utilizando el flujo por esquemáticos, los bloques se arrastran desde las bibliotecas y se conectan con las herramientas disponibles. Es la forma en la que trabajaremos en la asignatura, donde los utilizaremos como bloques MSI3 para implementar la partición del sistema a diseñar, lograda con el método constructivo.

Estos elementos de biblioteca, son también útiles cuando se encara un diseño basado en lenguajes de descripción de hardware (HDL). En este último caso, se los instancia y conecta con sentencias del lenguaje. El flujo de diseño con HDL escapa a los alcances de la asignatura, pero constituye hoy en día una tendencia firme para encarar sistemas digitales de complejidad creciente.

En Digital II, sólo abordamos algunos pasos del flujo de diseño. Específicamente realizamos el ingreso del diseño y su simulación comportamental con el objetivo de verificar su funcionamiento y realizar las correcciones y ajustes necesarios. Sin embargo, el ambiente de desarrollo Webpack permite completar el flujo de desarrollo, llegando hasta la implementación de los proyectos en dispositivos de lógica programable. La herramienta de síntesis incorporada (XST), reconoce los elementos de biblioteca que constituyen el circuito, y realiza la implementación de una forma optimizada para el dispositivo FPGA seleccionado. El producto final del proceso de síntesis (mapeo, emplazamiento y ruteo) es un archivo bitstream de apellido .bit, que consiste en un conjunto de ceros y unos que codifican la configuración que se le dará al integrado. Finalmente, este producto final es transferido al dispositivo FPGA, que alojará la totalidad del sistema desarrollado.

3 Categorías funcionales

Existen diversas funcionalidades disponibles en las bibliotecas de Xilinx. Las agruparemos por categorías, y es importante notar que la variedad de dispositivos en cada una de ellas es distinta de una familia a otra. Dentro de cada biblioteca los elementos de diseño están organizados alfabéticamente y cabe destacar que existen funciones standard del tipo TTL-7400 en todas las bibliotecas cuyo nombre comienza con el prefijo X74.

En este apunte comentaremos las características más relevantes de las categorías de dispositivos más usuales en los prácticos planteados en la asignatura. Queda para el lector la inquietud de recorrer la biblioteca y explorar todos los elementos de diseño disponible.

4 Dispositivos combinacionales.

4.1 Compuertas.

Respecto a la disponibilidad de compuertas lógicas hay de distinto tipo con las entradas negadas y sin negar y con distinta cantidad de entradas. Además existen

3 MSI: Sigla en inglés para Mediana Escala de Integración.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 6 de 19

combinaciones de puertas como suma de productos. A continuación se listan algunas de las disponibles, si se necesitan otras de distintas características se deben buscar en la biblioteca nombres análogos a los presentados.

Object Name: AND2 Attribute: Gate, Gate Array Comment: 2-Input AND Gate with Non-Inverted Inputs Object Name: INV Attribute: Gate, Gate Array C omment: Inverter

Object Name: NAND2 Attribute: Gate, Gate Array Comment: 2-Input NAND Gate with Non-Inverted Inputs Object Name: NOR2 Attribute: Gate, Gate Array Comment: 2-Input NOR Gate with Non-Inverted Inputs bject Name: OR2 Attribute: Gate, Gate Array Comment: 2-Input OR Gate with Non-Inverted Inputs Object Name: XOR2 Attribute: Gate, Gate Array Comment: 2-Input XOR Gate with Non-Inverted Inputs

4.2 Sumadores (ADD4, ADD8, ADD16).

Son sumadores completos que pueden conectarse en cascada para obtener dispositivos de mayor número de bits. Disponen de Carry In (CI), Carry Out (CO) y señal de Overflow (OFL). Estos dispositivos suman dos palabras (A y B) y el CI, produciendo una suma S, y las salidas CO y OFL. La entrada de CI se utiliza cuando se necesita encadenar varios dispositivos, en caso contrario debe estar conectada a masa.

Pueden operar tanto con números binarios sin signo como con números binarios en complemento a dos. La única diferencia es la interpretación de las palabras A y B que se ingresan, del resultado S, y de cómo se determina en ambas operaciones la situación de overflow.

Suma binaria sin signo: En esta operación, ADD4 representa números entre 0 y 15, ADD8 entre 0 y 255 y

ADD16 entre 0 y 65535. La salida CO indica cuando asume el valor 1 que se ha excedido la capacidad del sumador (hay una situación de carry), y la salida OFL se ignora.

Suma en complemento a dos: En esta operación ADD4 representa números entre -8 y 7, ADD8 entre -128 y 127

y ADD16 entre -32768 y 32767. La salida OFL indica cuando asume el valor 1 que se ha excedido la capacidad del sumador (hay una situación de overflow), y la salida CO se ignora.

Figura 2: ADD4

4.3 Sumadores/Restadores (ADDSU4, ADDSU8, ADDSU16).

Son sumadores/restadores que pueden conectarse en cascada para obtener dispositivos de mayor número de bits. Disponen de Carry In (CI), ADD (en 1 indica suma

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 7 de 19

en 0 resta), Carry Out (CO) y señal de Overflow (OFL). Estos dispositivos suman o restan (dependiendo de la señal de control ADD) dos palabras (A y B) y el CI, produciendo una suma S, y las salidas CO y OFL. Binarios sin signo vs números en complemento a dos:

Como estos dispositivos son sumadores/restadores, tanto con binarios sin signo como en complemento a dos, puede presentarse la situación de overflow. Ambas operaciones se diferencian en la forma en que determinan dicha situación, en aritmética sin signo se utiliza CO, y en complemento a dos OFL.

Cuando la señal ADD está en alto los dispositivos suman las dos palabras A y B y el CI, entregando el resultado en S y generando CO u OFL dependiendo si la operación se realiza sobre números binarios sin signo o si se realiza sobre números en complemento a 2. CO, OFL y CI están activos en alto.

Cuando la señal ADD está en cero, los dispositivos realizan la operación A-B, entregando el resultado en S y generando las señales CO u OFL dependiendo de la

interpretación de los números. Sin embargo aquí tanto CI como CO están activos en cero, lo cual hace que deban tomarse precauciones al utilizar el dispositivo. Cuando se restan binarios sin signo, la señal CO debe ser interpretada como una señal de “pedir prestado”, si se restan números en C2 esta señal se ignora. La señal OFL es activa siempre en alto.

Por lo tanto, si se trabaja con aritmética sin signo, teniendo en cuenta que ahora se suma y se resta dependiendo de ADD y recordando las consideraciones anteriores, la señal de overflow puede obtenerse como:

Overflow = ADD XNOR CO Si se trabaja con aritmética en C2, CO se ignora y OFL

determina si se excede la capacidad. Para obtener un funcionamiento correcto, teniendo en cuenta las consideraciones anteriores se deberá definir:

Figura 3

CI = Not ADD

4.4 Multiplexores.

Estos dispositivos están disponibles con y sin señal de enable (E). Cuando la señal E está en valor alto el dispositivo está activo y presenta una de las entradas en su salida dependiendo de la configuración de control. Si E está en cero, la salida es cero. Existen

multiplexores de 2, 4, 8 y 16 a 1, y hay algunos con opciones de entradas negadas (en el caso de las familias Spartan2 y Spartan3 en el multiplexor de 2 a 1). En la figura 4 se muestra la tabla de verdad correspondiente a un multiplexor de 4 a 1 con entrada de

Figura 4: Tabla de verdad de un MUX 4 a 1

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 8 de 19

Enable. Si se necesitan multiplexores que trabajen con buses4, se deberá definir la macro correspondiente a partir de los elementos disponibles en la biblioteca.

4.5 Comparadores.

Se disponen dos tipos de comparadores: de identidad y de magnitud. Los comparadores de identidad permiten determinar si dos números binarios sin signo, son iguales o no y por lo tanto sólo disponen de una salida EQ. Los comparadores de magnitud tienen dos salidas (LT y GT), que en estado alto determinan la relación entre dos números binarios sin signo. Si se desea comparar números negativos representados en complementos con comparadores de magnitud, se deberían efectuar las correcciones correspondientes a las señales de salida5.

4.6 Funciones de I/O.

Los IOB6 del integrado, sea éste CPLD o FPGA, poseen recursos que se configuran como primitivas y macros de I/O.

En la versión Webpack que utilizamos, el procedimiento para indicar que una línea o bus se conecta con señales externas al CI, consiste en agregar en el esquemático I/O markers. Las características de estos “marcadores”, deben ser las mismas que las de la línea o bus relacionada. Si la señal ingresa al CI (señal de sólo “lectura” para el circuito, que la utiliza pero no la define), corresponde un marcador de tipo I. Si la señal egresa del CI (señal que define o “escribe” el circuito) corresponde un marcador de tipo O. Si el circuito define señales que egresarán del CI, pero además las necesita para procesamiento interno (se realimentan al interior del sistema), corresponde un marcador de tipo I/O.

Se presentan a continuación los dispositivos de I/O más usuales. Cabe destacar, que con la versión del ambiente que se utiliza en la asignatura, sólo deberán agregarse como elementos discretos en situaciones excepcionales. En general, basta con agregar el marcador de I/O correspondiente, ya que la herramienta de síntesis los reconoce, e incorpora más adelante en el flujo de diseño los elementos adicionales necesarios.

Figura 5: Comparador de identidad

4.6.1 Buffers de entrada. IBUF, IBUF4, IBUF8, IBUF16 son buffers de entrada que aíslan el circuito

interno del dispositivo de las señales que ingresan al chip. Se conectan a pads (elementos que representan las patillas del chip) de entrada o de entrada/salida.

Object Name: IBUF Attribute: Gate, Bus Driver, Gate Array Comment: Input Buffer Object Name: IBUF4 Attribute: Gate, Bus Driver, Gate Array Comment: 4 Input Buffers

4 En los prácticos se suele trabajar con buses de 4 bits. 5 Las correcciones necesarias fueron comentadas en clase. 6 Bloques de Entrada/Salida.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 9 de 19

4.6.2 Buffers de salida. Para adaptar las señales de salida, se conectan antes de los pads de salida. Hay de

distinta cantidad de bits (OBUF, OBUF4, OBUF8, OBUF16). Object Name: OBUF Attribute: Gate, Bus Driver, Gate Array Comment: Output Buffer Object Name: OBUF4 Attribute: Gate, Bus Driver, Gate Array Comment: 4 Output Buffers

4.6.3 Pads de entrada. Elementos que indican la conexión con las patillas del dispositivo configuradas

como entradas. Por ellos ingresan las señales de entrada al sistema. Hay de distinta cantidad de bits (IPAD, IPAD4, IPAD8, IPAD16).

Object Name: IPAD Attribute: Gate Array Comment: Input Pad Object Name: IPAD4 Attribute: Gate Array Comment: 4 Input Pads

4.6.4 Pads de salida. Para indicar la conexión con las patillas del dispositivo configuradas como salidas.

Desde ellos egresan señales desde el chip hacia el exterior. Hay de distinta cantidad de bits (OPAD, OPAD4, OPAD8, OPAD16).

Object Name: OPAD Attribute: Gate Array C omment: Output Pad

Object Name: OPAD4 Attribute: Gate Array Comment: 4 Output Pads

4.6.5 Pads bidireccionales. Para conectar con señales que se realimentan hacia el circuito implementado en el

chip. Hay de distinta cantidad de bits (IOPAD, IOPAD4, IOPAD8, IOPAD16). Se conectarán con los buffers correspondientes.

Object Name: IOPAD Attribute: Gate Array Comment: Input/Output Pad Object Name: IOPAD4 Attribute: Gate Array Comment: 4 Input/Output Pads

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 10 de 19

5 Dispositivos secuenciales.

5.1 Implementación del Clock Enable (CE).

La entrada de CE es una característica común de los dispositivos sincrónicos de las bibliotecas, por lo que es importante comprender la forma en que trabaja para abordar los diseños propuestos en la asignatura. Se incorpora para prevenir el uso de puertas con la finalidad de afectar la señal de reloj. Esta última es una práctica desaconsejable no sólo por los retardos que introduce, sino también por la posibilidad de producir glitches que ocasionen un mal funcionamiento, y que suelen ser difíciles de detectar. Cuando se necesita inhibir el funcionamiento del dispositivo en lugar de afecta la señal de reloj, se utiliza el CE (CE = 0).

El Flip Flop tipo D es el bloque de construcción básico para todas las arquitecturas. Sin embargo hay diferencias entre ellas respecto de las entradas disponibles. En las familias de dispositivos Spartan2 y Spartan3 que son las que nos interesan, los FF D pueden disponer de entrada de CE (clock enable), y se puede optar entre dispositivos con entradas de seteado y/o reseteado sincrónicas o asincrónicas. Se sugiere recorrer los elementos de biblioteca en el ambiente para verificarlo.

Cuando se utilizan entradas de control sincrónicas y asincrónicas, la prioridad entre ellas es consistente a través de todas las arquitecturas y elementos de diseño siendo en general el orden desde la prioridad más alta a la más baja como sigue:

Clear asincrónico (CLR). Preset asincrónico (PRE). Set sincrónico (S). Reset sincrónico (R). Clock Enable (CE).

Las entradas asincrónicas CLR y PRE, tienen en realidad prioridad por definición sobre todas las entradas sincrónicas y de clock del dispositivo.

Respecto del CE, se implementa en las bibliotecas utilizando dos métodos diferentes, lo que afecta las prioridades entre CE y otras señales de control del dispositivo. Los dos métodos se presentan en la Figura 6.

Figura 6: Implementaciones de CE

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 11 de 19

Método 1: El CE se implementa conectando el CE de la macro al pin dedicado de CE de los FF existentes en el CLB7 utilizado. Esto permite un CE por CLB y ocasiona que CE tenga un nivel de prioridad más alto respecto a otras señales sincrónicas. Todos los FF con preset o clear asincrónico utilizan este método.

Método 2: El CE se implementa usando las LUT´s del CLB. Entonces la prioridad

del CE es más flexible. Todos los FF con set o reset sincrónico utilizan este método.

El método utilizado en una macro particular queda indicado por la inclusión de clear asincrónico, preset asincrónico, set sincrónico o reset sincrónico, en la descripción de la macro. Además en cada una, y de acuerdo a cómo se hayan definido las conexiones internas, queda claramente definido un esquema de prioridades para manejar las señales de control del dispositivo. Este esquema queda plasmado en la convención de nombres que se ha definido. Si quedan dudas, se debe consultar la documentación asociada.

5.2 Flip-Flops D.

Es el tipo más simple de flip-flop disponible como primitiva en la biblioteca de las familias de interés. El dato presente a la entrada es cargado en el pulso activo de clock. Existen con flanco activo ascendente y descendente. Ambos se resetean cuando se aplica tensión al circuito.

Figura 7: Esquema del FD

5.2.1 Flip-Flops D con CLR. Estos FF son primitivas en las familias Spartan2 y Spartan3. Agregan a la

funcionalidad descripta en el punto anterior un CLR, que es prioritario y lleva el contenido del dispositivo a cero cuando está en alto. También se disponen con flanco activo descendente.

Figura 8: Esquema del FDCE

5.2.2 Flip-Flops D con CE y/o entradas de seteo y reseteo. Estos dispositivos, que también son primitivas en las familias Spartan2 y Spartan3,

combinan una entrada de CE con entradas de seteo y/o reseteo asincrónico o sincrónico. Las entradas asincrónicas (CLR y PRE) pueden presentarse en conjunto o sólo una de

7 Bloque Lógico Configurable de la FPGA

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 12 de 19

ellas. Lo mismo ocurre para las entradas sincrónicas R y S. los dispositivos trabajan con flancos de reloj ascendente y descendente. Se presentan como ejemplo las tablas de comportamiento de dos FF. El reset en las tablas de los dispositivos presentados es prioritario en ambos, pero es importante notar la diferencia en el funcionamiento entre el CLR (asincrónico) y el R (sincrónico).

Se recomienda recorrer los elementos de biblioteca del ambiente para

familiarizarse con los dispositivos disponibles en esta categoría.

Figura 9: Tabla del Flip-Flop FDCE (clock enable y clear asincrónico)

Figura 10: Tabla del Flip-Flop FDRE (reset sincrónico y clock enable)

5.3 Flip-Flops de entrada.

Estos flip-flops de distinta cantidad de líneas de entradas (IFD, IFD4, IFD8, IFD16) están contenidos en los IOB del integrado y responden al flanco ascendente del clock. La entrada (D) se conecta directamente a un marcador de entrada o de entrada/salida. Su función además de almacenar, es sincronizar los datos que ingresan al chip, con el reloj general del sistema. Por lo tanto, cuando se ingresan datos por teclado en simulación, es conveniente incluirlos en el diseño a fin de que no se presenten anomalías al momento de verificar el comportamiento del circuito. En síntesis la sincronización de señales externas también es recomendable, por lo que su inclusión en el diseño no está en modo alguno limitada al logro de buenos resultados de simulación.

Object Name: IFD Attribute: Flip Flop / Latch, Gate Array Comment: Input D Flip-Flop Object Name: IFD4 Attribute: Flip Flop / Latch, Gate Array Comment: 4 Input D Flip-Flops Figura 11: Esquema de IFD4

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 13 de 19

5.4 Flip-flops JK.

Estos Flip-Flops existen también con muchas variantes. Los dos tipos más simples incluyen un clear asincrónico (FJKC) o un preset asincrónico FJKP). Los bloques de esta categoría se implementan como macros en las familias de interés, y todos agregan a la tabla de verdad ya conocida otras entradas como se indica:

FJKC: Clear asincrónico FJKCE: CE y Clear asincrónico (prioritario) FJKP: Preset asincrónico. FJKPE: CE y Preset asincrónico El Preset es prioritario. FJKRSE: CE, Reset y Set sincrónicos (R prioritario frente al S, y ambos

prioritarios respecto al CE). FJKSRE: Mismas entradas que el anterior pero aquí el prioritario el Set sincrónico

(notar la inversión de las letras en el nombre).

Las entradas de seteo y reseteo (sincrónicas o asincrónicas) son prioritarias en todos los casos respecto del CE (si existe).

5.5 Contadores binarios con CE y clear asincrónico conectables en cascada

Se disponen de distinta cantidad de bits, son los dispositivos CB2CE, CB4CE, CB8CE y CB16CE, macros en las familias de interés. El clear asincrónico es prioritario frente a todas las otras entradas, y cuando está en alto lleva todas las salidas a cero. El contador incrementa su valor en 1 cada vez que llega un flanco activo de clock y CE está en alto (con CLR en cero).

La salida TC asume valor alto cuando el contenido del contador consiste en una tira de unos8.

La salida CEO se utiliza para conectar los contadores en cascada con el fin de lograr contadores de mayor capacidad. CEO está en alto cuando TC y CE están en alto, por lo tanto, la salida CEO del primer contador de la cascada se debe conectar a la entrada CE del segundo y las entradas C y CLR de ambas deben estar en paralelo. Si hay más contadores en la cascada se repite el procedimiento. Se debe tener cuidado con la relación del período del clock usado y los retardos introducidos por cada etapa de la cascada.

Figura 12: Esquema de CB4CE

5.6 Contadores binarios con carga paralela, CE y clear asincrónico conectables en cascada.

También hay de distinta cantidad de bits: CB2CLE, CB4CLE, CB8CLE y CB16CLE. Estos dispositivos agregan a la funcionalidad descripta en los contadores anteriores la posibilidad de realizar una carga en paralelo. En la tabla de la Figura 13, puede verse el comportamiento y nivel de prioridades de todas las entradas. Notar que la entrada de carga en paralelo (L) es sincrónica, pero resulta prioritaria respecto al CE. Sólo

8 O sea, el contador alcanza la cuenta máxima.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 14 de 19

si CLR = 0 (reset asincrónico), L = 0 y CE = 1 el contador incrementa su contenido con la llegada de un flanco activo de reloj.

5.7 Contadores binarios bidireccionales con carga paralela, CE y clear asincrónico conectables en cascada.

CB2CLED, CB4CLED, CB8CLED y CB16CLED agregan a la funcionalidad descripta en los dispositivos anteriores la posibilidad de incrementar o decrementar la cuenta, incorporando una entrada UP, que en estado alto provoca una cuenta ascendente y en bajo una descendente. La funcionalidad y las prioridades entre entradas se muestran en la tabla de comportamiento de los dispositivos de la Figura 14.

5.8 Contadores binarios con CE y reset sincrónico, conectables en cascada.

CB2RE, CB4RE, CB8RE y CB16RE tienen la misma funcionalidad que los dispositivos CBzCE descriptos en 5.5, salvo que aquí el reset es sincrónico. Solo si R = 0 y CE = 1 el contador incrementa su contenido con la llegada de un flanco activo de reloj. Esto puede verificarse en la tabla de verdad de la figura 15. La conexión en cascada debe realizarse del modo ya descrito anteriormente.

Figura 14: Esquema de CB4CLEDy tabla de verdad de CBzCLED

Figura 15: Tabla de verdad de CBzRE

Figura 13: Tabla de verdad de CBzCLE.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 15 de 19

5.9 Registros de datos.

stintos tamaños que se utilizan para guardar datos en paralelo exclusivamente. Se trata de un conjunto de slip-flops D con reset asincrónico o sincrón

de datos con CE y CLR. cros en las familias de interés que disponen de

a de reloj y clear asincrónico. En los mismos, CLR e

acros en las familias de interés que disponen de o frente al CE y lleva el contenido del registro a

cero cu

5.10 Registros de desplazamiento con entrada serie, salida paralela, CE y clear

Son registros de di

ico.y CE.

5.9.1 Registros FD4CE, FD8CE y FD16CE, son ma

entrad s de CE y CLR, o sea, habilitacións prioritario frente CE y lleva la salida a cero. Si CLR está bajo, los cambios en el

contenido de los registros se producen en el flanco activo de reloj sólo cuando CE está en alto, produciendo la carga paralela de los datos presentes en la entrada.

5.9.2 Registros de datos con CE y R. FD4RE, FD8RE y FD16RE son m

CE y reset sincrónico. El R es prioritariando se presenta el flanco activo de reloj. Si R está bajo, y CE en alto, el flanco

activo del reloj carga en el registro el dato presente a la entrada. Si tanto R como CE están bajos no se producen cambios.

asincrónico.

CE y SR16CE son los distintos tamaños de estos dispositivos. El clear asincrónico es la entrada más prioritaria en todos ellos. Si CLR está bajo y CE alto, con el

SR4CE, SR8

flanco activo del reloj se introduce el dato presente en la entrada serie en el bit menos significativo del registro. Estos registros pueden disponerse en cascada si se conecta el bit más significativo de la primera etapa a la entrada serie de la etapa siguiente, además CLR, CE y C deben ir en paralelo para todas las etapas de la cascada. En la Figura 16 se muestra la funcionalidad y la relación de prioridad entre las entradas.

Figura 16: Esquema de SR4CEy tabla de verdad para SRzCE

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 16 de 19

5.11 Registros de desplazamiento con entrada serie/paralelo, salida paralela, CE y clear asincrónico.

SR4CLE, SR8CLE y SR16CLE son los tamaños disponibles para estos dispositivos, que agregan a la funcionalidad descripta en los bloques anteriores la posibilidad de realizar una carga en paralelo de datos. El clear asincrónico sigue siendo la entrada más prioritaria, y le sigue la entrada L de carga paralela que ingresa con la llegada del flanco activo del reloj los datos presentes. Los dispositivos también pueden conectarse en cascada para lograr registros de mayor capacidad. La funcionalidad y un esquema del bloque se presentan en la Figura 17.

Figura 17: Esquema de SR4CLE y tabla de verdad de SRzCLE.

5.12 Registros de desplazamiento bidireccionales con entrada serie, salida paralela, CE y clear asincrónico

Figura 18: Esquema y tabla de verdad de SR4CLED

SR4CLED, SR8CLED y SR16CLED son los tamaños disponibles de estos

dispositivos. Tienen entrada y salida serie, pero agregan la posibilidad de un desplazamiento serie bidireccional de los datos contenidos (dispone de dos entradas serie SLI y SRI, asociadas con LEFT). La tabla de verdad que se presenta en la Figura 18, muestra la funcionalidad y las relaciones de prioridad entre las entradas de los dispositivos.

Figura 16: Esquema de SR4CLEy tabla de verdad de SRzCLE

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 17 de 19

5.13 Registros de desplazamiento con entrada serie, salida paralela, CE y reset sincrónico.

SR4RE, SR8RE y SR16RE son los tamaños en los que están disponibles estos dispositivos. Su funcionalidad es similar a los bloques SRzCE descriptos en 5.10, con la diferencia de que ahora el reset es sincrónico. Pueden conectarse en cascada para conseguir registros de mayor tamaño en forma análoga a los SrzCE.

5.14 Registros de desplazamiento con entrada serie/paralelo, salida paralela, CE y reset sincrónico.

SR4RLE, SR8RLE y SR16RLE son los tamaños en los que están disponibles estos dispositivos. Su funcionalidad y las prioridades entre sus entradas son similares a las descriptas para los bloques del tipo SRzCLE en la sección 5.11, con la diferencia de que ahora se dispone de reset sincrónico. También pueden conectarse en cascada para conseguir registros de mayor capacidad.

5.15 Registros de desplazamiento bidereccionales con entrada serie, salida paralela, CE y reset sincrónico.

SR4RLED, SR8RLED y SR16RLED son los tamaños en los que estos dispositivos. Su funcionalidad y las prioridades entre sus entradas son similares a las descriptas para los bloques del tipo SRzCLED en la sección 5.12, con la diferencia de que ahora se dispone de reset sincrónico.

Nota: Si se desea utilizar un fasímetro para realizar el control de tiempos en los

diseños, deberá construirse en el ambiente de trabajo ya que este tipo de dispositivos no está disponible en las bibliotecas. Su definición puede lograrse a partir de un registro de desplazamiento, cargado con el valor inicial 0…01 (un uno en la fase cero, y cero en las demás). Una vez definido, el dispositivo puede encapsularse en la biblioteca de trabajo del proyecto y reutilizarse en otros diseños.

El control de tiempos, necesario en los trabajos de laboratorio, también puede resolverse con contadores. Queda para el alumno elegir la opción que prefiera.

5.16 Memorias RAM sincrónicas.

Estos dispositivos están disponibles en varios tamaños en las familias de interés, siendo la más usual en los prácticos la memoria RAM16X4S. Se aconseja recorrer la biblioteca para verificar las características de los diversos bloques pertenecientes a esta categoría.

Se trata de memorias de acceso aleatorio y escritura sincrónica. Por lo tanto disponen de una entrada de WE (Write Enable). Cuando WE está en estado alto, los datos en la entrada son escritos en la dirección especificada, cuando se presenta un flanco activo de reloj.

Estas memorias se inicializan a cero en todas sus palabras cuando se energiza el sistema, a no ser que se establezca lo contrario mediante la propiedad INIT. Si para el trabajo de laboratorio se necesita que tengan ciertos valores específicos cuando el sistema inicia su funcionamiento, se deberá proceder como se detalla más adelante en el punto 5.19.

En la figura 19 se muestra el esquema y la tabla de verdad para una RAM16X4S, como ejemplo del funcionamiento de todas las memorias de esta categoría.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 18 de 19

Figura 19: Esquema y tabla de verdad de la RAM16X4S

5.17 Memorias RAM de puerto doble.

Estos dispositivos están disponibles en distintos tamaños, de los cuales únicamente la memoria RAM16X1D, de 1 bit de longitud de palabra es una primitiva. Las bibliotecas ofrecen otros tamaños definidos como macros para las familias de interés, y nuevamente se aconseja recorrer la biblioteca para examinar los dispositivos existentes.

Estas memorias son memorias de acceso aleatorio, write sincrónico y puerto doble, lo que significa que agregan la capacidad de lectura y escritura simultánea en distintas direcciones. Esta característica las hace muy útiles y efectivas para ciertas aplicaciones dónde es necesario realizar ambas operaciones de la forma más eficiente posible9.

Para implementar su funcionamiento con éxito, los dispositivos cuentan con dos puertos de acceso: dirección para lectura (DPRAz:DPRA0), y dirección para escritura (Az:A0). La dirección de lectura selecciona los datos presentes en los pines de salida (DPOz:DPO0), y la dirección de escritura controla el destino de una transacción de

Figura 20: RAM16X4D

Figura 21: Tabla de verdad para la RAM16X4D

9 Recordar el problema de implementar una pila FIFO analizado en laboratorio.

Digiral II – Bibliotecas Unificadas Xilinx – R. Corti 2007 - Página 19 de 19

escritura válida. La escritura se realiza cuando la entrada WE está en alto y se presenta un flanco activo de clock (escritura sincrónica). Para la escritura sólo se tiene en cuenta la dirección presente en el puerto de escritura, la dirección del puerto de lectura no está involucrada en la transacción.

Respecto a la inicialización de estas memorias, valen las consideraciones hechas para las RAM sincrónicas. En la figura 21 se muestra la tabla de verdad para las RAM16X4D, que son las utilizadas en la práctica de laboratorio de la asignatura.

5.18 Memorias ROM.

Estos dispositivos sólo están disponibles en los tamaños de ROM16X1 y ROM32X1, como primitivas. Se trata de memorias de sólo lectura y es obligatorio asignarles un valor inicial mediante la propiedad INIT, de la misma forma que se ha comentado en los tipos de memoria anteriores. Si no se asigna valor alguno, ocurre un error en el ambiente de diseño. El funcionamiento de esta memoria es muy sencillo, ya que en forma asincrónica presenta en los pines de salida el dato almacenado en la dirección especificada. En la figura 22 se muestra un esquema de la ROM16X1.

Si para la realización de algún trabajo práctico se necesita una ROM con un tamaño de palabra mayor a un bit, deberá implementarse utilizando el ambiente de diseño. Para hacerlo se deberá definir un bloque de memoria personalizado interconectando primitivas de un bit. El nuevo dispositivo definido se puede encapsular y almacenar en la biblioteca del proyecto (biblioteca WORK), pudiendo ser reutilizado en otros diseños.

Figura 22: ROM16X1

5.19 Definición de la propiedad INIT en los bloques de memoria de biblioteca.

La propiedad INIT puede asignarse en las primitivas de biblioteca (memorias con tamaño de palabra de 1 bit). A dicha propiedad debe asignársele un valor en hexadecimal. Por ejemplo para una memoria de 16X4 sería:

INIT = (10A7)16 En la misma los dígitos hexadecimales se escriben en la primitiva desde el más significativo al menos, generando entonces una memoria 16X1 que contiene el bitstream: 0001 0000 1010 0111

Se debe recordar que si se utiliza una macro (las memorias RAM de longitud de palabra de 4 bits son macros), primero se deberá descomponer el bloque macro en sus primitivas utilizando la herramienta de descomposición jerárquica disponible en el editor de esquemáticos. Esta herramienta consiste en un botón con una flecha dirigida hacia debajo asociada a la etiqueta Push. La descomposición también se logra seleccionando la macro y eligiendo Push into Symbol con el botón derecho del ratón. Estas acciones abrirán una nueva hoja de esquemáticos con el nombre de la macro, donde se mostrarán los componentes y sus interconexiones. Luego haciendo doble clic sobre cada primitiva se abrirá una ventana de propiedades del objeto donde se agregará el valor deseado para la propiedad INIT. Dicha propiedad puede hacerse visible para mayor claridad.