|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我用了40个Altera提供的双口RAM做了一个RAM组,在写入时用case语句给要写入的RAM赋值,但是编译时说'address2_a' already exists; must not be redefined as a named block,问题是我只定义了一个address2_a寄存器啊。
部分源代码是:
LineRam line2(
address2_a,
address2_b,
clk,
data2_a,
data2_b,
wren2_a,
wren2_b,
q2_a,
q2_b);
其中地址数据读写允许是寄存器型,输出数据是线网型。
case(iaddress_a[9:5])
1:
begin
address1_a<=iaddress_a[4:0];
data1_a<=idata_a;
wren1_a<=1;
address21_a<=iaddress_a[4:0];
data21_a<=idata_a;
wren21_a<=1;
end
2:
begin:
address2_a<=iaddress_a[4:0];
data2_a<=idata_a;
wren2_a<=1;
address22_a<=iaddress_a[4:0];
data22_a<=idata_a;
wren22_a<=1;
end
iaddress_a是模块的输入地址,高5位用来区别是哪一个RAM,低5位是要写入的地址。
谢谢各位。 |
|