题意整理
本题要求设计一个四选一的多路器,注意输出的定义是线网类型,因此不能使用always组合逻辑块,但是实际上,在语言中使用reg并不一定会被综合成寄存器。题解主体
可以得到状态转换:d0 11
d1 10
d2 01
d3 00
根据激励方程和输出方程以及思路整理,关键电路如下:
通过2/1选择器进行判断,需要三个这种结构
将电路转换成Verilog代码描述如下:wire [1:0]line1,line2;
assign line1 = (sel[1]) ? d0 : d2;
assign line2 = (sel[1]) ? d1 : d3;
assign mux_out = (sel[0]) ? line1 : line2;
因此实现方式为如下的电路,综合得到:
参考答案
`timescale 1ns/1ns module mux4_1( input [1:0]d1,d2,d3,d0, input [1:0]sel, output[1:0]mux_out ); wire [1:0]line1,line2; assign line1 = (sel[1]) ? d0 : d2; assign line2 = (sel[1]) ? d1 : d3; assign mux_out = (sel[0]) ? line1 : line2; endmodule