【发布时间】:2015-08-04 13:14:13
【问题描述】:
我是 verilog 的新手,我正在用 verilog 编写代码,用于创建能够读取和写入数据的内存块。它有以下代码
我尝试了类似问题的一些答案中的所有内容,但仍然出现错误。
module memory( wr_n , rst_n ,data ,clk ,add , en);
input wire wr_n;
input wire rst_n;
input wire clk;
input wire en;
parameter size = 255;
parameter n = 7;
inout wire [n:0] data;
input wire [n:0] add;
reg [n:0] mem [size:0];
integer i;
always @( posedge clk , negedge rst_n)
begin
if(!rst_n)
begin
for( i=0; i<=size; i=i+1 )
begin
mem[i] <= 8'hff;
end
end
else
begin
if(en)
begin
if(!wr_n) //read
data <= mem[add];
else //write
mem[add] <= data;
end
else
data = 8'h z;
end
end
endmodule
在这里,当我在数据之前使用连续赋值时,会出现类似
的错误“程序分配中的 LHS 可能不是网络:数据” 即使我已将其声明为电线。 是的,在我的测试台中,我已将数据声明为 reg 类型,因为当我将其声明为 net 时,它再次显示 “非法引用网络错误”。
我很久没修好了..请帮帮我。
【问题讨论】: