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

 
 
 
Reply to this topicStart new topic
> Xilinx Memory, help
Egel
сообщение May 5 2010, 08:57
Сообщение #1


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

Группа: Свой
Сообщений: 162
Регистрация: 28-07-08
Из: Химки
Пользователь №: 39 244



Здравствуйте!

Вопрос такой. Есть проект под Virtex5, в котором куча памятей. Нужно ли генерить каждую память в CoreGenerator ? Или можно например описать память на HDL по шаблонам Xilinx, вида :

Код
   parameter RAM_WIDTH = <ram_width>;
   parameter RAM_ADDR_BITS = <ram_addr_bits>;

   (* RAM_STYLE="{AUTO | BLOCK |  BLOCK_POWER1 | BLOCK_POWER2}" *)
   reg [RAM_WIDTH-1:0] <ram_name> [(2**RAM_ADDR_BITS)-1:0];
   reg [RAM_WIDTH-1:0] <output_dataA>, <output_dataB>;

   <reg_or_wire> [RAM_ADDR_BITS-1:0] <addressA>, <addressB>;
   <reg_or_wire> [RAM_WIDTH-1:0] <input_dataA>;

   //  The following code is only necessary if you wish to initialize the RAM
   //  contents via an external file (use $readmemb for binary data)
   initial
      $readmemh("<data_file_name>", <rom_name>, <begin_address>, <end_address>);

   always @(posedge <clockA>)
      if (<enableA>) begin
         if (<write_enableA>)
            <ram_name>[<addressA>] <= <input_dataA>;
         <output_dataA> <= <ram_name>[<addressA>];
      end
      
   always @(posedge <clockB>)
      if (<enableB>) begin
         if (<write_enableB>)
            <ram_name>[<addressB>] <= <input_dataB>;
         <output_dataB> <= <ram_name>[<addressB>];
      end


Описывать так пробовал, все синтезиться ок, но не очень понимаю отсутствие настроек типа read-first и т.д. Также есть некоторые макросы для RAM у Xilinx - но как я понял - они просто соответствуют hardware реализации. Хочется иметь один полностью запараметризированный модуль и вставлять его по месту требования )). Кто как делает ?
Go to the top of the page
 
+Quote Post
MKS
сообщение May 5 2010, 09:44
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



По началу тоже пробовал делать как вы, описывать синтезируемую модель на RTL и подсовывать ей содержимое через readmemh. Пока в проекте 1, 2 блока использовалось то ничего, синтезилось. А вот когда больше то у синплифая начинаются чудеса с распознаванием таких конструкций. В итоге плюнул я на это дело, и теперь использую только coregen.
Go to the top of the page
 
+Quote Post
Egel
сообщение May 5 2010, 09:56
Сообщение #3


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

Группа: Свой
Сообщений: 162
Регистрация: 28-07-08
Из: Химки
Пользователь №: 39 244



Ну вот этого я и боялся - у меня уже чудеса начались, но синтез веду в XST, если ставить -ram_style Block, магии меньше вроде

Еще смежный вопрос - насколько медленне проект симмулируется с памятями из coregen, по сравнению с простым RTL-описанием ? Я думал, через условную компилляцию переключаться с поведенческой модели на синтезируемую. Будет выигрыш?
Go to the top of the page
 
+Quote Post
MKS
сообщение May 5 2010, 15:08
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 469
Регистрация: 13-03-05
Пользователь №: 3 315



Цитата(Egel @ May 5 2010, 12:56) *
...
Я думал, через условную компилляцию переключаться с поведенческой модели на синтезируемую. Будет выигрыш?

Именно так я и делаю если необходимо ускорить моделирование. По памяти могу сказать что прибавка в скорости была заметна на глаз.
Go to the top of the page
 
+Quote Post
o_khavin
сообщение May 22 2010, 13:01
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(Egel @ May 5 2010, 12:57) *
Кто как делает ?

Если синтез ведётся в XST - то самый безпроблемный вариант, это вставлять примитивы из темплейтов, а для ускорения симуляции подсовывать альтернативные куски RTL-кода при помощи условной компиляции (на больших проектах разница в скорости в разы). В принципе этих темплейтов для Virtex5 всего четыре варианта (18 и 36 Кбит, SDP и true dual port), а остальное и так задаётся параметрами.

Сообщение отредактировал o_khavin - May 22 2010, 13:02
Go to the top of the page
 
+Quote Post

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

 


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


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