发 帖  
原厂入驻New
[问答] 哪里可以找到完全参数化的多路复用器?
94 Case 参数 多路复用器
分享
早上好。
我正在寻找有关完全参数化多路复用器模块的建议。
我们需要输入通道数,每通道位数等的参数化。
经过一些挖掘后,我看到了一些使用IF语句和case语句的部分参数化设计。
我的问题是,如果(地址== x)阻止大量输入,如何进行参数化。
我可以写:
如果地址== 0
out = in [0]
如果地址== 1
out = in [1] ....等
那当然是有效的硬接线,不适合大量的输入。
任何建议都会有用,谢谢。
埃德
0
2019-10-31 08:39:37   评论 分享淘帖 邀请回答
7个回答
为什么?
多路复用器自动推断,并由综合工具优化。
Austin Lesea主要工程师Xilinx San Jose
2019-10-31 08:49:43 评论

举报

谢谢。
是的,我知道,只是在努力想出一种编码N位M-1多路复用器的好方法,而不必求助于非可伪造的案例陈述等。
例如,4-1 8位MUX不会太难编码,但如果它是16-1 64位MUX则会怎样。
对于应用程序,我们有一组M个并行任务,每个任务将数据传递到一组M(N *深度)数据存储元素中。
当存储元件已满时,我们使用多路复用器在USB端点之间逐个读取它们以在它们之间切换。
谢谢...
2019-10-31 09:02:59 评论

举报

如果你在Verilog中写这个,可变字宽度没有问题,但改变了
输入数量会影响模块的端口数量,并且不易处理。
您可以使用所需的最大输入端口数(可变宽度)制作模块
然后将未使用的端口保持打开状态,但这往往会产生大量警告。
Verilog 2001
不允许端口中的数组,因此没有简单的方法来避免端口数量的变化。
如果您想从单个端口获取所有输入,可以将它们连接起来
模块实例化并在结果巨大的向量上进行位选择。
然而那
在实例化代码中开始看起来相当丑陋。
VHDL和System Verilog都有其他方法可以提供帮助。
- Gabor
2019-10-31 09:21:57 评论

举报

如果SystemVerilog不可用,我会将所有多路复用器输入连接到一个宽矢量输入:
模块多路复用器
#( 
参数 
WIDTH = 8,//最小1 
NUM_INPUTS = 16 //最小2


//输入线[NUM_INPUTS - 1:0] [WIDTH - 1:0] a_i,// SystemVerilog 
输入线[NUM_INPUTS * WIDTH - 1:0] a_i, 
输入线[clogb2(NUM_INPUTS) - 1:0] select_i, 
输出线[WIDTH -1:0] y_o
); 
赋值y _o = a_i >>(select_i * WIDTH);
endmodule
我已经将SystemVerilog样式输入注释掉了。
如果Systemverilog可用,代码将与该声明一样工作。
未经测试,但想法就在那里......
问候,
标记
2019-10-31 09:33:36 评论

举报

只是关于使用$ clog2函数的警告。
如果您没有使用ISE 14.1或更高版本,请参阅
这个回答记录:
http://www.xilinx.com/support/answers/44586.htm
当你写clogb2时,我认为你的意思是$ clog2?
这是标准的Verilog
日志库的系统函数上限2.注意ISE 13.x不正确地实现
相反,自然对数的上限(基数e)。
答案记录显示
如何用函数替换它,但这使得在模块端口中使用起来更加困难
参数。
作为另一种解决方法,您可以限制输入数量
到多路复用器并使用适合它的选择大小。
或者,您可以指定选择
size作为单独的参数。
- Gabor
2019-10-31 09:47:35 评论

举报

我们定义自己的函数“clogb2”。
我可能应该提到这一点。
AR显示了一个足够接近的家庭滚动版本。
- 标记
2019-10-31 10:02:15 评论

举报

您给出的示例是一个简单的寻址选择器 - 它不需要使用case语句实现,可以使用以下语句完成:
out = in [address];
由于这里没有常数,所以这是完全绝对的。
虽然这适用于一点东西
退出;
reg [MAX_WORDS-1:0] in;
它也适用于二维的东西:
reg [MAX_BITS-1:0]输出;
[MAX_WORDS-1:0]中的reg [MAX_BITS-1:0];
Avrum
2019-10-31 10:11:29 评论

举报

只有小组成员才能发言,加入小组>>

53个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表