数电课程设计之7段显示器8421BCD码转换器
(一)仅用2输入、3输入和4输入与非门及反相器设计,门和反相器总数不超过20个。
思路:
任务要求:驱动七段显示器的8421BCD码转换器
输入:8421BCD码
输出:七段显示器上显示对应数字
规定:由于七段显示器只能显示0到9的数字,及BCD码从0000到1001,对于1010到1111的BCD码此处以无关项处理。
真值表如下:
输入变量 |
|
输出变量 |
|||||||||
A |
B |
C |
D |
|
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
2 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
3 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
5 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
6 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
7 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
8 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
9 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
10 |
x |
x |
x |
x |
x |
x |
x |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
1 |
1 |
1 |
1 |
15 |
x |
x |
x |
x |
x |
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
4个输入变量,7个输出变量。
对X1到X7利用卡诺图化简(圈一)得到:
X1=A+B’D’+BD+CD
X2=B’+C’D’+CD
X3=B+D+C’
X4=B’D’+CD’+B’C+BC’D
X5=B’D’+CD’
X6=A+BC’+BD’+C’D’
X7=A+BD’+BC’+B’C
将与门变为与非门,或门变为与非门,对于表达式中的单变量则取其反变量,得到如下电路图。与非门与反相器的和为20。
电路图如下:
(二)利用MSI器件完成。
根据(1)中的真值表,利用两片74LS138以及与非门和反相器实现。
对输出函数X1到X7取两次反。第一次对逻辑函数取反,以简化连接74LS138端口的个数,第二次取反则恢复原来的逻辑。
电路设计过程中,门电路均转化为与非门,和部分反相器。
电路图如下:
Verilog语言:
仿真程序:
仿真波形:
A=con[0]; B=con[1]; C=con[2]; D=con[3];
电路综合图:
仿真综合用vivado2017完成。