题意整理
本题要求根据4选1数据选择器的逻辑符号设计选择器电路。
题解主体
根据逻辑表达式,可列出真值表如下:
A |
B |
C |
L |
|
0 |
0 |
0 |
0 |
L=0 |
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
0 |
L=C |
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
1 |
L=~C |
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
1 |
L=1 |
1 |
1 |
1 |
1 |
将变量A、B接入4选1数据选择器选择输入端S0 S1。将变量C分配在数据输入端。从表中可以看出输出L与变量C的关系。
当AB=00时选通D0而此时L=0,所以数据端D0接0:当AB=01时选通D1,由真值表得此时L=C,即D1应接C:当AB为10和11时,D2和D3分别接~C和1。
所以可画出电路图如下:
A接S1,B接S0。
根据电路图和分析思路,将电路转换成Verilog代码描述如下:
data_sel U0( .S0 (B), .S1 (A), .D0 (0), .D1 (C), .D2 (~C), .D3 (1), .Y (L) );
参考答案
`timescale 1ns/1ns module data_sel( input S0 , input S1 , input D0 , input D1 , input D2 , input D3 , output wire Y ); assign Y = ~S1 & (~S0&D0 | S0&D1) | S1&(~S0&D2 | S0&D3); endmodule module sel_exp( input A , input B , input C , output wire L ); data_sel U0( .S0 (B), .S1 (A), .D0 (0), .D1 (C), .D2 (~C), .D3 (1), .Y (L) ); endmodule