verilog - 如何在 Verilog 的模块中传递特定的数组索引作为输入?
问题描述
我有一个 4:1 多路复用器,如下所示:
module mux4_1 (input [31:0]A, input [31:0]B, input [31:0]C, input [31:0]D, input sel[1:0], output [31:0]Y);
wire mux1o, mux2o;
mux2_1 mux1 (A, B, sel[0], mux1o);
mux2_1 mux2 (C, D, sel[0], mux2o);
mux2_1 mux3 (mux1o, mux2o, sel[1], Y);
endmodule
在另一个模块中,我有一个长度为 4 的数组F
作为输入,并且需要该模块中的 4:1 多路复用器的实例,其中包含元素F[1]
和F[3]
ofF
作为选择器。声明实例时如何指定这个?当然,下面的这段代码不起作用,但它应该说明我想要实现的目标。
module someModule (inputs... F[3:0], outputs...);
// some code...
mux mux4_1 (A, B, C, D, F[1]F[3], Y);
endmodule
解决方案
要创建选择器信号,您可以简单地连接阵列中所需的信号。
wire [1:0] selector;
assign selector = {F[1], F[3]};
// selector is a 2 bit vector where
// selector[0] == F[3]
// selector[1] == F[1]
在您的情况下,更快的实施将是:
module someModule (inputs... F[3:0], outputs...);
// some code...
mux4_1 myInstance (A, B, C, D, {F[1], F[3]} , Y);
endmodule
在这种情况下,选择器的 LSB 为 F[3],其 MSB 为 F[1]
推荐阅读
- javascript - 根据当前页面的元数据为链接设置“活动”类和 href 属性
- python-3.x - 张量板。重复的图形节点:一个与占位符不连接,一个连接
- sharepoint-online - 使用 Flow 过滤 Sharepoint 列表中的日期时间字段
- r - 当组不使用 geom_raster 排他性时,有没有办法绘制组的各个组件?
- typescript - 界面自动识别类型
- java - 在 JAVA 中将两个字符串数组合并为 JSON 格式
- python - CSV 读取器/写入器不会使用新信息更新 .csv,Python3
- hadoop - HDFS 无法从 Hadoop 3.2 启动:需要 bash v3.2+
- javascript - Webpack 生成的库在 useBuiltIns 设置为“usage”的项目导入时出现问题
- laravel - Laravel 刀片 - 双回声声明