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

如题所述

第1个回答  2022-11-16
必须分解为一维数组,然后再端口上一一列出。所以这点不如VHDL。 \x0d\x0a其实你如果嫌麻烦,可以变通一下的,比如做个接口,将两者对接。举例如下:\x0d\x0a你需要调用一个128*64存储器,但是设计128个64位宽的线组/寄存器组,管理起来很不方便,比如\x0d\x0aa0[63:0],a1[63:0],a2[63:0]..............a127[63:0],在外界调用时还得设计一个查找表。\x0d\x0a因此,你可以设计一个如下的寄存器组aa[128*64-1:0],在外界调用时,将二维数组的两个地址相乘就行了。\x0d\x0amoudle jiekou(aa,a0,a1.......a127);\x0d\x0ainput [8191:0] aa;\x0d\x0aoutput [63:0] a0,a1.....a127;\x0d\x0aassign a0=aa[63:0];\x0d\x0aassign a1=aa[127:64];\x0d\x0a.,,,,,,,\x0d\x0aendmodule