verilog 模块端口为二维数组 如何调用

如题所述

第1个回答  推荐于2018-07-04
必须分解为一维数组,然后再端口上一一列出。所以这点不如VHDL。
其实你如果嫌麻烦,可以变通一下的,比如做个接口,将两者对接。举例如下:
你需要调用一个128*64存储器,但是设计128个64位宽的线组/寄存器组,管理起来很不方便,比如
a0[63:0],a1[63:0],a2[63:0]..............a127[63:0],在外界调用时还得设计一个查找表。
因此,你可以设计一个如下的寄存器组aa[128*64-1:0],在外界调用时,将二维数组的两个地址相乘就行了。
moudle jiekou(aa,a0,a1.......a127);
input [8191:0] aa;
output [63:0] a0,a1.....a127;
assign a0=aa[63:0];
assign a1=aa[127:64];
.,,,,,,,
endmodule本回答被网友采纳
第2个回答  2012-04-18
二位数组不能做port。标准上有。
相似回答