Yaputra 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба Есть последовательная шина: bus_data и bus_clock, достаточно быстрая, частота bus_clock 20 МГц. И есть ПЛИС Cyclone IV с тактовой частотой 25 МГц. Есть у кого-нибудь опыт написания на verilog модуля чтения данных в регистр по такой шине с тем, чтобы не нарушать синхронности дизайна от внутренней частоты ПЛИС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба Есть последовательная шина: bus_data и bus_clock, достаточно быстрая, частота bus_clock 20 МГц. И есть ПЛИС Cyclone IV с тактовой частотой 25 МГц. Есть у кого-нибудь опыт написания на verilog модуля чтения данных в регистр по такой шине с тем, чтобы не нарушать синхронности дизайна от внутренней частоты ПЛИС? У меня на сайте "Краткий Курс", глава об асинхронных частотах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба 1 Используйте FIFO или 2 Увеличьте внутрикристальную частоту (там же есть умножители частот?) и используйте SPI или UART. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба 2 Yaputra Тут у большинства есть опыт написания SPI или UART на плис, и что дальше? Ваша "последовательная шина" - это стандарт какой то, или "самоделка" ? Если первое - не мешало бы назвать его, если последнее - где картинки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaputra 0 19 июля, 2014 Опубликовано 19 июля, 2014 (изменено) · Жалоба Самоделка, самый обычный протокол: по восходящему фронту bus_clk защелкиваем бит с шины bus_data. Изменено 19 июля, 2014 пользователем Yaputra Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба 2 Yaputra а какая синхронизация для приёмника предусмотрена ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaputra 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба не понял вопроса... Приёмник принимает bus_clk с частотой 20 МГц. В самой ПЛИС, где он расположен, есть своя внутренняя тактовая частота 25 МГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба 2 Yaputra Как приёмник узнает когда начинается байт? Потому как приёмник и передатчик могу стартовать в любой момент времени и начало предечи 1го бита в передатчике никак не связана с началом приём 1го бита в приёмнике. Кроме частоты ещё надо знать когда начинается байт, иначе будете собирать мусор хоть и на правильной частоте. Вот здесь описано как работает RS-232 Serial Protocol. Из приведённой там картинки видно, что передача 1 байта занимает байт+чётность+старт-бит+стоп-бит, при чём старт-бит всегда 0, стоп-бит всегда в 1. Это сделано для того, чтобы приёмник по "перепаду" (утрируя) стоп-старт бита мог определить когда у него начинается байт. Детально реализацию синхронизации в UART можете глянуть на OpenCores Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба тут все же ближе к SPI, так как есть данные и частота. На самом деле пока возился с некими проблемами в SPI подсказали весьма остроумное решение. Берете стандартное FIFO (IP Core), делаете ему 1 битные входные данные, и клок данных с частоты SPI, выход может быть с любой частотой, и даже можно сразу сделать много битный. Идеальный SPI на готовых модулях и частоты все сопряжены. Ну конечно же нужен сигнал синхронизации.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 июля, 2014 Опубликовано 19 июля, 2014 · Жалоба Самоделка, самый обычный протокол: по восходящему фронту bus_clk защелкиваем бит с шины bus_data. мой совет, "велосипед" не изобретать, а взять за основу какой-то готовый интерфейс, например SPI - наиболее подходящий для Вас, судя по представленным циклограмам... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RamZoom 0 16 августа, 2014 Опубликовано 16 августа, 2014 · Жалоба По двум линиям вряд-ли получится принимать и распознавать пакеты данных, поэтому нужна 3 линия управляющего сигнала. Похожим примером в программе Квартус2 в разделе Insert Template есть сдвиговый регистр после доработки подойдет для вашего проекта Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 17 августа, 2014 Опубликовано 17 августа, 2014 · Жалоба даже по 1 линии получается создать полноценный 2 направленный протокол, при этом адресуемый с автоматическим определением числа устройств на линии.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться