SunnyAngel 0 25 июня, 2007 Опубликовано 25 июня, 2007 · Жалоба Изложу идею вопроса - есть два процесса, работающих на разных частотах - 3,8 и 24 МГц. Тот, который медленнее (1 процесс), выдает данные второму, а он в свою очередь на основании входных данных создает воздействие на выход. Абсолютно уверена в работоспособности кодов этих процессов по-отдельности. Каждый из процессов работает отдельно в симуляции, при соединении и прошивке в плату - не работает. Предполагаю, что проблема с передачей данных между ними. ps: Привести кусок кода не могу - "два процесса" - это идея. их там совсем не два :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vLx0F 0 25 июня, 2007 Опубликовано 25 июня, 2007 · Жалоба Изложу идею вопроса - есть два процесса, работающих на разных частотах - 3,8 и 24 МГц. Тот, который медленнее (1 процесс), выдает данные второму, а он в свою очередь на основании входных данных создает воздействие на выход. Абсолютно уверена в работоспособности кодов этих процессов по-отдельности. Каждый из процессов работает отдельно в симуляции, при соединении и прошивке в плату - не работает. Предполагаю, что проблема с передачей данных между ними. ps: Привести кусок кода не могу - "два процесса" - это идея. их там совсем не два :crying: Стандартный синхронизатор - два D-триггера, работающих на частоте принимающего процесса. На D-вход первого подаётся управляющий сигнал другого процесса, сигнал снимается с q-выхода второго трг. Также необходимо внимательно следить за передачей сигнала от более высокочастотного процесса к менее. Т.к. , если такой сигнал будет меньше ~260nS, то в процессе с 3.8MHz он может быть пропущен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SunnyAngel 0 25 июня, 2007 Опубликовано 25 июня, 2007 · Жалоба Стандартный синхронизатор - два D-триггера, работающих на частоте принимающего процесса. На D-вход первого подаётся управляющий сигнал другого процесса, сигнал снимается с q-выхода второго трг. Спасибо, попробую. Запущу, отлажу - напишу. Также необходимо внимательно следить за передачей сигнала от более высокочастотного процесса к менее. Т.к. , если такой сигнал будет меньше ~260nS, то в процессе с 3.8MHz он может быть пропущен. тут проблем нет - сигнал передается от медленного процесса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vLx0F 0 25 июня, 2007 Опубликовано 25 июня, 2007 · Жалоба тут проблем нет - сигнал передается от медленного процесса. ... а он в свою очередь на основании входных данных создает воздействие на выход. Тут, по смыслу, несколько другое сказано... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба дело в метастабильности вестимо. часть таких проблем лечиться синхронизаторами. другая часть протоколом + синхронизаторы. Как смотрите статью. ЗЫ. также рекомендую посмотреть реализацию eth_mac от Igor Mohor. модуль eth_wishbone. по сути 50% модуля сплошные синхронизаторы их разных клок доменов. Причем работают синхронизаторы модуля при передачи сигналов в обоих направлениях : fsrc > fdst и fsrc < fdst. К сожалению эти синхронизаторы не описаны в статье. 310388.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yayaya 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба подскажите пожалуйчта еще ссылки на подобные документы где можно найти доки по : 1) асинхронной передаче данных с подтверждениями (handshaking) 2) синхронизации сингналов при разных цлк доменах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tocha 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба подскажите пожалуйчта еще ссылки на подобные документы 2) синхронизации сингналов при разных цлк доменах http://www.chipdesignmag.com/display.php?articleId=32 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 35 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба дело в метастабильности вестимо. часть таких проблем лечиться синхронизаторами. другая часть протоколом + синхронизаторы. Как смотрите статью. ЗЫ. также рекомендую посмотреть реализацию eth_mac от Igor Mohor. модуль eth_wishbone. по сути 50% модуля сплошные синхронизаторы их разных клок доменов. Причем работают синхронизаторы модуля при передачи сигналов в обоих направлениях : fsrc > fdst и fsrc < fdst. К сожалению эти синхронизаторы не описаны в статье. А можно тут пример привести на VHDL рабочего двунаправленного синхронизатора? Т.е пинг-понг события из одного клокового домена в другой и обратно? А то во всех учебниках синхронизатор в графике рисуют, а в VHDL оно потом криво работает. И еще вопрос. Встречал упоминание о трехтриггерных синхронизаторах. В каком случае их оправданно использовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yayaya 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба http://www.chipdesignmag.com/display.php?articleId=32 а немогли бы Вы дать сслыки документы на handshaking? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tocha 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба а немогли бы Вы дать сслыки документы на handshaking? Мог бы - дал бы :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 50 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба Встречал упоминание о трехтриггерных синхронизаторах. В каком случае их оправданно использовать? Двухтриггерный синхронизатор (как, впрочем, и трехтриггерный) не гарантирует от проблем с метастабильностью - он лишь существенно понижает вероятность сбоя из-за метастабильности - увеличивает MTBF. Трехтриггерный еще улучшает ситуацию по сравнению с трехтриггерным. В особо ответственных местах имеет смысл ставить трехтриггерные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RKOB 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба На мой взгляд самый верный способ через фифо! или же ввести синхронизирующий сигнал (синхронизатор) между двумя процессами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба классика жанра : http://www.sunburst-design.com/papers/ там в таблице документов видно куда щёлкать вообще-то вопрос неоднократно поднимался - смотрите по форуму Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladz 0 26 июня, 2007 Опубликовано 26 июня, 2007 · Жалоба Вот еще ссылка по теме Moving Data Across Asynchronous Clock Boundaries Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gate 0 27 июня, 2007 Опубликовано 27 июня, 2007 · Жалоба И еще cdc_wp.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться