hdl programacion.pdf

19
Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Transcript of hdl programacion.pdf

Page 1: hdl programacion.pdf

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

LENGUAJES DE DESCRIPCIÓN DE HARDWARE

Page 2: hdl programacion.pdf

METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS

• Descripción verbal

• Tablas de verdad

• Diagrama esquemático

• Expresiones del álgebra booleana

• Diagrama de tiempos

• Lenguajes de descripción de hardware (HDL)

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 3: hdl programacion.pdf

Ejemplo

• Representar un circuito digital que capaz de controlar un indicador de advertencia del cinturón de seguridad un automóvil

Descripción verbal

Expresión booleana

encendidoeruuptorenganchadouroncpresenteconductoraadvertenciluz _int_int__

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 4: hdl programacion.pdf

Ejemplo

Diagrama Esquemático

Diagrama de tiempos

Tabla de verdad

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 5: hdl programacion.pdf

Lenguajes de descripción de hardware - HDL

• Hardware Description Language

• Permite – Describir circuitos digitales complejos mediante

lenguaje basado en texto

– Diseñar e implementar circuitos digitales complejos

• Un HDL estandarizado por el IEEE es el VHDL– VHSIC (Very High Speed Integrated Circuit )

Description Language.

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 6: hdl programacion.pdf

Concurrente Vs Secuencial

Lenguaje de descripción de hardware Lenguajes de computadoras

Lenguaje para programar un dispositivo Lenguaje para programar un dispositivo

Hardware Software

Instrucciones ejecutadas en forma concurrente (todas al mismo tiempo)

Instrucciones ejecutadas en forma secuencial

La velocidad en la ejecución del programa depende sólo de la rapidez del circuito digital y de los retardos de propagación de las señales de salidas que responden a las señales de entrada

La velocidad en la ejecución del programa depende de la velocidad de la computadora

EJEMPLO: Parada en boxes de autos de carrera

Un cjto de mecánicos haciendo en paralelo todas las tareas

Un solo mecánico haciendo todas las tareas en forma secuencial. El tiempo en boxes depende de la rapidez de la persona

CONCLUSION: Los lenguajes HDL se implementan en forma similar a los lenguajes de computadoras (BASIC, C, JAVA) pero son de comportamientos muy diferentes.

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 7: hdl programacion.pdf

Formato del HDL

• Formato de archivos HDL– Documentación

• Comentarios que no generan hardware

– Definición de bibliotecas• Definición de tipos de datos• Permite diseños jerárquicos

– Definición del componente. • Definición de E/S

– Descripción lógica del componente Descripción funcional

Documentación

Definición de bibliotecas

Definición de E/S

Descripción Funcional

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 8: hdl programacion.pdf

VHDL

Elementos esenciales en VHDLLibrerías:Modo -> IN, OUT, INOUT, BUFFERTipo -> BIT, BIT_VECTOR, STD_LOGIC, STD_LOGIC_VECTOR,

INTEGER, CHARACTER

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Librería

Definición Componente:Entidad

Descripción funcional: Arquitectura

Page 9: hdl programacion.pdf

Esquema de la arquitectura VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

Parte declarativa:Señales intermediasComponentesTipo

Cuerpo de la arquitectura:OperadoresDeclaraciones concurrentesDeclaraciones secuenciales

Page 10: hdl programacion.pdf

Operadores VHDL

Diseño de Sistemas Embebidos en FPGA – Curso de PosgradoFacultad de Ciencias Exactas y Tecnología – UNT.

lógicosAnd S1 <= A AND B AND C;OR S1 <= A OR B OR C;Xor S1 <= A XOR B XOR C;NAND S1 <= (A nand B) nand C;NOR S1 <= (A NOR B) NOR C;not S1 <= NOT A;

aritméticas+ --> suma- --> resta* --> multiplicación/ --> división** --> potenciaciónabs --> valor absoluto

relacionales= --> igual/= --> distinto< --> menor<= --> menor o igual> --> mayor>= --> mayor o igual

Page 11: hdl programacion.pdf

VHDL. Señales intermedias

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 12: hdl programacion.pdf

Software de desarrollo: Software de referencia: MAX+PLUS II de AlteraDescarga: https://www.altera.com/download/legacy/maxplus2/dnl-student.jspLicencia: http://www.altera.com/download/licensing/lic-choose.html

Permite:• Describir un sistema digital mediante:

– HDL: VHDL, AHDL, Verilog– Diagrama esquemático– Formas de ondas

• Compilar• Verificar• Programar

DISEÑO JERARQUICO

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 13: hdl programacion.pdf

Representación de datos en HDL

• Designación de sistemas numéricos en HDL

• Arreglos de bits/vectores de bits

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 14: hdl programacion.pdf

Bibliotecas (Librerías)en VHDL

• “Libraries”

• Elementos Fundamentales del VHDL– Normalizadas

• Tipos de datos predefinidos

– Definidas por el usuario

• Elementos definidos por el diseñador

• Se usan para diseño jerárquico

– Sintaxis

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 15: hdl programacion.pdf

Tipos de datos en VHDL .Biblioteca IEEESTD_LOGIC :Tipo predefinido en el estándar IEEE 1164. Este tipo representa una lógica multivaluada de 9valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta impedancia ‘Z’, desconocido ‘X’ ó sininicializar ‘U’ entre otros. Igual que se permite crear un vector de bits se puede crear un vectorde std_logic, STD_LOGIC_VECTOR.

Para poder utilizar el tipo std_logic hay que añadir la librería que lo soporta.use ieee.std_logic_1164.all

Para poder utilizar las funciones aritmeticológicas definidas (suma, resta, multiplicación)use ieee.std_logic_arith.all

Si los vectores están en representación binaria purause ieee.std_logic_unsigned.all

Los vectores están en CA2

use ieee.std_logic_signed.all

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 16: hdl programacion.pdf

Tipos de datos comunes en VHDL .Biblioteca IEEEstd_logic_1164 de VHDL

Tipo de datos Declaraciones de ejemploPosibles

valoresUso

BIT y: OUT BIT; „0‟, „1‟ Y <= 0

STD_LOGIC Control: STD_LOGIC„0‟, „1‟, „Z‟, „X‟, „-

‟Control <= „Z‟;

BIT_VECTOR

datos_bcd: BIT_VECTOR

(3 DOWNTO 0);“0101”, “0000”,

“1001”

Digito <=

datos_bcd

STD_LOGIC_VECTOR

dbus: STD_LOGIC_VECTOR

(3 DOWNTO 0); “0Z1X”IF rd=„0‟ then

dbus <= “ZZZZ”

INTEGER SIGNAL m: INTEGER RANGE -32 TO 31-32, … -2, -1, 0,

1,2, …, 31IF m>5 THEN …

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 17: hdl programacion.pdf

Diagrama básico de un proceso de diseño

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 18: hdl programacion.pdf

Tablas de verdad mediante el uso de HDLUna tabla de verdad relaciona las salidas de un circuito con cada una de las

posibles combinaciones de sus entradas

Ejemplo:

Diseñar un circuito lógico que tenga 3 entradas A,B y C cuya salida esté en alto

cuando haya mayoría de 1 en sus entradas

A B C Y

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.

Page 19: hdl programacion.pdf

Tablas de verdad mediante el uso de VHDLDefinición Concurrente

Sintaxis: Selected Signal Assignment

EQUIVALENTE A UN “CASE”

Ejemplo en VHDL:

Diseño Lógico IFacultad de Ciencias Exactas y Tecnología – UNT.