题解 | #四选一多路器#

四选一多路器

https://www.nowcoder.com/practice/cba4617e1ef64e9ea52cbb400a0725a3

这个题有两种我写了两种实现方式,第一种是是用sel[1:0]和mux_out的关系,列出真值表,然后写逻辑式。mux_out[1]是sel[1]和sel[0]的同或,mux_out[0]和sel[0]状态相同。

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//

assign mux_out[1:0] = {~(sel[0]^sel[1]),sel[0]};

//*************code***********//
endmodule

但是这种写法仅限于输入输出只有2位的信号,当位数变多之后就不再适用。

第二种写法就是题解中的大多数答案。

`timescale 1ns/1ns
module mux4_1(
input [1:0]d1,d2,d3,d0,
input [1:0]sel,
output[1:0]mux_out
);
//*************code***********//
 
assign mux_out[1:0] = sel[1]?(sel[0]?d0:d1):(sel[0]?d2:d3);
 
//*************code***********//
endmodule

全部评论

相关推荐

08-25 17:07
门头沟学院 C++
西南山:面向结果编程
查看4道真题和解析 投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
哈我外婆婆婆在:第一个我一眼看出来是啥,建议把实验室项目去掉
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务