aat_81 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Всем доброго времени суток. Может быть кто то сталкивался с такой задачей и сможет помочь с оптимальным решением. Есть две шины данных. Каждая из шин синхронизируется своим клоком, причем частоты этих клоков равны, но они сдвинуты по фазе. Сдвиг считаем неизвестным и может варьироваться от нуля до пи. Требуется объединить две шины в одну, ну и как следствие привести их к одному клоку. У кого какие идеи есть по данному вопросу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MM_Andrey 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Используйте FIFO, и будет Вам счастье. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Всем доброго времени суток. Может быть кто то сталкивался с такой задачей и сможет помочь с оптимальным решением. Есть две шины данных. Каждая из шин синхронизируется своим клоком, причем частоты этих клоков равны, но они сдвинуты по фазе. Сдвиг считаем неизвестным и может варьироваться от нуля до пи. Требуется объединить две шины в одну, ну и как следствие привести их к одному клоку. У кого какие идеи есть по данному вопросу? А что за шины? И как такое вообще случилось? PLL может сгенерить два клока, причем с заданым углом между ними. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aat_81 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба А что за шины? И как такое вообще случилось? PLL может сгенерить два клока, причем с заданым углом между ними. Обычных две восьмибитных шины. Дело в том что это данные с внешнего для FPGA чипа поэтому поправить ничего к сожалению нельзя. Да мне вроде как два клока то не нужно...наоборот нужно сделать один клок и одну шину данных. Используйте FIFO, и будет Вам счастье. С таким же успехом Вы могли сказать напиши нужный код и будет тебе счастье. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Обычных две восьмибитных шины. Дело в том что это данные с внешнего для FPGA чипа поэтому поправить ничего к сожалению нельзя. Да мне вроде как два клока то не нужно...наоборот нужно сделать один клок и одну шину данных. Ну так и работать от клока внешней FPGA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aat_81 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Ну так и работать от клока внешней FPGA. Эти данные нужно передать третьему чипу который на вход принимает один клок. Поэтому объединять все таки нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evgforum 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Эти данные нужно передать третьему чипу который на вход принимает один клок. Поэтому объединять все таки нужно. На выходе должна получиться 8-разрядная шина с удвоенным клоком? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aat_81 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба На выходе должна получиться 8-разрядная шина с удвоенным клоком? Нет. На выходе должна быть шина с разрядностью двух шин(допустим на вход идут две восьмибитных соответственно на выходе должны быть одна шестнадцатибитная). С клоком тоже думаю понятно частота должна быть такой же как на входе. Странно как забыл это указать когда создавал тему... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Нет. На выходе должна быть шина с разрядностью двух шин(допустим на вход идут две восьмибитных соответственно на выходе должны быть одна шестнадцатибитная). С клоком тоже думаю понятно частота должна быть такой же как на входе. Странно как забыл это указать когда создавал тему... Тогда попробуйте синтезировать два 8и битных FIFO на пару слов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Есть две шины данных. Каждая из шин синхронизируется своим клоком, причем частоты этих клоков равны, но они сдвинуты по фазе. Сдвиг считаем неизвестным и может варьироваться от нуля до пи. Требуется объединить две шины в одну, ну и как следствие привести их к одному клоку. Кроме двух FIFO посоветую следующее: пересинхронизировать одну из шин на другой клок. Законстрейнить это исходя из худшего соотношения фаз. Т.е. принять данные в регистры каждый на своем клоке, затем одну из шин перебросить на другой клок. Запас в 180 градусов у вас есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aat_81 0 23 марта, 2011 Опубликовано 23 марта, 2011 · Жалоба Methane, dvladim Спасибо, думаю это то что мне нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 24 марта, 2011 Опубликовано 24 марта, 2011 · Жалоба У кого какие идеи есть по данному вопросу? У меня на сайте в статьях "Краткий Курс HDL", смотрите раздел о CDC. Там перечислены все варианты... Удачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanpa 0 5 апреля, 2011 Опубликовано 5 апреля, 2011 · Жалоба Насколько я понимаю, сдвиг будет фиксированным? для выравнивания сдвигов можно воспользоваться задержками в ногах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LV26 0 5 апреля, 2011 Опубликовано 5 апреля, 2011 · Жалоба для выравнивания сдвигов можно воспользоваться задержками в ногах Поясните Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scorp 0 10 апреля, 2011 Опубликовано 10 апреля, 2011 · Жалоба Обе шины защёлкиваем в 16-битный регистр клоком первой шины. Накладываем ограничение на вход второй шины (задержка в полпериода относительно клока) set_input_delay -max [expr $T/2] -clock Clk1 [get_ports Data2] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться