|
Статическая синхронная память., Помогите выбрать. |
|
|
|
Jun 7 2005, 06:46
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
В проекте на ПЛИС используется аснихронная память. Минусы очевидны: проект синхронный, для работы с асинхронной памятью приходится городить задержки, из-за чего для достижения скорости приходится задирать тактовую частоту (которая, в общем-то, может быть не слишком высокой для решения всех остальных задач), результирующая скорость все равно невысока, усложняется контроллер памяти и т.д. Требуемый объем - 1М слов (16 бит). Комфортная тактовая на ПЛИС - 100 МГц. (В текущем проекте тактовая 160 МГц, память асинхронная самсунговская на 10 нс, цикл обращения получается 3 такта - 6.25нс * 3 = 18.75нс. Не фонтан  ) Разумным решением, вроде бы, является использование синхронной памяти. Посмотрел у Cypress и IDT. Есть ряд вопросов. У Cypress подходящими выглядят CY7C1382C (1Mx18 Pipelined SRAM) и CY7C1383C (1Mx18 Flow-Through SRAM). Микрухи похожи очень, насколько понял, отличие только в том, что у pipelined выход с памяти идет через регистр, поэтому задержка на такт, но зато можно тактовую более высокую гонять. Поправьте, если ошибаюсь. А главная непонятка следующая: не понял толком, возможо ли там обращение по произвольным адресам на каждом такте. Это очень важно для разрабатываемого устройства - требуется записывать поток по произвольным адресам (формировать кадр). Из диаграммы в даташите следует, что там идет загрузка адреса, потом уже данные пишутся или читаются, и приводится диаграмма для т.н. burst режима, когда внутренний счетчик адреса инкрементит. А нельзя ли просто на каждом такте новый адрес метать? И, кстати, не совсем понял смысл того, что счетчик этот внутренний всего 2-битный, т.е. через 4 обращения надо все равно новый адрес грузить. Зачем весь этот огород, что это дает? В общем, кто имеет реальный опыт, посоветуйте/отсоветуйте? Надо просто иметь снаружи ПЛИС хранилище данных на 1 мегаслово с возможностью писать и читать со скоростью 100 Мслов в секунду, т.е. при 100 МГц тактовой. Это, ессно, при обращениях блоком, задержки на загрузку адреса и переключение шины данных тут не принимаются во внимание. И чтобы, хоть обращение и блоком идет от 64 до 256 слов, можно писать/читать каждое слово по произвольному адресу. Подходит ли для данной задачи, например, CY7C1383C?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
 |
Ответов
|
Jun 7 2005, 08:28
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(andrew_b @ Jun 7 2005, 14:16) Цитата(dxp @ Jun 7 2005, 12:04) А SDRAM, afaik, может бодро только по последовательным адресам метать. Ну возьмите QDR. А что это такое? Где посмотреть? Цитата(Serega Doc @ Jun 7 2005, 14:20) Неужели чаще чем 4-5 тактов вы хотите менять адрес? Именно! Цитата(Serega Doc @ Jun 7 2005, 14:20) Если обеспечить задержку (FIFO буфер) и применить DDR SDRAM То можно я думаю получить тот поток который вам надо. В фифо пишем на 100 MHZ а читаем на 200 MHZ (DDR) Да не в потоке дело! У меня данные, в частности, поступают с линейчатого фотоприемника - т.е. столбец считывается. И надо их так и писать столбиком в память - чтобы кадр сформировать. Т.е. идет блок 288 слов данных, надо их прописать по адресам 0, 1*768, 2*768, 3*768.., 287*768. Каждое слово за такт. SDRAM не дает произвольного доступа без потери скорости.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 7 2005, 08:59
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(des00 @ Jun 7 2005, 14:29) Цитата(dxp @ Jun 7 2005, 03:28) Да не в потоке дело! У меня данные, в частности, поступают с линейчатого фотоприемника - т.е. столбец считывается. И надо их так и писать столбиком в память - чтобы кадр сформировать. Т.е. идет блок 288 слов данных, надо их прописать по адресам 0, 1*768, 2*768, 3*768.., 287*768. Каждое слово за такт. SDRAM не дает произвольного доступа без потери скорости. А если позвать на помошь функцию транспонирования ? ну обзовите ряд - "столбиком" и пишите  Дык когда кадр сформирован, его надо наружу выдавать. И уже по-человечески, по строкам.  Кроме того, формирование кадра - это частная задача. Еще надо быстро работать с произвольными фрагментами кадра, а для этого тоже нужен быстрый произвольный доступ. А вообще, что такая экзотическая задача, что-ли? Скорость не феноменальная. Объем тоже достижимый. Надо-то всего-то чтобы память была синхронной и по клоку работала. Примерно, как внутри тех же альтеровских ПЛИСин, только проще - два порта не надо.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 7 2005, 09:10
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(dxp @ Jun 7 2005, 03:59)  Дык когда кадр сформирован, его надо наружу выдавать. И уже по-человечески, по строкам.  Кроме того, формирование кадра - это частная задача. Еще надо быстро работать с произвольными фрагментами кадра, а для этого тоже нужен быстрый произвольный доступ. А вообще, что такая экзотическая задача, что-ли? Скорость не феноменальная. Объем тоже достижимый. Надо-то всего-то чтобы память была синхронной и по клоку работала. Примерно, как внутри тех же альтеровских ПЛИСин, только проще - два порта не надо. Сдаеться мне, что тут выбрано не совсем правильное направление, а именно предполагаеться укладка кадра в память "в лоб". ИМХО стоит все таки обдумать другую упаковку кадра в память, которая позволит использовать потоковую запись в память и при этом случайое позиционирование. ЗЫ. можно транспонировать кадр на "лету" используя фифо. Правда размер фмфо нужно будет уточнить
--------------------
|
|
|
|
|
Jun 7 2005, 09:26
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(des00 @ Jun 7 2005, 15:10) Цитата(dxp @ Jun 7 2005, 03:59)  Дык когда кадр сформирован, его надо наружу выдавать. И уже по-человечески, по строкам.  Кроме того, формирование кадра - это частная задача. Еще надо быстро работать с произвольными фрагментами кадра, а для этого тоже нужен быстрый произвольный доступ. А вообще, что такая экзотическая задача, что-ли? Скорость не феноменальная. Объем тоже достижимый. Надо-то всего-то чтобы память была синхронной и по клоку работала. Примерно, как внутри тех же альтеровских ПЛИСин, только проще - два порта не надо. Сдаеться мне, что тут выбрано не совсем правильное направление, а именно предполагаеться укладка кадра в память "в лоб". ИМХО стоит все таки обдумать другую упаковку кадра в память, которая позволит использовать потоковую запись в память и при этом случайое позиционирование. ЗЫ. можно транспонировать кадр на "лету" используя фифо. Правда размер фмфо нужно будет уточнить Сдается мне, что неправильно Вам сдается.  Представьте: линейчатый фотоприемник (линейка) стоит вертикально в поле зрения прибора. Перед объективом стоит зеркало, которое позиционируется с помощью сканера - таким образом производится развертка изображения. Данные поступают по вертикали (столбиками), и укладываются в память. После полного прохода зеркала формируется кадр. Выдается кадр наружу уже как принято - по строкам. И что вы тут придумаете? Фотоприемник такой - он специально рассчитан на такую схему считывания. Кроме того, внутри него еще и ВЗН (временная задержка и накопление) реализовано, т.ч. способ формирования изображения тут даже не обсуждается. Все это замечательно работает в текущем варианте. Только память, как уже сказал, используется асинхронная, из-за чего имеется приличное количество геморроя, от которого хотелось бы избавиться в следующем варианте. Помимо всего этого просто есть необходиость считать, например, небольшой прямоугольный фрагмент или записать его туда. Словом, нужен быстрый произвольный доступ.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 7 2005, 09:34
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(dxp @ Jun 7 2005, 04:26) Сдается мне, что неправильно Вам сдается.  Представьте: линейчатый фотоприемник (линейка) стоит вертикально в поле зрения прибора. Перед объективом стоит зеркало, которое позиционируется с помощью сканера - таким образом производится развертка изображения. Данные поступают по вертикали (столбиками), и укладываются в память. После полного прохода зеркала формируется кадр. Выдается кадр наружу уже как принято - по строкам. И что вы тут придумаете? Фотоприемник такой - он специально рассчитан на такую схему считывания. Кроме того, внутри него еще и ВЗН (временная задержка и накопление) реализовано, т.ч. способ формирования изображения тут даже не обсуждается. Все это замечательно работает в текущем варианте. Только память, как уже сказал, используется асинхронная, из-за чего имеется приличное количество геморроя, от которого хотелось бы избавиться в следующем варианте. Помимо всего этого просто есть необходиость считать, например, небольшой прямоугольный фрагмент или записать его туда. Словом, нужен быстрый произвольный доступ.  хмм ну представил. Имхо стоит просчитать такой вариант. Делать укладку кадра блоками кратными 4х4, накопление блоков сделать на фифо. И уже построчно/поколонно (ну в общем понятно как) укладывать это дело в память. Если нужн просмотреть какой нибудь блок память то считать этот блок/блоки не составит особого труда. прична всего этого гемороя в том, что быстрая одноклоковая память больших объемов, дешевой не бывает к сожалению. Поэтому и нужно под нее подстраиваться.
--------------------
|
|
|
|
Сообщений в этой теме
dxp Статическая синхронная память. Jun 7 2005, 06:46 Serega Doc А почему решили пользовать Статическую?
Какое врем... Jun 7 2005, 07:38 dxp Цитата(Serega Doc @ Jun 7 2005, 13:38)А почем... Jun 7 2005, 08:04  andrew_b Цитата(dxp @ Jun 7 2005, 12:04)А SDRAM, afaik... Jun 7 2005, 08:16  scheme_ru Использовали синхронную память Samsung NtRAM (No ... Jun 7 2005, 08:29 Serega Doc Неужели чаще чем 4-5 тактов вы хотите менять адрес... Jun 7 2005, 08:20      dxp Цитата(dxp @ Jun 7 2005, 04:26)Сдается мне, ч... Jun 7 2005, 10:40 Serega Doc По поводу QDR но она помоему должна стоить много м... Jun 7 2005, 08:52 Serega Doc Абсолютно согласен с des00
Для вас что стоимость в... Jun 7 2005, 09:19 dxp Цитата(andrew_b @ Jun 7 2005, 15:24)Цитата(an... Jun 7 2005, 10:10 des00 Цитата(dxp @ Jun 7 2005, 05:10)Цитата(Serega ... Jun 7 2005, 10:33 Serega Doc Почему вы сразу отбрасываете DDR как таковую!
... Jun 7 2005, 10:51 dxp Цитата(des00 @ Jun 7 2005, 16:33)Скорее всего... Jun 7 2005, 10:59 des00 Цитата(dxp @ Jun 7 2005, 05:59)Я уже устал тв... Jun 7 2005, 11:11  dxp Цитата(des00 @ Jun 7 2005, 17:11)Цитата(dxp ... Jun 7 2005, 11:55 Serega Doc Ну я допустим организую блок памяти как буфер скад... Jun 7 2005, 11:35 dxp Цитата(Serega Doc @ Jun 7 2005, 17:35)Ну я до... Jun 7 2005, 12:44 NeoN Чет я не понял ваших проблем... Любая синхронная S... Jun 7 2005, 12:07 Serega Doc Я смотредл DATASHEET для cy7c1383c и там на времян... Jun 7 2005, 12:24 dxp Цитата(Serega Doc @ Jun 7 2005, 18:24)Я смотр... Jun 7 2005, 12:48 NeoN вот тут на стр. 14 все показано. Jun 7 2005, 12:46 prototype Может не надо блестеть ржавой стороной? Dxp соверш... Jun 7 2005, 12:57 Serega Doc В предыдущем посте есть даташит AS7C33128FT18B где... Jun 7 2005, 13:03 prototype Цитата(Serega Doc @ Jun 7 2005, 16:03)В преды... Jun 7 2005, 13:11 NeoN Вам, что 288 Мбит надо? Или 144 разряда??? Они ж р... Jun 7 2005, 13:07 Serega Doc 2 prototype
Заметте что dxp не делает случайных в... Jun 7 2005, 13:11 prototype Цитата(Serega Doc @ Jun 7 2005, 16:11)2 proto... Jun 7 2005, 16:45  des00 Цитата(prototype @ Jun 7 2005, 11:45)Цитата(S... Jun 8 2005, 03:47 NeoN Кстати, 1M x 18 SSRAM не так уж и дорого стоит... Jun 7 2005, 13:20 Gate Внесу и я свои 5 копеек в обсуждение:
Во-первых, м... Jun 7 2005, 16:22 dxp Кстати, объясните, кто знает, тонкую разницу между... Jun 8 2005, 08:14 v_mirgorodsky Метну ка и я свои пять копеек Для Вашей задачи ни... Jun 8 2005, 10:56  dxp Цитата(v_mirgorodsky @ Jun 8 2005, 16:56)Метн... Jun 8 2005, 11:22 Diod У нас в проекте мы сталкивались с похожей проблемо... Jun 8 2005, 17:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|