PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

5
vasanza SISTEMAS DIGITALES I ACTIVIDAD: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL CAPÍTULO DEL CURSO: LENGUAJE DE DESCRIPCIÓN DE HARDWARE VHDL OBJETIVOS DE APRENDIZAJE: Aplicar conceptos relacionados a VHDL en los circuitos combinatoriales. Describir circuitos digitales combinatoriales en lenguaje VHDL. DURACIÓN: 120 minutos MATERIALES Y HERRAMIENTAS: - Ejercicios realizados en las sesiones de clase. - Quartus II. MARCO TEÓRICO: Estructura de un programa en VHDL Para escribir un archivo.vhd debemos tener en cuenta las siguientes consideraciones: 1. Primero debemos declarar las bibliotecas que se usarán en el programa. 1.1. Si queremos utilizar operadores aritméticos o de relación con el tipo de dato std_logic_vector, debemos agregar una de las siguientes librerías: Para operaciones con signo: Para operaciones sin signo: 2. Luego se define la en la entidad, donde detallamos las señales que entran o salen del sistema (modo de la señal) y el tipo de dato de cada una de ellas. En la entidad no nos interesa saber el funcionamiento del sistema, por ello se dice que es una descripción de una caja negra donde constan las entradas y salidas. 2.1. Nombre_entidad: recordar que este nombre no debe tener espacios ni ser igual a ninguna palabra reservada de VHDL. Además, el nombre del archivo.vhd deberá tener el mismo nombre que el de la entidad.

Transcript of PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

Page 1: PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

vasanza

SISTEMAS DIGITALES I

ACTIVIDAD: RESOLUCIÓN DE CIRCUITOS

COMBINATORIALES CON VHDL

CAPÍTULO DEL CURSO: LENGUAJE DE DESCRIPCIÓN DE HARDWARE VHDL

OBJETIVOS DE APRENDIZAJE:

• Aplicar conceptos relacionados a VHDL en los circuitos combinatoriales.

• Describir circuitos digitales combinatoriales en lenguaje VHDL.

DURACIÓN: 120 minutos

MATERIALES Y HERRAMIENTAS:

- Ejercicios realizados en las sesiones de clase.

- Quartus II.

MARCO TEÓRICO:

Estructura de un programa en VHDL

Para escribir un archivo.vhd debemos tener en cuenta las siguientes

consideraciones:

1. Primero debemos declarar las bibliotecas que se usarán en el programa.

1.1. Si queremos utilizar operadores aritméticos o de relación con el tipo de dato

std_logic_vector, debemos agregar una de las siguientes librerías:

Para operaciones con signo:

Para operaciones sin signo:

2. Luego se define la en la entidad, donde detallamos las señales que entran o salen

del sistema (modo de la señal) y el tipo de dato de cada una de ellas. En la entidad no nos interesa saber el funcionamiento del sistema, por ello se dice que es una descripción de una caja negra donde constan las entradas y salidas.

2.1. Nombre_entidad: recordar que este nombre no debe tener espacios ni ser igual

a ninguna palabra reservada de VHDL. Además, el nombre del archivo.vhd deberá tener el mismo nombre que el de la entidad.

Page 2: PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

vasanza

2.2. Nombre_señal: los nombres de las señales no deberán tener espacios ni ser igual a ninguna palabra reservada de VHDL. También, recordar que VHDL no hace distinción entre mayúsculas ni minúsculas.

2.3. Modo_señal:

Modo Descripción

In Señales que solo entran a la entidad

Out Señales que salen de la entidad

Inout Señales bidireccionales

Buffer Señales que salen de la entidad y se pueden usar como señales de retroalimentación

2.4. Tipo_señal:

Tipo Valores

Bit ‘0’ o ‘1’

Boolean True o False

Std_Logic Los más usados son: ‘0’, ‘1’, ‘-’ --don’t care y ‘z’ --High Impedance

Integer Enteros, aquí los 1 y 0 van sin ‘’.

Bit_Vector Cadenas de 0 y 1, que deberán ir en “”.

Std_Logic_Vector Cadena de valores permitidos en Std_Logic en “”.

3. Al final se describe la arquitectura.

3.1. Arquitectura descrita por flujo de datos o RTL.

Page 3: PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

vasanza

3.2. Tipos de operadores:

Operadores Tipos de datos

Lógicos And, or, xor, not, nand, nor y xnor

Bit, Boolean, Bit_vector, std_logic y std_logic_vector

Aritméticos +, -, *, /, **, abs. Integer, std_logic_vector (use signed.all or unsigned.all)

De relación =, /=, >, <, >=, <= Integer, Bit, Bit_Vector y std_logic_vector (use signed.all or unsigned.all)

Concatenación & Bit, Bit_Vector, std_logic y std_logic_vector.

3.3. Arquitectura descrita de forma estructural o lógica. Aquí usaremos declaración de componentes con la palabra reservada ‘component’ y una estructura similar a la de una entidad. Recordar que al usar la instanciación implícita las señales usadas en el ‘port map’ estarán en el mismo orden que en la declaración de los componentes.

DESCRIPCIÓN DEL TALLER (REPASO) 1. Dado el siguiente código estructural en VHDL, se pide:

a. Extraer la expresión booleana que define el comportamiento de las salidas X(0) y X(1).

b. Reescriba el Código VHDL dado, pero esta vez describa las salidas X(0) y X(1) con RTL.

Page 4: PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

vasanza

2. Dado el siguiente circuito que define el comportamiento de la salida F en función de las entradas A, B, C y D. Se pide:

a. Escribir el código VHDL que describa de forma estructural la salida F. Asumir que los archivos.vhd de las puertas AND, NOR y NOT están en la misma carpeta.

b. Reescriba el Código VHDL que describa la saluda F con RTL.

Page 5: PRÁCTICA: RESOLUCIÓN DE CIRCUITOS COMBINATORIALES CON VHDL

vasanza

Bibliografía: [1]. Fundamentos de Lógica Digital, Stephen Brown & Zvonco Vranesic, Segunda Edición, Mc.Graw Hill, 2009. [2]. Sistemas Digitales: Principios y Aplicaciones, Ronald Tocci, Octava Edición, Prentice Hall, 2003. [3]. Análisis y Diseño de Circuitos Lógicos Digitales, Víctor Nelson, Troy Nagle, Bill Carroll, David Irwin, Primera Edición, Prentice Hall, 2000. [4]. Digital Design with RTL Design, Verilog and VHDL, Frank Vahid, Second Edition, John Wiley and Sons, 2010.