Quartus - Verilog - как задать способ синтеза RAM?

Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить
Alik221
Встал на лапы
Сообщения: 103
Зарегистрирован: Пн сен 13, 2010 14:37:38

Quartus - Verilog - как задать способ синтеза RAM?

Сообщение Alik221 »

ПЛИС - Cyclone III.
Среда - Quartus 9.1.

В файле, написанном на языке verilog, объявлены 2 двумерных массива:
reg [15:0] Vector_1[15:0];
reg [15:0] Vector_2[15:0];

Мне нужно, чтобы Vector_1 синтезировался в памяти RAM, а Vector_2 синтезировался на логике.
Судя по описаниям, тут нужно применять конструкцию, вида:
reg [15:0] Vector_1[15:0] /* synthesis ramstyle = "M9K" */;
и
reg [15:0] Vector_2[15:0] /* synthesis ramstyle = "logic" */;

но это не работает. Память под оба массива выделяется в RAM.

Есть настройка Quartus "Auto RAM Replace". Она работает, только действует на весь проект. И что бы не задавал, состояние On - оба массива синтезирует в памяти RAM, состояние Off - оба на логике.

Как решить эту проблему?
Реклама
FPGAlover
Прорезались зубы
Сообщения: 210
Зарегистрирован: Пн окт 21, 2013 07:33:45

Re: Quartus - Verilog - как задать способ синтеза RAM?

Сообщение FPGAlover »

У меня обратная проблема))
Только только на альтере опыты начал ставить.
Первым проектом сделал сдвиговый регистр на 1024 ячейки на вход кнопка, на выход светодиод. Наслодился задержкой мигания по отношению к нажатию. Регистр разместился во встроенной памяти.
Поигрался и хватит: начал встраиваемый цифр. анализатор делать (благо на платке VGA есть). А оно тут уже начало логику юзать (((
Не подскажите, где искать эту волшебную опцию "Auto RAM Replace"?

На всякий случай код модулька. Может при таком сдвиге компилятор не может использовать память как строительный материал...
module OscCh(
input Clk,
input DataIn,
input [10:0] ReadIndex,
output wire DataOut
);
reg [1023:0] Data;
always @(posedge Clk) begin
Data[1023:0] <= {DataIn,Data[1023:1]} ;
end
assign DataOut = Data[ReadIndex];
endmodule
Шоб я польку танцевал..
Реклама
Ответить

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