Pitonbl4 0 23 июля, 2019 Опубликовано 23 июля, 2019 · Жалоба Добрый день! Не нашел решение такой проблемы. При чтении из файла in.txt вылетает ошибка: Error: STD_LOGIC_1164.READ(STD_ULOGIC_VECTOR) Error: Character '1' read, expected STD_ULOGIC literal. Error: STD_LOGIC_1164.READ(STD_ULOGIC_VECTOR) Error: Character '2' read, expected STD_ULOGIC literal. и т.д. Файл in.txt: 1 2 3 read.vhd use IEEE.std_logic_textio.all; use STD.textio.all; ... file in_file : text; ... read_file : process variable v_ILINE : line; variable v_data : std_logic_vector(15 downto 0); --variable v_data : integer; variable v_SPACE : character; begin file_open(in_file, "in.txt", read_mode); while(not endfile(in_file)) loop readline(in_file, v_ILINE); read(v_ILINE, v_data); --dataIn <= CONV_STD_LOGIC_VECTOR(v_data, 16); dataIn <= v_data; wait for 1 us; end loop; file_close(in_file); wait; end process; ... Если вместо variable v_data : std_logic_vector(15 downto 0); использовать variable v_data : integer; , то все работает. Хотя даже на этом форуме упоминали, что при включении use IEEE.std_logic_textio.all; все должно нормально работать. Пример брал здесь: https://www.nandland.com/vhdl/examples/example-file-io.html Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hitower1 0 23 июля, 2019 Опубликовано 23 июля, 2019 · Жалоба Попробуйте включить еще library STD; use STD.textio.all; Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 23 июля, 2019 Опубликовано 23 июля, 2019 · Жалоба Используйте вместо типа std_logic_vecor тип bit_vector Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 24 июля, 2019 Опубликовано 24 июля, 2019 · Жалоба Добрый день. Рабочий вариант: variable v_ILINE : line; variable data_p : std_logic_vector(3 downto 0); variable data_n : std_logic_vector(3 downto 0); variable v_SPACE : character; file_open(file_input, "data.txt", read_mode); readline(file_input, v_ILINE); read(v_ILINE, data_p); read(v_ILINE, v_SPACE); -- read in the space character read(v_ILINE, data_n); В файле data.txt: 1010 1100 1110 1010 В вашем случае, не меняя типов в объявлениях, в файле заменить 1 на 0000000000000001 2 на 0000000000000010 и так далее. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pitonbl4 0 24 июля, 2019 Опубликовано 24 июля, 2019 · Жалоба 7 hours ago, andrew_su said: Добрый день. Рабочий вариант: variable v_ILINE : line; variable data_p : std_logic_vector(3 downto 0); variable data_n : std_logic_vector(3 downto 0); variable v_SPACE : character; file_open(file_input, "data.txt", read_mode); readline(file_input, v_ILINE); read(v_ILINE, data_p); read(v_ILINE, v_SPACE); -- read in the space character read(v_ILINE, data_n); В файле data.txt: 1010 1100 1110 1010 В вашем случае, не меняя типов в объявлениях, в файле заменить 1 на 0000000000000001 2 на 0000000000000010 и так далее. Да, действительно. Благодарю! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться