anatol1983 0 9 апреля, 2005 Опубликовано 9 апреля, 2005 · Жалоба Товарищи!!!Господа!!!Колеги!!!! Расскажите как вы тестируете VHDL описания схем с двунаправленными портами(inout). Я пробовал писать TestBench, пробовал набивать его в HDL Bencher. Результат один: двунапрвленные сигналы помечаются как неопределённые Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба А вы точно все правильно делаете(все в свое время). Попробуйте поставить PullUP на шину, может поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexandr 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба Задавайте начальные значения сигналов типа signal DQ: std_loigc :='Z'; sgnal temp: std_logic :='0'; В VHDL коде когда линии настроены на прием необходимо писать нечто вроде DQ<='Z'; if rising_edge(clk) then temp<= DQ; end if; Т.е. когда вы собираетесь читать из inout, то ее сначала необходимо перевести в 3-е состояние. В неопределенное состояние сигналы попадают если оба источника настроены как выходы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gab 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба Я присоединяюсь к вопросу. Но для Verilog. Как описать на нём разъём PCI?. Когда проект был маленьким и можно было по частям проверять -- это было одно, но когда приходится моделировать работу драйвера, да ещё DMA сверху... это ОООО.... Ужас!!! 8( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rok 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба Товарищи!!!Господа!!!Колеги!!!! Расскажите как вы тестируете VHDL описания схем с двунаправленными портами(inout). Я пробовал писать TestBench, пробовал набивать его в HDL Bencher. Результат один: двунапрвленные сигналы помечаются как неопределённые <{POST_SNAPBACK}> Да была такая проблема, давно правда. Шину ИСА запускал. Так вот помню шину данных (inout) необходимо на время записи (на енту самую шину) переводить в Z-состояние (в тестбенче ест-но). Ну и в самом коде было примерно так: SD <= data when wr_ena = '1' else "ZZZZZZZZ"; Все работало Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anatol1983 0 12 апреля, 2005 Опубликовано 12 апреля, 2005 · Жалоба Всем большое спасибо!!! Вроде разобрался Я присоединяюсь к вопросу. Но для Verilog. Как описать на нём разъём PCI?. Когда проект был маленьким и можно было по частям проверять -- это было одно, но когда приходится моделировать работу драйвера, да ещё DMA сверху... это ОООО.... Ужас!!! 8( <{POST_SNAPBACK}> Привожу VHDL модель которая у меня заработала. TestBench набивал в HDL Bencher, когда надо читать из (inout) шину переводил в Z-состояние. gab я Verilog пока не выучил так, что могу предложить только это... entity qwqq is Port ( clk,r : in std_logic; q : inout std_logic_vector(3 downto 0)); end qwqq; architecture Behavioral of qwqq is Signal DF:std_logic_vector(3 downto 0); begin Q<=DF when r='0'else "ZZZZ"; process(clk) begin if (clk'event and clk='1')then if r='1'then DF<=Q;end if; end if; end process; end Behavioral; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Genn 0 23 апреля, 2005 Опубликовано 23 апреля, 2005 · Жалоба Вопрос моделирования двунаправленных сигналов (с использованием ModelSim) я решаю следующим образом. Предположим, имеется модуль с контактами типа "inout". Для него создается тестовый файл (testbench) в котором подключается испытуемый модуль. Естественно, испытуемый модуль подключается к тестовым сигналам. Состояние сигналов, подключаемых к выводам компонента типа "inout" задается только в одном процессе(тестовом). Когда сигналу рисваивается 'Z' - он работает как выход. Ниже приводится пример (испытание шинного формирователя). LIBRARY ieee; USE ieee.std_logic_1164.ALL; USE ieee.numeric_std.ALL; ENTITY module_test IS END module_test; ARCHITECTURE behavior OF module_test IS ---- tested component declaration ---- COMPONENT bus_form PORT( A : INOUT std_logic_vector(7 downto 0); B : INOUT std_logic_vector(7 downto 0); DIRECT : IN std_logic -- when '1' A=>B else B=>A ); END COMPONENT; signal A_t : std_logic_vector(7 downto 0); signal B_t : std_logic_vector(7 downto 0); signal DIRECT_t : std_logic; BEGIN ---- tested component installation ---- uut: bus_form PORT MAP(A => A_t, B => B_t, DIRECT => DIRECT_t,); tb : process begin -- First test A=>B -- A_t <= "01010101"; B_t <= "ZZZZZZZZ"; DIRECT_t <= '1'; wait for 500 ns; -- pause -- Second test B=>A -- A_t <= "ZZZZZZZZ"; B_t <= "00110011"; DIRECT_t <= '0'; wait for 500 ns; -- pause end process; END; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petermafs 0 27 апреля, 2005 Опубликовано 27 апреля, 2005 · Жалоба Это все хорошо конечно, НО а если у меня двунаправленный CE? Как мне тогда писать? Я для начала его не читаю, а сам выставляю просто CE<='1'; и ничего не выходит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 27 апреля, 2005 Опубликовано 27 апреля, 2005 · Жалоба Я чего-то не совсем понял, что вы хотите? Может это поможет. test.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kas 0 17 мая, 2005 Опубликовано 17 мая, 2005 · Жалоба Товарищи!!!Господа!!!Колеги!!!! Расскажите как вы тестируете VHDL описания схем с двунаправленными портами(inout). Я пробовал писать TestBench, пробовал набивать его в HDL Bencher. Результат один: двунапрвленные сигналы помечаются как неопределённые <{POST_SNAPBACK}> В модуле тестового воздействия можно ''H" и "L" использовать вместо "1" и "0", если сигнал описан как std_logic. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andre_2006 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба А зачем симулить inout. Можно создать модуль с шиной input и с шиной output, прекрасно отсимулить , а в вышестоящем модуле по иерархии объединить их в inout. Единственное, что нужно, это шину output сделать с третьим состоянием. Типа такого output [7:0] bus; reg [7:0] data; reg dir; assign bus=(dir)?data:8'hzz; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Iouri 0 13 июля, 2005 Опубликовано 13 июля, 2005 · Жалоба Kak vi sozdaet test bench, esli ispolzovat. V Xilinx test bench generatore esli vi pishite signal to on zadaetsya v na rising edge, esli chitaetsya t falling edge Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться