реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Типы встроенной памяти в FPGA, Что такое distributed RAM/ROM ? Другие виды встроенной памяти ?
Саша Z
сообщение Jan 10 2008, 12:53
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Начинаю проэктик стыкующий видео выход под OLED на выход на TFT. Нужно переформатировать данные, стыковать тайминги (которые разные под OLED и под TFT) и т.д..
В плане стыковки таймингов нужен FIFO солидного размера, по подсчетам примерно 160-170 kBit.
Пробегая по specs разных FPGAев (буду работтаь на Lattice), там предлагаются различные виды конфигурируемой памяти типа ditsributed single port/dual port RAM, ROM, и т.д...
Что такое за distributed RAM ? (дословный перевод не нужен, с английским дружем плотно...нухно понять что оно означает на практике, плюсы и минусы и т.д.)
Обратил внимание что размеры встроенной памяти в упомянутом выше размере уже граничат с пределами в больших FPGAях. Может тогда стоит подумать насчет небольшого FPGA в паре с отдельным чипом памяти (FIFO либо SRAM) ?
Go to the top of the page
 
+Quote Post
o-henry
сообщение Jan 10 2008, 13:34
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069



distributed RAM значит, что память будет собрана из триггеров ПЛИС. Соответственно, если вы соорудите большую по объему distributed RAM - она съест много ресурсов ПЛИС и на реализацию
полезной логики места не останется. Именно поэтому в ПЛИС (по крайней мере у Xilinx) есть специально
предназначенные для этих целей модули Block RAM.
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Jan 10 2008, 13:42
Сообщение #3


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Я мыслю, что distributed RAM - это память, равномерно распределенная по площади кристалла FPGA. Т.е. имеется туева хуча небольшх по объему блочков памяти, которые равномерно расположены на кристалле. У альтеры в качестве примера можно привести блоки MLAB в Stratix III.
В противоположность распределенной памяти - блочная память (к примеру блоки MRAM, M4K, M9K в альтеровских стратиксах и циклонах). Т.е. имеется некоторое кол-во блоков памяти довольно большого объема, которые располагаются локально (как правило, образуют столбцы smile.gif ).
Аналогичная картина и ПЛИСах других фирм (Xilinx, Lattice и др.).

Цитата(o-henry @ Jan 10 2008, 16:34) *
distributed RAM значит, что память будет собрана из триггеров ПЛИС.

Не факт. Блочки могут быть и специалирированные. К примеру в Atmel AT40KAL.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
dxp
сообщение Jan 10 2008, 13:54
Сообщение #4


Adept
******

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



Цитата(Саша Z @ Jan 10 2008, 18:53) *
Что такое за distributed RAM ? (дословный перевод не нужен, с английским дружем плотно...нухно понять что оно означает на практике, плюсы и минусы и т.д.)

Распределенная память (в отличие от блочной) реализуется на LUT'ах. Т.е. LUT'ы логических элементов вместо реализации логики используются для нужд памяти - это возможно благодаря тому, что сами LUT'ы есть не что иное как память. Например, 4-входовой LUT - это память 16х1 (либо может быть сконфигурирована как две памяти 8х1, что используется в арифметических/счетных режимах, когда одна половинка вычисляет сумму, а вторая в это же время перенос). Распределенная память есть не у всех семейств - например, у альтеровских FPGA ее нет, там только блочная.

Плюсы очевидны - когда надо сделать небольшое ОЗУ, то нет смысла тратить на нее целый блок (ведь неиспользуемые ячейки в нем уже нельзя будет исползовать подо что-то другое). Ну, и размещаться эта память может близко от сопряженной с ней логикой, что уменьшает задержки трассировки.

Минусы - большой объем памяти съест много логики, не выгодно, большой объем выгоднее делать на блочной.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jan 10 2008, 13:56
Сообщение #5


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



ксайлинксовская память делается на лутах или триггерах а у альтеры действительно только на триггерах
Go to the top of the page
 
+Quote Post
_Vladimir_
сообщение Jan 10 2008, 13:57
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



Цитата(Саша Z @ Jan 10 2008, 16:53) *
Начинаю проэктик стыкующий видео выход под OLED на выход на TFT. Нужно переформатировать данные, стыковать тайминги (которые разные под OLED и под TFT) и т.д..
В плане стыковки таймингов нужен FIFO солидного размера, по подсчетам примерно 160-170 kBit.
Пробегая по specs разных FPGAев (буду работтаь на Lattice), там предлагаются различные виды конфигурируемой памяти типа ditsributed single port/dual port RAM, ROM, и т.д...
Что такое за distributed RAM ? (дословный перевод не нужен, с английским дружем плотно...нухно понять что оно означает на практике, плюсы и минусы и т.д.)
Обратил внимание что размеры встроенной памяти в упомянутом выше размере уже граничат с пределами в больших FPGAях. Может тогда стоит подумать насчет небольшого FPGA в паре с отдельным чипом памяти (FIFO либо SRAM) ?

o-henry ответил Вам правильно.
Формулировка ditsributed подчеркивает что память будет реализувана на LUT, т. е. общий ресурс.
Не так важно как, главное LUT будет занят.
В lattice есть блоки -EBR - чистая SRAM. Т. е. именно память.
Наверняка и у других то же самое.

Например для серии EC (старенькая) последовательно от модели объемы в килобитах
18 55 92 276 350 424 498
Т. е. ЕС10 имеет 276 килобит памяти. Макс - 498 килобит.
ПРи dual port объем пересчитывается, смотрите даташит.
Нет смысла использовать ditsributed если есть EBR, которая через соответствующую IP core (входит в софт) легко объвязывается в FIFO, правда надо принимать во внимание латентность из за pipeline структуры.
Насчет смысла, это конечно спорно, согласен - зависит от задачи.
Go to the top of the page
 
+Quote Post
Apast
сообщение Jan 10 2008, 13:57
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 224
Регистрация: 22-06-04
Из: Новосибирск
Пользователь №: 87



В Xilinx под distributed RAM понимается несколько другое (не скажу за остальные). У него есть возможность использовать LUT таблицу как память, посколько LUT у него четырех-входовой то соответственно можно получить память 16х1, из 16 LUT получиться память 16х16 ну и так далее.
Сам этим пользовался в Xilinx много раз, если было нужно сделать мелкое FIFO или небольшую память для фильтра.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Jan 10 2008, 15:04
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Большое спасибо за ответы, картину проясняет более-менее.
Vladimir, по моим подсчетам понадобиться примерно 165-170 kBit конфигурированные либо побайтно, либо как 18 бит на данное.
По прикидкам, на данный момент кол-во логики будет относительно небольшое, (несколько счетчиков разной длинны + небольшие state machines и небольшая управляющая логика). Исходя из этого, вероятно distributed память может подойти, т.е. чип с относительно небольшой блочной памятью но с порядочным кол-вом LUTs, так ?

С другой стороны, есть вероятность на будущее дорабатывать систему добавляя в нее подгонку видео под TV. В данном случае понадобиться видимо немало памяти и тогда не обойтись без внешней памяти, но и логики может понадобиться немало. И тогда видимо факт массированного использования distributed памяти в верхнем варианте может "зарезать" логику нужную для TV аппликации.

Учитывая эти факторы, будет ли целесообразным ориентироваться на чипы с большой блочной памятью и экономить на LUTах (либо насколько возможно блочной + комбинировать с distributed) ?
Go to the top of the page
 
+Quote Post
_Vladimir_
сообщение Jan 10 2008, 15:41
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



Цитата(Саша Z @ Jan 10 2008, 19:04) *
Большое спасибо за ответы, картину проясняет более-менее.
Vladimir, по моим подсчетам понадобиться примерно 165-170 kBit конфигурированные либо побайтно, либо как 18 бит на данное.
По прикидкам, на данный момент кол-во логики будет относительно небольшое, (несколько счетчиков разной длинны + небольшие state machines и небольшая управляющая логика). Исходя из этого, вероятно distributed память может подойти, т.е. чип с относительно небольшой блочной памятью но с порядочным кол-вом LUTs, так ?

Для экономии времени, буду говорить о Lattice EC.
Ну и пусть небольшое, но если на чипе уже есть SRAM, и по тиммингам и разрядности/глубине Вы впишитесь, то какие аргументы чтобы делать на логике?
Посмотрите, для EC в самом толстом чипе можно теоретически иметь только 131килобит в ЛОГИКЕ.
И при этом сидеть на чипе BGA с 480 пинами, оно надо?
Плюс стоимость чипа.
С другой стороны, Вы получаете 276 килобит SRAM в 30 блоках (т.е. 30 независимых модулей памяти)
при разрядности 512 x 18 (на большую разрядность меньше блоков останется) каждый
И у Вас еще есть немногим менее 10 КLUT (менее потому как расходуется логика на FIFO организацию)
Делайте на ней что хотите сейчас или потом.
Это можно вытянуть уже на 208 PQFP - легче работать.

Цитата(Саша Z @ Jan 10 2008, 19:04) *
С другой стороны, есть вероятность на будущее дорабатывать систему добавляя в нее подгонку видео под TV. В данном случае понадобиться видимо немало памяти и тогда не обойтись без внешней памяти, но и логики может понадобиться немало. И тогда видимо факт массированного использования distributed памяти в верхнем варианте может "зарезать" логику нужную для TV аппликации.
Учитывая эти факторы, будет ли целесообразным ориентироваться на чипы с большой блочной памятью и экономить на LUTах (либо насколько возможно блочной + комбинировать с distributed) ?

Не совсем понятно - " добавляя в нее подгонку видео под TV".

1. Делайте эскизный проект - текущий - расширенный.
2. Считайте потребности ресурсов.
3. Просто откройте дата шит и смотрите таблицы.
4. Исходите из минимального потребности/запаса по пинам.
5. Смотрите объем памяти EBR (кроме общего смотрите и количество блоков)

Совет - сильно не увлекайтесь "закладкой" на перспективу.
Вначале, БЕЗ опыта, польза от этого сомнительна, все равно легко где-то и в чем-то прогадать. А девайс станет громоздким.
Бывает так что после приобретения опыта - гораздо легче и быстрее перепроектировать улучшенную версию, уже с реальной перспективой расширения.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Jan 10 2008, 16:03
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Да, спасибо за дельные советы. Сейчас глянул datasheetы на ECM2/M чипы там оказывается более чем надо блочной памяти (несколько десятков блоков по 18кбит каждый, при конфигурации 18 бит ширины данных, мне понадобится примерно 7-8 блоков). Значит distributed - отпадет.

Насчет вашего совета не увлекаться перспективой - в приципе оно еще связано с покупкой подходящего evaluation board. Думаю есть смысл брать под более-менее большой чип, с надеждой что-б подошел и ан второй этап проэкта. А пока делать на нем первый (более простой) этап, затем после debugа синтезировать его под нужный размер чипа (вероятно более мелкий чем на evaluation board) и делать систему на том более мелком чипе. Это я к тому что надеюсь дизайн и debug на большом чипе даст рабочую версию и для более мелкого (но подходящего по ресурсам) чипа. Я ошибаюсь ?
Go to the top of the page
 
+Quote Post
_Vladimir_
сообщение Jan 10 2008, 16:29
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



Цитата(Саша Z @ Jan 10 2008, 20:03) *
Да, спасибо за дельные советы. Сейчас глянул datasheetы на ECM2/M чипы там оказывается более чем надо блочной памяти (несколько десятков блоков по 18кбит каждый, при конфигурации 18 бит ширины данных, мне понадобится примерно 7-8 блоков). Значит distributed - отпадет.

Насчет вашего совета не увлекаться перспективой - в приципе оно еще связано с покупкой подходящего evaluation board. Думаю есть смысл брать под более-менее большой чип, с надеждой что-б подошел и ан второй этап проэкта. А пока делать на нем первый (более простой) этап, затем после debugа синтезировать его под нужный размер чипа (вероятно более мелкий чем на evaluation board) и делать систему на том более мелком чипе. Это я к тому что надеюсь дизайн и debug на большом чипе даст рабочую версию и для более мелкого (но подходящего по ресурсам) чипа. Я ошибаюсь ?

В целом, вроде нет, тем более у LATTICЕ, если мне не изменяет память, самый маленький чип на evaluation board - EC20 (но не гарантирую), это вполне достаточно.
Вы можете взять у них схемы evaluation board, на EC они точно есть на сайте.
Другие чипы я уже год не смотрю, у меня EC серия.
Хотя при переходе с большего на меньший все не совсем однозначно.
Размещение и трасировка в меньшем чипе - это совсем другие условия (могут оказаться, после большего чипа) и если чип уже будет заполнен очень сильно - надо быть готовым к потенциальным засадам.
Т. е. переход вниз, в общем случае, заранее, 100% гарантировать нельзя, даже если "чисто арифметически" он корректен.
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Jan 10 2008, 18:49
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Понял, спасибо.
Кстати, как насчет их flash-based чипов ? Не пробовали XP серию ? Заманчиво избавиться от внешнего EPROMа (или им подобного)...
Go to the top of the page
 
+Quote Post
_Vladimir_
сообщение Jan 10 2008, 20:43
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 10-05-05
Пользователь №: 4 893



Цитата(Саша Z @ Jan 10 2008, 22:49) *
Понял, спасибо.
Кстати, как насчет их flash-based чипов ? Не пробовали XP серию ? Заманчиво избавиться от внешнего EPROMа (или им подобного)...

Ничего не могу сказать, это хорошая штука.
Я тоже хотел делать на XP, но потом пришлось перейти на обычную.
По комплексу моих критериев это было лучше.
Чем хорош еще Lattice - у них можно ставить стандартную SPI флэш.
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jan 11 2008, 06:05
Сообщение #14


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(_Vladimir_ @ Jan 10 2008, 23:43) *
Ничего не могу сказать, это хорошая штука.
Я тоже хотел делать на XP, но потом пришлось перейти на обычную.
По комплексу моих критериев это было лучше.
Чем хорош еще Lattice - у них можно ставить стандартную SPI флэш.


стандартную не альтеровскую флэш можно ставить и на альтеру - много раз обсуждалось 50 рублей против 500
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Jan 11 2008, 06:53
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(_Vladimir_ @ Jan 11 2008, 00:43) *
Ничего не могу сказать, это хорошая штука.
Я тоже хотел делать на XP, но потом пришлось перейти на обычную.
По комплексу моих критериев это было лучше.
Чем хорош еще Lattice - у них можно ставить стандартную SPI флэш.


Да, бегло сравнил ECP2/M с XP2 - все-таки первый более емкий по каждой категории, да и evaluation board с ECP2 идет с более емким чипом (+ больше prototyping area что мне важно) чем борд под XP2 борд последнего почемуто ограничем -17 чипом, тогда как ECP2 борд идет с -50 чипом).
А жаль, XP2 серия была-бы заманчивой...
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 09:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.0157 секунд с 7
ELECTRONIX ©2004-2016