题解 | #四选一多路器#
四选一多路器
https://www.nowcoder.com/practice/cba4617e1ef64e9ea52cbb400a0725a3
`timescale 1ns/1ns module mux4_1( input [1:0]d1,d2,d3,d0, input [1:0]sel, output[1:0]mux_out ); //*************code***********// wire [1:0] line1; wire [1:0] line2; assign line1 = (sel[0]) ? d0 : d1; assign line2 = (sel[0]) ? d2 : d3; assign mux_out = (sel[1]) ? line1 : line2; //*************code***********// endmodule
首先没有看懂是通过哪一个信号来控制四选一的信号的(波形图吗?)。看帖子解释使用sel这个两位的信号来控制的,题目要求使用线网类型的输出,那就是要求使用组合逻辑电路设计,关键字是assign。
sel[0]可以选出来两个信号,当sel[0]为1的时候分别对应信号d0,d2,当sel[0]为0的时候又分别对应d1,d3。然后通过判断sel[1]是1还是0选择line1还是line2。