【发布时间】:2021-05-01 02:18:17
【问题描述】:
我正在执行一项任务,我必须合成我的 Verilog 代码。我编写代码并编译和模拟,一切正常。当我去综合时,设计编译器在我的一个模块中给了我一个错误。该模块代表一个带有数据缓冲器的简单 8 位移位寄存器。当我合成时,它给了我一个错误:
连续赋值输出缓冲区必须是一个网络
我不知道这条消息在说什么。
module shiftReg(output shift_out,
output reg [7:0] data_buff,
input shift_write, clk, shift_in,
input [7:0] data);
reg [7:0] buffer;
assign shift_out = buffer[7];
assign buffer[0] = shift_in; //This is where it states an error.
always@(posedge clk) begin
if(shift_write == 1) begin
buffer <= {buffer[6:0],shift_in};
end
end
always@(shift_write) begin
if(shift_write == 0) begin
data_buff <= buffer;
buffer <= data;
end
end
endmodule
【问题讨论】: