我试图找到一种方法来定义可以与电线一起使用的可合成通用多路复用器(作为函数或模块),以及SystemVerilog中的typedef(枚举,结构)
这有可能吗? 如果不是,那么编写这样一个多路复用器最简洁的方法是什么?
目前,我正在使用多路复用器,它将二维线阵列作为输入,并根据选择信号选择其中一个元素。
这使得它非常痛苦,因为每次我需要将它们连接到多路复用器模块时,我都会来回拼接我的类型变量。 遗憾的是,由于需要使用for循环将类型化元素数组分配到导线数组中,因此情况更糟。
谢谢, 塞巴斯蒂安。
答案 0 :(得分:1)
好吧,看起来我今天能够帮助自己。
SystemVerilog允许使用"参数类型"对类型的模块进行参数化。特征。这正是我正在寻找的,似乎得到了普通供应商的支持。
module mux #(
parameter type T = logic,
parameter SIZE = 2)
(
input wire [SIZE-1:0] select,
input wire T in [SIZE-1:0],
output wire T out
);
然后,后面&可以在模块内执行第四次类型转换和实际多路复用,从而清理剩余的代码。