I ntroduccin al lenguaje VHDL UNIVERSIDAD DE SEVILLA Dpto. de Ingeniera Electrnica AREA DE TECNOLOGIA ELECTRONICA Octubre de 2004 Estructura de un diseo en VHDL Tema 2: 1.1 Introduccin y ejemplo simple 1.2 La seccin ENTITY 1.3 La seccin LI BRARY 1.4 La seccin ARCHITECTURE 1.5 La seccin CONFIGURATION IEEE Standard Logic 1164 Las libreras en VHDL son conjuntos de: Definiciones de tipos de datos. Funciones aritmticas, de conversin y comparaciones. Todos nuestros diseos comenzarn por: library IEEE; use IEEE.std_logic_1164.all; Opcionalmente use IEEE.std_logic_unsigned.all;
use IEEE.std_logic_signed.all; use IEEE.std_logic_arith.all; IEEE Standard Logic 1164 Paquete bsico de la librera IEEE USE IEEE.std_logic_1164.all: Std_logic: Un bit. (1,0, Z, X, H, L, U, -....) Std_logic_vector(MSB downto LSB): Bus. (1100) Integer: Entero. (5); Logica booleano (NOT, XOR, etc) IEEE Standard Logic arith USE IEEE.std_logic_arith.all: Tipos de vectores con/sin signo Signed(MSB downto LSB) unsigned(MSB downto LSB) Operaciones aritmticos entre enteros, signed y unsigned. Comparacion entre enteros, signed y unsigned La operacin de divisin por valores no 2 n
NO ESTA DEFINIDA IEEE Standard Logic signed/unsigned Paquete bsico de la librera IEEE USE IEEE.std_logic_signed.all: USE IEEE.std_logic_unsigned.all Trata std_logic_vector como valores con/sin signo Necesario para operaciones aritmticos entre vectores Estructura de un diseo en VHDL Tema 2: 1.1 Introduccin y ejemplo simple 1.2 La seccin ENTITY 1.3 La seccin LIBRARY 1.4 La seccin ARCHI TECTURE 1.4 La seccin ARCHITECTURE 1.5 La seccin CONFIGURATION
La seccin ARCHITECTURE Una arquitectura siempre tiene una entidad asociada. Todas las rdenes dentro de la arquitectura se ejecutan de forma paralela. Dos formas de escribir una arquitectura: Describir una arquitectura en forma de interconexin de componentes Describir el comportamiento
arquitecture A of mux21 is Definiciones de seales Definiciones de componentes Begin rdenes concurrentes. end A; La seccin ARCHITECTURE. Seal Una seal es un tipo de objeto que representa un cable, y por tanto interconecta componentes. Los puertos de la entidad son seales dentro de su arquitectura. Sintaxis: signal nombre: tipo_de_seal; La seccin ARCHITECTURE. Componente Componente: entidad de un orden inferior de jerarqua Sintxis: component nombre generic ( definicin de generics); port ( definicin de puertos); end component; COPIA DE LA ENTITY!!
La seccin ARCHITECTURE Una arquitectura siempre corresponde a una entidad asociada. Todas las rdenes dentro de la arquitectura se ejecutan de forma paralela. Diferentes formas de escribir una arquitectura: Describir una arquitectura en forma de interconexin de componentes Describir el comportamiento (TEMA 3) Mezclas
arquitecture A of mux21 is Definicin de seales Declaracin de componentes Begin rdenes concurrentes. end A; La seccin ARCHITECTURE. Descripcin del funcionamiento. Dos formas distintas:
1. rdenes concurrentes simples.
2. Bloques de descripcin en un process La seccin ARCHITECTURE. Process process(e1,e2, sel) begin if (sel=0) then o1<= e1; else o1<= e2; endif; end process; El bloque process como unidad bsica de ejecucin. Lista sensible Comportamiento Todos los bloques process son sensibles a sus entradas como las puertas lgicas a los suyos. Todos los bloques process se ejecutan en paralelo como las puertas lgicas de un circuito. Estructura de un diseo en VHDL Tema 2: 1.1 Introduccin y ejemplo simple 1.2 La seccin ENTITY 1.3 La seccin ARCHITECTURE 1.4 La seccin CONFI GURATI ON 1.5 La seccin LIBRARY La seccin CONFIGURATION CONFIGURATION nombre_configuracion OF nombre_entidad IS FOR nombre_arquitectura FOR nombre_instancia : nombre_entidad USE CONFIGURATION WORK.nombre_configuracion; END FOR; ..................... END FOR; END nombre_configuracion; Mecanismo de asignacin de una arquitectura a una entidad Una configuracin est asignada a una entidad y una arquitectura Se pueden definir varias configuraciones diferentes con distintos nombres, de forma que en el nivel jerrquico superior se decida cual de ellas se utiliza. Normalmente solamente utilizado en software de simulacin. Circuitos secuenciales sncronos. Lgica Combinacional D Q CLK RESET ESTADO ACTUAL NUEVO ESTADO ENTRADAS SALIDAS CLK RESET Circuito secuencial sncrono Modelo General Lgica Combinacional NE=f(EN,EA) SAL=f(EN,EA) D Q CLK RESET ESTADO ACTUAL (EA) NUEVO ESTADO (NE) ENTRADAS (EN) SALIDAS (SAL) CLK nRESETa Ejemplo sencillo: Un contador. D Q CLK RESET CUENTA P_CUENTA CLK RESET +1 SALIDA CONTADOR Un contador: Cdigo VHDL Architecture a of contador is signal cuenta, p_cuenta: integer; begin comb:process(cuenta) begin p_cuenta<=cuenta+1; end process;
sec:process(clk,resetz) begin if(resetz='0') then cuenta <= 0; elsif(clk='1' and clk'event) then cuenta <= p_cuenta; end if; end process; SALIDA_ENTITY <= cuenta;