AlexZabr 0 4 марта, 2008 Опубликовано 4 марта, 2008 · Жалоба Интересен как "ученые мужи" :) пишущие на VHDLе подходят к вопросу тестирования дизайна когда нужно гнать большие объемы входных данных через test-bench. В более приземленом плане - есть дизайн в области видео, нужно его прогонять объемами входных данных хотя-бы на несколько кадров что е реалиях будет немалое кол-во данных (скажем сигналы синхронизации, данные и т.д. на несколько кадров, в каждом кадре около 300 строк, в каждой строке - около 1600 побайтовых единиц инфы (т.е. около 1600 клоков). Т.е. на кадр входных данных получается более 400 000 тест векторов. Я так понимаю что в таком случае наверно работают с текстовыми файлами векторов которые читаются в test bench, так ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 4 марта, 2008 Опубликовано 4 марта, 2008 · Жалоба http://electronix.ru/forum/index.php?showtopic=30867&hl= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tocha 0 4 марта, 2008 Опубликовано 4 марта, 2008 · Жалоба Интересен как "ученые мужи" :) пишущие на VHDLе подходят к вопросу тестирования дизайна когда нужно гнать большие объемы входных данных через test-bench. В более приземленом плане - есть дизайн в области видео, нужно его прогонять объемами входных данных хотя-бы на несколько кадров что е реалиях будет немалое кол-во данных (скажем сигналы синхронизации, данные и т.д. на несколько кадров, в каждом кадре около 300 строк, в каждой строке - около 1600 побайтовых единиц инфы (т.е. около 1600 клоков). Т.е. на кадр входных данных получается более 400 000 тест векторов. Я так понимаю что в таком случае наверно работают с текстовыми файлами векторов которые читаются в test bench, так ? Именно так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 5 марта, 2008 Опубликовано 5 марта, 2008 (изменено) · Жалоба Пример VHDL испытательного стенда (VHDL Test Bench) VHDL испытательный стенд - программа VHDL, которая описывает ввод моделирования, использующего процедуры языка стандартного VHDL. Данный пример VHDL испытательного стенда позволяет читать из текстового файла и записывать результаты моделирования в текстовый файл, находящиеся в папке проекта. Код рабочий!!! Файлы для записи и чтения должны находится в папке проекта Извините код правильно не вставил - получилось и к тому же спешил LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; use ieee.std_logic_arith.all; use std.textio.all; LIBRARY UNISIM; USE UNISIM.Vcomponents.ALL; ENTITY shema_shema_sch_tb IS END shema_shema_sch_tb; ARCHITECTURE behavioral OF shema_shema_sch_tb IS COMPONENT shema PORT( Clock : IN STD_LOGIC; DOOR : IN STD_LOGIC_VECTOR (11 DOWNTO 0); I : OUT STD_LOGIC_VECTOR (9 DOWNTO 0); J : OUT STD_LOGIC_VECTOR (9 DOWNTO 0); PIXEL : OUT STD_LOGIC_VECTOR (11 DOWNTO 0); Reset : IN STD_LOGIC; W : OUT STD_LOGIC; constt : IN STD_LOGIC_VECTOR (11 DOWNTO 0); xx : OUT STD_LOGIC_VECTOR (2 DOWNTO 0); c1 : OUT STD_LOGIC; c2 : OUT STD_LOGIC; c3 : OUT STD_LOGIC; c4 : OUT STD_LOGIC; z1 : OUT STD_LOGIC; z2 : OUT STD_LOGIC; z3 : OUT STD_LOGIC; z4 : OUT STD_LOGIC; ih : OUT STD_LOGIC; jh : OUT STD_LOGIC; jl : OUT STD_LOGIC; ssjl : OUT STD_LOGIC_VECTOR (9 DOWNTO 0); cchk : OUT STD_LOGIC); END COMPONENT; SIGNAL Clock : STD_LOGIC; SIGNAL DOOR : STD_LOGIC_VECTOR (11 DOWNTO 0); SIGNAL PIXEL : STD_LOGIC_VECTOR (11 DOWNTO 0); SIGNAL Reset : STD_LOGIC; SIGNAL constt : STD_LOGIC_VECTOR (11 DOWNTO 0); SIGNAL z1 : STD_LOGIC; SIGNAL z2 : STD_LOGIC; SIGNAL z3 : STD_LOGIC; SIGNAL z4 : STD_LOGIC; SIGNAL I : STD_LOGIC_VECTOR (9 DOWNTO 0); SIGNAL J : STD_LOGIC_VECTOR (9 DOWNTO 0); SIGNAL xx : STD_LOGIC_VECTOR (2 DOWNTO 0); SIGNAL c1 : STD_LOGIC; SIGNAL c2 : STD_LOGIC; SIGNAL c3 : STD_LOGIC; SIGNAL c4 : STD_LOGIC; SIGNAL w : STD_LOGIC; SIGNAL ih : STD_LOGIC; SIGNAL jh : STD_LOGIC; SIGNAL jl : STD_LOGIC; SIGNAL ssjl : STD_LOGIC_VECTOR (9 DOWNTO 0); SIGNAL cchk : STD_LOGIC; BEGIN UUT: shema PORT MAP( Clock => Clock, DOOR => DOOR, PIXEL => PIXEL, Reset => Reset, constt => constt, z1 => z1, z2 => z2, z3 => z3, z4 => z4, I => I, J => J, w => w, xx => xx, c1 => c1, c2 => c2, c3 => c3, c4 => c4, ih => ih, jh => jh, jl => jl, ssjl =>ssjl, cchk => cchk ); read_from_file: process(Clock) variable indata_line: line; variable indata: integer; file input_data_file: text open read_mode is "DATA.txt"; begin if rising_edge(Clock) then readline(input_data_file,indata_line); read(indata_line,indata); DOOR <= conv_std_logic_vector(indata,12); if endfile(input_data_file) then report "end of file -- looping back to start of file"; file_close(input_data_file); file_open(input_data_file,"DATA.txt"); end if; end if; end process; write_to_file: process(Clock) variable outdata_line: line; variable outdata: integer :=0; file output_data_file: text open write_mode is "vhdl_output.txt"; begin if rising_edge(Clock) then outdata := 1*CONV_INTEGER(To_X01Z(z1))+2*CONV_INTEGER(To_X01Z(z2))+4*CONV_INTEGER(To_X01Z(z 3))+8 *CONV_INTEGER(To_X01Z(z4)); write(outdata_line,outdata); writeline(output_data_file,outdata_line); end if; end process; clock_gen: process begin Clock <= '0'; wait for 50 ns; Clock <= '1'; wait for 50 ns; end process; reset_gen: process begin Reset <= '0'; wait for 10 ns; Reset <= '1'; wait; end process; const_gen: process begin constt <= "000000000000"; wait for 10 ns; constt <= "000000010100"; wait; end process; END; [\code] Изменено 5 марта, 2008 пользователем ZMaverickZ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Интересен как "ученые мужи" :) пишущие на VHDLе подходят к вопросу тестирования дизайна когда нужно гнать большие объемы входных данных через test-bench. В более приземленом плане - есть дизайн в области видео, нужно его прогонять объемами входных данных хотя-бы на несколько кадров что е реалиях будет немалое кол-во данных Если в общем случае (какие-то не поддающиеся формализации данные) - то да, из файла. В более приземленном плане - простым циклом генерируется одеяло из цветных квадратов и синхронизация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexZabr 0 5 марта, 2008 Опубликовано 5 марта, 2008 · Жалоба Понял, всем спасибо. По началу, буду генерировать синхронизацию циклами в benchе, для данных уже буду ломать голову файлом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться