makc 235 13 июня, 2007 Опубликовано 13 июня, 2007 · Жалоба Приветствую! Сегодня попробовал промоделировать модуль, который нормально работал с Questasim/Modelsim начиная с версии 6.0 и выше. Обнаружилась проблема - корректно транслируемый код (ни одного предупреждения) работает совершенно некорректно, а именно не функционирует сдвиговый регистр следующего вида: STAGES: process( CLK ) begin if rising_edge(CLK) then iINPUT_SYNC_STAGE <= DIN; iSTAGES <= iSTAGES(0) & iINPUT_SYNC_STAGE; end if; end process; iSTAGES - массив размером 2, начальное заполнение - '1'. Симптомы такие: при изменении входа DIN из '1' в '0' происходит один сдвиг, т.к. значение iSTAGES становится равным "10" и на этом процесс останавливается. Если изменить DIN обратно из '0' в '1', то происходит еще два сдвига, при этом iSTAGES проходит через значение "00" и остается равным "01". Т.е. сдвиговый регистр не работает. Методом проб и ошибок было установлено, что если вместо iSTAGES(0) задать iSTAGES(0 downto 0), то все функционирует нормально, но ведь раньше работало и без таких извращений! Кто тут неправ: я или новый QuestaSim? PS: Код примера в приложении. test_sync.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 13 июня, 2007 Опубликовано 13 июня, 2007 · Жалоба Я vhdl не знаю. у меня вот так работает. signal iSTAGES : std_logic_vector(1 downto 0) := (others => INIT); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 235 13 июня, 2007 Опубликовано 13 июня, 2007 · Жалоба Я vhdl не знаю. у меня вот так работает. signal iSTAGES : std_logic_vector(1 downto 0) := (others => INIT); В какой версии работает? Дело в том, что этот вариант точно так же не работает в версии 6.3. :( Только что попробовал этот пример в 6.2h - превосходно работает. Интересно, что они такое в 6.3 сломали, что такой примитив начал вести себя подобным образом? :07: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 235 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба Вышел QuestaSim 6.3a - в нем вышеописанной проблемы нет. Исправили. Ощущения пока сугубо положительные. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться