|
Плата захвата, как лучше сделать? |
|
|
|
May 18 2005, 20:12
|

Участник

Группа: Свой
Сообщений: 46
Регистрация: 26-09-04
Пользователь №: 721

|
имеем поток 16-ти разрядных слов частотой 50 МГц Необходимо по получению некой команды "захватить" эти данные во внутренний буфер, из которого потом эти данные надо будет как-то считать (при считывании скорость некритична). "Захват" данных продолжается в течении 1 с, из чего путём несложных вычислений заключаем, что требуемый объём буфера 100 мегабайт. Как бы это всё покрасивее организовать?
Пока думаю поставить две микросхемы 16-ти разрядной SDRAM-памяти. Сначала пишем полную страницу в первую микросхему (1024 слова), потом - пишем полную страницу во вторую, а для первой в это время выдаём команды подзарядки, обновления ACTIVATE, затем то же - со второй и т.д.
какие есть ещё решения? с SDRAM-памятью раньше не работал, поэтому весьма слабо представляю, что ещё можно придумать
|
|
|
|
|
 |
Ответов
|
May 19 2005, 15:00
|
Местный
  
Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367

|
Вот какие варианты решения задачи пришли в голову:
1. Если требуется все реализовать на опорной частоте входного потока (т. е. 50МГц), тогда ставим два микросхемы SDRAM. Поочередно пишем то в одну, то в другую. Пока в одну пишем, другую регенерируем и наоборот. При этом не обязательно переключаться на другую микросхему после записи одной страницы. Главное здесь не превысить максимально допустимое время между последовательными регенерациями. Например, можем писать в одну до истечения максимально допустимого времени между циклами регенерации, параллельно циклически (непрерывно) производим полную регенерацию (всех строк всех банков) другой микросхемы. Еще лучше: делим максимально допустимый период регенерации для данного типа микросхемы (часто 64ms) на общее количество строк в микросхеме. Получаем время, через которое будем переключать между микросхемами и выполнять команду регенерации. Т. е. цикл доступа к одной микросхеме будет состоять из (к примеру): открываем все банки, последовательно пишем данные (в разные банки и разные строки), далее закрытие всех банков (PrechargeAll), далее команда регенерации (AutoRefresh). Смена микросхемы происходит перед закрытием всех банков текущей микросхемы. Вообщем, управление микросхемами осуществляется с наложением команд. Параллельно с принятием потока, можно умудряться еще и читать из микросхемы, в которую в данный момент не идет запись входного потока (разумеется, каналы управления и данных микросхем разделены). Схема хороша с точки зрения экономии энергии и не требует никаких буферов FIFO. Кстати, пока микросхема не используется ее можно еще и в SelfRefresh загнать. Данные храняться и энергия экономиться. 2. Если использовать одну микросхему, то придется поднимать тактовую частоту и ставить буфера FIFO. Проще сделать 100МГц и синхронно к опорной, тогда не придется мудрить с полностью асинхронными буферами FIFO. Можно найти и время для параллельного чтения, но потребуется механизм арбитража. Сложность управления памятью соответственно возрастет. Потребление схемы будет выше.
Вот. Удачи.
|
|
|
|
|
May 20 2005, 09:53
|
Местный
  
Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608

|
Цитата(oval @ May 19 2005, 08:00) ставим два микросхемы SDRAM. Поочередно пишем то в одну, то в другую. Пока в одну пишем, другую регенерируем и наоборот. Если писать по адресам подряд, может регенерить и совсем не надо. Смысл регенерации в обращении по всем адресам в одном направлении. Или что то изменилось?
|
|
|
|
|
May 20 2005, 10:36
|

Местный
  
Группа: Свой
Сообщений: 208
Регистрация: 22-11-04
Пользователь №: 1 190

|
Цитата(alexf @ May 20 2005, 12:53) Если писать по адресам подряд, может регенерить и совсем не надо. Смысл регенерации в обращении по всем адресам в одном направлении. Или что то изменилось? А как же пресловутые 64мс? Хотя ещё есть такой параметр: Auto Refresh Modes. Вы как раз его имеете ввиду?
|
|
|
|
Сообщений в этой теме
Vincent Vega Плата захвата May 18 2005, 20:12 tonjo Интересно для какой памяти проводился расчет? По-м... May 19 2005, 06:06 Vincent Vega Цитата(tonjo @ May 19 2005, 09:06)Интересно д... May 19 2005, 06:24  tonjo Цитата(Vincent Vega @ May 19 2005, 09:24)Памя... May 19 2005, 07:07 Serega Doc Мне кажется что достаточно и одной микросхемы кото... May 19 2005, 07:02 Volkov Для этой цели использую FIFO для буферирования вхо... May 19 2005, 13:22 Serega Doc ЦитатаSDRAM можно разбить на два буфера. В один пи... May 19 2005, 13:51 Volkov Цитата(Serega Doc @ May 19 2005, 17:51)Цитата... May 19 2005, 16:16 Genn Если дальнейшая обработка будет производиться в ПЭ... May 19 2005, 18:28
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|