ram VHDL (Quartus)

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
Аватара пользователя
serg130191
Родился
Сообщения: 7
Зарегистрирован: Вт мар 27, 2012 21:13:19

ram VHDL (Quartus)

Сообщение serg130191 »

Написал в Quartus озу на Vhdl, но проект, компилируется очень долго (при Functional Similation mode около 1ч 20 мин). Можно ли как-то ускорить процесс ?

КОД ОЗУ

Код: Выделить всё


КОД ОЗУ

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;

entity ram is
generic(
width_adr :	integer:=12;
width_data : integer:=12;
depth : integer:=2**12
);
port(
DATA_IN : in std_logic_vector(width_data-1 downto 0);
ADR :in std_logic_vector(width_adr-1 downto 0);
CS :in std_logic;
WE : in std_logic;
DATA_OUT : out std_logic_vector(width_data-1 downto 0)
);
end ram;
architecture beh of ram is
type mem_ram is array(depth-1 downto 0) of std_logic_vector(width_data-1 downto 0);
--Signal ram_el : mem_ram;

begin
process(CS,WE)
variable address: natural;
variable ram_el : mem_ram;
begin
address:=to_integer(unsigned(ADR));
if(CS='1') then
if (WE='1') then
ram_el(address):=DATA_IN;
else DATA_OUT<=ram_el(address);
end if;
end if;
end process;
end beh;
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ram VHDL (Quartus)

Сообщение Kavka »

А для какого чипа генерируете код?
Если ваша ПЛИС имеет встроенную SRAM, то, видать, квартус не распознал, что можно использовать встроенную память. И взялся строить память на LEшках.

Может воспользуетесь визардом, чтобы сделать блок памяти нужного размера в виде, который квартус нормально поймёт?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: ram VHDL (Quartus)

Сообщение ibiza11 »

+1. Пользуйтесь визардом Квартуса.
Ставим плюсы: )
Аватара пользователя
avreal
Опытный кот
Сообщения: 842
Зарегистрирован: Чт дек 31, 2009 19:27:45
Откуда: Бровари, Україна
Контактная информация:

Re: ram VHDL (Quartus)

Сообщение avreal »

Kavka писал(а):А для какого чипа генерируете код?
Если ваша ПЛИС имеет встроенную SRAM, то, видать, квартус не распознал, что можно использовать встроенную память. И взялся строить память на LEшках.
А всё равно для какого. Все современные имеют синхронную блочную встроенную память, а тут описана асинхронная. Её в принципе иначе, чем на LE-шках не сделать.

serg130191, или +1 к генерации блока памяти визардом и его уже в проект вставлять, или в редакторе квартуса нажать кнопочку со свитком, там примеры кода. Найти пример и посмотреть как устроен код памяти, который а) возможен в принципе и б) квартус его гарантированно распознает.
Ещё смотрите документацию на сам квартус,
Chapter 11: Recommended HDL Coding Styles
Inferring Memory Functions from HDL Code
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ram VHDL (Quartus)

Сообщение Kavka »

avreal писал(а):А всё равно для какого. Все современные имеют синхронную блочную встроенную память, а тут описана асинхронная. Её в принципе иначе, чем на LE-шках не сделать.
:facepalm: Об этом я и не подумал.
Век живи - век учись! :)
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Аватара пользователя
serg130191
Родился
Сообщения: 7
Зарегистрирован: Вт мар 27, 2012 21:13:19

Re: ram VHDL (Quartus)

Сообщение serg130191 »

avreal писал(а): или в редакторе квартуса нажать кнопочку со свитком, там примеры кода.
Точно, "Insert Tepmlate...", спасибо огромное, а то бы сам никогда не вспомнил. Ещё раз спасибо очень помогли.
Реклама
Ответить

Вернуться в «ПЛИС»