Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

先说答案:不行。

通常,reg [7:0mem [1:0]这种写法是作为内部二维寄存器使用的,比如定义一个1KB的存储器,可以用reg [7:0] memory [0:1023],或者reg [7:0] memory [1023:0]。那二维数组作为输入输出端口可以综合不?

做个小实验,简单造个小代码:

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

用input [7:0] mem [1:0]这种二维数组作为input端口,

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

Verdi检查

首先用Verdi编译看看报错不:

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

上图很明显,Verdi默认就直接支持这种SV类型语法。

Spyglass检查

Spyglass就能严格报出来,除非set_option enableSV yes,否则不支持这种sv语法特性,

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

DC工具

那么Design Compiler是否支持这种语法综合呢?

综合一下,查看LOG:

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

也很明显,直接报Error,综合进程终止,DC是不支持的。

man查询一下报的错:VER-253:

Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用

感兴趣的朋友可以用C家的genius试试。

结论

结论:Verilog语法不支持二维数组作为输入输出端口。

可能有同学吐槽Verilog语法太僵硬了,不如sv便捷强大,况且很多国外团队已经用sv进行开发了,但是DC工具更希望RTL开发者明确指定每一根输入输出信号线的具体连接关系,虽然工作量繁杂一点,但可以避免工具与人的理解不一致而造成的芯片错误, 也迫使开发者想清楚每根线怎么连接。

谢阅读,别走!点赞、关注、转发后再走吧

转载:全栈芯片工程师

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:Verilog二维数组作为输入输出端口可以吗-verilog中数组的使用 https://www.yhzz.com.cn/a/10386.html

上一篇 2023-04-21 01:09:31
下一篇 2023-04-21

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。