Maksim 0 28 октября, 2005 Опубликовано 28 октября, 2005 · Жалоба Хочу из тестбенча (VHDL) вытащить результат вычислений в файл, как это сделать по проще? А то, переписывать с экран результаты придётся дня два :blink: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 28 октября, 2005 Опубликовано 28 октября, 2005 · Жалоба Пакет textio из библиотеки std. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 октября, 2005 Опубликовано 28 октября, 2005 · Жалоба Хочу из тестбенча (VHDL) вытащить результат вычислений в файл, как это сделать по проще? А то, переписывать с экран результаты придётся дня два :blink: <{POST_SNAPBACK}> поройте в сети есть либы - функции вывода Си -> VHDL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MadMakc 0 28 октября, 2005 Опубликовано 28 октября, 2005 · Жалоба можно ещё заглянуть на http://www.gaisler.com/ слить исходники леона.Там будет пакедж debug вроде называется.Можно посмотреть,как это делается, чтобы это удобно юзать было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
OM-S 0 11 ноября, 2005 Опубликовано 11 ноября, 2005 · Жалоба Можо таким компонентом: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_textio.all; USE ieee.std_logic_unsigned.all; LIBRARY std; USE std.textio.all; ENTITY print_result IS GENERIC( file_name : string := "D:/file_name"; d_width : natural := 8 ); PORT( clock : IN std_logic; we : IN std_logic; result : IN std_logic_vector (d_width-1 DOWNTO 0) ); END print_result ; ARCHITECTURE rtl OF print_result IS BEGIN -- pragma synthesis_off hi_clk_wr : process(we,clock) file vectorw_file : text open write_mode is file_name & ".txt" ; variable l , l2 : line ; variable q , p : integer := 0 ; variable count : integer := 1 ; begin if (we = '1') then if(clock='1' and clock'event) then q := d_width - 1 ; count := count + 1 ; for p in 1 to d_width loop -- data from RAM write(l2 , result(q)) ; q := q - 1 ; end loop ; q := d_width - 1 ; writeline(vectorw_file , l2) ; end if ; end if ; end process ; -- pragma synthesis_on END rtl; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
irum4 0 11 ноября, 2005 Опубликовано 11 ноября, 2005 · Жалоба Хочу из тестбенча (VHDL) вытащить результат вычислений в файл, как это сделать по проще? А то, переписывать с экран результаты придётся дня два :blink: Я делаю это так library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.STD_LOGIC_ARITH.ALL; entity write2binfile is port( CLK : in STD_LOGIC; EN : in STD_LOGIC; DATAIN : in STD_LOGIC_VECTOR(7 downto 0); DATAFILE : in STRING ); end write2binfile; architecture behav of write2binfile is TYPE char_file IS FILE OF character; function byte2ch ( constant data : in std_logic_vector(7 downto 0)) return character is variable n : integer; variable c : character; begin n := conv_integer(data); -- конвертация std_logic_vector(7 downto 0) в integer c := character'VAL(n); -- найти значения символа по номеру в перечисляємом типе /конвертация integer -> character/ return c; end function; function ch2byte ( constant ch : in character) return std_logic_vector is variable n : integer; variable data : std_logic_vector(7 downto 0); begin n := character'POS(ch); data := CONV_STD_LOGIC_VECTOR(n,8); return data; end function; begin --pragma translate_off process(CLK) FILE data_file : char_file IS OUT DATAFILE; -- виходний файл символов variable din : character; -- переменная типа символ begin if rising_edge(CLK) then if EN = '1' then write(data_file, byte2ch(DATAIN)); end if; end if; end process; --pragma translate_on end behav; Если описать переменную как FILE data_file : char_file IS IN DATAFILE; -- входний файл символов то из этого файла можно считывать данные в тестбенч функцией read(DATAFILE,din) :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться