Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

ram VHDL (Quartus)

Чт окт 25, 2012 18:24:26

Написал в 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;

Re: ram VHDL (Quartus)

Пт окт 26, 2012 07:32:23

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

Может воспользуетесь визардом, чтобы сделать блок памяти нужного размера в виде, который квартус нормально поймёт?

Re: ram VHDL (Quartus)

Пт окт 26, 2012 07:45:42

+1. Пользуйтесь визардом Квартуса.

Re: ram VHDL (Quartus)

Пт окт 26, 2012 09:02:26

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

serg130191, или +1 к генерации блока памяти визардом и его уже в проект вставлять, или в редакторе квартуса нажать кнопочку со свитком, там примеры кода. Найти пример и посмотреть как устроен код памяти, который а) возможен в принципе и б) квартус его гарантированно распознает.
Ещё смотрите документацию на сам квартус,
Chapter 11: Recommended HDL Coding Styles
Inferring Memory Functions from HDL Code

Re: ram VHDL (Quartus)

Пт окт 26, 2012 12:04:11

avreal писал(а):А всё равно для какого. Все современные имеют синхронную блочную встроенную память, а тут описана асинхронная. Её в принципе иначе, чем на LE-шках не сделать.
:facepalm: Об этом я и не подумал.
Век живи - век учись! :)

Re: ram VHDL (Quartus)

Сб окт 27, 2012 11:45:05

avreal писал(а): или в редакторе квартуса нажать кнопочку со свитком, там примеры кода.

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