1 circuitos digitales ii introducción al vhdl semana no.3 semestre 2008-2 prof. gustavo patiño...

45
1 Circuitos Digitales Circuitos Digitales II II Introducción al VHDL Introducción al VHDL Semana No.3 Semana No.3 Semestre 2008-2 Semestre 2008-2 Prof. Gustavo Patiño Prof. Gustavo Patiño [email protected] Prof. Eugenio Duque Prof. Eugenio Duque [email protected] Departamento de Ingeniería Electrónica Departamento de Ingeniería Electrónica Facultad de Ingeniería Facultad de Ingeniería

Upload: sanchia-pavon

Post on 22-Apr-2015

3 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

1

Circuitos Digitales IICircuitos Digitales II

Introducción al VHDLIntroducción al VHDLSemana No.3Semana No.3

Semestre 2008-2Semestre 2008-2

Prof. Gustavo PatiñoProf. Gustavo Patiñ[email protected]

Prof. Eugenio DuqueProf. Eugenio [email protected]

Departamento de Ingeniería ElectrónicaDepartamento de Ingeniería Electrónica

Facultad de IngenieríaFacultad de Ingeniería

Page 2: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

2

Recordando ….

Niveles de Abstracción: Carta Y

Page 3: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

3

Recordando ….

Proceso de Diseño

Page 4: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

4

Recordando …

Proceso de DiseñoStructural Domain

Physical Domain

Boards, MCM

Transistor Layout

Cells, Modules

Chips, ASICs

Flowcharts, Algorithms

Register Transfers Boolean Expressions Transistor Functions

Processors, Mem, Buses Registers,

ALUs, MuXs,

Gates, Flip-Flops

Transistors

Synthesis

Implementation

Behavioral Domain

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

Page 5: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Introducción al VHDL Temario

Objetivos Áreas de Aplicación Terminología importante Elementos básicos del VHDL Unidades de Diseño Descripción de Entidades (Entity’s) Descripción de Arquitecturas (Architecture’s)

Ejemplo Tipos de diseño Niveles de Abstracción

Tipos de Arquitecturas Modelado comportamental

Procesos Concurrencia vs secuencia Ejemplo.

Modelado estructural Ejemplo.

Mezcla de ambas modelados Paquetes y Configuración

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

5

Page 6: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

6

Objetivos

Introducir los conceptos básicos de VHDL. Lograr un razonable nivel de entendimiento que le permita escribir

código VHDL para cualquier diseño que pudiera ser especificado usando un editor de esquemáticos con componentes de biblioteca.

Desarrollar un buen nivel de apreciación de la habilidad de VHDL de manipular diseños mezclados (estructurales, comportamentales y de flujo de datos (datapath)).

Aprender los elementos básicos de VHDL que le permitan realizar sus proyectos en CPLDs y/o FPGAs, y posteriormente probarlos.

Page 7: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

7

Introducción al VHDL

VHDL es un lenguaje usado para describir el comportamiento de proyectos de circuitos digitales.

Los proyectos en VHDL pueden ser simulados y traducidos en un formato apropiado para la implementación en hardware.

El uso jerárquico de los diseños hechos en VHDL permite la rápida creación de proyectos de circuitos digitales complejos.

Page 8: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

8

Areas de Aplicación del VHDL Especificación de sistemas. Captura del diseño de un proyecto. Simulación. Síntesis. Desarrollo de pruebas (testing). Verificación temporal. Documentación.

Page 9: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

9

Terminología importante

Simulación es la predicción del comportamiento de un proyecto circuital. VHDL provee muchas características propias para la simulación

de circuitos digitales. La simulación funcional aproxima el comportamiento de un

proyecto de hardware asumiendo de todas las salidas cambian al mismo tiempo.

La simulación temporal predice el comportamiento exacto de un proyecto de Hardware.

Síntesis en la traducción de un proyecto circuital en un archivo de netlist que describe la estructura de hardware de un circuito. VHDL no fue diseñado para propósitos de síntesis. No todos los componentes de VHDL son sintetizables.

Page 10: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Elementos Básicos de VHDL

Asignación de señal: A <= B5

• Comparaciones: = /= > < >= <=

• Operaciones lógicas: and xor or nand nor xnor not

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

10

Page 11: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Elementos Básicos de VHDL (…cont) Condicionales :

If (estado_siguiente = espera) then ….

else | elseif | end if Lazos :

For i in y’range loop

….

end loop Otros :

when/else case wait :=

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

11

Page 12: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Elementos Básicos de VHDL (…cont) Insensible a mayúsculas o minúsculas.

Terminación de enunciado: ; Inicio de línea de comentario: -- -- Los identificadores deben iniciar con una letra y

pueden incluir caracteres alfanuméricos o guión bajo.

Concordancia estricta de tipo.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

12

Page 13: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

13

Unidades de diseño en VHDL

VHDL posee básicamente cinco unidades o componentes de diseño: Descripción de Entidades (Entity´s). Descripción de arquitecturas (Architecture´s). Paquetes (Package). Cuerpo de paquetes (Package body). Configuraciones (Configuration´s).

Page 14: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

14

Descripción de Entidades Describen las entradas y las salidas de un módulo

en un sistema. Ocultan los detalles internos de un módulo. Pueden ser usadas para describir módulos en muy

bajos niveles de abstracción (p.e nivel de puertas lógicas), así como un sistema completo (nivel de sistemas), y en niveles intermedios.

Page 15: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Modelado de Interfaces

Ejemplo : Declaración de una Entity Describiendo los puertos de entrada y salida de un

módulo.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

15

entity reg4 isport ( d0, d1, d2, d3, en, clk : in

bit;q0, q1, q2, q3 : out bit );

end entity reg4;

entity name port names port mode (direction)

port typereserved words

punctuation

Page 16: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

16

Descripción de la Arquitectura Suministra una descripción estructural o funcional

de una entidad. Cada arquitectura es limitada solamente a una

entidad – pero una entidad puede estar asociada a múltiples arquitecturas (solamente una a la vez, para una cierta simulación o síntesis).

Múltiples arquitecturas permiten descripciones tempranas del funcionamiento del módulo sin tener que diseñar todo a fin de comenzar la prueba funcional.

Page 17: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Descripción de la Arquitectura (…cont)

Architecture arquitectura of modelo is

begin….

enunciados concurrentes

….

end architecture arquitectura ;

Architecture arquitectura of modelo is

begin….

enunciados concurrentes

….

end architecture arquitectura ;

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

17

Page 18: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Ejemplo Mux 2 a 1LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

18

Page 19: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Bibliotecas

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

19

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Page 20: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Bibliotecas (…cont)

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

20

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Page 21: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Entity : Interface Externa

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

21

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Page 22: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Entity : Interface Externa (…cont)

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

22

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Page 23: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Buses o vectores

Ejemplo :

y <= “11110000”;

Si y es

std_logic_vector(7 downto 0)

y(7) es ‘1’ y y(0) es ‘0’

std_logic_vector(0 to 7)

‘y(7) es ‘0’ y y(0) es ‘1’

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

23

Page 24: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Arquitectura : Función del módulo

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

24

LIBRARY IEEE;USE IEEE.std_logic_1164.all;------------------------------------------------------------------------- Declaración del dispositivo-----------------------------------------------------------------------ENTITY mux2a1 ISPORT(

SIGNAL s: IN std_logic; -- selectorSIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradasSIGNAL o: OUT std_logic_vector(7 DOWNTO 0) --salida

);END ENTITY mux2a1;

------------------------------------------------------------------------- Definición del dispositivo, usando ecuaciones lógicas-----------------------------------------------------------------------

ARCHITECTURE bool_eqs OF mux2a1 ISSIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal

internaBEGIN

sel <= (OTHERS => s);o <= (a AND (NOT sel)) OR (b AND sel);

END ARCHITECTURE bool_eqs;

Page 25: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Asignación de vectores

sel <= (s,s,s,s,s,s,s,s); posicional sel <=

(4=>s,7=>s,2=>s,0=>s,1=>s,3=>s,5=>s,6=>7)

por nombre • sel <= (others => s); default • sel <= (s,s,3=>s,others=>s); combinado

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

25

Page 26: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

26

Tipos de diseño

Una unidad simple de un diseño: Corresponde a un archivo fuente en VHDL con una

pareja entity – architecture y una referencia a una biblioteca estándar de diseño. (p.e IEEE Standard Logic).

Un diseño más complejo: Corresponde a múltiples archivos fuentes, cada uno

con una pareja entity – architecture y con una declaración de paquetes.

Puede incluir un archivo de configuración.

Page 27: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Niveles de abstracción

Una importante característica de VHDL que no es compartida por otros tipos de lenguajes orientados al trabajo con PLDs (tales como ABEL, CUPL, etc).

Corresponde a la habilidad de representar diseños en múltiples niveles de abstracción.

Ejemplo : Un sumador de 16 bits podría ser representado por: Interconexión de compuertas. Interconexión de módulos (p.e sumadores completos o

sumadores de 4 bits.). Una función que realice la suma binaria sobre dos vectores

de bits.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

27

Page 28: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

28

Tipos de Arquitectura

Comportamental Describe la funcionalidad del módulo con respecto al

tiempo, generalmente en forma de un algoritmo. La capacidad directa de síntesis es muy limitada.

Dataflow (Transferencia de Registros) Especifica registros y lógica combinacional en

términos del flujo de datos de una función a otra. Estructural

Especifica los componentes y sus interconexiones. Equivale en lenguaje a lo realizado en esquemáticos.

Page 29: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

29

Modelado Comportamental

Cuerpo del Architecture Describe una implementación de una entidad. Pueden ser varios para una entidad.

Arquitectura Comportamental Describe el algoritmo ejecutado por el módulo. Contiene:

Instrucciones de procesos (Process), cada uno conteniendo: Instrucciones secuenciales, incluyendo:

Instrucciones de asignación de señales y Instrucciones de espera (wait).

Page 30: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

30

Ejemplo Comportamentalarchitecture behav of reg4 isbegin

storage : process isvariable stored_d0, stored_d1, stored_d2, stored_d3 : bit;

beginif en = '1' and clk = '1' then

stored_d0 := d0; stored_d1 := d1; stored_d2 := d2; stored_d3 := d3;

end if;q0 <= stored_d0 after 5 ns;

q1 <= stored_d1 after 5 ns; q2 <= stored_d2 after 5 ns; q3 <= stored_d3 after 5 ns;

wait on d0, d1, d2, d3, en, clk;end process storage;

end architecture behav;

architecture behav of reg4 isbegin

storage : process isvariable stored_d0, stored_d1, stored_d2, stored_d3 : bit;

beginif en = '1' and clk = '1' then

stored_d0 := d0; stored_d1 := d1; stored_d2 := d2; stored_d3 := d3;

end if;q0 <= stored_d0 after 5 ns;

q1 <= stored_d1 after 5 ns; q2 <= stored_d2 after 5 ns; q3 <= stored_d3 after 5 ns;

wait on d0, d1, d2, d3, en, clk;end process storage;

end architecture behav;

entity reg4 isport (

d0, d1, d2, d3, en, clk : in bit; q0, q1, q2, q3 : out bit );

end entity reg4;

Page 31: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Procesos

nombre : process (señal1, señal2, ...) is

begin

....

enunciados sequenciales

....

end process nombre ;

nombre : process (señal1, señal2, ...) is

begin

....

enunciados sequenciales

....

end process nombre ;

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

31

Page 32: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Concurrencia vs Secuencia

Los enunciados concurrentes se ejecutan todos al mismo tiempo.

Los enunciados secuenciales, que sólo pueden aparecer dentro de un proceso, se ejecutan uno tras de otro. ‘IF/ELSE’ , ’CASE’ , ’FOR’ : secuenciales. ‘PROCESS’ : concurrentes.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

32

Page 33: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Procesos

nombre : process( señal1,señal2,...) is

donde señal1,señal2,… es la lista de sensibilidad del proceso.

Cualquier evento en alguna de estas señales hará que el proceso se ejecute durante una simulación.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

33

Page 34: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Procesos (...cont)

La asignación de señales dentro de los enunciados de un proceso ocurre en forma secuencial, de modo que una asignación posterior siempre puede cambiar el valor de una señal asignada previamente dentro del bloque (proceso).

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

34

Page 35: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Procesos (...cont)

Al usar procesos, un error clásico es olvidar incluir enunciados que asignen valores de default a todas las salidas.

Si las herramientas de síntesis VHDL encuentran una trayectoria lógica tal que una salida no tenga un valor asignado en el proceso, asumirán que el valor actual debe retenerse, generando un latch en el circuito.

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

35

Page 36: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

36

Modelado Estructural

Arquitectura Estructural Implementa el módulo como una composición de

subsistemas. Contiene:

Declaración de señales, para interconexiones internas. Los puertos de la entidad son también tratados como

señales. Instancias de componentes

Son instancias de parejas de entity/arquitecture previamente declarados.

Mapas de puertos en instancias de componentes. Conecta señales a puertos de componentes.

Instrucciones wait.

Page 37: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

37

Arquitectura Estructural

Los componentes declarados en una arquitectura deben ser definidos en alguna parte.

Los componentes pueden ser definidos como: Una pareja de entity-arquitecture en el mismo

archivo fuente de VHDL. Una pareja de entity-arquitecture en otro archivo

fuente de VHDL. Un objeto en otra herramienta de diseño tal que sea

incorporado en un formato de archivo estándar. Un objeto en una biblioteca de tecnología.

Page 38: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

38

Arquitectura Estructural

Cada tipo componente debe ser declarado usando una declaración de componente.

La declaración del componente debe corresponder con la declaración de la entidad del módulo que está siendo invocado.

component component-name

port ( signal-names : mode signal-type;

signal-names : mode signal-type;

signal-names : mode signal-type );

end component;

Page 39: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

39

Arquitectura Estructural Cada instancia de un componente debe ser

instanciado por una instrucción Component.

La primera forma usa el orden de la señales para crear la correspondencia con la declaración del componente.

La segunda forma usa los nombres de los puertos como aparecen listados en la declaración del componente.

label: component-name port map (signal1, signal2, …, signaln);

OR

label: component-name port map (port1=>signal1, port2=>signal2, portn=>signaln):

Page 40: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

40

Ejemplo Estructural

int_clk

d0

d1

d2

d3

en

clk

q0

q1

q2

q3

bit0

d_latch

d

clk

q

bit1

d_latch

d

clk

q

bit2

d_latch

d

clk

q

bit3

d_latch

d

clk

q

gate

and2

a

b

y

Page 41: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

41

Primero declare las entidades y arquitecturas de latches tipo D y compuertas and.

entity d_latch isport ( d, clk : in bit; q : out bit );

end d_latch;

architecture basic of d_latch isbegin

latch_behavior : processbegin

if clk = ‘1’ thenq <= d after 2 ns;

end if;wait on clk, d;

end process latch_behavior;

end basic;

entity d_latch isport ( d, clk : in bit; q : out bit );

end d_latch;

architecture basic of d_latch isbegin

latch_behavior : processbegin

if clk = ‘1’ thenq <= d after 2 ns;

end if;wait on clk, d;

end process latch_behavior;

end basic;

entity and2 isport ( a, b : in bit; y : out bit );

end and2;

architecture basic of and2 isbegin

and2_behavior : processbegin

y <= a and b after 2 ns;wait on a, b;

end process and2_behavior;

end basic;

entity and2 isport ( a, b : in bit; y : out bit );

end and2;

architecture basic of and2 isbegin

and2_behavior : processbegin

y <= a and b after 2 ns;wait on a, b;

end process and2_behavior;

end basic;

Ejemplo Estructural (…cont)

Page 42: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

42

Declare los componentes correspondientes en el cuerpo de la arquitectura del registro.

architecture struct of reg4 is

component d_latchport ( d, clk : in bit; q : out bit );

end component;

component and2port ( a, b : in bit; y : out bit );

end component;

signal int_clk : bit;

...

architecture struct of reg4 is

component d_latchport ( d, clk : in bit; q : out bit );

end component;

component and2port ( a, b : in bit; y : out bit );

end component;

signal int_clk : bit;

...

Ejemplo Estructural (…cont)

Page 43: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

43

Ejemplo Estructural (…cont) Ahora, use dichos componentes para definir el

registro del 4 bits....

begin

bit0 : d_latchport map ( d0, int_clk, q0 );

bit1 : d_latchport map ( d1, int_clk, q1 );

bit2 : d_latchport map ( d2, int_clk, q2 );

bit3 : d_latchport map ( d3, int_clk, q3 );

gate : and2port map ( en, clk, int_clk );

end struct;

...

begin

bit0 : d_latchport map ( d0, int_clk, q0 );

bit1 : d_latchport map ( d1, int_clk, q1 );

bit2 : d_latchport map ( d2, int_clk, q2 );

bit3 : d_latchport map ( d3, int_clk, q3 );

gate : and2port map ( en, clk, int_clk );

end struct;

Page 44: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

44

Mezcla del modelado comportamental y estructural

Una arquitectura puede contener ambas partes. Instrucciones de procesos (process) e instanciación de

componentes. También llamados de estamentos o sentencias concurrentes.

Los procesos pueden leer y escribir en las señales. Ejemplo: Modelo RTL (Nivel de Transferencia de

Registros) Flujo de datos (DataPath) descrito estructuralmente. La sección de control es descrita comportamentalmente.

Page 45: 1 Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre 2008-2 Prof. Gustavo Patiño gpatino@udea.edu.co Prof. Eugenio Duque eaduque@udea.edu.co

Tarea A - Arquitecture B - Buffer C - Component D - Downto E - Elsif F - For G - Generate H - Function I - If J - Procedure K - Case L - Loop M - Map (Port map) N - Not O - Others P - Process Q - Package R - Subtype S - Select (With Select) T - Type U - Use V - Variable W - When else X - Xor Y - Wait Z – ‘Z’ (High Impedance)

Departamento de Ing. Electrónica. Circuitos Digitales II Facultad de Ingeniería 2008 - 2

45

Elabore, escriba, consulte, busque, copie o pastelee, un ejemplo completo en VHDL que de acuerdo a la primera letra de su nombre posea uno de las siguientes palabras claves del lenguaje.

En cada una de las próximas tres clases, se escogerán al azar tres estudiantes diferentes a fin de explicar en el tablero su ejemplo en VHDL.