Vhdl introduccion



Descargar 95,53 Kb.
Página4/6
Fecha de conversión22.07.2017
Tamaño95,53 Kb.
1   2   3   4   5   6

ARCHIVOS (FICHEROS)

  • Permiten comunicar un diseño VHDL con el exterior, el modelo lee y escribe datos persistentes.
  • En el paquete texti o de la biblioteca standar hay
  • tipos de datos y operaciones de lectura/escritura de archivos de texto.
  • VHDL soporta subprogramas para leer y escribir
  • archivos en forma secuencial.

Sintaxis general de un archivo file id {,....} : tipo [is direcciòn “nombre” ;] file id {,....} : tipo [ [ open tipo_acceso] is “nombre”;]

  • Ejemplos
  • file Estimulos : FicheroEnteros open read_mode is “datos.in”;
  • file Salida : FicheroEnteros open write_mode id “datos.out”;

ASIGNACION DE UN VALOR

  • A una señal se le asigna un valor, en VHDL, por medio de una sentencia de Asignación de señal.
  • Una Asignación a una señal define un driver sobre esa señal.
  • Se pueden tener multilples drivers.

DEFINICION DE PUERTOS

Forma genérica de designar un puerto

  • Forma genérica de designar un puerto
  • nombre_variable: modo tipo;
  • Ejemplos:
  • puertoa: in bit;
  • puertob: in bit_vector(0 to 7);
  • puertoc: out bit_vector(3 downto 0);
  • puertod: buffer bit;
  • puertoe:inout std_logic;
  • in 
  • Un puerto es de modo in si la información correspondiente al mismo, entra a la entidad y se suele usar para relojes, entradas de control (como las típicas load, reset y enable), y para datos de entrada unidireccionales.
  • Modo de Puerto
  • out 
  • Un puerto es de modo out si la información fluye hacia fuera de la entidad.
  • Este modo no permite realimentación ya que al declarar un puerto como out estamos indicando al compilador que el estado lógico en el que se encuentra no es leíble.
  • buffer 
  • Este modo es similar al modo out, pero además, permite la realimentación y no es bidireccional, y solo puede ser conectado directamente a una señal interna, o a un puerto de modo buffer de otra entidad. Una aplicación muy común de este modo es la de salida de un contador, ya que debemos saber la salida en el momento actual para determinar la salida en el momento siguiente.
  • inout
  • Es usado para señales bidireccionales, es decir, si necesitamos que por el mismo puerto fluya información tanto hacia dentro como hacia afuera de la entidad. Este modo permite la realimentación interna y puede reemplazar a cualquiera de los modos anteriores, pudiéndose usar este modo para todos los puertos.
  • boolean
  • Puede tomar dos valores: verdadero/true o falso/false. Un ejemplo típico es la salida de un comparador que da verdadero si los números comparados son iguales y falso si no lo son
  • bit
  • Puede tomar dos valores: 0 ó 1 ( o también "low" o "high", según se prefiera). Es el tipo más usado de los nativos
  • bit_vector
  • Es un vector de bits. Debemos tener cuidado al definir el peso de los bits que lo integran, ya que según pongamos la palabra reservada downto o to estaremos diciendo que el bit más significativo es el número más alto o el más bajo del vector, respectivamente..
  • numero : bit_vector (0 to 7);
  • numero : bit_vector (7 downto 0);
  • integer
  • Para mantenerr números enteros. Hay que advertir que el uso de enteros consume muchos recursos del dispositivo de lógica programable, siempre y cuando sea sintetizable, debido a que está prácticamente creado para la simulación.
  • Definir un modelo de comportamiento sintetizable (ARCHITECTURE)
  • Usando el juego de instrucciones soportado por las herramientas de síntesis
  • Para describir una arquitectura podremos usar cuatro estilos
  • Estilo behavioral
  • Estilo dataflow
  • Estilo structural
  • Estilo mixto
  • Estilo behavioral
  • architecture behavioral of compa is begin comp: process (a, b)   begin    if a= b then     igual<='1';    else     igual<='0';    end if;   end process comp; end behavioral;
  • entity compa is
  • port (
  • a,b: in bit_vector(3 downto 0); igual: out bit
  • ); end compa;
  • Estilo dataflow
  • architecture dataflow1 of compa is begin    igual<='1' when (a=b) else '0'; end dataflow1;
  • architecture dataflow2 of compa is begin    igual<= not(a(0) xor b(0))        and not(a(1) xor b(1))        and not(a(2) xor b(2))        and not(a(3) xor b(3)); end dataflow2;
  • Estilo structural
  • architecture struct of compa is signal x: bit_vector(0 to 3);
  • Component xnor2
  • Port (e1,e2:in bit; y:out bit);
  • End component;
  • Component and4
  • Port (e1,e2,e3,e4:in bit; y:out bit);
  • End component;
  • begin u0: xnor2 port map (a(0),b(0),x(0)); u1: xnor2 port map (a(1),b(1),x(1)); u2: xnor2 port map (a(2),b(2),x(2)); u3: xnor2 port map (a(3),b(3),x(3)); u4: and4 port map (x(0),x(1),x(2),x(3),igual); end struct;
  • Estilo mixto
  • Estilo de Escritura RTL (Register Transfer Level)
  • RTL Describe el comportamiento de cada entidad
1   2   3   4   5   6


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal