|
|
  |
проблема с моделированием в VHDL |
|
|
|
Apr 29 2007, 20:56
|
Группа: Новичок
Сообщений: 3
Регистрация: 29-04-07
Пользователь №: 27 408

|
Злравствуйте. Проблема такая: имеется схема, я делаю описание структурного, регистрового и поведеньческого тела на языке VHDL. Моделирую в среде - ModelSim 6.0a. Потом пишу тест (чтобы правильность функционирования проверить). Далее делаю симуляцию и смотрю сигналы в окне wave. При этом все входные сигналы отображаются правильно. А вот все выходные нулевые! Возможно это известная проблема, и вы занете ее решение. Для конкретности, если понадобиться, могу привести пример своего кода. Всем спасибо.
|
|
|
|
|
Apr 29 2007, 22:14
|
Группа: Новичок
Сообщений: 3
Регистрация: 29-04-07
Пользователь №: 27 408

|
вот описание структурного тела: port(s, c, r: in bit; d: in bit_vector (1 to 4); q1, q2, q3, q4: out bit); end RG4test;
architecture STR of RG4test is component nand2 port(x1, x2: in bit; y: out bit); end component nand2; component inv port(x: in bit; y: out bit); end component inv; component sdcrtt port(s, d, c, r: in bit; q: out bit); end component sdcrtt; signal nc, s1, s2, r1, nr1, nS2: bit; begin d1: inv port map (c, nc); d2: nand2 port map(s, r, s1); d3: nand2 port map(s, s1, s2); d4: nand2 port map(s1, r, r1); d5: inv port map (s2, nS2); d6: inv port map (r1, nR1); d7: sdcrtt port map (ns2, d(1), nc, nr1, q1); d8: sdcrtt port map (ns2, d(2), nc, nr1, q2); d9: sdcrtt port map (ns2, d(3), nc, nr1, q3); d10: sdcrtt port map (ns2, d(4), nc, nr1, q4); end STR; вот тест к нему:
entity test_RG4 is end test_RG4;
architecture test_RG4 of test_RG4 is component test_rg4_str is port(s, c, r: in bit; d: in bit_vector (1 to 4); q1, q2, q3, q4: out bit); end component; signal s, c, r: bit; signal d: bit_vector(1 to 4); signal q1_str, q2_str, q3_str, q4_str: bit; begin dstr: test_rg4_str port map(s, c, r, d, q1_str, q2_str, q3_str, q4_str); p1: process begin s <= '0' after 0 ns, '1' after 100 ns, '0' after 200 ns, '1' after 300 ns, '0' after 400 ns, '1' after 500 ns, '0' after 700 ns; r <= '0' after 0 ns, '1' after 100 ns, '0' after 200 ns, '1' after 300 ns, '0' after 400 ns, '1' after 500 ns, '0' after 600 ns, '1' after 700 ns; c <= '0' after 0 ns, '1' after 400 ns, '0' after 600 ns; d(1) <= '1' after 0 ns, '0' after 100 ns; d(2) <= '1' after 0 ns, '0' after 100 ns; d(3) <= '1' after 0 ns, '0' after 100 ns; d(4) <= '1' after 0 ns, '0' after 100 ns; wait for 800 ns; end process; end test_RG4; таблица истиности элемнта такая: s r c q1 q2 q3 q4 s=r s=r / d1 d2 d3 d4 s=r s=r 0,1,\ q1 q2 q3 q4 1 0 x 1 1 1 1 0 1 x 0 0 0 0
то есть, мне кажеться я правильно форимирую входные сигналы, для того чтобы получить на выходе нечто отличное от нуля. Или это не так?
|
|
|
|
|
Apr 29 2007, 23:18
|
Группа: Новичок
Сообщений: 3
Регистрация: 29-04-07
Пользователь №: 27 408

|
 вот оно: entity RG4test is port(s, c, r: in bit; d: in bit_vector (1 to 4); q1, q2, q3, q4: out bit); end RG4test; architecture POV of RG4test is begin process(s, r, c, d(1), d(2), d(3), d(4)) begin if(s = '1') and(r = '0') then q1<='1'; q2<='1';q3<='1';q4<='1'; elsif (s = '0') and(r = '1') then q1<='0';q2<='0';q3<='0';q4<='0'; end if; if((s = '0') and(r = '0') and (c = '0') and not(c'stable)) then q1<=d(1); q2<=d(2);q3<=d(3);q4<=d(4); end if; end process; end POV; Еще я не подключаю никаких библиотек (ну во -первых компилирпуется и без них... ). Но при попытке включить в код такую строку - library lib; use lib.all; возникает ошибка - Failed to access library 'lib' at "lib". Попыталась прилинковать библиотеки (Compile->Link) тоже возникает ошибка - No moduleinfo.sc files were found in the visible design libraries. таблица истиности: Код s r c q1 q2 q3 q4 s=r s=r / d1 d2 d3 d4 s=r s=r 0,1,\ q1 q2 q3 q4 1 0 x 1 1 1 1 0 1 x 0 0 0 0 Спасибо
|
|
|
|
|
Apr 29 2007, 23:38
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
Цитата(zotowa @ Apr 30 2007, 00:18)  таблица истиности: Код s r c q1 q2 q3 q4 s=r s=r / d1 d2 d3 d4 s=r s=r 0,1,\ q1 q2 q3 q4 1 0 x 1 1 1 1 0 1 x 0 0 0 0 может кто-нибудь заодно расскажет что вот это значит  ? c / - это стабильный тактирующий сигнал или его передний фронт? ,a c 0,1,\ - это, блин что? переход из нуля в еденицу или просто любая смена сигнала(любой фронт)? итого, товарищ студентка, что в конечном итоге сxема-то должна делать (словами)? а то ваших преподавателей так много(и у каждого своя нотация) - а нас так мало
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|