Las funciones aritmticas y de comparacin estn restringidas a los tipos numricos definidos en el package standard
Integer, real
El package std_logic_1164 no incluye funciones aritmticas y de comparacin. Es necesario incluir packages adicionales Package std_logic_arith.
Define los tipos signed y unsigned, as como operaciones aritmticas y de comparacin para stos function "+" (L:UNSIGNED;R:UNSIGNED) return UNSIGNED; fucntion "+" (L:UNSIGNED;R:INTEGER) return UNSIGNED; Define funciones de conversin para pasar de std_logic_vector a signed o unsigned: Codificacin binaria sin signo. UNSIGNED("1011") -- representa 11 Codificacin complemento a 2. SIGNED("1011") -- representa -5
Universidad de Zaragoza, IEC. L. A. Barragn y J.I. Artigas TEMA 2: Lenguaje VHDL - 24
Package std_logic_signed
Define operaciones aritmticas y de comparacin en complemento a 2 para objetos de tipo std_logic_vector.
Universidad de Zaragoza, IEC. L. A. Barragn y J.I. Artigas TEMA 2: Lenguaje VHDL - 25
Entornos de test
Un entorno de test (testbench) es otra entidad de diseo que se utiliza para verificar la correccin funcional de nuestro diseo
Se puede utilizar construcciones no sintetizables de VHDL Partes de un entorno de test Entidad a testear (EUT) Generador de estmulos. stos se aplican a los puertos de entrada de la EUT Monitor de resultados. Fichero de datos o un visualizador de formas de onda. Comparar resultados obtenidos con esperados
TEST BENCH
CLK RST, IN_DATA
OUT_DATA
Generacin de estmulos
Los estmulos pueden:
Ser generados mediante cdigo VHDL no sintetizable Patrones no repetitivos --No repetitivo Patrones repetitivos RST <= '1', '0' after 20 ns;
--Repetitivo process begin CLK <= '0'; wait for 20 ns; CLK <= '1'; wait for 30 ns; end process;
--Repetitivo process begin CLK <= '0', '1' after 20 ns; wait for 50 ns; end process;
Ficheros
El acceso a ficheros (para leer o escribir) ralentiza la simulacin Se distinguen por el tipo de informacin almacenada
type text is file of string; type IntegerFile is file of integer;
El package TEXTIO de la librera std permite almacenar en el fichero el equivalente en texto (ASCII) del dato
Almacenar el equivalente en texto (7) de un entero en vez del formato binario Para utilizar las funciones definidas en el package incluir en el encabezamiento Use std.textio.all;
Package TEXTIO
Los ficheros se organizan en lneas Procedimientos:
readline(F,L) y writeline(F,L) transfieren datos de ficheros a lneas y viceversa read(L,value) y write(L,value) operan sobre lneas
fichero F line L read(L,value) write(L,value) writeline(F,L) line 1 line 2 readline(F,L) line 3
Package TEXTIO
Package textio de la librera std
<tipo> cualquiera de los definidos en el package STANDARD
-- Definiciones de tipos type LINE is access string; -- Puntero a STRING type TEXT is file of STRING; -- Funciones y Procedimientos predefinidos function ENDFILE(file F : TEXT) return boolean; procedure READLINE(file f: TEXT; L: out LINE); procedure READ(L:inout LINE; VALUE:out <tipo>); procedure WRITELINE(file f : TEXT; L : inout LINE); procedure WRITE(L:inout LINE; VALUE:out <tipo>);
Ficheros en VHDL'93
Declaracin. Modos: lectura, escritura y aadir
file MY_FILE : IntegerFile; file MY_FILE : text is"inputdata.txt"; -- por defecto lectura file MY_FILE : text open READ_MODE is"inputdata.txt"; file MY_FILE : text open WRITE_MODE is "outputdata.txt"; file MY_FILE : text open APPEND_MODE is "outputdata.txt";
Los ficheros pueden ser abiertos o cerrados bajo el control del modelo
file_open(fstatus, MY_FILE, "my_file.dat", write_mode) file_close(MY_FILE)
Ficheros
READ_FILE: process -- Aplicacin de los estmulos file MY_FILE: text open READ_MODE is "eut_test.dat"; variable MY_LINE: line; variable VEN, VRST: std_logic; variable VCNT: std_logic_vector(2 downto 0); BEGIN WHILE (NOT (endfile (MY_FILE))) LOOP readline(MY_FILE, MY_LINE); read(MY_LINE, VEN); read(MY_LINE, VRST); read(MY_LINE, VCNT); -- Aplicar valores leidos en flanco de bajada CLK <= '0'; EN <= VEN; RST <= VRST; wait for 10 ns; CLK <= '1'; wait for 10 ns; assert (CNT = VCNT) report "Resultado incorrecto"; END LOOP; wait; -- Parar la simulacin END PROCESS;
Universidad de Zaragoza, IEC. L. A. Barragn y J.I. Artigas
0 1 1 1 1 0 ...