当我实例化一个模块而我只关心输出中的一些位时,是否有一个简单的语法来丢弃这些位?像
这样的东西my_module module_instance
(
.some_output({garbage1,important1[7:0]})
);
在这种情况下,some_output
中的信号my_module
为9位宽,但我只想将低8位粘贴到important1
。我可以用所有9位发出一个信号,然后从中选择8,我知道编译器会优化它,但我正在寻找一个成语或缩写。
答案 0 :(得分:3)
如果参数化模块中输出端口的宽度,然后将参数传递给实例,则无需创建信号来丢弃未使用的位:
my_module module_instance #(.WIDTH(8))
(
.some_output(important1[7:0])
);
答案 1 :(得分:1)
一种选择是参数化模块,正如工具所暗示的那样。如果您遇到宽端口,我不知道有什么无缝方式可以丢弃额外的位。
对未使用的位使用1'bz
很有诱惑力,但不合法。
如果未使用的位是MSB,则可以将9位端口连接到8位信号,但编码风格很差,会导致某些工具发出警告。
一种可能性是为未使用的信号定义约定,例如,后缀为_NC
(无连接)。这将有助于记录意图。您也可以使用模式匹配过滤关于悬空信号的任何警告,而不是单独列出信号。
另一种可能性,特别是如果你采用的编码方式是信号在通过端口时没有被重命名,就是通过端口保持信号的整个宽度,并在其他地方修剪额外的位。