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

 
 
> Dual-port & Two-porm RAM, реализация с [b]НЕЗАВИСИМЫМ[/b] тактированием чтения/записи
RXgade
сообщение Feb 5 2012, 09:33
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 42
Регистрация: 7-06-07
Из: Россия, Орел
Пользователь №: 28 281



Необходима информация по реализации Dual-port и Two-porm RAM с НЕЗАВИСИМЫМИ тактовыми сигналами для чтения и записи данных (именно независимыми!!!) по всем канала.

Кто может дайте ссылки на статьи/книги где описаны ньюянсы реализации или реализации на HDL (бозотносительно технологии ПЛИС). спс
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RXgade
сообщение Feb 6 2012, 06:56
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 42
Регистрация: 7-06-07
Из: Россия, Орел
Пользователь №: 28 281



Цитата(maksimp @ Feb 5 2012, 22:51) *
Посмотрите описание (даташит) Cyclone 2 от Altera, рисунок 8-13 - структурная схема такой памяти. Там присутствует Write Pulse Generator. То есть видимо сама память состоит из триггеров - защёлок, на входы разрешения после дешифрирования подаются по ИЛИ импульсы записи двух портов.
Причём Write Pulse Generator включает в себя устройство асинхронной задержки, то самое делать которое своими силами производители ПЛИС вовсю не рекомендуют. На HDL его трудно записать.


Посмотрю. спс.

Цитата(barabek @ Feb 6 2012, 01:51) *
А с каким производителем работаете? У альтеры в хэндбуке на квартус есть такой пример :

Код
Example 11–15. Verilog HDL Simple Dual-Port, Dual-Clock Synchronous RAM

не то?


Работаю с ACTEL.

В этом примере очевидна проблема с потерей целостности данных...Если активные фронты клоков на запись и чтение близки по времени (при одинаковых адресах записи и чтения) то может произойти искажение считываемых данных (в идеале хочется чтобы было считано либо старое значение либо новое... но никак не искаженное).

Цитата(maksimp @ Feb 6 2012, 06:58) *
В первом сообщении темы было "безотносительно технологии ПЛИС". То есть видимо на любой. Хочется код, для которого не важно какая ПЛИС.


Тут даже вопрос не в том, что на "любой" а в том что: "можноли написать синтезируемых HDL код для такой памяти не использую стандартные блоки памяти зависящие от технологии ПЛИС." При этом HDL-код для конктетной ПЛИС не обязан совпадать с кодом для другой.

Цитата(des00 @ Feb 6 2012, 09:45) *
Вопрос стоит некорректно. Код из примера Example 11–15. Verilog HDL Simple Dual-Port, Dual-Clock Synchronous RAM. будер работать безотносительно технологии ПЛИС в любом симуляторе, но то как он будет синтезирован в целевую ПЛИС отдается на откуп синтезатору. И если синтезатор, посчитает что описание не попадает под его критерии по которым он инферит память, то он сделает как умеет.

В свое время, для моделирования я делал DWC двухпортовую память, работало отлично, но в симуляторе. Попытки объяснить синтезатору что нужно вставить RAMB16 блок, вместо кучи логики успехом не увенчались. То же самое и про опцию byte_enable.

Поэтому, безотносительно технологии ПЛИс это будет классический
Код
always_ff @(posedge pipa_clk) begin
...
end

но во что это синтезируется и каким свойством будет обладать (Read First, Write First, Don't care) будет зависить целиком и полностью от умности синтезатора.


да.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Feb 6 2012, 08:59
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(RXgade @ Feb 6 2012, 09:56) *
В этом примере очевидна проблема с потерей целостности данных...

Видите ли, проблема в том, что inferred code работает (может работать) в железе не совсем так, как он описан. Поэтому вы не смотрите, какие проблемы могут теоретически возникнуть в HDL-описании памяти, смотрите на то, как быдет работать блок, в который этот код превратится.
Go to the top of the page
 
+Quote Post
RXgade
сообщение Feb 6 2012, 10:33
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 42
Регистрация: 7-06-07
Из: Россия, Орел
Пользователь №: 28 281



Цитата(DmitryR @ Feb 6 2012, 12:59) *
Видите ли, проблема в том, что inferred code работает (может работать) в железе не совсем так, как он описан. Поэтому вы не смотрите, какие проблемы могут теоретически возникнуть в HDL-описании памяти, смотрите на то, как быдет работать блок, в который этот код превратится.


Почитав описания некоторых реализаий Dual-port Ram-ов пришел к выводу (поправте меня если не прав): 100% защиту от нарушения целостности данных при одновременном и независимом доступе по одному адресу на запись/запись или чтение/запись обеспечить невозможно. Все равно есть отраничения взаимное изменение сигналов тактирования.

...а раз так, то появились некоторые соображения по реализации на "защелках". Если что получится то сразу отпишусь. smile3046.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2012, 10:40
Сообщение #5


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(RXgade @ Feb 6 2012, 04:33) *
...а раз так, то появились некоторые соображения по реализации на "защелках". Если что получится то сразу отпишусь. smile3046.gif

безумству храбрых поем мы песню %)


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 11:18
Рейтинг@Mail.ru


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