用可编程逻辑器件FPGA实现组合逻辑电路设计

“数电”实验报告

3 

2018 年 0606 

“用可编程逻辑器件FPGA实现组合逻辑电路设计”实验报告

一. 实验目的

1.掌握中规模数字集成器件的逻辑功能及使用方法

2.熟悉组合逻辑电路的设计方法

3.了解数字可编程器件的应用设计

4.学会QUARTUS软件的基本使用方法

二. 实验器材

软件:QUARTUSII

硬件:DE-2实验板,PC机

三. 实验任务及要求

1.     设计一个两组四位二进制数的加减运算显示电路。要求:一个控制加减运算的功能按键;两数相加的绝对值不大于15;用两个七段数码管显示算术运算结果(0~15);当运算结果为负数时,红色发光二极管亮。

    在QUARTUSII中进行:

(1)电路设计(画出原理图或写出HDL程序)

(2)功能仿真(波形截图)

(3)时序仿真(波形截图)

2.下载DE-2板验证设计结果。

四. 实验原理

1.获取加减法运算后的补码:首先利用4位并行加法器74283芯片进行加减法运算(M控制加减法,结果为负数时CO和M的异或输出为1,接二极管亮),设输入两个四位二进制数为A4A3A2A1和B4B3B2B1,运算结果为S4S3S2S1,控制信号为M。

    当M=0时,S=A+B,可以直接利用4位并行加法器74LS283就可实现;M=1时,S=A-B,需要将-B转换成补码再和A相加,由于补码是按位取反加1得到的,因此M=1时,S=A+(-B)=A+(-B的反码)+1。

    综合考虑M=0和M=1的情况,可以得出,74LS283的输入端A4A3A2A1就直接接输入A4A3A2A1信号;B4B3B2B1当M=0时等于B4B3B2B1,当M=1时,等于B4B3B2B1的反码;CI端当M=0时,接0,当M=1时接1,即74LS283的输入端B4B3B2B1应接输入信号B4B3B2B1和M的异或,CI应接M。


2. 将1中的输出补码转换为原码:利用另外一个74283芯片将运算得到的补码输出转换为原码。


3.判断2中的输出原码是否大于9:设2中输出的原码为S4S3S2S1,进位为CO。
A.当S4S3S2S1≤(1001)2(即十进制数的9)时的和为S4S3S2S1,则由提干可知,这两数相加的最后结果为S4S3S2S1和CO。

B.当S4S3S2S1>(1001)2时,必须加6(0110)进行修正,此时CO有进位输出的情况有这样几种:
①当S4S3S2S1大于等于(16)10时,CO会产生进位输出,此时CO=1。
②当S4S3S2S1在(10)10~(15)10情况下,对8421码的加法应该有进位。因(10)10~(15)10对应二进制数S4S3S2S1为1010~11111,所以只要出现S3S2=1或S3S1=1,就应该产生进位,而此时CO=0。

    综上所述,可以得到如图1所示的电路图


4.可编程逻辑器件的设计方法

1)      进行逻辑抽象。首先要把需要实现的逻辑功能表示为逻辑函数的形式——逻辑方程、真值表、状态转换表(图)。

2)      选定可编程逻辑器件(PLD)的类型和型号。选择时应考虑到是否需要擦除重写;是否要求能在系统编程;是组合逻辑电路还是时序逻辑电路;电路的规模和特点;对工作速度、功耗的要求;是否需要加密等。

3)      选定开发系统。选定的开发系统必须能支持选定器件的开发工作。

4)      以开发系统软件能接受的逻辑功能描述方式(例如逻辑图、硬件描述语言、波形图等)编写计算机输入文件。

5)      上机运行。将源程序输入计算机,运行相应的编译程序或汇编程序,产生JEDEC下载文件和其他程序说明文件。进行仿真分析,检查设计结果是否符合要求,并做必要的修改。

6)      下载。将JEDEC文件由计算机送给编程器,再由编程器将编程数据写入PLD中。

7)      测试。将写好数据的PLD从编程器上取下,用试验方法测试它的逻辑功能,检查它是否达到了设计要求。


5.实验器件(74LS283)

A.74LS283的引脚图

B.74LS283引脚功能

A1–A4为运算输入端

B1–B4为运算输入端

C0为进位输入端

Σ1–Σ4为和输出端

C4为进位输出端


C.74LS283功能表

五. 实验电路

图1-1 加减运算显示电路仿真电路图


图1-2 加减运算显示电路仿真结果图(加法)


备注:此时按键M置0,进行的是加法运算:(0101)2+(1000)2=(13)10 ,注意七段数码管下面是十位,上面是个位。

图1-3 加减运算显示电路仿真结果图(减法)


备注:此时按键M置1,进行的是减法运算:(0101)2+(1000)2=(-3)10 ,说明输出是负数,也可以从图中的LED1发出红光得出结论。

图2-1 加减运算显示电路仿真电路图


图3-1 加减运算显示电路功能仿真结果图(8+5和8-5)

备注:给控制端M加如下信号:前半周期M置0,进行的是加法运算;后半周期M置1,进行的是减法运算。因此,在图3-1中,前半周期是8+5的仿真结果,后半周期是8-5的仿真结果。

图3-2 加减运算显示电路时序仿真电路图(8+5和8-5)


备注:使用时序仿真产生了8.217ns的时延

图4-1 加减运算显示电路功能仿真结果图(7-10)



备注:给控制端M加如下信号:整个周期M置1,进行的是减法运算。因此,在图4-1是7-10的仿真结果,结果为负数,红灯亮。

图4-2 加减运算显示电路时序仿真电路图(7-10)


备注:使用时序仿真产生了6.983ns的时延

六. 实验总结

1.实验故障及解决方法 

A.电脑无法连接DE-2开发板:可能是数据线的问题。 

B.DE-2开发板无法使用:更换DE-2开发板。 

C.输出结果不对:仔细检查并修改电路设计,必要时寻求同学或老师的帮助。

2.实验体会 

完成实验的重点是理解实验内容要求,并通过对quartus ii 的学习,根据自己思路自行设计或者和同学共同设计电路原理图。

七. 思考题

1.     当运算结果大于15时,显示译码电路如何设计?

当运算结果大于15时,使显示译码器7447的灭灯输入端BI为0,使共阳极7段数码管熄灭。

2.     如何实现两个一位十进制数的加减运算电路?

将十进制转化为四位二进制就可以用上述电路原理图进行加减法运算。

 

附上本人的联系方式,欢迎各位前来交流探讨!


版权声明:本文为博主原创文章,未经博主允许不得转载。如要转载请与本人联系。

猜你喜欢

转载自blog.csdn.net/weixin_39549734/article/details/81044408