微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > systemverilog二维数据赋值

systemverilog二维数据赋值

时间:10-02 整理:3721RD 点击:
module sv_test(o_ocpulse,o_oc_cnt);
parameter V_PULSE_BIT = 16;
input  reg [V_PULSE_BIT-1:0] o_ocpulse [63:0];
output     [V_PULSE_BIT-1:0] o_oc_cnt[63:0];
assign o_oc_cnt = o_ocpulse;
endmodule
如上二维数据的直接赋值在仿真软件编译通不过,有另外什么写法不能改变功能。

问题是unpacked的数组不能作为端口,所以必须要用packed:
input reg [ 63 : 0 ] [V_PULSE_BIT-1:0] o_ocpulse;
output [ 63 : 0 ] [V_PULSE_BIT-1:0] o_oc_cnt;

非常感谢,这两者等效吗。output [ 63 : 0 ] [15:0] o_oc_cnt,这是sv的语法还是verilog新版本的语法,
是表示16位宽的64路输出吗?

第一种方式在modelsim竟是可以编译的,我的仿真器却编译不了,按你的修改后就可以了

    两者从定义上来说不特等效。这个是SV语法。verilog不支持。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top