Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Использование блоков ОЗУ в ACEX 1K
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
НаноСБИС
Подскажите пожалуйста как в ACEX 1K использовать встроеные блоки ОЗУ?
mse
вроде так пашет в Квартусе
Код
module ramacex(we,oe,addr,data);
input    we;
input    oe;
input    [8:0] addr;
inout    [7:0] data;

lpm_ram_io0    b2v_inst(.we(we),
.outenab(oe),.address(addr),.dio(data));


endmodule

правда ещё надо Квартусовские файлики с билиотечными "выписками" добваить. Сгенерить визардом память и перегнать в ХДЛ.
НаноСБИС
В моем проекте достаточно много переменных, возможно ли их переместиь в блоки ОЗУ, чтобы они не занимали логические элементы кристала?
LordVader
Ещё можно написать чисто ХДЛ-ное описание синхронной памяти на 512 байт - квартус его в блоки ацекса отмапит. Правда, может и не отмапить, если заранее будет известно, что, например, из всего блока используются только байт 8.

Что-то вроде вот такого:

Код
module mem512( rdaddr, out, wraddr, in, we, clk );

input clk;
input [8:0] rdaddr, wraddr;
input we;
input [7:0] in;
output [7:0] out; reg [7:0] out;

reg [7:0] mem [0:511];

always @(posedge clk)
begin
    out <= mem[rdaddr];
    if(we) mem[wraddr] <= in;
end

endmodule
НаноСБИС
Как насчет переменных в ОЗУ?
Artem_Petrik
Переменные в ОЗУ расположить конечно же можно, однако надо понимать, что из ОЗУ одновременно можно считать только одно слово, тоесть можно туда сложить только такие переменные, которые не используются одновременно, а только по очереди. Ну и просто запхнуть их в память, поставив какую-нибудь галочку в синтезаторе, не удасться, придется описывать это самому. Читабельность кода при этом конечно же пострадает, но думаю по сравнению с необходимостью последовательного доступа к переменным, это мааленькая неприятность smile.gif .
НаноСБИС
Спасибо за советы, что то попробывал, получилось.
bureau
2 НаноСБИС - так расскажите что попробовали и что получилось...
Kostolomus
А что, в асексе есть встроенные блоки озу???? 01.gif
mse
Цитата(Kostolomus @ May 4 2008, 14:07) *
А что, в асексе есть встроенные блоки озу???? 01.gif

Семён Семёныч!!!
НаноСБИС
Делаю дипломный проект по теме: "обнаружение сигналов на фоне помех". Сначало спроектировал, но достаточно много логических элементов занимает. Для хранения информации использовал переменные.
А в документации на ACEX1K нашел, что есть встроеные блоки ОЗУ и решил их задействоввать.


В ACEXе есть встроеные блоки памяти их также можно увидеть на Floorplan Editor.
Kostolomus
Цитата(mse @ May 4 2008, 14:44) *
Семён Семёныч!!!

Это в положительном или отрицательном смысле? beer.gif

Ну, вот специально пдфку скачал. Для точности. Есть там такие EABы, да. Их можно конфигурить как комбинаторику и как рам. Потому как архитектура такая. Лут - значит лут. Но вот выделенного блока рама, как например в циклонах, нету. Рам компилится или в еаб, или в ячейки вообще...
НаноСБИС
Можно посмотреть на сайте Altera там дана таблица семейств ПЛИСов. В одной из граф этой таблицы даны объемы встроеного ОЗУ.
mse
Цитата(Kostolomus @ May 5 2008, 22:48) *
...Но вот выделенного блока рама, как например в циклонах, нету. Рам компилится или в еаб, или в ячейки вообще...

Семён Семёныч - 2.
;О)
"Up to 49,152 RAM bits (4,096 bits per EAB, all of which can be used without reducing logic capacity)"
Уж не знаю, щщитать ли ЕАБ выделенным блоком РАМ или нет, но чОрным по белому написано. Верю.
"The EAB is a flexible block of RAM, with registers on the input and output ports, that is used to implement common gate array megafunctions.
Because it is large and flexible, the EAB is suitable for functions such as multipliers, vector scalars, and error correction circuits. These functions
can be combined in applications such as digital filters and microcontrollers."
А что, в Цыклоне, или ещё где, РАМу нельзя пользовать как ЛУТ?
Только и разницы, что там РАМа асинхронная, а там - совсем наоборот.
Kostolomus
Цитата(mse @ May 6 2008, 10:44) *
Семён Семёныч - 2.
;О)

От семенсеменыча и слышу. А именно:
Цитата
"The EAB is a flexible block of RAM, with registers on the input and output ports, that is used to implement common gate array megafunctions.

То есть как хошь ее выворачивай. implement common gate array megafunctions - значит выполнять общие функции массива логики. Буквально. То, что она может работать как рам - счастливое совпадение.
Цитата
А что, в Цыклоне, или ещё где, РАМу нельзя пользовать как ЛУТ?
Только и разницы, что там РАМа асинхронная, а там - совсем наоборот.

Есть разница! В циклонах рама заточена под использование именно как рама. Двухпортовая, и блоками по 4к. Синхронная принципиально, асинхронную из нее не сделаешь. И еще ее много. И кроме этой рамы есть свои луты. Которые тоже могут быть рамой (надо же...).

Ладно, предлагаю кончить флудилище, а то подеремся еще... smile3009.gif
vetal
2Kostolomus:
Вы переводите не совсем корректно и ставите акценты на альтернативных функциях. Когда вам пишут, что EAB это RAM, то и читать надо также.
2й абзац раздела Description: http://www.altera.com/products/devices/ace...amp;WT.oss=acex

Если вы прочитаете 2 абзац раздела из которого сделали выдержку в посте, то увидите что логика реализуется путем программирования в этот самый EAB маски. В доисторические времена таким же образом использовали ПЗУ и ОЗУ для реализации сложных функций.
dvladim
Ну-у, не только в доисторические времена, а и сейчас.

Когда читал доки на Циклоны - то там указано количество умножителей (из них на блоках памяти).
И есть отдельный документ как реализуются разного типа умножители на памяти - вот там извращения по полной программе.
mse
Цитата(Kostolomus @ May 7 2008, 20:02) *
Есть разница! В циклонах рама заточена под использование именно как рама. Двухпортовая, и блоками по 4к. Синхронная принципиально, асинхронную из нее не сделаешь. И еще ее много. И кроме этой рамы есть свои луты. Которые тоже могут быть рамой (надо же...).

;О) А ещо там есть триггеры, которые(надо же...) тоже могут быть РАМой.
ЕАБ, кста, тоже по 4К, тоже реконфигурируется по ширине и, соотв, по глубине, тоже конфигурируеццо под дуал порт РАМ. Цуцлоне просто рождён пожже, в жестокой конкурентной борьбе, соотв, сделан по более тонкому процессу, соотв, в него напихано всякого больше, соотв, режимов работы у него больше и шире. Но логицки М4К блок произрастает из ЕАБ. Стоит только посмотреть. Ну и прочитать отцов-основателей. ;О)
Цитата
Ладно, предлагаю кончить флудилище, а то подеремся еще... smile3009.gif

Дык, предмета для драки нет. ;О) В первоисточнике всё написано однозначно и недвусмысленно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.