|
|
  |
EPF10K50SQC240, как на verilog работать с внутренней RAM |
|
|
|
Jan 17 2018, 14:22
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Приветствую, коллеги! Жизнь заставила работать с таким чудом науки и техники как отечественная ПЛИС По заявлению производителя это полный аналог древней альтеры EPF10K50SQC240 Согласно документации на альтеру, ПЛИС содержит внутри блочную память, так называемый EAB в количестве 10 шт Очень уж и уже хочеться ее использовать генерируя память из RTL В качестве синтезатора использую Synplify 2009, крайнюю версию поддерживающее сиё чудо техники Делаю все по примерам из референс мануал Synplify, но ничего не выходит Компайлер говорит что нашел блочную память типа RAM, но маппер размазывает все на регистрах Прошу знающих избавить от страданий, как все же сгенерировать RAM из RTL ? Код module ram_test(q, a, d, we, clk); output reg [7:0] q; input [7:0] d; input [6:0] a; input we, clk;
reg [6:0] read_add=32,read_add_d; reg [7:0] mem [127:0] /* synthesis syn_ramstyle="block_ram" */;
always @(posedge clk) read_add_d <= read_add;
always @(posedge clk) begin if(we) //Register RAM data and read address mem[read_add_d] <= d; read_add <= a; end always @(posedge clk) q <= mem[read_add_d];
---------------------------------------------------------------------------------- @N: MF135 :"e:\bram_test\frontend\rtl\components\bram\sdp_ram_rtl.sv":12:0:12:5|Found RAM, 'mem[7:0]', 128 words by 8 bits @W:"e:\bram_test\frontend\rtl\components\bram\sdp_ram_rtl.sv":12:0:12:5|Ram mem[7:0] will be mapped into logic and will consume around 1024 register resources.
---------------------------------------------------------------------------------- Total LUTs: 1904 of 2880 (66%) Logic resources: 1904 LCs of 2880 (66%) Number of Nets: 1939 Number of Inputs: 8464 Register bits: 1048 (1024 using enable) EABs: 0 (0% of 10) I/O cells: 25
|
|
|
|
|
Jan 17 2018, 14:26
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(addi II @ Jan 17 2018, 17:22)  Приветствую, коллеги! Жизнь заставила работать с таким чудом науки и техники как отечественная ПЛИС По заявлению производителя это полный аналог древней альтеры EPF10K50SQC240 http://quartushelp.altera.com/14.1/mergedP...og_file_dir.htmНу и часть текста оттуда - где ramstyle: For example, in the following code, the ramstyle synthesis attribute specifies that the inferred RAM my_ram should be implemented using an M512 memory block: (* ramstyle = "M512" *) reg [0:7] my_ram[0:63]; Note: You can also embed the ramstyle synthesis attribute in a comment following the Variable Declaration of an inferred RAM, as shown in the following code: reg [0:7] my_ram[0:63] /* synthesis ramstyle = "M512" */;
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jan 17 2018, 14:48
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(iosifk @ Jan 17 2018, 14:26)  http://quartushelp.altera.com/14.1/mergedP...og_file_dir.htmНу и часть текста оттуда - где ramstyle: For example, in the following code, the ramstyle synthesis attribute specifies that the inferred RAM my_ram should be implemented using an M512 memory block: (* ramstyle = "M512" *) reg [0:7] my_ram[0:63]; Note: You can also embed the ramstyle synthesis attribute in a comment following the Variable Declaration of an inferred RAM, as shown in the following code: reg [0:7] my_ram[0:63] /* synthesis ramstyle = "M512" */; Спасибо за поддержку!!! Для Synplify атрибут задается именно как /* synthesis syn_ramstyle="block_ram" */; Пробовал этот атрибут, а так же altera_use_eab=1 задавать в sdc файле. В логах пишет, что он нашел sdc и подцепил оба атрибута. Но в итоге все равно лепит на регистрах...
|
|
|
|
|
Jan 18 2018, 12:43
|
Местный
  
Группа: Участник
Сообщений: 277
Регистрация: 1-02-16
Пользователь №: 90 294

|
Цитата(bogaev_roman @ Jan 18 2018, 09:52)  Поменял на 50SQ - один EABs (в resource section в fitter report). У Вас точно в проекте больше ничего нет, а то может все EABs сжираются другой логикой? Да уж..., прошу прощения я выбирал по старинке ХС1 EPF10K50RC240, с EPF10K50SQC240 в квартусе проблем нет Но в моем синтезаторе Synplify Pro 2009 EPF10K50SQC240 нет(..., я бы не хотел привязываться к квартусу..
|
|
|
|
|
Jan 18 2018, 14:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(addi II @ Jan 18 2018, 15:43)  Да уж..., прошу прощения я выбирал по старинке ХС1 EPF10K50RC240, с EPF10K50SQC240 в квартусе проблем нет Но в моем синтезаторе Synplify Pro 2009 EPF10K50SQC240 нет(..., я бы не хотел привязываться к квартусу.. Ну, собственно, тогда вернулись к Вашему первому посту - проблемы в трансляции синпливай. С точки зрения RTL-описания все верно, раз квартус синтезирует и разводит все согласно задуманному. Может там отсутствует или не поддерживается библиотека EAB (это же не просто ram/rom, а еще и дополнительные триггеры и мультиплексоры и, как я понял, может быть асинхронной, ну т.е.существенно отличается от привычных M9K или М144К).
|
|
|
|
|
Jan 24 2018, 13:28
|
Частый гость
 
Группа: Свой
Сообщений: 181
Регистрация: 28-08-04
Пользователь №: 557

|
QUOTE (addi II @ Jan 18 2018, 15:43)  Да уж..., прошу прощения я выбирал по старинке ХС1 EPF10K50RC240, с EPF10K50SQC240 в квартусе проблем нет Но в моем синтезаторе Synplify Pro 2009 EPF10K50SQC240 нет(..., я бы не хотел привязываться к квартусу.. Просто используй LPM блок csdpram
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|