实验一 组合逻辑电路的设计

合集下载

实验报告组合逻辑电(3篇)

实验报告组合逻辑电(3篇)

第1篇一、实验目的1. 理解组合逻辑电路的基本概念和组成原理;2. 掌握组合逻辑电路的设计方法;3. 学会使用逻辑门电路实现组合逻辑电路;4. 培养动手能力和分析问题、解决问题的能力。

二、实验原理组合逻辑电路是一种在任意时刻,其输出仅与该时刻的输入有关的逻辑电路。

其基本组成单元是逻辑门,包括与门、或门、非门、异或门等。

通过这些逻辑门可以实现各种组合逻辑功能。

三、实验器材1. 74LS00芯片(四路2输入与非门);2. 74LS20芯片(四路2输入或门);3. 74LS86芯片(四路2输入异或门);4. 74LS32芯片(四路2输入或非门);5. 逻辑电平转换器;6. 电源;7. 连接线;8. 实验板。

四、实验步骤1. 设计组合逻辑电路根据实验要求,设计一个组合逻辑电路,例如:设计一个3位奇偶校验电路。

2. 画出逻辑电路图根据设计要求,画出组合逻辑电路的逻辑图,并标注各个逻辑门的输入输出端口。

3. 搭建实验电路根据逻辑电路图,搭建实验电路。

将各个逻辑门按照电路图连接,并确保连接正确。

4. 测试电路功能使用逻辑电平转换器产生不同的输入信号,观察输出信号是否符合预期。

五、实验数据及分析1. 设计的3位奇偶校验电路逻辑图如下:```+--------+ +--------+ +--------+| | | | | || A1 |---| A2 |---| A3 || | | | | |+--------+ +--------+ +--------+| | || | || | |+-------+-------+||v+--------+| || F || |+--------+```2. 实验电路搭建及测试根据逻辑电路图,搭建实验电路,并使用逻辑电平转换器产生不同的输入信号(A1、A2、A3),观察输出信号F是否符合预期。

(1)当A1=0,A2=0,A3=0时,F=0,符合预期;(2)当A1=0,A2=0,A3=1时,F=1,符合预期;(3)当A1=0,A2=1,A3=0时,F=1,符合预期;(4)当A1=0,A2=1,A3=1时,F=0,符合预期;(5)当A1=1,A2=0,A3=0时,F=1,符合预期;(6)当A1=1,A2=0,A3=1时,F=0,符合预期;(7)当A1=1,A2=1,A3=0时,F=0,符合预期;(8)当A1=1,A2=1,A3=1时,F=1,符合预期。

组合逻辑电路设计实验报告

组合逻辑电路设计实验报告

一、实验目的1. 理解组合逻辑电路的基本原理和组成。

2. 掌握组合逻辑电路的设计方法,包括逻辑表达式的推导和门电路的选择。

3. 学习使用逻辑门电路实现基本的逻辑功能,如与、或、非、异或等。

4. 通过实验验证组合逻辑电路的设计和功能。

二、实验原理组合逻辑电路是一种数字电路,其输出仅取决于当前的输入,而与电路的历史状态无关。

常见的组合逻辑电路包括逻辑门、编码器、译码器、多路选择器等。

三、实验设备1. 74LS系列逻辑门芯片(如74LS00、74LS02、74LS04、74LS08等)2. 逻辑电平显示器3. 逻辑电路开关4. 连接线四、实验内容1. 半加器设计(1)设计要求:实现两个一位二进制数相加,不考虑进位。

(2)设计步骤:a. 根据真值表,推导出半加器的逻辑表达式:S = A ⊕ B,C = A ∧ B。

b. 选择合适的逻辑门实现半加器电路。

c. 通过实验验证半加器的功能。

2. 全加器设计(1)设计要求:实现两个一位二进制数相加,考虑进位。

(2)设计步骤:a. 根据真值表,推导出全加器的逻辑表达式:S = A ⊕ B ⊕ Cin,Cout = (A ∧ B) ∨ (B ∧ Cin) ∨ (A ∧ Cin)。

b. 选择合适的逻辑门实现全加器电路。

c. 通过实验验证全加器的功能。

3. 译码器设计(1)设计要求:将二进制编码转换为相应的输出。

(2)设计步骤:a. 选择合适的译码器芯片(如74LS42)。

b. 根据输入编码和输出要求,连接译码器电路。

c. 通过实验验证译码器的功能。

4. 多路选择器设计(1)设计要求:从多个输入中选择一个输出。

(2)设计步骤:a. 选择合适的多路选择器芯片(如74LS157)。

b. 根据输入选择信号和输出要求,连接多路选择器电路。

c. 通过实验验证多路选择器的功能。

五、实验结果与分析1. 半加器实验结果通过实验验证,设计的半加器电路能够实现两个一位二进制数相加,不考虑进位的功能。

组合逻辑电路的设计实验报告

组合逻辑电路的设计实验报告

实验一组合逻辑电路的设计(一)
1.实验目的
1,掌握组合逻辑电路的功能分析与测试
2,学会设计以及实现一位全/减加器电路,以及舍入与检测电路设计。

2.实验器材
74LS00 二输入四与非门
74LS04 六门反向器
74LS10 三输入三与非门
74LS86 二输入四异或门
74LS73 负沿触发JK触发器
74LS74 双D触发器
3.实验内容
1>.设计舍入与检测的逻辑电路:
电路框图
1. 输入:4位8421码,从0000-1001
输入信号接4个开关,从开关输入。

2. 输出:
当8421码>=0101(5)时,有输出F1=1
当8421码中1的个数是奇数时,有输出F2=1,
2>,设计一位全加/全减器
如图所视:
当s=1,时做减法运算,s=0时做加法运算。

A,B,C分别表示减数,被减数,借位(加数,被加数,进位)
4.实验步骤
1>.设计一个舍入与检测逻辑电路:
做出真值表:
作出卡诺图,并求出F1,F2
根据F1F2的表达式做出电路图:
按照电路图连接号电路,并且验证结果是否与设计相符。

2,>设计一位全加/全减器
做出真值表:
F1的卡诺图
F1卡诺图:F2的卡诺图
按照电路图连接号电路,并且验证结果是否与设计相符。

5.实验体会
通过这次试验,我了解了用仪器拼接电路的基本情况。

懂得了从电路图到真实电路的基本过程。

在连接的时候,很容易因为线或者门出现问题。

实验一 组合逻辑电路分析与设计

实验一 组合逻辑电路分析与设计

实验一逻辑电路的设计与分析一.实验目的:1.基本熟悉数字电路实验箱和示波器的使用2.掌握逻辑电路的设计方法,并且掌握推导逻辑表达式的方法3.会根据逻辑表达式来设计电路二.实验仪器及器件:1.数字电路实验箱,示波器2.器件:74LS00(简化后,无需使用,见后面)74LS86(异或门),74LS197三.实验内容:设计一个代码转换电路,输入为4位8421码输出为4位循环码(格雷码)。

四.实验步骤:步骤一:用逻辑开关模拟二进制代码输入,并把输出接LED灯并检查电路,看电路是否正常工作步骤二:用74LS197计数器构成四位计数器,即十六进制计数器作为输入信号源。

首先74LS197的CP0接连续脉冲作为时钟输入,然后Q0与CP1连接,再将MR,PL接地,那么Q3,Q2,Q1,Q0就是计数器的输出。

将Q3,Q2,Q1,Q0分别接LED灯,看是否工作正常。

注:接完后,MR,PL要接回高电压或不接任何东西即拨开,重新打开电源,才能启动计数器步骤三:计数器正常后,将Q3直接作为输出G3,将Q3和Q2接74LS86(异或门)的输入端,则输出端即为G2,将Q2和Q1接74LS86(异或门)的输入端,则输出端即为G1,将Q1和Q0接74LS86(异或门)的输入端,则输出端即为G0,将G3,G2,G1,G0,Q3,Q2,Q1,Q0,CP0接入示波器的通道接口,进行数据观察注:当接入示波器的通道接口时,要将连续脉冲调至10KHz的方波步骤四:用示波器观察并记录G3,G2,G1,G0,Q3,Q2,Q1,Q0,CP0的波形。

注:注意电压波形图之间的相位关系五.实验报告1.逻辑电路设计过程(1)根据给定的输入4位8421码和输出4位循环码的因果关系列出真值表(2)由真值表画出卡诺图并写出逻辑表达式且对其进行化简变换 3G33Q G =∴8421码表 循环码表 Q 3 Q 2 Q 1 Q 0 G 3 G 2 G 1 G 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 111112G2323232Q Q Q Q Q Q G ⊕=+=∴1G1212121Q Q Q Q Q Q G ⊕=+=∴0G0101010Q Q Q Q Q Q G ⊕=+=∴(3)根据逻辑表达式画出逻辑图,测试逻辑功能2.用Proteus软件画出电路图并仿真电路功能(1)(2)仿真效果与功能如图为逻辑电路输入3210,,,Q Q Q Q 波形图如图为逻辑电路输出3210,,,G G G G 波形图2.按实验内容描述在实验箱上完成实验的过程,分析实验中出现的问题,记录并打印出波形,并分析波形与电路功能的关系记录波形:注:上方按由上至下顺序为输出3210,,,G G G G 波形,下方按由上至下顺序为输入1230,,,Q Q Q Q 波形实验过程出现的问题:在连接示波器的通道时没有按照顺序来连入,导致示波器上图像并没有按照由上至下的顺序显示。

实验一组合逻辑电路的设计

实验一组合逻辑电路的设计

实验一组合逻辑电路的设计组合逻辑电路是一种电子电路,由逻辑门组成,用于执行特定的逻辑功能。

在本实验中,我们将设计一个基本的组合逻辑电路以及一些常见的组合逻辑电路,包括加法器、减法器、比较器等。

首先,我们将设计一个基本的组合逻辑电路,该电路由两个输入和一个输出组成。

输入可以是0或1,输出将依据输入的值进行逻辑运算得出。

在这个基本电路中,我们将使用两个逻辑门:与门和或门。

与门的真值表如下:输入1输入2输出000010100111与门的布尔表达式是:输出=输入1AND输入2或门的真值表如下:输入1输入2输出000011101111或门的布尔表达式是:输出=输入1OR输入2基于以上真值表和布尔表达式,我们可以通过逻辑门的连接来设计一个基本的组合逻辑电路。

具体设计步骤如下:1.首先,将两个输入引线分别连接到与门和或门的输入端。

这将确保输入的值能够传递到逻辑门中。

2.将与门和或门的输出引线连接到一个输出引线上,以便能够输出最终的逻辑结果。

3.最后,将逻辑门的电源连接到电路的电源上,以确保逻辑门能正常工作。

通过以上步骤,我们就完成了一个基本的组合逻辑电路的设计。

这个电路可以根据输入产生不同的输出,实现不同的逻辑功能。

除了基本的组合逻辑电路,我们还可以设计一些常见的组合逻辑电路,如加法器、减法器和比较器。

加法器是用来执行数字加法的组合逻辑电路。

在一个二进制加法器中,输入是两个二进制数和一个进位位,输出是一个和输出和一个进位位。

加法器的设计可以通过级联多个全加器来实现。

减法器是用来执行数字减法的组合逻辑电路。

在一个二进制减法器中,输入是两个二进制数和一个借位位,输出是一个差输出和一个借位位。

减法器的设计可以通过级联多个全减法器来实现。

比较器是用来比较两个数字的大小的组合逻辑电路。

比较器的输出取决于输入的大小关系。

如果两个输入相等,则输出为0。

如果第一个输入大于第二个输入,则输出为1、如果第一个输入小于第二个输入,则输出为-1、比较器的设计可以通过使用逻辑门和触发器来实现。

组合逻辑电路的设计与测试实验报告总结

组合逻辑电路的设计与测试实验报告总结

组合逻辑电路的设计与测试实验报告总结
一、组合逻辑电路的设计与测试实验报告总结
1.组合逻辑电路的设计
组合逻辑电路是一种由数字电路组成的电路,可以使用计算机自动设计出一种实现特定功能的组合逻辑电路。

在设计组合逻辑电路时,应该先对要设计出的电路的功能特点作出简要分析,根据系统功能的需要,确定设计电路的输入、输出及简要功能,然后选择一种合适的建模语言,画出要实现的电路框架,并根据设计的功能特点,确定电路的功能逻辑关系,绘制出电路原理图,然后进行简单的仿真和验证,最后将电路接线调试完毕,实现功能。

2.测试实验报告总结
在组合逻辑电路测试实验中,我们根据给定需求,使用TTL逻辑IC、电阻、电容等元器件设计出一种实现开关抖动过滤的组合逻辑电路,最终实现了其功能。

在实验中,我们发现,使用合适的逻辑IC
及元器件,结合灵活恰当的电路设计,可以实现特定功能的电路设计。

从实验的结果来看,我们设计的组合逻辑电路,实现了基本的开关抖动过滤功能,并通过实验的验证,证明了设计有效。

实验表明,组合逻辑电路的设计与测试是能够有效地实现特定功能的电路设计
的关键,是建立数字电路的基础。

实验一组合逻辑电路的设计与测试

实验一组合逻辑电路的设计与测试

实验一组合逻辑电路的设计与测试一、实验目的实验一旨在通过设计和测试一组合逻辑电路,加深对组合逻辑电路的理解和运用。

二、实验器材1.FPGA(现场可编程门阵列)开发板2. 逻辑电路设计软件(如Quartus II)3.逻辑分析仪4.DIP开关5.LED灯三、实验内容1.设计一个4位二进制加法器电路,并实现其功能。

2.使用逻辑电路设计软件进行电路设计。

4.使用逻辑分析仪对电路进行测试,验证其功能和正确性。

四、实验步骤1.根据4位二进制加法器的电路原理图,使用逻辑电路设计软件进行电路设计。

将输入的两个4位二进制数与进位输入进行逻辑运算,得到输出的4位二进制和结果和进位输出。

2.在设计过程中,需要使用逻辑门(如与门、或门、异或门等)来实现电路的功能。

3.在设计完成后,将电路编译,并生成逻辑网表文件。

5.连接DIP开关到FPGA开发板上的输入端口,通过设置DIP开关的状态来设置输入数据。

6.连接LED灯到FPGA开发板上的输出端口,通过LED灯的亮灭来观察输出结果。

7.使用逻辑分析仪对输入数据和输出结果进行测试,验证电路的功能和正确性。

五、实验结果1.在设计完成后,通过DIP开关的设置,输入不同的4位二进制数和进位,观察LED灯输出的结果,验证电路的正确性。

2.使用逻辑分析仪对输入和输出进行测试,检查电路的逻辑运算是否正确。

六、实验总结通过本实验,我们学习了组合逻辑电路的设计和测试方法。

从设计到测试的过程中,我们深入了解了组合逻辑电路的原理和运作方式。

通过观察和测试,我们可以验证电路的正确性和功能是否符合设计要求。

此外,我们还学会了使用逻辑分析仪等工具对电路进行测试和分析,从而提高了我们的实验能力和理论应用能力。

通过这次实验,我们对组合逻辑电路有了更深入的了解,为将来在数字电路设计和工程实践中打下了基础。

实验一 组合逻辑电路设计

实验一 组合逻辑电路设计
74LS10三3输入与非门一片
三.实验任务
1对74LS00,74LS20逻辑门进行功能测试。静态测试列出真值表,动态测试画出波形图,并说明测试的门电路功能是否正常。
2分析测试1.7中各个电路逻辑功能并根据测试结果写出它们的逻辑表达式。
3设计控制楼梯电灯的开关控制器。设楼上,楼下各装一个开关,要求两个开关均可以控制楼梯电灯。
4某公司设计一个邮件优先级区分器。该公司收到有A,B,C,三类邮件,A,类的优先级最高,B类次之,C类最低。邮件到达时,其对应的指示灯亮起,提醒工作人员及时处理。当不同类的邮件同时到达时,对优先级最高的邮件先做处理,其对应的指示灯亮,优先级低的暂不理会。按组合逻辑电路的一般设计步骤设计电路完成此功能,输入输出高低电平代表邮件到达。输出端驱动发光二极管指示。
3)分析实验数据,改进电路。
电路如图8所示:
图8
实验结果:可以达到实验目的,实现邮件优先级区分的功能。
电路如图1:
图1
真值表1.1:
A
B
C
0
0
1
0
1
1
1
0
1
1
1
0
表1.1
实验问题:与非门的引脚要连接正确,注意接地线及直流电源
实验结果:由二极管的发光情况可判断出74LS00实现二输入与非门的功能
(2)71LS00的动态逻辑功能测试
实验器材:函数发生器,示波器 ,74LS00,与非门,开关,直流电压源
实验目的:测试74LS00与非门的逻辑功能
(2)逻辑图b
实验目的:测定逻辑图b的电路功能
实验器材:直流电压源,开关,74LS00与非门
实验内容:根据电路逻辑图画出电路图,由测试结果写出逻辑表达式
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 组合逻辑电路的设计一、实验目的:1、 掌握组合逻辑电路的设计方法。

2、 掌握组合逻辑电路的静态测试方法。

3、 加深FPGA 设计的过程,并比较原理图输入和文本输入的优劣。

4、 理解“毛刺”产生的原因及如何消除其影响。

5、 理解组合逻辑电路的特点。

二、实验的硬件要求:1、 EDA/SOPC 实验箱。

2、 计算机。

三、实验原理1、组合逻辑电路的定义 数字逻辑电路可分为两类:组合逻辑电路和时序逻辑电路。

组合逻辑电路中不包含记忆单元(触发器、锁存器等),主要由逻辑门电路构成,电路在任何时刻的输出只和当前时刻的输入有关,而与以前的输入无关。

时序电路则是指包含了记忆单元的逻辑电路,其输出不仅跟当前电路的输入有关,还和输入信号作用前电路的状态有关。

通常组合逻辑电路可以用图1.1所示结构来描述。

其中,X0、X1、…、Xn 为输入信号, L0、L1、…、Lm 为输出信号。

输入和输出之间的逻辑函数关系可用式1.1表示: 2、组合逻辑电路的设计方法组合逻辑电路的设计任务是根据给定的逻辑功能,求出可实现该逻辑功能的最合理组 合电路。

理解组合逻辑电路的设计概念应该分两个层次:(1)设计的电路在功能上是完整的,能够满足所有设计要求;(2)考虑到成本和设计复杂度,设计的电路应该是最简单的,设计最优化是设计人员必须努力达到的目标。

在设计组合逻辑电路时,首先需要对实际问题进行逻辑抽象,列出真值表,建立起逻辑模型;然后利用代数法或卡诺图法简化逻辑函数,找到最简或最合理的函数表达式;根据简化的逻辑函数画出逻辑图,并验证电路的功能完整性。

设计过程中还应该考虑到一些实际的工程问题,如被选门电路的驱动能力、扇出系数是否足够,信号传递延时是否合乎要求等。

组合电路的基本设计步骤可用图1.2来表示。

3、组合逻辑电路的特点及设计时的注意事项①组合逻辑电路的输出具有立即性,即输入发生变化时,输出立即变化。

(实际电路中图 1.1 组合逻辑电路框图L0=F0(X0,X1,···Xn) · · ·Lm=F0(X0,X1,···Xn)(1.1)图 1.2 组合电路设计步骤示意图图还要考虑器件和导线产生的延时)。

②组合逻辑电路设计时应尽量避免直接或间接的反馈,以免出现不确定的状态或形成振荡。

如右图设计的基本触发器,当输入~S 、~R 从“00”变为“11”时,无法确定Q 和~Q 的值。

③组合逻辑电路容易出现“毛刺”,这是由于电路“竞争-冒险”产生的。

如图1.3所示,图中与门的两个输入分别由信号 A 经过不同路径传递而来。

按照理想情况分析,电路输出端应该始终为 L=A ·~A =0。

考虑到信号在逻辑门中的传输延迟,~A 到达与门输入端的时间始终落后于 A 。

图 3.2-1(b )的波形显示,信号 A 的四次变化都产生了竞争。

但这四次竞争引起的结果是不一样的。

第一次和第三次竞争造 成输出错误,第二次和第四次竞争则没有造成输出错误。

换言之,只有第一次和第三次竞争引起了冒险,产生了尖峰干扰。

由于“毛刺”的影响,应避免使用组合逻辑电路直接产生时钟信号,也应避免将组合逻辑电路的输出作为另一个电路的异步控制信号。

如右图,本意是设计一个计数范围为“0~5”的六进制计数器,即输出QD 、QC 、QB 、QA 从5“0101”变到6“0110”时,与门输出“1”,控制“CLR ”异步复位到“0000”,但是由于输出从3“0011”变到4“0100”时,QC 先于QB 从“0”变到“1”,导致短暂的“0111”出现,使与门输出“1”,引起复位,从而使实际的电路计数范围为“0~3”,与设计的初衷相悖。

④用VHDL 描述组合逻辑电路时,所有的输入信号都应放在敏感信号表中。

⑤用IF 语句和CASE 语句描述电路分支时,一定要列举出所有输入状态(一般在最后加上“else ”或“when others ”分支),否则在综合时将引入LATCH ,使电路输出出现延时。

4、VHDL 语言简介①VHDL 设计文件的基本结构图 1.3 竞争-冒险实例②一些约定◆ 实体、信号、文件等的命名 ◆ 注释的使用◆ 书写代码时使用层次缩进格式◆ 一个文件中只定义一个实体,实体名与文件名一致 ◆ 尽量不使用“变量”,而使用“信号”◆ 不使用硬件无法实现的一些语句,如断言语句、等待语句等 ③使用原理图工具栏的“block tool ”生成设计文件的框架④使用“Edit ”菜单中的“Insert Template ……”插入设计模版 四、实验内容:1、 用原理图方式设计1位二进制半加器半加器。

--********************** --NOT Gate Simulation --Filename:NOTGATE --********************** Library IEEE;Use IEEE. std_logic_1164. all;Entity notgate is port(A :in STD_LOGIC; F :out STD_LOGIC; ); End notgate ;Architecture notgate _arch of notgate is BeginF<= not A End notgate _arch注释栏库和程序包实体定义定义输入输出引脚(即电路的外观) 结构体描述电路的行为(即电路的功能实现)图1.4 一位二进制半加器原理图建立波形文件,对半加器电路分别进行时序仿真和功能仿真,其波形如下:半加器时序仿真波形,注意观察输出延时,以及毛刺的产生原因半加器功能仿真波形用开关K1、K2输入A、B,用两个LED显示S和C。

2、设计BCD码译码器设计。

图1.4 七段数码管译码显示原理图源码如下:输入信号:D[3],D[2],D[1],D[0]所对应的管脚同四位拨码开关相连。

输出信号:代表7段字码驱动信号ledag[0]——ledag[7]的管脚分别同扫描数码管的段输入a,b,c,d,e,f,g,H相连。

3、设计一个BCD码加法器。

BCD码是二进制编码的十进制码,也就是用4位二进制数来表示十进制中的0~9这十个数。

由于4位二进制数有0000~1111共16种组合,而十进制数只需对应4位二进制数的10种组合,故从4位二进制数的16种组合中取出10种组合来分别表示十进制中的0~9,则有许多不同的取舍方式,于是便形成了不同类型的BCD码。

本实验我们只针对最简单的情况,也是最常见的BCD码,就是用4位二进制的0000~1001来表示十进制的0~9,而丢弃4位二进制的1010~1111共6种组合,这样一来,就相当于用4位二进制的0~9对应十进制的0~9。

这样的BCD码进行相加时会出现两种可能,一种可能是当两个BCD码相加的值小于10时,结果仍旧是正确的BCD码;另外一种可能是当两个码相加的结果大于或者等于10时,就会得到错误的结果,这是因为4位二进制码可以表示0~15,而BCD码只取了其中的0~9的原因。

对于第二种错误的情况,有一个简单的处理方法就是作加6处理,就会得到正确的结果。

下面举例说明第二种情况的处理过程。

假如A=(7)10=(0111)2=(0111)BCD,B=(8)10=(1000)2=(1000)BCD,那么A+B=(15)10=(1111)2≠(0001 0101)BCD。

但是对于(1111)2+(0110)2=(0001 0101)2=(0010 0001)BCD。

因此在程序设计时要注意两个输入的BCD码相加结果是否会出现大于或等于10的情况,如果是则必须作加6的修正处理。

BCD码加法器的VHDL源码如下:仿真时注意引脚的数据类型都设置为十六进制格式,如图1.5所示图1.5 BCD码加法器的功能仿真波形4、设计一个4位硬件乘法器。

实现并行乘法器的方法有很多种,但是归结起来基本上分为两类,一类是靠组合逻辑电路实现,另一类通过流水线结构实现。

组合逻辑电路结构的并行乘法器的最大优点就是速度快,但是当位数很大时占用的逻辑资源较多。

下面就组合逻辑电路实现无符号数乘法的方法作详细介绍。

假如有被乘数A和乘数B,首先用A与B的最低位相乘得到S1,然后再把A左移1位与B的第2位相乘得到S2,再将A左移3位与B的第三位相乘得到S3,依此类推,直到把B的所有位都乘完为止,然后再把乘得的结果S1、S2、S3……相加即得到相乘的结果。

需要注意的是,具体实现乘法器是,并不是真正的去乘,而是利用简单的判断去实现,举个简单的例子。

假如A左移n位后与B的第n位相乘,如果B的这位为‘1’,那么相乘的中间结果就是A左移n位后的结果,否则如果B的这位为‘0’,那么就直接让相乘的中间结果为‘0’即可。

待B的所有位相乘结束后,把所有的中间结果相加即得到A与B相乘的结果。

乘法器的功能仿真波形如图1.6所示(注意:三个端口数据类型设置为Unsigned Decimal),图中可以看出,乘法结构的输出没有延时(实际情况应有一定的器件延时,可以通过时序仿真看到)。

图1.6 4位硬件乘法器功能仿真波形五、实验步骤:1.首先打开Quartus II软件,新建工程。

2.按照自己的想法,编写原理图或VHDL文件程序。

3.对自己的设计进行编译并仿真。

4.仿真无误后,根据附录一的引脚对照表,对实验中用到的拨挡开关及LED进行管脚绑定,然后再重新编译一次。

5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。

6.观察实验结果是否与自己的预期想法相吻合。

7.二进制半加器半加器要求分别用时序仿真“Timing”和功能仿真“Function”观察仿真波形,说明“毛刺”出现的原因。

其它实验只需进行功能仿真。

六、实验报告要求1.总结组合逻辑电路的行为特点。

2.论述组合逻辑电路设计、分析和测试方法。

3. 分析“毛刺”产生的原因及如何消除其影响。

4.写出对于原理图和文本描述(VHDL)这两种设计输入方法的优劣心得。

相关文档
最新文档