|
Прояснить ситуацию, синхронная загрузка регистров по 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 17 2008, 15:03
|
Знающий
   
Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481

|
Цитата(Саша Z @ Mar 17 2008, 17:21)  ОК, спасибо. Хмм, нужно ли синхронизировать входные контроли и данные (syncs + data) в коде по входному клоку перед процессингом как советует Михаил_К или в приципе достаточно довольстоваться тем фактом что они синхронизированны друг с другом во внешнем устройстве ? Мне кажется предложение Михаила логичным... Будем думать как сдвинуть клок в test benchе (создать скажем 5-10 ns tpd входных сигналов относительно входного клока)... Дело в том, что система параметров плиса (я работаю с xilinx) построена так, что временные параметры, относящиеся к вводу-выводу даны для условий, что сигналы принимаются (выдаются) на триггеры, расположенные в IOB. Только руководствуясь этими параметрами можно расчитать правильную передачу данных с внешнего девайса на ПЛИС. В противном случае никто не гарантирует вам правильную работу устройсвта, и убедившись в том, что одно устройство работает, вы можете нарваться на то, что другой экземпляр работать не будет.
|
|
|
|
|
Mar 17 2008, 15:18
|
Знающий
   
Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822

|
Цитата(Михаил_K @ Mar 17 2008, 19:03)  Дело в том, что система параметров плиса (я работаю с xilinx) построена так, что временные параметры, относящиеся к вводу-выводу даны для условий, что сигналы принимаются (выдаются) на триггеры, расположенные в IOB. Только руководствуясь этими параметрами можно расчитать правильную передачу данных с внешнего девайса на ПЛИС. В противном случае никто не гарантирует вам правильную работу устройсвта, и убедившись в том, что одно устройство работает, вы можете нарваться на то, что другой экземпляр работать не будет. Да, наверно вы правы. Я хоть работаю с Lattice, но данный аспект видимо весьма схож у брендов ибо он привязан к FPGA в приципе. Нужно будет напомнить сеи аспекты заглянув в datasheet Латтиса...
|
|
|
|
Сообщений в этой теме
Саша 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 18 2008, 14:33) Кстат... Mar 18 2008, 13:02 Саша Z Да, точно, фраернулся...:-) Mar 18 2008, 13:37 dvladim Цитата(Саша Z @ Mar 17 2008, 15:26) Возмо... Mar 18 2008, 18:19 Саша Z Цитата(dvladim @ Mar 18 2008, 22:19) На м... Mar 18 2008, 19:29 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
|
|
|