我试图想出一种方法来定义一个可综合的通用多路复用器(作为一个函数或模块),它可以与SystemVerilog中的电线和打字机(枚举、结构)一起使用。
这有可能吗?如果没有,写这样一个复用器最干净的方法是什么?
目前,我正在使用一个多路复用器,它以二维导线阵列作为输入,并根据选择信号选择其中一个元素。
这使我感到相当痛苦,因为每次我需要将类型化变量连接到多路复用器模块时,我就不得不来回转换它们。不幸的是,更糟糕的是,需要一个for循环将一个类型化元素数组分配到一组连线中。
谢了塞巴斯蒂安。
发布于 2015-08-19 19:02:32
看来我今天可以自救了。
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
);然后,可以在模块中执行来回类型的转换和实际的muxing,这将清除其余的代码。
https://stackoverflow.com/questions/32094002
复制相似问题