pr actica i - páginas de...

21
Versi´ on preliminar Mayo de 2017. Oscar Alvarado Nava Laboratorio de Arquitectura de Computadoras, 17-Primavera Pr´ actica I Simulaci´ on de compuertas l´ogicas b´ asicas Objetivos Utilizar el compilador GDHL y el visualizador de ondas GTKWave, para la simulaci´ on fun- cional de las compuertas l´ogicas NOT, OR y AND. Describir la compuerta l´ogica NOT de una estrada y una salida a trav´ es del operador ogico del lenguaje VHDL. Describir un circuito de est´ ımulos para la prueba del circuito (Test Bench ). Compilar y enlazar los arhivos que describen el circuito y el circuito de est´ ımulos para la generaci´on de un archivo ejecutable. Ejecutar el proyecto y visualizar los resultados. Listados de palabras reservadas Palabra reservada Descripci´on entity Declara una entidad end Cierre de postulado is Inicio de descripci´ on port Descripci´ on de puertos in, out Direcci´ on de puertos bit Tipo de dato primitivo architecture Descripci´ on y componentes de comportamiento of Asociaci´on de entidad y comportamiento signal Modificador de tipo de dato begin Inicio de descripci´ on de comportamiento not Operadorl´ogico Tabla 1: Palabras reservadas del lenguaje VHDL. 1

Upload: nguyenlien

Post on 20-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

Practica I

Simulacion de compuertas logicas basicas

Objetivos

• Utilizar el compilador GDHL y el visualizador de ondas GTKWave, para la simulacion fun-cional de las compuertas logicas NOT, OR y AND.

• Describir la compuerta logica NOT de una estrada y una salida a traves del operadorlogico del lenguaje VHDL.

• Describir un circuito de estımulos para la prueba del circuito (Test Bench).

• Compilar y enlazar los arhivos que describen el circuito y el circuito de estımulos parala generacion de un archivo ejecutable.

• Ejecutar el proyecto y visualizar los resultados.

Listados de palabras reservadas

Palabra reservada Descripcionentity Declara una entidadend Cierre de postuladois Inicio de descripcionport Descripcion de puertosin, out Direccion de puertosbit Tipo de dato primitivoarchitecture Descripcion y componentes de comportamientoof Asociacion de entidad y comportamientosignal Modificador de tipo de datobegin Inicio de descripcion de comportamientonot Operador logico

Tabla 1: Palabras reservadas del lenguaje VHDL.

1

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1. Compuerta logica NOT

En la Figura 1 se muestra el equema de una compuerta logica NOT.

x f

Figura 1: Digrama esquematico de una compuerta NOT.

La compuerta logica NOT implementa la funcionalidad mostrada en la tabla de verdad 2.

x f

0 11 0

Tabla 2: Tabla de verdad de la compuerta NOT.

La funcionalidad de la compuerta NOT se puede verificar al asignarle valores a su entrada yobtieniendo los valores resultantes mostrados en su tabla de verdad. La Figura 2 es un diagramade tiempos donde se muestra como cambia la salida respecto al valor de la entrada.

10ns 20ns 30ns 40ns

x

50ns 60ns 70ns 80ns0ns

f

Figura 2: Diagrama de tiempos de una compuerta NOT.

2

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1.1. Descripcion de la compuerta logica

Entidad.Los lenguajes de descripcion de hardware o HDL1, implementan las funciones logicas basicas

a traves de operadores. Por medio de sentencias se pueden describir compuertas logicas. Paradescribir una compuerta es necesario crear y nombrar una entidad ası como asociarle una funcio-nalidad. La funcionalidad puede ser descrita con sentencias dentro de una arquitectura. Ademassera necesario seleccionar los tipos de datos, crear variables y en general seguir la sintaxis dellenguaje.

En la Figura 3 se muestra el esquema de un modulo, empaquetado o entidad para una compuertalagica NOT.

compnot1

x f

Figura 3: Esquema de la entidad de una compuerta logica NOT.

Para describir una entidad se inicia con la palabra reservada entity asignandole un identica-dor, en este caso compnot1, donde el numero al final indica el numero de entradas que tiene lacompuerta. La entidad cuenta con un puerto de entrada llamado x y un puerto de salida llamado f,los cuales deben de ser conjuntados en el postulado port. Las direcciones de los puertos se debende especificar con las palabras reservadas in en caso de entrada, out para salida y inout parabidireccional. Por convencion, el tipo de dato a utilizar sera el tipo primitivo al lenguaje VHDLbit, por lo cual los puertos deberan ser de este mismo tipo. La descripcion de la entidad terminacon las palabras reservadas end entity y el nombre de la entidad. Toda lınea que inicie con dobleguion medio sera tomado como un comentario. En el listado 1 se muestra la descripcion de laentidad.

1 --Oscar Alvarado Nava

2 --Entidad de una compuerta NOT de una entrada

3 entity compnot1 is

4 port(

5 x:in bit;

6 f:out bit

7 );

8 end entity;

Listado 1: Descripcion de la entidad de una comperta NOT.

1Por sus siglas en ingles Hardware Description Languaje.

3

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

Arquitectura.A una entidad se le puede asociar una o mas funcionalidades. La funcionalidad se puede describir

de manera estructural o de menera de comportamiento. Para describir la funcionalidad se utilizala palabra reservada architecture y se asocia a una entidad con la palabra of. La descripcionde componentes y senales (datos internos) que se utilizaran para el comportamiento, se enlistandespues de la palabra architecture. La instanciacion de los elementos y la conexion de los mismosse realiza despues de la palabra begin.

Se puede describir el comportamiento de una compuerta NOT por medio de una sentenciaconcurrente. Una sentencia es un conjunto de expresiones donde cada expresion esta compuesta deoperadores y operandos. Los operadores pueden ser unarios o binarios y siguen reglas de precedenciay asociatividad. Los operandos pueden ser senales, variables o puertos. Para asignar los resultadosde una sentencia, se utiliza el operador de asignacion <= para puertos y senales y el operador deasignacion := para variables.

En este caso, utilizaremos el operador logico not, el cual es un operador unario, sobre el puertode entrada y asignaremos el resultado en el puerto de salida por medio del operador <=. La fun-cionalidad de la compuerta NOT a traves de una sentencia, se muestra en la el Listado 2.

9 --Descripcion de la funcionalidad

10 architecture beh of compnot1 is

11 begin

1213 f <= not x; --sentencia

1415 end architecture;

Listado 2: Descripcion de la funcionalidad de una comperta NOT a traves de sentencias.

4

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1.2. Descripcion del ambiente de pruebas

Ambiente de pruebasA traves de las herramientas de diseno asistidos por computadoras o CAD2 se puede verificar

que el circuito disenado cumpla con las especificaciones de diseno. Dentro de las especificaciones dediseno destacan el correcto funcionamiento, tamano del circuito (numero de transistores requeridos)y el tiempo de respuesta del circuito (ruta mas larga de una senal). Para verificar el correctofuncionamiento del circuito, se realiza una simulacion funcional, en el cual se consideran compuertasideales con tiempo de respuesta cero y la propagacion de las senales tambies es cero.

Para la prueba o verificacion del funcionamiento, los circuitos deben ser insertados en unambiente donde se les pueda conectar senales que los estimulen o los hagan funcionar ası comoelementos para la visualizacion y verificacion de las senales resultantes. A este ambiente de pruebasse le conoce como test bench. Fisicamente el test bench puede estar compuesto de interruptores,leds luminosos, otros circuitos generadores de senales, ası como de dispositivos de medicion.

Por medio del mismo HDL es posible describir un ambiente de pruebas o test bench para loscircuitos que disenamos. A traves de la descripcion, podemos asignar a los puertos de entrada denuestros circuitos senales de prueba y visualizar los resultados a traves de senales recibidas de lospuertos de salida. Tanto el circuto disenado como el circuito test bench pueden conjuntarse pararealizar una simulacion funcional. En la Figura 14 se puede observar que el circuito tb compnot1,el cual es una entidad sin puertos y ademas tiene como componente el circuito compnot1.

tb_compnot1

ledboton

u0

compnot1

x f

Figura 4: Esquema del circuito de pruebas para la compuerta logica NOT.

El circuito compnot1 tiene conectado a su puerto de entrada x la senal boton y a su puer-to de salida f la senal led, las cuales representan la senal de estımulo y la senal de resultadorespectivamente. En el listado 3 se muestra la descripcion del circuito de pruebas tb compnot1.

2Acronimo en ingles de Computer-Aided Design

5

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1 --Oscar Alvarado Nava

2 --Descripcion del banco de pruebas (test bench) para compuerta NOT

34 entity tb_compnot1 is

5 --entidad si puertos

6 end entity tb_compnot1;

78 architecture beh of compnot1 is

9 --componente

10 component compnot1 is

11 port(

12 x:in bit;

13 f:out bit;

14 );

15 end component compnot1;

1617 --senales para estimulos

18 signal boton:bit:=’0’;

19 signal led:bit;

2021 begin

22 --instancia de una compuerta NOT

23 u0:compnot1

24 port map(

25 x => boton ,

26 f => led

27 );

2829 process --estimulo para x

30 begin

31 wait for 10 ns;

32 boton <= ’1’;

33 wait for 10 ns;

34 boton <= ’0’;

35 end process;

3637 end architecture beh;

Listado 3: Descripcion del circuito de pruebas para la compuerta NOT.

Se puede observar que para agregar como un componente el circuito compnot1, se utiliza lapalabra reservada component. Tambien podemo ver en la lınea 18 que la senal boton ha sidoinicializada a cero con el operador :=. En VHDL para asignar valores binarios deben de estar entreapostrofos: ’0’ o ’1’.

Proceso.Un proceso es una manera formal de ejecutar una conjunto de sentencias de manera secuencial.

Tiene un formato muy estructurado, aun ası representa el comportamiento de una pequena seccionde un diseno.

Un proceso se especifica con la palabra reservada process. Opcionalmente se le puede asignarun nombre, este debe ir antes de process seguido de dos puntos. El fin del proceso se indica conend process y luego puede repetirse el nombre del proceso. El cuerpo del proceso esta formadopor una lısta de sentencias que debe iniciar con la palabra reservada begin, la lista termina con elfin del proceso. La declaracion de variables o constantes se debe hacer antes de la palabra begin.

6

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

Puesto que VHDL es para representar sistemas, la terminacion de un proceso se debe analizara detalle. Un sistema no realiza sus funciones solo una vez y termina; mas bien debe repetir susactividades en un lazo infinito. Por eso, un proceso asegura que terminada la ejecucion de la ultimasentencia, inmediatamente iniciara nuevamente con la primera, podemos considerar que un procesonunca termina.

Los dispositivos electronicos operan en un lazo infinito; despues de su activacion ejecutan unalista de tareas para despues regresar a esperar una condicion de repeticion. En otras palabras, losdispositivos suspenden su operacion cuando completan sus tareas y las reanudan cuando se dannuevamente las condiciones.

Esta suspencion temporal en VHDL se puede realizar con la sentencia wait. La sentencia wait

sirve para suspender un proceso una vez que una tarea sea completada y reanudarlo cuando lacondicion de espera sea alcanzada.

1.3. Directorio de trabajo y edicion.

Seguimos las lıneas de comando del cuadro siguiente. Con el comando mkdir creamos un di-rectorio llamado compnot1 (lınea 1) e ingresamos al mismo por medio del comando cd (lınea 3),notese como cambia el prompt al cambiar de directorio.

1 oskr@kro :~$ mkdir compnot1

23 oskr@kro :~$ cd compnot1

45 oskr@kro :~/ compnot1$ gedit compnot1.vhdl

67 oskr@kro :~/ compnot1$ gedit tb_compnot1.vhdl

Editamos los archivos compnot1.vhdl y tb compnot1.vhdl utilizando algun editor de textosin marcas, como gedit, como se muestra en la lınea 5 y 7 del cuadro anterior.

7

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1.4. Compilacion y enlazado.

Para compilar y enlazar los codigos, seguimos las lıneas de comando que se muestran en elsiguiente cuadro. Listamos el directorio que debe contener los archivos con el comando ls. Compi-lamos los codigos uno a uno (lıneas 4 y 9) con el comando y modificador ghdl -a y los enlazamoscon ghdl -e (lınea 14).

1 oskr@kro :~/ compnot1$ ls

2 compnot1.vhdl tb_compnot1.vhdl

34 oskr@kro :~/ compnot1$ ghdl -a compnot1.vhdl

56 oskr@kro :~/ compnot1$ ls

7 compnot1.o compnot1.vhdl tb_compnot1.vhdl work -obj93.cf

89 oskr@kro :~/ compnot1$ ghdl -a tb_compnot1.vhdl

1011 oskr@kro :~/ compnot1$ ls

12 compnot1.o compnot1.vhdl tb_compnot1.o tb_compnot1.vhdl work -obj93.cf

1314 oskr@kro :~/ compnot1$ ghdl -e tb_compnot1

1516 oskr@kro :~/ compnot1$ ls

17 compnot1.o e~tb_compnot1.o tb_compnot1.o work -obj93.cf

18 compnot1.vhdl tb_compnot1 tb_compnot1.vhdl

1.5. Ejecucion y visualizacion

Al ejecutar el archivo, se debe indicar el tiempo de simulacion y el archivo donde se almacenaranlos resultados de la simulacion. El tiempo de simulacion se indica con el modificador --stop-time=,en la figura 2 se puede observar que al menos se necesitaran 80 nano segundos. El formato deresultados se indica con --vcd=, el nombre del archivo de resultados sea el mismo que el quecontiene el banco de pruebas pero con extension .vcd. En la lınea 1 del siguiente cuadro se muestrala ejecucion con los parametros comentados.

1 oskr@kro :~/ compnot1$ ./ tb_compnot1 --stop -time =100ns --vcd=tb_compnot1.vcd

2 ./ tb_compnot1:info: simulation stopped by --stop -time

34 oskr@kro :~/ compnot1$ ls

5 compnot1.o e~tb_compnot1.o tb_compnot1.o tb_compnot1.vhdl

6 compnot1.vhdl tb_compnot1 tb_compnot1.vcd work -obj93.cf

78 oskr@kro :~/ compnot1$ gtkwave tb_compnot1.vcd

En la lınea 8 del cuadro anterior se muestra como se invoca el comando gtkwave pasando comoparametro el archivo tb compnot1.vcd que contiene los resultados de la simulacion.

8

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

Una vez iniciada la aplicacion grafica, se agregan las senal de entrada boton y la senal de salidaled con el boton de Append y se cambia la escala a nano segundos. El resultado se muestra en laFigura 5.

Figura 5: Visualizacion de los resultados de la simulacion funcional.

9

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

2. Compuerta logica AND

En la Figura 6 se muestra el equema de una compuerta logica AND de dos entradas.

x

y f

Figura 6: Digrama esquematico de una compuerta AND de dos entradas.

La compuerta logica AND implementa la funcionalidad mostrada en la tabla de verdad 3.

x y f

0 0 00 1 01 0 01 1 1

Tabla 3: Tabla de verdad de la compuerta AND.

La funcionalidad de la compuerta AND se puede verificar al asignarle valores a sus entradas yobtieniendo los valores resultantes mostrados en su tabla de verdad. La Figura 7 es un diagramade tiempos donde se muestra como cambia la salida respecto al valor de las entradas.

10ns 20ns 30ns 40ns

y

f

50ns 60ns 70ns 80ns0ns

x

Figura 7: Diagrama de tiempos de una comperta AND.

10

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

2.1. Descripcion de la compuerta logica

En la Figura 8 se muestra la entidad para una compuerta lagica AND de dos entradas.

compand2

xf

y

Figura 8: Esquema de la entidad de una compuerta logica AND.

En el listado 4 se muestra la descripcion de la entidad y la arquitectura de una compuertaAND de dos entradas.

1 --Oscar Alvarado Nava

2 --Entidad de una compuerta AND de dos entradas

3 entity compand2 is

4 port(

5 x:in bit;

6 y:in bit;

7 f:out bit

89 );

10 end entity;

1112 --Descripcion de la funcionalidad

13 architecture beh of compand2 is

14 begin

1516 f <= x and y; --sentencia

1718 end architecture;

Listado 4: Descripcion de la entidad de una comperta AND.

11

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

2.2. Descripcion del ambiente de pruebas

En la Figura 14 se puede observar que el circuito tb compand2, el cual es una entidad sinpuertos y ademas tiene como componente el circuito compand2.

tb_compand2

ledfbotonx

u0

compand2

xf

ybotony

Figura 9: Esquema del circuito de pruebas para la compuerta logica AND.

El circuito compand2 tiene conectado a sus puertos de entrada x y y las senales botonx ybotonyrespectivamente; a su puerto de salida f la senal ledf, las cuales representan las senales deestımulo y la senal de resultado. En el listado 5 se muestra la descripcion del circuito de pruebastb compand2.

12

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1 --Oscar Alvarado Nava

2 --Descripcion del banco de pruebas (test bench) para compuerta AND

34 entity tb_compand2 is

5 --entidad si puertos

6 end entity tb_compand2;

78 architecture beh of tb_compand2 is

9 --componente

10 component compand2 is

11 port(

12 x:in bit;

13 y:in bit;

14 f:out bit

15 );

16 end component compand2;

1718 --senales para estimulos

19 signal botonx:bit:=’0’;

20 signal botony:bit:=’0’;

21 signal ledf:bit;

2223 begin

24 --instancia de una compuerta AND

25 u0:compand2

26 port map(

27 x => botonx ,

28 y => botony ,

29 f => ledf

30 );

3132 process --estimulo para x

33 begin

34 wait for 40 ns;

35 botonx <= ’1’;

36 wait for 40 ns;

37 botonx <= ’0’;

38 end process;

3940 process --estimulo para y

41 begin

42 wait for 20 ns;

43 botony <= ’1’;

44 wait for 20 ns;

45 botony <= ’0’;

46 end process;

474849 end architecture beh;

Listado 5: Descripcion del circuito de pruebas para la compuerta AND.

Se puede observar que para agregar como un componente el circuito compand2, se utiliza lapalabra reservada component.

13

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

2.3. Directorio de trabajo y edicion.

Seguimos las lıneas de comando del cuadro siguiente. Con el comando mkdir creamos un di-rectorio llamado compnot1 (lınea 1) e ingresamos al mismo por medio del comando cd (lınea 3),notese como cambia el prompt al cambiar de directorio.

1 oskr@kro :~$ mkdir compand2

23 oskr@kro :~$ cd compand2

45 oskr@kro :~/ compand2$ gedit compand2.vhdl

67 oskr@kro :~/ compand2$ gedit tb_compand2.vhdl

Editamos los archivos compnot1.vhdl y tb compand2.vhdl utilizando algun editor de textosin marcas, como gedit, como se muestra en la lınea 5 y 7 del cuadro anterior.

2.4. Compilacion y enlazado.

Para compilar y enlazar los codigos, seguimos las lıneas de comando que se muestran en elsiguiente cuadro. Listamos el directorio que debe contener los archivos con el comando ls. Compi-lamos los codigos uno a uno (lıneas 4 y 9) con el comando y modificador ghdl -a y los enlazamoscon ghdl -e (lınea 14).

1 oskr@kro :~/ compand2$ ls

2 compand2.vhdl tb_compand2.vhdl

34 oskr@kro :~/ compand2$ ghdl -a compand2.vhdl

56 oskr@kro :~/ compand2$ ls

7 compand2.o compand2.vhdl tb_compand2.vhdl work -obj93.cf

89 oskr@kro :~/ compand2$ ghdl -a tb_compand2.vhdl

1011 oskr@kro :~/ compand2$ ls

12 compand2.o compand2.vhdl tb_compand2.o tb_compand2.vhdl work -obj93.cf

1314 oskr@kro :~/ compand2$ ghdl -e tb_compand2

1516 oskr@kro :~/ compand2$ ls

17 compand2.o e~tb_compand2.o tb_compand2.o work -obj93.cf

18 compand2.vhdl tb_compand2 tb_compand2.vhdl

14

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

2.5. Ejecucion y visualizacion

Al ejecutar el archivo, se debe indicar el tiempo de simulacion y el archivo donde se almacenaranlos resultados de la simulacion. El tiempo de simulacion se indica con el modificador --stop-time=,en la figura 7 se puede observar que al menos se necesitaran 80 nano segundos. El formato deresultados se indica con --vcd=, el nombre del archivo de resultados sea el mismo que el quecontiene el banco de pruebas pero con extension .vcd. En la lınea 1 del siguiente cuadro se muestrala ejecucion con los parametros comentados.

1 oskr@kro :~/ compand2$ ./ tb_compand2 --stop -time =100ns --vcd=tb_compand2.vcd

2 ./ tb_compand2:info: simulation stopped by --stop -time

34 oskr@kro :~/ compand2$ ls

5 compand2.o e~tb_compand2.o tb_compand2.o tb_compand2.vhdl

6 compand2.vhdl tb_compand2 tb_compand2.vcd work -obj93.cf

78 oskr@kro :~/ compand2$ gtkwave tb_compand2.vcd

En la lınea 8 del cuadro anterior se muestra como se invoca el comando gtkwave pasando comoparametro el archivo tb compand2.vcd que contiene los resultados de la simulacion.

Una vez iniciada la aplicacion grafica, se agregan las senal de entrada botonx, botony y lasenal de salida ledf con el boton de Append y se cambia la escala a nano segundos. El resultadose muestra en la Figura 10.

Figura 10: Visualizacion de los resultados de la simulacion funcional.

15

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

3. Compuerta logica OR

En la Figura 11 se muestra el equema de una compuerta logica OR de dos entradas.

x

y f

Figura 11: Digrama esquematico de una compuerta OR de dos entradas.

La compuerta logica OR implementa la funcionalidad mostrada en la tabla de verdad 4.

x y f

0 0 00 1 11 0 11 1 1

Tabla 4: Tabla de verdad de la compuerta OR.

La funcionalidad de la compuerta OR se puede verificar al asignarle valores a sus entradas yobtieniendo los valores resultantes mostrados en su tabla de verdad. La Figura 12 es un diagramade tiempos donde se muestra como cambia la salida respecto al valor de las entradas.

10ns 20ns 30ns 40ns

y

f

50ns 60ns 70ns 80ns0ns

x

Figura 12: Diagrama de tiempos de una comperta OR.

16

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

3.1. Descripcion de la compuerta logica

En la Figura 13 se muestra la entidad para una compuerta lagica OR de dos entradas.

compor2

xf

y

Figura 13: Esquema de la entidad de una compuerta logica OR.

En el listado 6 se muestra la descripcion de la entidad y la arquitectura de una compuerta ORde dos entradas.

1 --Oscar Alvarado Nava

2 --Entidad de una compuerta OR de dos entradas

3 entity compor2 is

4 port(

5 x:in bit;

6 y:in bit;

7 f:out bit

89 );

10 end entity;

1112 --Descripcion de la funcionalidad

13 architecture beh of compor2 is

14 begin

1516 f <= x or y; --sentencia

1718 end architecture;

Listado 6: Descripcion de la entidad de una comperta OR.

17

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

3.2. Descripcion del ambiente de pruebas

En la Figura 14 se puede observar que el circuito tb compor2, el cual es una entidad sin puertosy ademas tiene como componente el circuito compor2.

tb_compor2

ledfbotonx

u0

compor2

xf

ybotony

Figura 14: Esquema del circuito de pruebas para la compuerta logica OR.

El circuito compor2 tiene conectado a sus puertos de entrada x y y las senales botonx ybotonyrespectivamente; a su puerto de salida f la senal ledf, las cuales representan las senales de estımuloy la senal de resultado. En el listado 7 se muestra la descripcion del circuito de pruebas tb compor2.

18

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

1 --Oscar Alvarado Nava

2 --Descripcion del banco de pruebas (test bench) para compuerta OR

34 entity tb_compor2 is

5 --entidad si puertos

6 end entity tb_compor2;

78 architecture beh of tb_compor2 is

9 --componente

10 component compor2 is

11 port(

12 x:in bit;

13 y:in bit;

14 f:out bit

15 );

16 end component compor2;

1718 --senales para estimulos

19 signal botonx:bit:=’0’;

20 signal botony:bit:=’0’;

21 signal ledf:bit;

2223 begin

24 --instancia de una compuerta AND

25 u0:compor2

26 port map(

27 x => botonx ,

28 y => botony ,

29 f => ledf

30 );

3132 process --estimulo para x

33 begin

34 wait for 40 ns;

35 botonx <= ’1’;

36 wait for 40 ns;

37 botonx <= ’0’;

38 end process;

3940 process --estimulo para y

41 begin

42 wait for 20 ns;

43 botony <= ’1’;

44 wait for 20 ns;

45 botony <= ’0’;

46 end process;

474849 end architecture beh;

Listado 7: Descripcion del circuito de pruebas para la compuerta OR.

Se puede observar que para agregar como un componente el circuito compor2, se utiliza lapalabra reservada component.

19

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

3.3. Directorio de trabajo y edicion.

Seguimos las lıneas de comando del cuadro siguiente. Con el comando mkdir creamos un di-rectorio llamado compnot1 (lınea 1) e ingresamos al mismo por medio del comando cd (lınea 3),notese como cambia el prompt al cambiar de directorio.

1 oskr@kro :~$ mkdir compor2

23 oskr@kro :~$ cd compor2

45 oskr@kro :~/ compor2$ gedit compor2.vhdl

67 oskr@kro :~/ compor2$ gedit tb_compor2.vhdl

Editamos los archivos compnot1.vhdl y tb compor2.vhdl utilizando algun editor de texto sinmarcas, como gedit, como se muestra en la lınea 5 y 7 del cuadro anterior.

3.4. Compilacion y enlazado.

Para compilar y enlazar los codigos, seguimos las lıneas de comando que se muestran en elsiguiente cuadro. Listamos el directorio que debe contener los archivos con el comando ls. Compi-lamos los codigos uno a uno (lıneas 4 y 9) con el comando y modificador ghdl -a y los enlazamoscon ghdl -e (lınea 14).

1 oskr@kro :~/ compor2$ ls

2 compor2.vhdl tb_compor2.vhdl

34 oskr@kro :~/ compor2$ ghdl -a compor2.vhdl

56 oskr@kro :~/ compor2$ ls

7 compor2.o compor2.vhdl tb_compor2.vhdl work -obj93.cf

89 oskr@kro :~/ compor2$ ghdl -a tb_compor2.vhdl

1011 oskr@kro :~/ compor2$ ls

12 compor2.o compor2.vhdl tb_compor2.o tb_compor2.vhdl work -obj93.cf

1314 oskr@kro :~/ compor2$ ghdl -e tb_compor2

1516 oskr@kro :~/ compor2$ ls

17 compor2.o e~tb_compor2.o tb_compor2.o work -obj93.cf

18 compor2.vhdl tb_compor2 tb_compor2.vhdl

20

Versio

npr

elim

inar

Mayo de 2017. Oscar Alvarado NavaLaboratorio de Arquitectura de Computadoras, 17-Primavera

3.5. Ejecucion y visualizacion

Al ejecutar el archivo, se debe indicar el tiempo de simulacion y el archivo donde se almacenaranlos resultados de la simulacion. El tiempo de simulacion se indica con el modificador --stop-time=,en la figura 12 se puede observar que al menos se necesitaran 80 nano segundos. El formato deresultados se indica con --vcd=, el nombre del archivo de resultados sea el mismo que el quecontiene el banco de pruebas pero con extension .vcd. En la lınea 1 del siguiente cuadro se muestrala ejecucion con los parametros comentados.

1 oskr@kro :~/ compor2$ ./ tb_compor2 --stop -time =100ns --vcd=tb_compor2.vcd

2 ./ tb_compor2:info: simulation stopped by --stop -time

34 oskr@kro :~/ compor2$ ls

5 compor2.o e~tb_compor2.o tb_compor2.o tb_compor2.vhdl

6 compor2.vhdl tb_compor2 tb_compor2.vcd work -obj93.cf

78 oskr@kro :~/ compor2$ gtkwave tb_compor2.vcd

En la lınea 8 del cuadro anterior se muestra como se invoca el comando gtkwave pasando comoparametro el archivo tb compor2.vcd que contiene los resultados de la simulacion.

Una vez iniciada la aplicacion grafica, se agregan las senal de entrada botonx, botony y lasenal de salida ledf con el boton de Append y se cambia la escala a nano segundos. El resultadose muestra en la Figura 15.

Figura 15: Visualizacion de los resultados de la simulacion funcional.

21