apuntes vhdl

Upload: resaka2004

Post on 10-Feb-2018

244 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/22/2019 Apuntes VHDL

    1/20

    APUNTES DE VHDL

    1. OBJETIVOS.

    Estos Apuntes pretenden ser una gua para comenzar a describir modelos decircuitos en lenguaje VHDL. No se trata de exponer en profundidad todas las

    posibilidades del lenguaje sino de presentar, de una manera sencilla, sus fundamentoscon el objetivo de que el alumno novato en la materia pueda hacer sus primeros

    programas de una manera rpida. Tradicionalmente se ha utilizado esta herramienta enasignaturas o laboratorios de Arquitectura de Computadores y, en este contexto, ellenguaje VHDL, que es solamente un medio, no debe convertirse en el fin. Con esto noqueremos decir que ste lenguaje de descripcin de hardwareno tenga inters por smismo. Es cada vez ms utilizado en la industria y el empeo por completar suconocimiento en profundidad es una tarea a la que animamos a cualquiera de nuestros

    alumnos de ingeniera ya que, sin duda, ser un estupendo remate a su formacinprofesional.

    El mtodo utilizado aqu no consiste en presentar la sintaxis de forma sistemticapara eso ya estn otros libros sino en ensear a travs de ejemplos siguiendo latcnica empleada en algunas universidades norteamericanas y bautizada all como teachby example. En definitiva se trata de conducir al estudiante a travs de ejemplosilustrativos que bajo simples modificaciones se pueden adaptar a varios casos diferentes.EstosApuntesson, en realidad, un conjunto de patrones que el alumno debe adaptar alestudio de los diferentes supuestos de la Arquitectura de Computadores, el verdaderoobjetivo.

    2. EL LENGUAJE DE DESCRIPCINHARDWAREVHDL:HISTORIA.

    El lenguaje VHDL naci para dar respuesta a numerosos problemas planteadosen el desarrollo y documentacin de hardwaredigital. La documentacin requerida paradescribir un sistema electrnico puede ocupar miles de pginas y suele ser muy costosoreemplazar la informacin contenida cuando la tecnologa o las especificacionescambian. Un lenguaje de descripcin adecuado resuelve el problema ya que la"documentacin" es ejecutable.

    VHDL se ha convertido en un estndar, lo cual ya es una ventaja, que ademsrene otras caractersticas que lo hacen particularmente atrayente. Es un lenguajeindependiente de la tecnologa, no emparejado a un determinado simulador y norequiere una metodologa precisa de diseo. VHDL permite implementar nuevastecnologas en diseos existentes.

    Las siglas VHDL corresponden a VHSIC (Very High Speed Integrated Circuits)Hardware Description Language. El primer borrador vio la luz en agosto de 1985diseado por Intermetrics, IBMy Texas Instrumentse impulsado por el Departamentode Defensa de los Estados Unidos. En diciembre de 1987 fue aprobado como estndar

    del IEEE y posteriormente, en 1993, fue revisado y registrado como norma IEEE Std1076-1993.

  • 7/22/2019 Apuntes VHDL

    2/20

    Rafael Rico

    2

    VHDL es un lenguaje de semntica orientada a la simulacin y por ello suprincipal dominio de aplicacin es el modelado de dispositivos hardware paracomprobar su correcto funcionamiento. De todos modos tiene otras reas de aplicacintales como: sntesis automtica, verificacin formal, modelado de rendimiento,diagnosis de fallos y documentacin.

    3. MODOS DE DESCRIPCIN DE CIRCUITOS LGICOS.

    El lenguaje de descripcin de hardwareVHDL cuenta con diferentes modos dellevar a cabo la descripcin. Normalmente su aprendizaje se comienza desde la

    perspectiva del diseador tradicional de hardware, utilizando las construcciones dellenguaje que permiten una descripcin estructural desde las puertas lgicas hacia arriba.Este enfoque resalta la correspondencia existente entre la realidad y el lenguaje perooculta la verdadera potencia del modelo temporal soportado por el lenguaje. La

    descripcin comportamental y la ejecucin concurrente de procesos manifiestan laverdadera potencia del VHDL.

    Seguidamente vamos a caracterizar cada uno de los modos de descripcinbasndonos en un ejemplo. Sea el circuito lgico de la figura siguiente:

    e1

    e2

    s1

    sal

    e3

    e4

    s2

    Figura 1. Circuito lgico.

    Podemos describirlo indicando la funcin que realiza, es decir, especificando sucomportamiento:

    sal = '1' si (e1 = e2 = '1') o si (e3 = e4 = '1'); [1]

    Podemos describirlo tambin especificando los componentes ms bsicos que loforman y como se conectan entre si, es decir, podemos dar su estructura:

    AND (e1, e2, s1);AND (e3, e4, s2);OR (s1, s2, sal);

    [2]

    Finalmente, podemos proporcionar la relacin entre unas seales y otras, esdecir, indicar el flujo de seales:

    sal = s1 OR s2;s1 = e1 AND e2;

    s2 = e3 AND e4;

    [3]

  • 7/22/2019 Apuntes VHDL

    3/20

    Apuntes de VHDL

    3

    El lenguaje de descripcin hardware VHDL permite estos tres modos dedescripcin:

    comportamental (ecuacin lgica 1) estructural (ecuacin lgica 2) flujo de datos o RTL (ecuacin lgica 3)

    En el modelado comportamental lo importante es la funcin que relaciona lasalida con la entrada. El lenguaje VHDL permite escribir funciones complejas sinrecurrir a su implantacin fsica con lo que se revela como una herramienta de granrendimiento ya que proporciona una potencia de diseo muy atractiva a un coste muy

    bajo.

    (e)entradas salidas

    Figura 2. Esquema del modelado comportamental.

    En el modelado estructural se especifican los bloques que componen uncircuito y sus interconexiones. Cada bloque integrante debe contar con su descripcin

    previa de manera que se construye una jerarqua de descripciones donde las inferioresdan lugar a superiores ms complejas y as sucesivamente.

    entradas salidas

    Figura 3. Esquema del modelado estructural.

    En el modelado de flujo de datos o RTL(Register Transfer Logic) se declara lasucesin temporal con la que evolucionan las diferentes seales del modelo descrito.

    entradas salidas

    Figura 4. Esquema del modelado RTL.

    Cada uno de los modos de descripcin lleva asociada una sintxis determinadaque lo caracteriza. Podemos modelar un circuito con cualquiera de ellos.

  • 7/22/2019 Apuntes VHDL

    4/20

    Rafael Rico

    4

    4. ENTIDAD Y ARQUITECTURA DE UN MODELO.

    El circuito del ejemplo anterior puede ser visto como una caja negra que serelaciona con el exterior mediante un conjunto se seales, unas de entrada y otras desalida. En la figura siguiente se ha sealado el bloque mediante una linea punteada que

    encierra los componentes.

    s1

    sal

    e1

    e2

    e3

    e4

    s2

    Figura 5. Conjunto del circuito lgico y su relacin con el exterior.

    El bloque se conoce en VHDL como ENTIDADy se declara en primer lugar. UnaENTIDAD indica las seales que entran al circuito y las que salen, es decir, declara larelacin del circuito con el mundo exterior.

    Figura 6. Entidad correspondiente al ejemplo anterior.

    A cada ENTIDAD le corresponde al menos una descripcin (comportamental,estructural o RTL) aunque puede tener mltiples que se especifica en suARQUITECTURA.

    La sintaxis especfica se presenta ms adelante pero a continuacin vamos a verun ejemplo de descripcin comportamental.

    Cada fichero fuente (modo texto) debe contener una declaracin de entidad y, almenos, una arquitectura. Si modelamos ms arquitecturas todas ellas pueden residir enel mismo fichero fuente. En el caso de utilizar como compilador-simulador el V-System,esos ficheros deben tener extensin .VHD.

    e4

    e1

    e2

    sal

    e3ENTIDAD

  • 7/22/2019 Apuntes VHDL

    5/20

    Apuntes de VHDL

    5

    5. EJEMPLOS DE DESCRIPCIN COMPORTAMENTAL VHDL.

    Para ilustrar este tipo de modelado se ofrecen algunos ejemplos sencillos decircuitos. Se empieza con una puerta AND de dos entradas sin retardo y se vanintroduciendo elementos nuevos del lenguaje que completan la descripcin del circuito

    o la llevan a cabo de diferentes modos.

    La descripcin comportamental es la nica disponible al ms bajo nivel demodelado de circuitos digitales (puertas lgicas) ya que no es posible fundamentarla en

    bloques ms bsicos que ya seran los transistores.

    Puerta AND de dos entradas sin retardo:

    ENTITY and2 ISPORT (e1, e2: IN BIT; sal: OUT BIT);

    END and2;

    ARCHITECTURE comportamiento OF and2 ISBEGIN

    PROCESS (e1, e2)BEGIN

    sal

  • 7/22/2019 Apuntes VHDL

    6/20

    Rafael Rico

    6

    Puerta AND de dos entradas con retardo:

    ENTITY and2 ISPORT (e1, e2: IN BIT; sal: OUT BIT);

    END and2;

    ARCHITECTURE comportamiento OF and2 ISBEGIN

    PROCESS (e1, e2)BEGIN

    sal

  • 7/22/2019 Apuntes VHDL

    7/20

    Apuntes de VHDL

    7

    Finalmente, podemos imaginar otra descripcin del circuito basada en sentenciascondicionales pero donde se evala una variable interna al proceso. Hemos de declararlaantes de iniciar el proceso. Tambin es importante notar como la lista de seales a lasque es sensible el proceso (aquellas que lo despiertan) no se da despus de la ordenPROCESSsino con una orden WAIT ONdentro del propio proceso.

    Esta nueva ARQUITECTURA forma parte del mismo fichero AND2.VHD y sedenomina comportamiento2. Se ha aprovechado para modelar un comportamiento msreal an. En muchas tecnologas los retardos dependen del valor que tomen las entradas.En este caso se observa como se ha tenido en cuenta esa eventualidad a la hora deasignar diferentes retardos para el tiempo de subida y para el tiempo de bajada.

    ARCHITECTURE comportamiento2 OF and2 ISBEGIN

    PROCESS--declaro una variable temporal de tipo bit--para usar dentro del procesoVARIABLE temporal: BIT;BEGIN

    temporal:= e1 AND e2;IF temporal = '1' THEN sal

  • 7/22/2019 Apuntes VHDL

    8/20

    Rafael Rico

    8

    La figura siguiente ilustra el hecho de que el lenguaje VHDL nos permite asociara cada entidad una coleccin de arquirtecturas. Esta coleccin puede contener unavariedad de codificaciones con la misma funcin de transferencia, como sucede en dichafigura. Sin embargo, tambin podran ser modificaciones al comportamiento en funcin

    de tipos de implantacin, tecnologa, encapsulados, respuesta trmica, etc. Inclusopodramos pensar en asociar a una entidad arquitecturas de comportamientosabsolutamente contradictorios. En este sentido, no es infrecuente el error de asociar a lamisma entidad de 2 entradas y una salida el comportamiento de dos puertas lgicasdiferentes. Solamente el programador detectar el fallo ya que los compiladores-simuladores no pueden hacerlo.

    Figura 10. Esquema ilustrativo de cmo VHDL permite asociar a una entidad unacoleccin de arquitecturas. En el ejemplo se ha usado la puertaNAND.

    Una pincelada sobre sintaxis del lenguaje. La arquitectura de un modelo es unconjunto de sentencias concurrentes de entre las cuales la ms importante es el proceso.A su vez, el proceso encierra un conjunto de sentencias secuenciales.

    ARCHITECTURE compor tamient o_1 OF nand2 IS

    BEGIN

    PROCESS (e1, e2)

    BEGINsal

  • 7/22/2019 Apuntes VHDL

    9/20

    Apuntes de VHDL

    9

    6. ELEMENTOS BSICOS DE SINTAXIS VHDL.

    De lo visto hasta el momento se desprende que toda descripcin hardwaremediante VHDL consta de la declaracin de una ENTIDAD y de, al menos, unaARQUITECTURAasociada. La sintaxis bsica de estos elementos es la siguiente:

    ENTITY identificador IS--esto es un comentario[GENERIC (nombre: TIPO := valor);][PORT (seal1,seal2,...:IN TIPO; seal3, seal4,...:OUT TIPO);]

    END identificador;

    ARCHITECTURE nombre OF identificador IS--parte declarativa de la arquitecturaBEGIN

    --sentencias concurrentesEND nombre;

    Sintxis 1. Declaracin de entidad y arquirtectura.

    La declaracin de entidad se realiza mediante la palabra reservada ENTITYseguida de una etiqueta identificadora. Dentro de la entidad se declaran las seales queentran y salen usando la palabra reservada PORT. Tambin se declaran los genricos oconstantes as como sus valores usando la palabra reservada GENERIC.

    Las seales pueden ser de varios tipos, unos definidos en la propia normalizacindel lenguaje (BIT, BITVECTOR, etc.) y otros definidos por el programador. Cada tipo llevaasociado un modo de entre tres posibles: IN, OUTe INOUT. Los listados de seales de una

    entidad se agrupan por tipos y modos y se separan por comas (,).

    La declaracin de la arquitectura utiliza la palabra ARCHITECTUREseguida de unidentificador de la misma y del identificador de la entidad a la que se asocia y con la quedebe ser consistente en tipos y nombres de seales. Inmediatamente detrs deARCHITECTURE y antes de la palabra BEGIN se encuentra la parte declarativa de laarquitecturaque sirve para declarar variables y seales locales a la arquitectura.

    Despus de BEGIN tenemos las sentencias concurrentes del modelo. Laexistencia de sentencias concurrentes ha sido heredada del lenguaje ADA. Cadasentencia concurrente se ejecuta de manera simultnea en tiempo de simulacin con el

    resto de forma que todas parten del mismo instante de simulacin.

    Como se puede ver ms arriba el interior de la ARQUITECTURAest constituidopor un conjunto de sentencias concurrentes. Hasta el momento solo hemos visto una deellas que es el PROCESO.

    Un proceso marca los lmites del dominio secuencial. Es decir, dentro delproceso el funcionamiento es secuencial mientras que lo que sucede dentro de laarquitectura es concurrente. Cada sentencia secuencial (dentro del proceso) se evalasegn su orden y hace avanzar el tiempo de simulacin de acuerdo a los retardos

    asociados. Cada sentencia secuencial parte del origen de tiempos que marca el final dela sentencia anterior.

  • 7/22/2019 Apuntes VHDL

    10/20

    Rafael Rico

    10

    ARCHITECTURE nombre OF identificador ISBEGIN

    PROCESS [(lista de sensibilizacin)][--declararacin de variablesVARIABLE nombre_variable: TIPO [:= valor_inicial];

    --declaracin de constantesCONSTANT nombre_constante: TIPO [:= valor inicial];]BEGIN

    sentencias secuencialesEND PROCESS;

    END nombre;

    Sintxis 2. El proceso como conjunto de sentencias secuenciales.

    El proceso utiliza la palabra PROCESS. Entre sta y la palabra BEGINtenemos laparte declarativa del proceso. Es el lugar donde colocar las declaraciones de variables oseales locales al proceso. Depus de BEGIN colocamos la serie de sentencias

    secuenciales.

    Un proceso slo se evala si cambia alguna de las seales de su lista desensibilizacin. Es lgico: si las seales de la lista no cambian no hay nada que calcular,las seales no tienen valores nuevos. La lista de sensibilizacin se da entre parntesisdespus de la palabra PROCESS. Si no se da lista de seales el proceso no se ejecutanunca. Existe una manera alternativa de dar la lista: usando una sentencia con WAIT ON.Ver el ejemplo del modelo 5.

    Las sentencias secuenciales ms importantes pueden agruparse bajo dos

    categoras: sentencias de declaracin y asignacin de variable sentencias de control de flujo

    En los ejemplos de modelos propuestos hasta el momento se puede estudiarcmo se utilizan y cul es su sintaxis.

  • 7/22/2019 Apuntes VHDL

    11/20

    Apuntes de VHDL

    11

    7. EJEMPLOS DE ARQUITECTURAS CON VARIOS PROCESOSCONCURRENTES.

    Siguiendo con el modelo de descripcin comportamental vamos a poner algunosejemplos ilustrativos de la ejecucin concurrente de la mano de otro circuito: una puertaAND de cuatro entradas. La entidad responder a:

    zENTIDAD

    b

    a

    d

    c

    ENTITY and4 ISGENERIC (retardo: TIME := 2 ns);PORT (a, b, c, d:IN BIT; z:OUT BIT);

    END and4;

    Figura 11. Entidad de 4 entradasy 1 salida.

    Modelo 6. Declaracin de la entidad.

    Nos podemos imaginar su arquitectura de varios modos. En la figura siguientetenemos dos de ellos:

    z

    a

    b

    c

    d

    a

    bz

    c

    d

    s1s2

    Figura 12. Posibles implantaciones de la puerta AND de 4 entradas.

    La ARQUITECTURAde la izquierda se puede describir mediante un solo PROCESOmientras que la de la derecha se puede hacer mediente tres procesos concurrentes uno

    por cada puerta. Se dan ambas descripciones pertenecientes al fichero fuente AND4.VHD.

    ARCHITECTURE comportamiento1 OF and4 ISBEGIN

    PROCESS (a, b, c, d)BEGIN

    z

  • 7/22/2019 Apuntes VHDL

    12/20

    Rafael Rico

    12

    Si modelamos el circuito basado en tres puertas con tres procesos nos queda elprograma siguiente.

    ARCHITECTURE comportamiento2 OF and4 IS--declaracin de sealesSIGNAL s1, s2: BIT;BEGIN

    --proceso correspondiente a la puerta 1PROCESS (a, b)BEGIN

    s1

  • 7/22/2019 Apuntes VHDL

    13/20

    Apuntes de VHDL

    13

    8. MODELO TEMPORAL EN VHDL.

    A continuacin se da una tabla con la lista de seales y sus valores en el tiempo.Se dan los tiempos fsicos en ns y los de simulacin . La tabla corresponde a lomostrado en la figura anterior.

    ns a b c d s1 s2 z0 +0 0 0 0 0 0 0 00 +1 1 0 0 0 0 0 0

    10 +0 1 1 0 0 0 0 012 +0 1 1 0 0 1 0 020 +0 1 1 1 0 1 0 022 +0 1 1 1 0 1 1 030 +0 1 1 1 1 1 1 032 +0 1 1 1 1 1 1 140 +0 0 1 1 1 1 1 1

    42 +0 0 1 1 1 0 1 144 +0 0 1 1 1 0 0 146 +0 0 1 1 1 0 0 050 +0 0 0 1 1 0 0 0

    Tabla 1. Tiempos fsicos y de simulacin asociados al cronograma previo.

    Obsrvese como se da un solo caso en el que tengo + 1. Al comenzar se haforzado la seal aal valor '1' con lo que en tiempo fsico 0 ha debido pasar de su valor

    por defecto '0' a '1', es decir, en un tiempo de simulacin . En el resto de los casosdebido a los retardos introducidos el tiempo de simulacin avanza con el tiempo fsico.

    El tiempo fsico avanza gracias a los retardos incluidos en las sentencias deasignacin de seal. El tiempo de simulacin avanza en (+ 0, + 1, + 2, , + n).Cada corresponde a la evaluacin de un proceso pero no hace avanzar el tiempo fsicosi no hay retardos. Todo lo que sucede en + n es concurrente.

    Antes de seguir haremos una definicin de SEAL. Una seal es un array depares valor-tiempo. Es decir, una seal almacena la secuencia de valores que toma uncable y el instante de tiempo en el que se produce cada cambio.

    driver de seal

    valores proyectadosvalor actual

    proceso

    destinofuente

    proceso

    t0 t1 t3t2

    v0 v1 v2 v3

    seal

  • 7/22/2019 Apuntes VHDL

    14/20

    Rafael Rico

    14

    Qu sucedera si la arquitectura se hubiera modelado sin retardos? El modeloque se ajusta a este caso se expone seguidamente:

    ARCHITECTURE comportamiento2 OF and4 IS--declaracin de sealesSIGNAL s1, s2: BIT;BEGIN

    --proceso correspondiente a la puerta 1PROCESS (a, b)BEGIN

    s1

  • 7/22/2019 Apuntes VHDL

    15/20

    Apuntes de VHDL

    15

    9. DESCRIPCIN ESTRUCTURAL VHDL.

    En una descripcin estructural se declaran los bloques componentes del circuitoy se realizan las interconexiones. Los componentes del dispositivo habrn sido descritosen algun otro diseo VHDL que deber estar previamente compilado.

    Puerta AND de cuatro entradas:

    El modelo estructural de la puerta estudiada anteriormente sera:

    ARCHITECTURE estructural1 OF and4 IS--declaracin de componentes

    COMPONENT and2PORT (e1, e2: IN BIT; sal: OUT BIT);

    END COMPONENT;--declaracin de seales

    SIGNAL s1, s2: BIT;

    --indicamos donde se encuentra la arquitectura de los componentesFOR ALL: and2 USE ENTITY WORK.and2(comportamiento);

    --realizamos las conexionesBEGIN

    puerta1: and2 PORT MAP (a,b,s1);puerta2: and2 PORT MAP (s1,c,s2);puerta3: and2 PORT MAP (s2,d,z);

    END estructural1;

    Modelo 10. Puerta AND de 4 entradas bajo descripcin estrctural.

    En la parte declarativa de la arquitectura se da cuenta de los componentes

    constituyentes con la clusula COMPONENT. La sintaxis es similar a la de la entidadsiendo necesario unicamente incluir las seales que entran y salen. Seguidamente sedeclaran los cables que realizaran las conexiones, es decir, las seales intermedias.Como son internas no llevan modo: no son ni IN ni OUT. Se usa la palabra reservadaSIGNAL. Finalmente, puede ser conveniente determinar la arquitectura que se va autilizar de todas las compiladas disponibles para cada bloque componente. Esto se hacemediante una sentencia del tipo:

    FOR etiquetas_componentes|ALL|OTHERS: identificador_entidad USE ENTITYWORK.identificador_entidad (identificador_arquitectura);

    Despus del BEGIN encontramos las instancias (copias) de los bloquescomponentes. Cada uno cuenta con una etiqueta identificativa. La clusula PORT MAPdeclara las conexiones. Si PORTfuera una declaracin local, PORTMAPsera una formade declaracin global. En realidad, cada instanciacin de un componente puede ser vistacomo una llamada a su proceso y, por tanto, a una sentencia concurrente como sucedaen el modelado comportamental. Si la instancia es tambin una descripcin estructural,llamar a los procesos correspondientes de un nivel jerrquico inferior y assucesivamente hasta encontrar algn modelo comportamental puro.

    La lista de conexiones del PORT MAPdebe realizarse en el orden en el que lasseales se declararon en la entidad si se hace implcitamente, como en el ejemplo. Si se

    hace explcitamente no es necesario.

  • 7/22/2019 Apuntes VHDL

    16/20

    Rafael Rico

    16

    Se puede observar en la simulacin del modelo previo que los retardos de lasalida son asimtricos, es decir, el retardo de salida depende de qu seal de entradahaya variado. Hay que cambiar el circuito para que guarde simetra. Modificar el modelode acuerdo al siguiente esquema es muy sencillo. Requiere solamente realizar otroconexionado.

    a

    bz

    c

    d

    s1

    s2

    Figura 15. Cambio en el conexionado para conseguir un funcionamiento adecuado.

    ARCHITECTURE estructural2 OF and4 IS--declaracin de componentes

    COMPONENT and2PORT (e1, e2: IN BIT; sal: OUT BIT);

    END COMPONENT;--declaracin de seales

    SIGNAL s1, s2: BIT;--indicamos donde se encuentra la arquitectura de los componentes

    FOR ALL: and2 USE ENTITY WORK.and2(comportamiento);--realizamos las conexionesBEGIN

    puerta1: and2 PORT MAP (a,b,s1);puerta2: and2 PORT MAP (c,d,s2);puerta3: and2 PORT MAP (s1,s2,z);

    END estructural2;

    Modelo 11. Descripcin del circuito propuesto.

    10.TEST-BENCH.

    El test-bench es un tipo de descripcin a caballo entre la estructural y lacomportamental. Se utiliza para comprobar el correcto funcionamiento de los modelosmediante un programa independiente de la plataforma de compilacin-simulacin.

    Un test-benches una caja sin seales de conexin exterior. Es decir, una entidad

    sin puertos. La arquitectura cuenta con una instancia del modelo bajo test y un procesoque le inyecta seales. Las seales de entrada adoptarn los valores que se requiera en elinstante de tiempo preciso para comprobar el correcto funcionamiento del modelo.Cuando se simula un test-benchse obtiene un cronograma de respuesta a las seales deentrada que previamente programamos en el proceso.

    Figura 16. Esquema de test-bench.

    ProcesoEntidad

    bajo test

  • 7/22/2019 Apuntes VHDL

    17/20

    Apuntes de VHDL

    17

    El modelo siguiente propone un ejemplo de test-bench para la puerta AND decuatro entradas utilizada anteriormente:

    --este es el test-bench de una AND de 4 entradasENTITY run_and4 ISEND run_and4;

    ARCHITECTURE test OF run_and4 IS--declaracin del componente a estudiar

    COMPONENT and4PORT (a, b, c, d: IN BIT; z: OUT BIT);

    END COMPONENT;--especificacin de la configuracin del componente

    FOR componente: and4 USE ENTITY WORK.and4(estructural2);--declaracin de seales de interconexin

    SIGNAL a, b, c, d: BIT:= '0';SIGNAL z: BIT:='0';

    --declaracin de constanteCONSTANT retardo: TIME:=4 ns;

    --comienza la descripcin de los procesosBEGIN--primer proceso: instanciacin del componente a estudiar

    componente: and4 PORT MAP (a, b, c, d, z);--segundo proceso: estimulo de las seales de entrada

    PROCESSVARIABLE vector: BIT_VECTOR(0 TO 3) := "0000";VARIABLE temporal: INTEGER := 0;BEGIN

    FOR i IN 0 TO 15 LOOP--convierto el entero i a su valor binario de 4 bitstemporal := i;FOR k IN 0 TO 3 LOOP

    IF (temporal MOD 2) = 0 THEN vector(k) := '0';

    ELSE vector(k) := '1';END IF;temporal := temporal/2;

    END LOOP;a

  • 7/22/2019 Apuntes VHDL

    18/20

    Rafael Rico

    18

    Figura 17. Cronograma de ejecucin del test-benchejemplo.

    Se puede modificar el proceso de asignacin de valores a las seales declarandouna funcin que realice la transformacin de un entero a un nmero binario. Quedaratal como sigue:

    ARCHITECTURE test2 OF run_and4 IS--declaracin del componente a estudiar

    COMPONENT and4PORT (a, b, c, d: IN BIT; z: OUT BIT);

    END COMPONENT;

    --especificacin de la configuracin del componenteFOR componente: and4 USE ENTITY WORK.and4(estructural2);

    --declaracin de seales de interconexinSIGNAL a, b, c, d: BIT:= '0';SIGNAL z: BIT:='0';

    --declaracin de constanteCONSTANT retardo: TIME:=4 ns;

    --comienza la descripcin de los procesosBEGIN--primer proceso: instanciacin del componente a estudiar

    componente: and4 PORT MAP (a, b, c, d, z);--segundo proceso: estimulo de las seales de entrada

    PROCESSVARIABLE vector: BIT_VECTOR(0 TO 3) := "0000";

    --funcin que convierte un entero a su valor binario de 4 bitsFUNCTION entero_binario (valor_entero : INTEGER) RETURN BIT_VECTOR IS

    VARIABLE binario: BIT_VECTOR(0 TO 3) := "0000";VARIABLE temporal: INTEGER := 0;BEGIN

    temporal := valor_entero;FOR k IN 0 TO 3 LOOP

    IF (temporal MOD 2) = 0 THEN binario(k) := '0';ELSE binario(k) := '1';END IF;temporal := temporal/2;

    END LOOP;RETURN binario;

    END entero_binario;

    --comienza el proceso

  • 7/22/2019 Apuntes VHDL

    19/20

    Apuntes de VHDL

    19

    BEGINFOR i IN 0 TO 15 LOOP

    vector := entero_binario(i);a

  • 7/22/2019 Apuntes VHDL

    20/20

    Rafael Rico

    11.REFERENCIAS.

    [1] IEEE Standard VHDL Language Reference Manual. Published by the Institute ofElectrical and Electronics Engineers, 1994.

    [2]IEEE Standard VHDL Language Reference Manual IEEE Std 1076-1987. Publicadopor IEEE. 1989.

    [3] Lluis Ters et al. VHDL: Lenguaje estndar de diseo electrnico.Mc Graw Hill,1997.

    [4] Rafael Rico y Salvador Marcos, Simulacin de Arquitecturas de Computadores.Servicio de Publicaciones UAH, 1998.

    [5] Roger Lipsett, Carl Schaefer and Cary Ussery, VHDL: Hardware Description andDesign.Kluwer Academic Publishers, 1989.

    [6] David Coelho. The VHDL Handbook.Kluwer Academic Publishers. 1989.

    [7] Zainalabedin Navabi. VHDL: Analysis and Modeling of Digital Systems. Mc GrawHill. 1992.

    [8] Peter J. Ashenden. The VHDL Cookbook. University of Adelaide, South Australia;FTP desde ftp.cs.adelaide.edu.au (129.127.8.8) pub/VHDL-Cookbook.

    [9] V-System/Windows users manual. Model Technology, noviembre 1994.