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

 
 
> 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
Ответов
des00
сообщение Feb 5 2012, 09:37
Сообщение #2


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

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



Цитата(RXgade @ Feb 5 2012, 03:33) *
Необходима информация по реализации Dual-port и Two-porm RAM с НЕЗАВИСИМЫМИ тактовыми сигналами для чтения и записи данных (именно независимыми!!!) по всем канала.

Кто может дайте ссылки на статьи/книги где описаны ньюянсы реализации или реализации на HDL (бозотносительно технологии ПЛИС). спс

Любой хендбук на синтезатор раздел Coding Style %)

ЗЫ. А чем отличаются Dual Port RAM от Two Port Ram ?


--------------------
Go to the top of the page
 
+Quote Post
RXgade
сообщение Feb 5 2012, 10:30
Сообщение #3


Участник
*

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



Цитата(des00 @ Feb 5 2012, 13:37) *
Любой хендбук на синтезатор раздел Coding Style %)


Там приведены примеры с одним тактовым сигналом чтения/ записи.. а меня интересует реализация с независимыми

Цитата(des00 @ Feb 5 2012, 14:01) *
11 лет в этой области работаю, не знал такого %)


Я не уверен что это "стандартная" классификация, просто в некорых технических документах встрачал такое разделение.

http://wiki.answers.com/Q/What_is_the_diff...d_dual_port_ram
Go to the top of the page
 
+Quote Post
barabek
сообщение Feb 5 2012, 21:51
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(RXgade @ Feb 5 2012, 20:30) *
Там приведены примеры с одним тактовым сигналом чтения/ записи.. а меня интересует реализация с независимыми

А с каким производителем работаете? У альтеры в хэндбуке на квартус есть такой пример :

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


module dual_clock_ram(
output reg [7:0] q,
input [7:0] d,
input [6:0] write_address, read_address,
input we, clk1, clk2
);
reg [6:0] read_address_reg;
reg [7:0] mem [127:0];
always @ (posedge clk1)
begin
if (we)
mem[write_address] <= d;
end
always @ (posedge clk2) begin
q <= mem[read_address_reg];
read_address_reg <= read_address;
end
endmodule

не то?
Go to the top of the page
 
+Quote Post
maksimp
сообщение Feb 6 2012, 02:58
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



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

В первом сообщении темы было "безотносительно технологии ПЛИС". То есть видимо на любой. Хочется код, для которого не важно какая ПЛИС.
Go to the top of the page
 
+Quote Post
des00
сообщение Feb 6 2012, 05:45
Сообщение #6


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

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



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

Вопрос стоит некорректно. Код из примера Example 11–15. Verilog HDL Simple Dual-Port, Dual-Clock Synchronous RAM. будер работать безотносительно технологии ПЛИС в любом симуляторе, но то как он будет синтезирован в целевую ПЛИС отдается на откуп синтезатору. И если синтезатор, посчитает что описание не попадает под его критерии по которым он инферит память, то он сделает как умеет.

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

Поэтому, безотносительно технологии ПЛИс это будет классический
Код
always_ff @(posedge pipa_clk) begin
  pipa_rdat <= ram[pipa_addr];
  if (pipa_we)
    ram[pipa_addr] <= pipa_wdat;
end

always_ff @(posedge popa_clk) begin
  popa_rdat <= ram[popa_addr];
  if (popa_we)
    ram[popa_addr] <= popa_wdat;
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 Текстовая версия Сейчас: 18th July 2025 - 03:43
Рейтинг@Mail.ru


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