|
|
  |
Как оценить скорость FPGA, подходил ли она мне |
|
|
|
Mar 13 2008, 13:58
|

Частый гость
 
Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593

|
Цитата(DmitryR @ Mar 13 2008, 17:16)  Так. 32 линии по 600 мегабит = 64 разряда памяти по 300 мегабит, т.е DDR2 работает на 150 МГц. Вроде успеет, причем даже в медленном speedgrade. Однако приготовьтесь настраивать програмируемую задержку частоты, по которой принимается LVDS - у нас иначе не получалось. Впрочем, без нее такая скорость не получалась и на Virtex. DDR2 успеет, я понимаю и есть пример реализации DDR2 400мегабит на Spartan3A. Но пособна ли Spartan3 принять данные 600 мегабит не в DDR режиме? Это главный вопрос. Если в общем, то план такой: 1. Сделать 64-х битный буфер, и через такт ложить пришедшие 32 бита, сначала в первую часть буфера потом во вторую, т.о. на выходе получу через такт (т.е. 300МГц) 64 бита. 2. Далее я уже эти 64 бита буду в DDR2 писать, тут скорости уже хватает Та вот по 1-му пункту успеет Spartan3 ? Цитата Другой вопрос - что потом с этими записанными в память данными потом делать? Ну как, что делать, обрабатвать От меня данные просят, насчет дальнейшей обработки пока молчат.
|
|
|
|
|
Mar 13 2008, 14:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(zuy @ Mar 13 2008, 16:58)  Но пособна ли Spartan3 принять данные 600 мегабит не в DDR режиме? Это главный вопрос. Нет, на это не способен даже Virtex. Но это не проблема - подайте эту 600 МГц частоту на DCM, поставьте ей проперть делить вход пополам сразу (CLKIN_DIVIDE_BY_2=TRUE), а также CLKFEEDBACK=NONE, CLKFX_MULT=2, CLKFXDIV=2 и снимите частоту с CLKFX. Дело в том, что CLK0 не умеет более 280 МГц, а CLKFX умеет 300 даже в медленном speedgrade. Таким образом вы получаете 300 МГц. С помощью нее захватывайте вход как DDR, с помощью моделирования находите значение FIXED PHASE SHIFT для DCM, при котором деленная частота окажется в нужной фазе по отношению к захватываемым данным. Моделируя помните, что у CLKFX джиттер будет около 700 ps. Можно попробовать конечно тупо поделить 600 пополам на триггере, но это ненадежно, может дать локальный перегрев, да и фазу двигать все равно надо. Это короче last chance. Цитата(zuy @ Mar 13 2008, 16:58)  Ну как, что делать, обрабатвать От меня данные просят, насчет дальнейшей обработки пока молчат. Так вы сразу прикиньте их первые слова, когда они молчать перестанут. Первыми словами будет просьба прочитать эти данные обратно. Если обработка идет пакетно, то есть сначала накапливаются данные, а потом неспешно обрабатываются - это нормально. Если же обработка должна идти в реальном времени - то надо сначала, немедленно после захвата обработать данные, иначе смысл гонять их туда-сюда? Вы можете просто не успеть: 200 МГц - это пиковая скорость работы DDR2 на Spartan-3A, а вам потребуется 150 туда и 150 оттуда, IMHO запас небольшой.
|
|
|
|
|
Mar 13 2008, 16:26
|

Частый гость
 
Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593

|
Цитата(DmitryR @ Mar 13 2008, 18:37)  Нет, на это не способен даже Virtex. Но это не проблема - подайте эту 600 МГц частоту на DCM, поставьте ей проперть делить вход пополам сразу (CLKIN_DIVIDE_BY_2=TRUE), а также CLKFEEDBACK=NONE, CLKFX_MULT=2, CLKFXDIV=2 и снимите частоту с CLKFX. Дело в том, что CLK0 не умеет более 280 МГц, а CLKFX умеет 300 даже в медленном speedgrade. Таким образом вы получаете 300 МГц. С помощью нее захватывайте вход как DDR, с помощью моделирования находите значение FIXED PHASE SHIFT для DCM, при котором деленная частота окажется в нужной фазе по отношению к захватываемым данным. Моделируя помните, что у CLKFX джиттер будет около 700 ps. Ага, вроде понял. Похоже что получается, на макете надо будет попробовать. Насчет обработки. Поговорили, да, режим будет пакетный. На максимальной произвдительности FPGA должна по команде начать собирать данные и ложить в память. Длится это совсем не долго, потом она их по требованию выдает на обработку.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|