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

 
 
> 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



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:44
Рейтинг@Mail.ru


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