La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Circuitos Digitales II

Presentaciones similares


Presentación del tema: "Circuitos Digitales II"— Transcripción de la presentación:

1 Circuitos Digitales II
Departamento de Ingeniería Electrónica Facultad de Ingeniería Circuitos Digitales II Introducción al VHDL Semana No.3 Semestre Prof. Gustavo Patiño Prof. Eugenio Duque

2 Recordando …. Niveles de Abstracción: Carta Y
Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

3 Recordando …. Proceso de Diseño
Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

4 Recordando … Proceso de Diseño
Structural 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

5 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 Mezcla de ambas modelados Paquetes y Configuración Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

10 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

11 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

12 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

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). Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

15 Modelado de Interfaces
Ejemplo : Declaración de una Entity Describiendo los puertos de entrada y salida de un módulo. entity name port names port mode (direction) entity reg4 is port ( d0, d1, d2, d3, en, clk : in bit; q0, q1, q2, q3 : out bit ); end entity reg4; punctuation reserved words port type Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

17 Descripción de la Arquitectura (…cont)
Architecture arquitectura of modelo is begin …. enunciados concurrentes end architecture arquitectura ; Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

18 Ejemplo Mux 2 a 1 LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN 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

19 Bibliotecas LIBRARY (Biblioteca): Colección de diseños y definiciones previos. USE: Diseños y definiciones de la biblioteca que será utilizada. LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN 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

20 Bibliotecas (…cont) Std_logic_1164 (lógica multivaluada) :
LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN sel <= (OTHERS => s); o <= (a AND (NOT sel)) OR (b AND sel); END ARCHITECTURE bool_eqs; Std_logic_1164 (lógica multivaluada) : ‘1’ ‘0’ ‘Z’ ‘-’ ‘X’ ‘U’ Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

21 Entity : Interface Externa
LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN 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

22 Entity : Interface Externa (…cont)
LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN sel <= (OTHERS => s); o <= (a AND (NOT sel)) OR (b AND sel); END ARCHITECTURE bool_eqs; SIGNAL nombre : modo tipo Modo : IN; OUT; INOUT Tipo : std_logic, std_logic_vector, bit Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

23 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

24 Arquitectura : Función del módulo
LIBRARY IEEE; USE IEEE.std_logic_1164.all; Declaración del dispositivo ENTITY mux2a1 IS PORT( SIGNAL s: IN std_logic; -- selector SIGNAL a,b: IN std_logic_vector(7 DOWNTO 0); -- entradas SIGNAL 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 IS SIGNAL sel: std_logic_vector(7 DOWNTO 0); -- señal interna BEGIN sel <= (OTHERS => s); o <= (a AND (NOT sel)) OR (b AND sel); END ARCHITECTURE bool_eqs; s : std_logic a, b : std_logic_vector No se puede operar entre ellas !. Se define el vector sel y se replica s en todos sus bits. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

25 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

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

27 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

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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). Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

30 Ejemplo Comportamental
entity reg4 is port ( d0, d1, d2, d3, en, clk : in bit; q0, q1, q2, q3 : out bit ); end entity reg4; architecture behav of reg4 is begin storage : process is variable stored_d0, stored_d1, stored_d2, stored_d3 : bit; begin if 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; VARIABLE difiere de una señal en que NO se registran eventos ni se controla su temporización. Se soportan los tipos de datos estándar. Notar que las asignaciones a variables se indican con := Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

31 Procesos 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

32 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

33 nombre : process( señal1,señal2,...) is
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

34 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

35 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

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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; Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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): Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

40 Ejemplo Estructural Registro síncrono de 4 bits y señal de enable
Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

41 Ejemplo Estructural (…cont)
Primero declare las entidades y arquitecturas de latches tipo D y compuertas and. entity d_latch is port ( d, clk : in bit; q : out bit ); end d_latch; architecture basic of d_latch is begin latch_behavior : process begin if clk = ‘1’ then q <= d after 2 ns; end if; wait on clk, d; end process latch_behavior; end basic; entity and2 is port ( a, b : in bit; y : out bit ); end and2; architecture basic of and2 is begin and2_behavior : process begin y <= a and b after 2 ns; wait on a, b; end process and2_behavior; end basic; Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

42 Ejemplo Estructural (…cont)
Declare los componentes correspondientes en el cuerpo de la arquitectura del registro. architecture struct of reg4 is component d_latch port ( d, clk : in bit; q : out bit ); end component; component and2 port ( a, b : in bit; y : out bit ); end component; signal int_clk : bit; ... Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

43 Ejemplo Estructural (…cont)
Ahora, use dichos componentes para definir el registro del 4 bits. ... begin bit0 : d_latch port map ( d0, int_clk, q0 ); bit1 : d_latch port map ( d1, int_clk, q1 ); bit2 : d_latch port map ( d2, int_clk, q2 ); bit3 : d_latch port map ( d3, int_clk, q3 ); gate : and2 port map ( en, clk, int_clk ); end struct; Fin del ejemplo Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería

45 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) Tarea 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. Departamento de Ing. Electrónica Circuitos Digitales II Facultad de Ingeniería


Descargar ppt "Circuitos Digitales II"

Presentaciones similares


Anuncios Google