cornflyer 0 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба Большие проекты для ПЛИС обычно разбиваюца на отдельные части - компоненты. Реализацию пишут, например, на VHDL. В моем случае я сперва разработал архитектуру проекта, соединил "кубики" в графическом редакторе ISE 7. Написал на VHDL код для этих "кубиков". Один из компонентов проекта - ресивер для RS-232. Я сделал ему клок 50 МГц чтобы не мучаца с ошибками. Остальные компоненты у меня раюотают от частоты 20МГц, т.к. у меня внешнее АЦП работает от 20МГц. Возникла проблема синхронизации данных. Клок сделал как написано в мануале - взял DCM, вытацил из него через буфферы BUFG два клока - 50 МГц и 20 МГц, завел feedback (цепь обратной связи для синхронизации). Но полезли глюки ))) вот сижу и думаю, как бы сделать синхронизацию. Есть идеи!? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба Этот вопрос рассматривался в теме: метастабильность. http://electronix.ru/forum/index.php?showt...%ED%EE%F1%F2%FC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 200 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба Тут есть два варианта: либо делайте все на 50 МГц, либо ставьте синхронизаторы и FIFO для передачи данных и управляющих сигналов между блоками, работающими на разных частотах. Поищите на форуме по ключевым словам "синхронизатор", "метастабильность". Эта тема уже не раз обсуждалась в разных вариациях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба А почему приемник rs232 от 20 мГц не запустить. Какая разница для него, 50 или 20. И проблем не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cornflyer 0 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба Может из одного DCM'а сгенерить 20МГц и 40МГц. Может тогда они будут синхронны? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба Они будут синхронны. И наверняка с прогнозируемыми временами установки фронтов друг относительно друга. Я одного не пойму. У Вас несущая 20 мГц. Все модули сидят на ней. Почему нельзя на нее модуль rs232 посадить. О каких погрешностях Вы говорите. Нет разницы что 20, что 40, что 50 мГц. Только разрядностью счетчика отличается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cornflyer 0 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба 20 МГц - это значит длительность одного бита на шине будет измеряца квантами по 50 ns. У меня скорость передачи максимальна - 115200 бит в секунду, т.е. длительность одного бита на шине = 8.680 мкс. 8.680/50=174 клока будет длица один бит. Частота получица 174*50=8.700 мкс. Видишь частота разная. Будет копица ошибка, в конце байта она будет 500 нс. По спецификации допустимо 2-3% от периода байта, кажеца... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 11 июля, 2006 Опубликовано 11 июля, 2006 · Жалоба По какой это спецификации. Если это UBRR для микроконтроллеров, так они жестко привязаны к своей формуле. Если гука открыть, там речь о скорости идет. 20 мГц поделить на 174 это 114942 бод. Меньше 1% получается. Действительно на 4 мкс потеряете 500 нс. (если от середины считать) 3.5 мкс еще останется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cornflyer 0 12 июля, 2006 Опубликовано 12 июля, 2006 · Жалоба да, наверное лучший вариант - работать с 20МГц. ща попробую будет ли девайс работать, если по фронту выставлять данные, а по спаду - читать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 12 июля, 2006 Опубликовано 12 июля, 2006 · Жалоба да, наверное лучший вариант - работать с 20МГц. ща попробую будет ли девайс работать, если по фронту выставлять данные, а по спаду - читать? Лучше избегать таких решений, если не требуется еще большая производительность. Принцип синхронного дизайна предусматривает работу либо от фронта либо от спада. Во первых так вреде синтезаторам проще Во вторых у Вас точно не будет глюков, если скважность тактовой будет плавать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cornflyer 0 12 июля, 2006 Опубликовано 12 июля, 2006 · Жалоба я же использую DCM для генерации стабильного клока. К тому же я испоользую Spartan 3, а у него в мануале написано, что он поддерживает DDR. Значит можна использовать оба фронта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 3 12 июля, 2006 Опубликовано 12 июля, 2006 · Жалоба О каких данных идет речь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cornflyer 0 12 июля, 2006 Опубликовано 12 июля, 2006 · Жалоба данные - цифровые сигналы на шинах по фронту - грузяца всякие спец-регистры по спаду клока - вычисляюца промежуточные данные опять по фронут клока - в спец-регистры засылаюца промежуточные данные по спаду клока - вычисляюца следующие промежуточные данные и т. д. там у меня несколько FSM вроде все работает!!!!!!!!!!! ура!!!!!!!!!!!!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexB 0 14 июля, 2006 Опубликовано 14 июля, 2006 (изменено) · Жалоба я же использую DCM для генерации стабильного клока. К тому же я испоользую Spartan 3, а у него в мануале написано, что он поддерживает DDR. Значит можна использовать оба фронта Советую Вам внимательно прочесть страницы 37 и 38. ( http://direct.xilinx.com/bvdocs/appnotes/xapp462.pdf ) Изменено 14 июля, 2006 пользователем AlexB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться