Xilinx: Bibliotecas Unificadas

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

description

Xilinx Foundation Series Bibliotecas unificadas

Transcript of Xilinx: Bibliotecas Unificadas

  • Digital II

    Xilinx Foundation Series Bibliotecas unificadas

    Rosa Corti

    2007

    Departamento de Sistemas e Informtica

    Escuela de Electrnica

    Facultad de Ciencias Exactas, Ingeniera y

    Agrimensura

    Universidad Nacional de Rosario

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 2 de 19

    Contenido del apunte

    1 El concepto de Bibliotecas unificadas......................................4 2 Incorporacin de los dispositivos en el diseo .........................5 3 Categoras 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 Implementacin 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 asincrnico conectables

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

    asincrnico conectables en cascada..........................................................13 5.7 Contadores binarios bidireccionales con carga paralela, CE y

    clear asincrnico conectables en cascada. ...............................................13 5.8 Contadores binarios con CE y reset sincrnico, 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 - Pgina 3 de 19

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

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

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

    5.13 Registros de desplazamiento con entrada serie, salida paralela, CE y reset sincrnico..................................................................17

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

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

    5.16 Memorias RAM sincrnicas. ................................................17 5.17 Memorias RAM de puerto doble...........................................18 5.18 Memorias ROM. ....................................................................19 5.19 Definicin de la propiedad INIT en los bloques de memoria

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

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 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 estn compuestas por gran cantidad de elementos de diseo 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 caractersticas similares.

    Xilinx aborda una aproximacin unificada de sus bibliotecas, lo que significa que se pueden implementar diseos creados con cualquiera de ellas utilizando otra familia de dispositivos, siempre y cuando la biblioteca destino soporte los elementos incluidos. Por lo general esta situacin se presenta cuando escalamos hacia familias ms avanzadas,

    que es lo que normalmente ocurre. La compatibilidad hacia abajo, es ms complicada si se utilizan elementos de diseo novedosos, incorporados por las nuevas arquitecturas.

    Los elementos que existen en las bibliotecas de distintas familias no slo tienen la misma apariencia sino que funcionan de forma similar, pese a que su implementacin puede diferir de una a otra por motivos de eficiencia. En cada biblioteca los smbolos aparecen repetidos lo cual es necesario para la simulacin (especialmente a nivel placa), ya que las caractersticas de temporizacin 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 caractersticas como ser la funcionalidad, tamao y entradas disponibles. En la Figura 1 tomada de una publicacin 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 nmero de bits. En las puertas es comn que se indique el nmero

    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 publicacin. 2 Elementos compuestos por varias primitivas u otras macros que se encapsulan y almacenan en las

    bibliotecas. Son un ejemplo de diseo jerrquico.

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 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 Incorporacin de los dispositivos en el diseo

    Cuando se aborda un proyecto en el ambiente de diseo utilizando el flujo por esquemticos, 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 particin del sistema a disear, lograda con el mtodo constructivo.

    Estos elementos de biblioteca, son tambin tiles cuando se encara un diseo basado en lenguajes de descripcin de hardware (HDL). En este ltimo caso, se los instancia y conecta con sentencias del lenguaje. El flujo de diseo con HDL escapa a los alcances de la asignatura, pero constituye hoy en da una tendencia firme para encarar sistemas digitales de complejidad creciente.

    En Digital II, slo abordamos algunos pasos del flujo de diseo. Especficamente realizamos el ingreso del diseo y su simulacin 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 implementacin de los proyectos en dispositivos de lgica programable. La herramienta de sntesis incorporada (XST), reconoce los elementos de biblioteca que constituyen el circuito, y realiza la implementacin de una forma optimizada para el dispositivo FPGA seleccionado. El producto final del proceso de sntesis (mapeo, emplazamiento y ruteo) es un archivo bitstream de apellido .bit, que consiste en un conjunto de ceros y unos que codifican la configuracin que se le dar al integrado. Finalmente, este producto final es transferido al dispositivo FPGA, que alojar la totalidad del sistema desarrollado.

    3 Categoras funcionales

    Existen diversas funcionalidades disponibles en las bibliotecas de Xilinx. Las agruparemos por categoras, 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 diseo estn organizados alfabticamente 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 caractersticas ms relevantes de las categoras de dispositivos ms usuales en los prcticos planteados en la asignatura. Queda para el lector la inquietud de recorrer la biblioteca y explorar todos los elementos de diseo disponible.

    4 Dispositivos combinacionales.

    4.1 Compuertas.

    Respecto a la disponibilidad de compuertas lgicas hay de distinto tipo con las entradas negadas y sin negar y con distinta cantidad de entradas. Adems existen

    3 MSI: Sigla en ingls para Mediana Escala de Integracin.

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 6 de 19

    combinaciones de puertas como suma de productos. A continuacin se listan algunas de las disponibles, si se necesitan otras de distintas caractersticas se deben buscar en la biblioteca nombres anlogos 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 nmero de bits. Disponen de Carry In (CI), Carry Out (CO) y seal 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 nmeros binarios sin signo como con nmeros binarios en complemento a dos. La nica diferencia es la interpretacin de las palabras A y B que se ingresan, del resultado S, y de cmo se determina en ambas operaciones la situacin de overflow.

    Suma binaria sin signo: En esta operacin, ADD4 representa nmeros 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 situacin de carry), y la salida OFL se ignora.

    Suma en complemento a dos: En esta operacin ADD4 representa nmeros 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 situacin 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 nmero de bits. Disponen de Carry In (CI), ADD (en 1 indica suma

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 7 de 19

    en 0 resta), Carry Out (CO) y seal de Overflow (OFL). Estos dispositivos suman o restan (dependiendo de la seal 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 nmeros en complemento a dos:

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

    Cuando la seal 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 operacin se realiza sobre nmeros binarios sin signo o si se realiza sobre nmeros en complemento a 2. CO, OFL y CI estn activos en alto.

    Cuando la seal ADD est en cero, los dispositivos realizan la operacin A-B, entregando el resultado en S y generando las seales CO u OFL dependiendo de la

    interpretacin de los nmeros. Sin embargo aqu tanto CI como CO estn activos en cero, lo cual hace que deban tomarse precauciones al utilizar el dispositivo. Cuando se restan binarios sin signo, la seal CO debe ser interpretada como una seal de pedir prestado, si se restan nmeros en C2 esta seal se ignora. La seal OFL es activa siempre en alto.

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

    Overflow = ADD XNOR CO Si se trabaja con aritmtica 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 estn disponibles con y sin seal de enable (E). Cuando la seal E est en valor alto el dispositivo est activo y presenta una de las entradas en su salida dependiendo de la configuracin 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 - Pgina 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 nmeros binarios sin signo, son iguales o no y por lo tanto slo disponen de una salida EQ. Los comparadores de magnitud tienen dos salidas (LT y GT), que en estado alto determinan la relacin entre dos nmeros binarios sin signo. Si se desea comparar nmeros negativos representados en complementos con comparadores de magnitud, se deberan efectuar las correcciones correspondientes a las seales 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 versin Webpack que utilizamos, el procedimiento para indicar que una lnea o bus se conecta con seales externas al CI, consiste en agregar en el esquemtico I/O markers. Las caractersticas de estos marcadores, deben ser las mismas que las de la lnea o bus relacionada. Si la seal ingresa al CI (seal de slo lectura para el circuito, que la utiliza pero no la define), corresponde un marcador de tipo I. Si la seal egresa del CI (seal que define o escribe el circuito) corresponde un marcador de tipo O. Si el circuito define seales que egresarn del CI, pero adems las necesita para procesamiento interno (se realimentan al interior del sistema), corresponde un marcador de tipo I/O.

    Se presentan a continuacin los dispositivos de I/O ms usuales. Cabe destacar, que con la versin del ambiente que se utiliza en la asignatura, slo debern agregarse como elementos discretos en situaciones excepcionales. En general, basta con agregar el marcador de I/O correspondiente, ya que la herramienta de sntesis los reconoce, e incorpora ms adelante en el flujo de diseo los elementos adicionales necesarios.

    Figura 5: Comparador de identidad

    4.6.1 Buffers de entrada. IBUF, IBUF4, IBUF8, IBUF16 son buffers de entrada que aslan el circuito

    interno del dispositivo de las seales 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 prcticos 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 - Pgina 9 de 19

    4.6.2 Buffers de salida. Para adaptar las seales 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 conexin con las patillas del dispositivo configuradas

    como entradas. Por ellos ingresan las seales 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 conexin con las patillas del dispositivo configuradas como salidas.

    Desde ellos egresan seales 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 seales que se realimentan hacia el circuito implementado en el

    chip. Hay de distinta cantidad de bits (IOPAD, IOPAD4, IOPAD8, IOPAD16). Se conectarn 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 - Pgina 10 de 19

    5 Dispositivos secuenciales.

    5.1 Implementacin del Clock Enable (CE).

    La entrada de CE es una caracterstica comn de los dispositivos sincrnicos de las bibliotecas, por lo que es importante comprender la forma en que trabaja para abordar los diseos propuestos en la asignatura. Se incorpora para prevenir el uso de puertas con la finalidad de afectar la seal de reloj. Esta ltima es una prctica desaconsejable no slo por los retardos que introduce, sino tambin por la posibilidad de producir glitches que ocasionen un mal funcionamiento, y que suelen ser difciles de detectar. Cuando se necesita inhibir el funcionamiento del dispositivo en lugar de afecta la seal de reloj, se utiliza el CE (CE = 0).

    El Flip Flop tipo D es el bloque de construccin bsico 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 sincrnicas o asincrnicas. Se sugiere recorrer los elementos de biblioteca en el ambiente para verificarlo.

    Cuando se utilizan entradas de control sincrnicas y asincrnicas, la prioridad entre ellas es consistente a travs de todas las arquitecturas y elementos de diseo siendo en general el orden desde la prioridad ms alta a la ms baja como sigue:

    Clear asincrnico (CLR). Preset asincrnico (PRE). Set sincrnico (S). Reset sincrnico (R). Clock Enable (CE). Las entradas asincrnicas CLR y PRE, tienen en realidad prioridad por definicin

    sobre todas las entradas sincrnicas y de clock del dispositivo. Respecto del CE, se implementa en las bibliotecas utilizando dos mtodos

    diferentes, lo que afecta las prioridades entre CE y otras seales de control del dispositivo. Los dos mtodos se presentan en la Figura 6.

    Figura 6: Implementaciones de CE

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 11 de 19

    Mtodo 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 ms alto respecto a otras seales sincrnicas. Todos los FF con preset o clear asincrnico utilizan este mtodo.

    Mtodo 2: El CE se implementa usando las LUTs del CLB. Entonces la prioridad

    del CE es ms flexible. Todos los FF con set o reset sincrnico utilizan este mtodo.

    El mtodo utilizado en una macro particular queda indicado por la inclusin de clear asincrnico, preset asincrnico, set sincrnico o reset sincrnico, en la descripcin de la macro. Adems en cada una, y de acuerdo a cmo se hayan definido las conexiones internas, queda claramente definido un esquema de prioridades para manejar las seales de control del dispositivo. Este esquema queda plasmado en la convencin de nombres que se ha definido. Si quedan dudas, se debe consultar la documentacin asociada.

    5.2 Flip-Flops D.

    Es el tipo ms simple de flip-flop disponible como primitiva en la biblioteca de las familias de inters. 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 tensin 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. Tambin 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 tambin son primitivas en las familias Spartan2 y Spartan3,

    combinan una entrada de CE con entradas de seteo y/o reseteo asincrnico o sincrnico. Las entradas asincrnicas (CLR y PRE) pueden presentarse en conjunto o slo una de

    7 Bloque Lgico Configurable de la FPGA

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 12 de 19

    ellas. Lo mismo ocurre para las entradas sincrnicas 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 (asincrnico) y el R (sincrnico).

    Se recomienda recorrer los elementos de biblioteca del ambiente para

    familiarizarse con los dispositivos disponibles en esta categora.

    Figura 9: Tabla del Flip-Flop FDCE (clock enable y clear asincrnico)

    Figura 10: Tabla del Flip-Flop FDRE (reset sincrnico y clock enable)

    5.3 Flip-Flops de entrada.

    Estos flip-flops de distinta cantidad de lneas de entradas (IFD, IFD4, IFD8, IFD16) estn 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 funcin adems 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 simulacin, es conveniente incluirlos en el diseo a fin de que no se presenten anomalas al momento de verificar el comportamiento del circuito. En sntesis la sincronizacin de seales externas tambin es recomendable, por lo que su inclusin en el diseo no est en modo alguno limitada al logro de buenos resultados de simulacin.

    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 - Pgina 13 de 19

    5.4 Flip-flops JK.

    Estos Flip-Flops existen tambin con muchas variantes. Los dos tipos ms simples incluyen un clear asincrnico (FJKC) o un preset asincrnico FJKP). Los bloques de esta categora se implementan como macros en las familias de inters, y todos agregan a la tabla de verdad ya conocida otras entradas como se indica:

    FJKC: Clear asincrnico FJKCE: CE y Clear asincrnico (prioritario) FJKP: Preset asincrnico. FJKPE: CE y Preset asincrnico El Preset es prioritario. FJKRSE: CE, Reset y Set sincrnicos (R prioritario frente al S, y ambos

    prioritarios respecto al CE). FJKSRE: Mismas entradas que el anterior pero aqu el prioritario el Set sincrnico

    (notar la inversin de las letras en el nombre).

    Las entradas de seteo y reseteo (sincrnicas o asincrnicas) son prioritarias en todos los casos respecto del CE (si existe).

    5.5 Contadores binarios con CE y clear asincrnico conectables en cascada

    Se disponen de distinta cantidad de bits, son los dispositivos CB2CE, CB4CE, CB8CE y CB16CE, macros en las familias de inters. El clear asincrnico 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 estn 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 ms contadores en la cascada se repite el procedimiento. Se debe tener cuidado con la relacin del perodo 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 asincrnico conectables en cascada.

    Tambin 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 sincrnica, pero resulta prioritaria respecto al CE. Slo

    8 O sea, el contador alcanza la cuenta mxima.

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 14 de 19

    si CLR = 0 (reset asincrnico), 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 asincrnico 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 sincrnico, 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 sincrnico. 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 conexin 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 - Pgina 15 de 19

    5.9 Registros de datos.

    stintos tamaos que se utilizan para guardar datos en paralelo exclusivamente. Se trata de un conjunto de slip-flops D con reset asincrnico o sincrn

    de datos con CE y CLR. cros en las familias de inters que disponen de

    a de reloj y clear asincrnico. En los mismos, CLR e

    acros en las familias de inters 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, habilitacins 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 slo 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 sincrnico. 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 estn bajos no se producen cambios.

    asincrnico.

    CE y SR16CE son los distintos tamaos de estos dispositivos. El clear asincrnico es la entrada ms 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 ms significativo de la primera etapa a la entrada serie de la etapa siguiente, adems 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 relacin de prioridad entre las entradas.

    Figura 16: Esquema de SR4CEy tabla de verdad para SRzCE

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 16 de 19

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

    SR4CLE, SR8CLE y SR16CLE son los tamaos 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 asincrnico sigue siendo la entrada ms 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 tambin 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 asincrnico

    Figura 18: Esquema y tabla de verdad de SR4CLED

    SR4CLED, SR8CLED y SR16CLED son los tamaos 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 - Pgina 17 de 19

    5.13 Registros de desplazamiento con entrada serie, salida paralela, CE y reset sincrnico.

    SR4RE, SR8RE y SR16RE son los tamaos en los que estn disponibles estos dispositivos. Su funcionalidad es similar a los bloques SRzCE descriptos en 5.10, con la diferencia de que ahora el reset es sincrnico. Pueden conectarse en cascada para conseguir registros de mayor tamao en forma anloga a los SrzCE.

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

    SR4RLE, SR8RLE y SR16RLE son los tamaos en los que estn disponibles estos dispositivos. Su funcionalidad y las prioridades entre sus entradas son similares a las descriptas para los bloques del tipo SRzCLE en la seccin 5.11, con la diferencia de que ahora se dispone de reset sincrnico. Tambin pueden conectarse en cascada para conseguir registros de mayor capacidad.

    5.15 Registros de desplazamiento bidereccionales con entrada serie, salida paralela, CE y reset sincrnico.

    SR4RLED, SR8RLED y SR16RLED son los tamaos 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 seccin 5.12, con la diferencia de que ahora se dispone de reset sincrnico.

    Nota: Si se desea utilizar un fasmetro para realizar el control de tiempos en los

    diseos, deber construirse en el ambiente de trabajo ya que este tipo de dispositivos no est disponible en las bibliotecas. Su definicin puede lograrse a partir de un registro de desplazamiento, cargado con el valor inicial 001 (un uno en la fase cero, y cero en las dems). Una vez definido, el dispositivo puede encapsularse en la biblioteca de trabajo del proyecto y reutilizarse en otros diseos.

    El control de tiempos, necesario en los trabajos de laboratorio, tambin puede resolverse con contadores. Queda para el alumno elegir la opcin que prefiera.

    5.16 Memorias RAM sincrnicas.

    Estos dispositivos estn disponibles en varios tamaos en las familias de inters, siendo la ms usual en los prcticos la memoria RAM16X4S. Se aconseja recorrer la biblioteca para verificar las caractersticas de los diversos bloques pertenecientes a esta categora.

    Se trata de memorias de acceso aleatorio y escritura sincrnica. 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 direccin 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 especficos cuando el sistema inicia su funcionamiento, se deber proceder como se detalla ms 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 categora.

  • Digiral II Bibliotecas Unificadas Xilinx R. Corti 2007 - Pgina 18 de 19

    Figura 19: Esquema y tabla de verdad de la RAM16X4S

    5.17 Memorias RAM de puerto doble.

    Estos dispositivos estn disponibles en distintos tamaos, de los cuales nicamente la memoria RAM16X1D, de 1 bit de longitud de palabra es una primitiva. Las bibliotecas ofrecen otros tamaos definidos como macros para las familias de inters, y nuevamente se aconseja recorrer la biblioteca para examinar los dispositivos existentes.

    Estas memorias son memorias de acceso aleatorio, write sincrnico y puerto doble, lo que significa que agregan la capacidad de lectura y escritura simultnea en distintas direcciones. Esta caracterstica las hace muy tiles y efectivas para ciertas aplicaciones dnde es necesario realizar ambas operaciones de la forma ms eficiente posible9.

    Para implementar su funcionamiento con xito, los dispositivos cuentan con dos puertos de acceso: direccin para lectura (DPRAz:DPRA0), y direccin para escritura (Az:A0). La direccin de lectura selecciona los datos presentes en los pines de salida (DPOz:DPO0), y la direccin de escritura controla el destino de una transaccin 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 - Pgina 19 de 19

    escritura vlida. La escritura se realiza cuando la entrada WE est en alto y se presenta un flanco activo de clock (escritura sincrnica). Para la escritura slo se tiene en cuenta la direccin presente en el puerto de escritura, la direccin del puerto de lectura no est involucrada en la transaccin.

    Respecto a la inicializacin de estas memorias, valen las consideraciones hechas para las RAM sincrnicas. En la figura 21 se muestra la tabla de verdad para las RAM16X4D, que son las utilizadas en la prctica de laboratorio de la asignatura.

    5.18 Memorias ROM.

    Estos dispositivos slo estn disponibles en los tamaos de ROM16X1 y ROM32X1, como primitivas. Se trata de memorias de slo 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 diseo. El funcionamiento de esta memoria es muy sencillo, ya que en forma asincrnica presenta en los pines de salida el dato almacenado en la direccin especificada. En la figura 22 se muestra un esquema de la ROM16X1.

    Si para la realizacin de algn trabajo prctico se necesita una ROM con un tamao de palabra mayor a un bit, deber implementarse utilizando el ambiente de diseo. 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 diseos.

    Figura 22: ROM16X1

    5.19 Definicin de la propiedad INIT en los bloques de memoria de biblioteca.

    La propiedad INIT puede asignarse en las primitivas de biblioteca (memorias con tamao de palabra de 1 bit). A dicha propiedad debe asignrsele un valor en hexadecimal. Por ejemplo para una memoria de 16X4 sera:

    INIT = (10A7)16 En la misma los dgitos hexadecimales se escriben en la primitiva desde el ms 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 descomposicin jerrquica disponible en el editor de esquemticos. Esta herramienta consiste en un botn con una flecha dirigida hacia debajo asociada a la etiqueta Push. La descomposicin tambin se logra seleccionando la macro y eligiendo Push into Symbol con el botn derecho del ratn. Estas acciones abrirn una nueva hoja de esquemticos con el nombre de la macro, donde se mostrarn 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.

    El concepto de Bibliotecas unificadasIncorporacin de los dispositivos en el diseoCategoras funcionalesDispositivos combinacionales.Compuertas.Sumadores (ADD4, ADD8, ADD16).Sumadores/Restadores (ADDSU4, ADDSU8, ADDSU16).Multiplexores.Comparadores.Funciones de I/O.Buffers de entrada.Buffers de salida.Pads de entrada.Pads de salida.Pads bidireccionales.

    Dispositivos secuenciales.Implementacin del Clock Enable (CE).Flip-Flops D.Flip-Flops D con CLR.Flip-Flops D con CE y/o entradas de seteo y reseteo.

    Flip-Flops de entrada.Flip-flops JK.Contadores binarios con CE y clear asincrnico conectables eContadores binarios con carga paralela, CE y clear asincrniContadores binarios bidireccionales con carga paralela, CE yContadores binarios con CE y reset sincrnico, conectables eRegistros de datos.Registros de datos con CE y CLR.Registros de datos con CE y R.

    Registros de desplazamiento con entrada serie, salida paraleRegistros de desplazamiento con entrada serie/paralelo, saliRegistros de desplazamiento bidireccionales con entrada seriRegistros de desplazamiento con entrada serie, salida paraleRegistros de desplazamiento con entrada serie/paralelo, saliRegistros de desplazamiento bidereccionales con entrada seriMemorias RAM sincrnicas.Memorias RAM de puerto doble.Memorias ROM.Definicin de la propiedad INIT en los bloques de memoria de