数字逻辑第一次大作业
一.“七段数码管字形发生器”真值表(支持共阴极,1亮0灭)
输入变量输出变量数码管显
示
A B C D a b c d e f g
0000 1111110 0
000 1 0110000 1
0010 110110 1 2
001 1 111100 1 3
0100 011001 1 4
010 1 101101 1 5
0110 101111 1 6
011 1 1110000 7
1000 111111 1 8
100 1 111101 1 9
1010 111011 1 A
101 1 001111 1 B
1100 1001110 C
110 1 011110 1 D
1110 100111 1 E
111 1 100011 1 F
二.卡诺图化简:
A B C D a 0000 1
000 1 0 0010 1
001 1 1 0100 0
010 1 1 0110 1
011 1 1 1000 1
100 1 1 1010 1
101 1 0 1100 1
110 1 0 1110 1
AB
CD
00 01 11 10
00 1 0 1 1
01 0 1 0 1
11 1 1 1 0
10 1 1 1 1
Fa=B̅D̅+A̅BD+A B̅C̅+A̅C+BC+A D̅
111 1 1 A B C D b
0000 1 000 1 1 0010 1 001 1 1 0100 1 010 1 0 0110 0 011 1 1 1000 1 100 1 1 1010 1 101 1 0 1100 0 110 1 1 1110 0 111 1 0
A B C D c 0000 1 000 1 1 0010 0 001 1 1 0100 1 010 1 1 0110 1 011 1 1 1000 1 100 1 1 1010 1 101 1 1 1100 0 110 1 1 1110 0 111 1 0
AB
CD
00 01 11 10
00 1 1 0 1
01 1 0 1 1
11 1 1 0 0
10 1 0 0 1
Fb=B̅D̅+B̅C̅+A̅C̅D̅+A̅CD+A C̅D
AB
CD
00 01 11 10
00 1 1 0 1
01 1 1 1 1
11 1 1 0 1
10 0 1 0 1
Fc=A̅C̅+A̅D+A̅B+A B̅+C̅D
A B C D f 0000 1 000 1 0 0010 0 001 1 0 0100 1 010 1 1 0110 1 011 1 0 1000 1 100 1 1 1010 1 101 1 1 1100 1 110 1 0 1110 1 111 1 1
A B C D
g 0000 0 000 1 0 0010 1 001 1 1 0100 1 010 1 1 0110 1 011 1 0 1000 1 100 1 1 1010 1 101 1 1 1100 0 110 1 1 1110 1 111 1 1
三.在Quartus 中,建工程,采用原理图设计方法,画整体电路图,
AB CD 00 01 11 10 00 1 1 1 1 01 0 1 0 1 11 0 0 1 1 10
1
1
1
F=AC+A B
̅+B D ̅+C ̅D ̅+A ̅B C ̅ AB CD 00 01 11 10 00 0 1 0 1 01 0 1 1 1 11 1 0 1 1 10
1
1
1
1
Fg=A B
̅+C D ̅+AD+B ̅C+A ̅B C ̅
设定I/O,编译纠错
第一次编译出错,Input与Output中部分名称重复,改Input中“A”为“In-A”,B、C、D同理。
第二次编译通过。
四.在Quartus中,对所设计的电路进行整体功能仿真:
五.仅采用与非门实现的解决方案:
根据摩根代换定律,将a~f的表达式改为与非式,在Quartus中重新用原理图的方法画出整体电路图,设定I/O,根据新表达式在电路中适当添加非门,编译纠错。
并对电路功能进行整体仿真。
六.支持共阳极数码管的解决方案:
将a~f的输出信号按位取反。
即在各信号输出之前添加非门。
七.填写真值表:
输入变量
逻辑功能及输出函数
A B C 三变量一致(F1) 奇数个1(F2) 双0检测(F3)
000 1 0 0 00 1 0 1 1 010 0 1 1 01 1 0 0 0 100 0 1 1 10 1 0 0 0 110 0 0 0 11 1 1
1
八.自定义三个4变量功能函数(不能重复前面的三变量函数功能),填写真值表:
输入变量
逻辑功能及输出函数
A B C D 8421伪码检测
(F4) 多数表决器
(F5) 输入为质数
(F6)
0000 0 0 0
000 1 0 0 0
0010 0 0 1
001 1 0 d 1
0100 0 0 0
010 1 0 d 1
0110 0 d 0
011 1 0 1 1
1000 0 0 0
100 1 0 d 0
1010 1 d 0
101 1 1 1 1
1100 1 d 0
110 1 1 1 1
1110 1 1 0
111 1 1 1 0
九.小结:
首先明白了数码管工作原理后,通过写出a~f输出变量的表达式熟练了将真值表在卡诺图上表示的方法。
(由于BD字样不易显示,选用小写b和d)之后在摸索中掌握了Quartus中原理
图的使用方法。
第一次编译得知在定义名称时字母不区分大写小写,A与a将被视为重复命名。
第二次只是有几个warnings,给忽略了。
进行仿真时,由于和原理图设计是分两次进行的,在选择“Node Finder...”插入节点时系统没有自动选中我之前保存的bdf文件,显示“No node available”。
重新打开之前的工程文件重试后成功。
在仿真时不知道是否应该将ABCD连续设置16次分别观察是否显示0~F,还是将输入信号设为随即信号,整体观察。
后来一想没啥区别,后者逐个信号竖向观察就能知道显示的数字对不对,还更方便。
观察仿真波形发现,在固定输入信号时,确实输出的信号符合要求。
选做题没想出好方法,觉得只有同时连两条线路才可实现。
其实已开始对这个软件真是无从下手。
多亏几个朋友对我的帮助,我才掌握了基本使用方法。
要说熟练,那还要更多的练习。
本次作业并不完善,还请老师多加批评!。