实验二 用可编程逻辑器件 FPGA 实现组合
逻辑电路的设计
一、 实验目的
1. 熟悉 QuartusⅡ软件的开发环境;
2. 熟悉友晶的开发平台 DE2 开发板;
3. 掌握用中规模数字集成电路实现组合逻辑电路的设计方法;
4. 了解数字可编程逻辑器件的应用设计。
二、实验任务及要求
设计两个四位二进制数的加减运算显示电路。要求:一个控制加减运算的功
能按键;两数相加的绝对值不大于 15;用两个七段数码管显示算术运算结果(0~
15);当运算结果为负数时,红色发光二极管亮。
三、实验原理
1.器件要求:
本次实验需要用到 3 个 74283,2 个 7447 译码器,1 个 7485 数值比较器和
9 个异或门。其中 74283 是加法器,通过逻辑电路事先得出每一位全加器的进位
输入信号,而无需再从最低位开始从最高位逐位传递进位信号,此次实验中对
74283 的输入端进行设计使其成为四位二进制数的加减器;7447 译码器是用于连
接七段数码管;7485 数值比较器用于比较两多位数,从高而低逐位比较,而且
只有当高位相等时才要比较低位,且大小由第一个不等的高位决定。
2.器件清单:
实验器材
74283
7447
7485
异或门
件数
3
2
1
9
四、实验内容
1. 根据任务要求设计组合电路;
根据设计原理,电路分为四部分:加减法电路、补码转为原码电路、四位二
进制数转换为两位十进制数电路、显示电路。
2.电路设计
(1)加减法电路和补码转为原码电路的原理图:
(其中,第一个 74283 是加减法电路;第二个 74283 是补码转为原码电路)
加法部分:74283 芯片可实现简单的加法运算。
减法部分:为方便并且简化电路,可以直接通过 74283 加法运算实现即一个
数减去另一个数等于加上这个数的补码。故 A-B=A+(-B)=A+B’+1。
综上,用输入进位做开关控制 B 的异或门是否输入加减数。另减法过程中所
用为补码运算,所以当结果为负数时需要进行再次补码,使结果变回原码进
行运算,且产生的进位显示为负数。
(2) 四位二进制数转换为两位十进制数电路:
十位数:用 7485 将前段加减电路的结果与 1001 进行比较并将 AGB 输出接入
7448 最低位 A,大于则输出 AGB=1,则十位数显示器显示 1;小于则输出 AGB=0,
十位数显示器显示 0,
个位数:输出的 AGB 接入各位(74238)的 B3,B2 端。当结果大于 9 时,
AGB=1,即加入 0110(加 6);反之,AGB=0, 即加入 0000 (加 0)
(3)数字运算及显示电路(加 6):
(4)总电路图
(下图为整个原理图左半部分)
(下图为整个原理图右半部分)
3.功能仿真(波形截图)
(3)时序仿真(波形截图)
可以发现时序仿真有较多毛刺。
(4)结合 DE2 开发板设置各输入、输出端
3.下载到 DE2 开发板上验证设计结果。
五、实验总结
1、 实验故障及解决方法
1)在负数补码转换为原码方面的困扰
解决:通过在一次求补码的方式实现。
2)在减十方面遇到的困扰。
解决:最开始在将二进制转换为十进制的形式时是通过列真值表的形式实现
的,后来通过翻看之前的笔记,发现其实可以通过使用加 6 的方法实现。
2、 实验体会
学会如何用 quarturs2 设计电路,画原理图,编译,仿真和端口的设置,和
如何烧录到 DE-2 板中。对于 74ls283 加法器和 74ls85 有了更深入的了解和认知。
六、思考题
1. 当运算结果大于 15 时,显示译码电路如何设计?
个位电路:(无进位大于十或有进位小于四加 6,无进位小于十加 0,有进位大于四且不等于
14 加 12,有进位且等于 14 加 2)
十位数电路:(当有进位且大于四时 B 口为 1,当无进位大于十或有进位小于四或有进位等
于 14 时 A 口为 1)
2. 如何实现两个一位十进制数的加减运算电路?
答:输入的一位 10 进制数(定义为 0000,0001,0010,0011,0100,0101,0110,
0111,1000,1001)再用上图所示的加法电路和大于 16 的显示电路进行运算。