|
Прояснить ситуацию, синхронная загрузка регистров по enable |
|
|
|
Mar 17 2008, 06:06
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Вопрос в следующем: есть код который конвертирует последовательность из 8-битного серийного потока (т.е. байтный поток, один байт за другим) в параллельные слова каждые 3 последовательных байта. Т.е. первые 2 байта загружаются в промеж. регистры, затем по третьему байту - все 3 считываются параллельно на выходе в соотв. раскладе. В принципе, все работает в симуляции как надо, но начало работы конвертора динхронизировано с определенным сигналом. Фронт данного enable синхронизирован с фронтом первого релевантного клока. Первый байт данных в потоке синхронизирован тоже по фронту того-же клока, т.е. должен загружаться в первый промеж. регистр по спаду первого клока. Т.е. по фронту первого клока получаем enable, по его спаду должны загрузить первое данное в регистр. Далее все продолжается синхронно, по каждому спаду идет загрузка в цепочку из 2х регистров, по каждому 3ему спаду - считывает параллельное данное. Проблема в следующем: при симуляции вижу получив enable на первом клоке (по его фронту), загрузка не начинается по спаду того-же клока, а только по спаду следующего (второго) клока, т.е. пропускается первый байт потока. Пока не пойму почему. Клок достаточно медленный (примерно 20-25 MHz), 50% duty cycle, симуляция: post-route functional. Вот релевантный кусок кода: Код process(nRST, IN_CLK, DV) --Input FIFO - buffering input RGB sequence begin if nRST = RST_pol or DV = not DV_active then r0 <= x"00"; r1 <= x"00"; RGB_OUT <= x"0000"; elsif IN_CLK'event and IN_CLK = '0' then --FIFO is chain-loaded upon falling edge r0 <= RGB_IN; --G sample (8 bits), 6 MSB bits will be picked r1 <= r0; --R sample (8 bits), 5 MSB bits will be picked if out_load_en = '1' then --loading the output RGB buffer (parallel RGB) RGB_OUT <= r1(7 downto 3) & r0(7 downto 2) & RGB_IN(7 downto 3); end if; end if; end process; Пока не пойму что мешает по получении enable по фронту клока начать загруску по спаду того-же клока...? Спасибо
|
|
|
|
|
 |
Ответов
|
Mar 18 2008, 18:19
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(Саша Z @ Mar 17 2008, 15:26)  Возможно, на практике наверно не проблема как вы и говорите, я-же просто стараюсь придерживаться "книги", посему стараюсь все сигналы участвущие в процессе как входа заность в список чуствительности..  , меньше потом вохможной головной боли... На мой взгляд ключевое непонимание HDL. В список чувствительности процесса заносятся только асинхронные сигналы - сигналы, при изменении которых изменяется выход элемента. Для комбинационных схем - все входные сигналы. Для регистра - асинхронные (клок, асинхронный сброс). Остальные (такие как: синхронный сброс, энэйбл, сигналы влияющие на вход триггера и т.п.) в список чувствительности не вносятся. Цитата(Саша Z @ Mar 18 2008, 09:01)  Шаманство не причем, не обязательно сразу принимать в штыки даже вопросы начального уровня  , конкретно насчет попытки задержки клока - я не читал об этом в книгах, так-что их обвинять не могу, это моя додумка, видимо не самая удачная ввиду малого опыта. На свою настольную книгу (VHDL for logic synthesis by Andrew Rushton) жаловаться не могу, из нее почерпнул очень многое... Задерживается не клок, а данные и другие сигналы. Триггер ведь не работает мгновенно.
|
|
|
|
|
Mar 18 2008, 19:29
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(dvladim @ Mar 18 2008, 22:19)  На мой взгляд ключевое непонимание HDL. В список чувствительности процесса заносятся только асинхронные сигналы - сигналы, при изменении которых изменяется выход элемента. Для комбинационных схем - все входные сигналы. Для регистра - асинхронные (клок, асинхронный сброс). Остальные (такие как: синхронный сброс, энэйбл, сигналы влияющие на вход триггера и т.п.) в список чувствительности не вносятся. Задерживается не клок, а данные и другие сигналы. Триггер ведь не работает мгновенно.  Да понятно все это, в синхронных процессах в основном так и получалось что кроме клока все остальные сигналы по которым происходили events - были асинхронные. То что задержка идет на сигналах по выходу относительно клока - тоже спору нет, тут все очевидно. Говорилось о другом аспекте - о том как искуственно приимитировать задержку сигналов в test benchе, т.е. имитация входного тайминга. Было предложение задержать входной клок, но все-таки ессно правельней дать задержки на сигналы относительно клока.
|
|
|
|
Сообщений в этой теме
Саша Z Прояснить ситуацию Mar 17 2008, 06:06 dvladim Поведение post-route отличается от функционального... Mar 17 2008, 07:58 Саша Z Цитата(dvladim @ Mar 17 2008, 11:58) Пове... Mar 17 2008, 08:35  sazh Цитата(Саша Z @ Mar 17 2008, 12:35) Спаси... Mar 18 2008, 04:58 Михаил_K Асинхронный сброс еще как может на это влиять.
Воо... Mar 17 2008, 10:32 Саша Z Цитата(Михаил_K @ Mar 17 2008, 14:32) Аси... Mar 17 2008, 11:25 Very_hard Цитатакстати - у себя обнаружил что забыл вставить... Mar 17 2008, 12:03 Саша Z Цитата(Very_hard @ Mar 17 2008, 16:03) Он... Mar 17 2008, 12:26  andrew_b Цитата(Саша Z @ Mar 17 2008, 15:26) С фро... Mar 17 2008, 12:33 Михаил_K Цитата(Саша Z @ Mar 17 2008, 14:25) Работ... Mar 17 2008, 12:40 Саша Z Цитата(Михаил_K @ Mar 17 2008, 16:40) Выр... Mar 17 2008, 12:56  Михаил_K Цитата(Саша Z @ Mar 17 2008, 15:56) Насче... Mar 17 2008, 13:01   Саша Z Цитата(Михаил_K @ Mar 17 2008, 17:01) ИМХ... Mar 17 2008, 13:23  andrew_b Цитата(Саша Z @ Mar 17 2008, 15:56) DV, ... Mar 17 2008, 13:23   Саша Z Цитата(andrew_b @ Mar 17 2008, 17:23) Во ... Mar 17 2008, 14:21    des00 Цитата(Саша Z @ Mar 17 2008, 09:21) Будем... Mar 18 2008, 03:37     Саша Z Цитата(des00 @ Mar 18 2008, 07:37) Прекра... Mar 18 2008, 06:01      des00 Цитата(Саша Z @ Mar 18 2008, 01:01) Шаман... Mar 18 2008, 10:14       Саша Z Цитата(des00 @ Mar 18 2008, 14:14) Да я д... Mar 18 2008, 11:33 Михаил_K Цитата(Саша Z @ Mar 17 2008, 17:21) ОК, с... Mar 17 2008, 15:03 Саша Z Цитата(Михаил_K @ Mar 17 2008, 19:03) Дел... Mar 17 2008, 15:18 Михаил_K Цитата(Саша Z @ Mar 18 2008, 14:33) Кстат... Mar 18 2008, 13:02 Саша Z Да, точно, фраернулся...:-) Mar 18 2008, 13:37 des00 Цитата(dvladim @ Mar 18 2008, 13:19) В сп... Mar 19 2008, 03:25 Михаил_K Вообще-то, дело вкуса. Я, например, чтобы избежать... Mar 19 2008, 07:45 andrew_b Ну коль пошла такая пьянка, спрошу:
Цитата(Михаил... Mar 19 2008, 09:06 Михаил_K Цитата(andrew_b @ Mar 19 2008, 12:06) Ну ... Mar 19 2008, 10:31
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|