Я делаю LOTTT конвейерной обработки с различными сигналами ширины и хотел получить модуль SYNTHESIZEABLE, в котором я мог бы передать 2 параметра: 1) количество труб (L) и 2) ширину сигнала (W).Синтезируемый модульный сдвиговый регистр Verilog
Таким образом, мне просто нужно создать экземпляр модуля и передать 2 значения, которые являются настолько простыми и надежными, чем ввод нагрузок и нагрузок распространения сигнала через фиктивные регистры ... подверженные ошибкам и все.
У меня HALF написана код Verilog, любезно попросите вас исправить меня, если я ошибаюсь.
I AM FACING COMPILE ERROR ... SEE COMMENTS
*****************************************************************
PARTIAL VERILOG CODE FOR SERIAL IN SERIAL OUT SHIFT REGISTER WITH
1) Varying number of shifts/stages : L
2) Varying number of signal/register width : W
*****************************************************************
module SISO (clk, rst, Serial_in, Serial_out); // sIn -> [0|1|2|3|...|L-1] -> sOut
parameter L = 60; // Number of stages
parameter W = 60; // Width of Serial_in/Serial_out
input clk,rst;
input reg Serial_in;
output reg Serial_out;
// reg [L-1:0][W-1:0] R;
reg [L-1:0] R; // Declare a register which is L bit long
always @(posedge clk or posedge rst)
begin
if (rst) // Reset = active high
//**********************
begin
R[0] <= 'b0; // Exceptional case : feeding input to pipe
Serial_out <= 'b0; // Exceptional case : vomiting output from pipe
genvar j;
for(j = 1; j<= L; j=j+1) // Ensuring ALL registers are reset when rst = 1
begin : rst_regs // Block name = reset_the_registers
R[L] <= 'b0; // Verilog automatically assumes destination width @ just using 'b0
end
end
else
//**********************
begin
generate
genvar i;
for(i = 1; i< L; i=i+1)
begin : declare_reg
R[0] <= Serial_in; // <---- COMPILE ERROR POINTED HERE
R[L] <= R[L-1];
Serial_out <= R[L-1];
end
endgenerate;
end
//**********************
endmodule
//**********************
Зачем вам нужно «генерировать»? Вы просто попробовали простые циклы 'for'? – toolic
Я изучаю verilog. Отправил свою первую и немедленную попытку. at for loops. – Displayname