加减法运算器的设计

合集下载

八进制加减法计数器实验

八进制加减法计数器实验

八进制加减法计数器实验引言八进制加减法计数器是数字电路中常见的一个实验,通过使用八进制进行加减法运算,可以学习和掌握数字电路设计与原理。

本文将深入探讨八进制加减法计数器的原理、设计以及实验步骤。

八进制简介在计算机科学中,八进制是一种表示数字的方式,基数为8。

在八进制中,使用0-7来表示数值。

我们可以将八进制数与十进制和二进制相互转换,八进制数每一位的权值是2的三次方的幂。

八进制加法八进制加法的原理与十进制加法类似,不同的是八进制相加时,当某一位相加的结果大于7时,需要进位到高位。

以下是八进制加法的规则:1.当两个八进制数的相应位相加为0-7时,结果直接写下,并不需要进位。

2.当两个八进制数的相应位相加结果为8-15时,需要向高位进1,并将低三位写下。

3.当两个八进制数的相应位相加结果为16-23时,同样需要向高位进1,并将低三位写下。

4.以此类推,直到最高位为止。

以下是一个八进制加法的例子:56+ 27-----125八进制减法八进制减法的规则和十进制减法类似,不同的是八进制减法时,当被减数的某一位小于减数的对应位时,需要向高位借位。

以下是八进制减法的规则:1.当被减数的某一位大于减数的相应位时,直接相减得到结果。

2.当被减数的某一位小于减数的相应位时,需要向高位借位。

3.向高位借位时,高位的数字需要减1,并且向低位借三个单位。

4.向低位借位时,如果低位为0,则继续借位直到不为0为止。

以下是一个八进制减法的例子:37- 12-----25八进制加减法计数器设计八进制加减法计数器可以由数字电路实现。

根据八进制加减法的原理,我们可以设计一个基于触发器的加减法计数器。

八进制加减法计数器的设计主要包括以下几个步骤:1.确定输入和输出信号的位数,例如我们可以使用3位八进制数进行计算。

2.设计触发器电路,并将其连接为串行进位加法器。

3.根据加减法的规则,设计电路实现进位和借位的功能。

4.使用逻辑门实现8位并行进位加法器。

加法器减法器

加法器减法器

加法器减法器实验⼆组合逻辑电路实验—加法器实验⽬的:1. 掌握加法器相关电路的设计和测试⽅法2. 掌握常见加法器集成芯⽚使⽤⽅法实验原理:在组合逻辑电路中任意时刻的输出只取决于该时刻的输⼊,与电路原来的状态⽆关。

常见加法器芯⽚:加减法电路常见芯⽚74LS183,74LS283等实验内容:⼀、实现两个BCD码的加法运算要求:利⽤74LS283加法器来完成。

思考:当两数之和⼩于或等于9时,相加结果和⼆进制数相加没有区别,如果⼤于9时,要如何处理进位。

下表为两个8421的⼆——⼗进制数相加应得到的⼆——⼗进制形式的结果:由表可见,将两个⼆——⼗进制数⽤⼆进制加法器相加,则相加结果⼩于等于9(1001)时,得到的和就是所求的⼆——⼗进制和。

⽽当相加结果⼤于等于10(1010)后,必须将这个结果在另⼀个⼆进制加法器加6(0110)修正,才能得到⼆——⼗进制的和及相加的进位输出。

所以,产⽣进位输出CO2的条件为产⽣CO2的同时,应该在上加上6(0110),得到的和CO2就是修正后的结果,电路图如下:在信号发⽣器中输⼊数据如下:则结果为:图中由下往上读数,即为结果的⼆进制形式,26为进位端,即⼗位。

⼆、实现两个四位⼆进制的减法要求:利⽤74LS283加法器来完成。

思考:如何将加法器转换为减法功能。

⼆进制的减法如何实现。

在算术运算中,减法可以看做加上这个数的负数来表⽰,在数字电路中,可以将减去⼀个数表⽰成加上这个数的反码。

故在设计电路时,可将减数取反,所以电路图为:在信号发⽣器中输⼊数据如下:则结果为:上向下读数为结果的⼆进制形式。

表⽰负数。

数字电路课程设计之加减法运算电路设计(1)

数字电路课程设计之加减法运算电路设计(1)

设计资料1加减法运算电路设计1.设计内容及要求1.设计一个4位并行加减法运算电路,输入数为一位十进制数,且作减法运算时被减数要大于或等于减数。

2.led 灯组成的七段式数码管显示置入的待运算的两个数,按键控制运算模式,运算完毕,所得结果亦用数码管显示。

3.提出至少两种设计实现方案,并优选方案进行设计2.结构设计与方案选择2.1电路原理方框图电路原理方框图如下→ →图1-1二进制加减运算原理框图如图1-1所示,第一步置入两个四位二进制数(要求置入的数小于1010),如(1001)2和(0111)2,同时在两个七段译码显示器上显示出对应的十进制数9和7;第二步通过开关选择运算方式加或者减;第三步,若选择加运算方式,所置数送入加法运算电路进行运算,同理若选择减运算方式,则所置数送入减法运算电路运算;第四步,前面所得结果通过另外两个七段译码器显示。

即:若选择加法运算方式,则(1001)2+(0111)2=(10000)2 十进制9+7=16置数开关选择运算方式加法运算电路减法运算电路译码显示计算结果显示所置入的两个一位十进制数并在七段译码显示器上显示16.若选择减法运算方式,则(1001)2-(0111)2=(00010)2十进制9-7=2 并在七段译码显示器上显示02.2.2加减运算电路方案设计2.2.1加减运算方案一如图2-2-1所示:通过开关S2——S9接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U13和U15分别显示所置入的两个数。

数A 直接置入四位超前进位加法器74LS283的A4——A1端,74LS283的B4——B1端接四个2输入异或门。

四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关S6——S9,通过开关S6——S9控制数B的输入。

当开关S1接低电平时,B与0异或的结果为B,通过加法器74LS283完成两个数A和B的相加。

当开关S1接高电平时,B与1异或的结果为B非,置入的数B在74LS283的输入端为B的反码,且74LS283的进位信号C0为1,其完成S=A+B (反码)+1,实际上其计算的结果为S=A-B完成减法运算。

4位加减法并行运算电路(包括拓展8位)

4位加减法并行运算电路(包括拓展8位)

4位加减法并行运算电路(包括拓展8位)二○一二~二○一三学年第一学期电子信息工程系脉冲数字电路课程设计报告书班级:电子信息工程(DB)1004班课程名称:脉冲数字电路课程设计学时: 1 周学生姓名:学号:指导教师:廖宇峰二○一二年九月一、设计任务及主要技术指标和要求➢ 设计目的1. 掌握加/减法运算电路的设计和调试方法。

2. 学习数据存储单元的设计方法。

3. 熟悉集成电路的使用方法。

➢ 设计的内容及主要技术指标1. 设计4位并行加/减法运算电路。

2. 设计寄存器单元。

3. 设计全加器工作单元。

4. 设计互补器工作单元。

5. 扩展为8位并行加/减法运算电路(选作)。

➢ 设计的要求1. 根据任务,设计整机的逻辑电路,画出详细框图和总原理图。

2. 选用中小规模集成器件(如74LS 系列),实现所选定的电路。

提出器材清单。

3. 检查设计结果,进行必要的仿真模拟。

二、方案论证及整体电路逻辑框图➢ 方案的总体设计步骤一因为参与运算的两个二进制数是由同一条数据总线分时串行传入,而加法运算的时候需要两个数的并行输入。

所以需要两个寄存器分别通过片选信号,依次对两个二进制进行存储,分别在寄存器的D c B A Q Q Q Q 端口将两个4位二进制数变成并行输出; 步骤二 为了便于观察置入两个4位二进制数的数值大小,根据人们的习惯,在寄存器的输出端,利用两个七段译码器将二进制数转化为十进制数; 步骤三通过开关选择加/减运算方式;步骤四若选择加法运算方式,对所置入数送入加法运算电路进行运算;即:9)1001()0110()0011(222==+ 【十进制:963=+】又或:15)1111()0100()1011(222==+ 【十进制:15511=+】步骤五若选择减法运算方式,对所置入数送入减法运算电路进行运算;即:2)0010()0101()0111(222==- 【十进制:257=-】又或:10)1010()1101()0011(222=-=- 【十进制:10133-=-】步骤六为了便于观察最后的计算结果,以及对最后的计算结果的正确性能做出快速的判断,根据人们的习惯,同上,将计算出的结果输入七段译码器进行译码显示。

一位十进制数加减法器

一位十进制数加减法器

一位十进制数加减法器引言在计算机领域中,数字加减法是最基础且常见的算术运算。

为了实现有效的数字加减法运算,我们需要使用加减法器。

本文将介绍一位十进制数加减法器的设计和功能。

一位十进制数加减法器的原理一位十进制数加减法器是用来对两个十进制数进行加法或减法运算的电路。

它包含三个输入端和两个输出端:•输入端:两个十进制数(A和B)和一个控制输入(Cin)。

•输出端:一个和输出(Sum)和一个进位输出(Cout)。

一位十进制数加减法器根据控制输入的不同来执行不同的操作,具体原理如下:1. 加法操作•输入:A、B和Cin。

•输出:Sum和Cout。

加法操作的实现可以采用如下步骤:1.将A、B和Cin输入到加法器电路中。

2.对A和B进行加法运算,得到结果与进位。

3.Sum输出运算结果,Cout输出进位。

2. 减法操作•输入:A、B和Cin。

•输出:Sum和Cout。

减法操作的实现可以采用如下步骤:1.将A、B和Cin输入到减法器电路中。

2.对A和B进行减法运算,得到结果与借位。

3.Sum输出运算结果,Cout输出借位。

一位十进制数加减法器的设计一位十进制数加减法器的设计需要考虑以下几个方面:1.加法器和减法器电路的设计。

2.输入和输出信号的处理和传输。

3.控制输入的处理和判断。

1. 加法器和减法器电路的设计加法器和减法器电路的设计可以采用逻辑门电路来实现。

对于加法操作,可以通过使用XOR门和AND门来实现加法运算和进位计算。

对于减法操作,可以通过使用补码变换和与非门来实现减法运算和借位计算。

2. 输入和输出信号的处理和传输输入和输出信号的处理和传输可以通过触发器来实现。

触发器是一种存储器件,可以存储和传输信号。

输入信号可以存储在输入触发器中,通过触发器传输到加减法器电路中进行运算。

运算结果可以存储在输出触发器中,通过触发器输出到外部。

3. 控制输入的处理和判断控制输入的处理和判断可以通过逻辑电路来实现。

根据控制输入的不同值,可以判断是执行加法操作还是减法操作,并将相应的输入信号传递给加减法器电路。

数字逻辑电路课程课程设计--简易加减计算器

数字逻辑电路课程课程设计--简易加减计算器

摘要本次课程设计的任务是设计一个具有加减运算功能的简易计算器,并通过合适的方式来显示最后的计算结果。

此次设计电路的完成主要是利用简单的数字电路和电路逻辑运算来进行的。

简易加减计算器电路主要是对数据的输入与显示,数据的加减运算,数据的输出与显示三个主要的方面来设计研究完成的。

在输入电路的部分,我们通过开关的闭合与断开来实现数据的输入,开关闭合接入高电平“1”,断开接入低电平“0”。

而输入的数据将通过显示译码管以十进制的形式显示出来。

由于输入二进制的位数较多,我们采用个位十位分别输入的方式来简化电路。

加减运算电路则主要通过加法器来实现的。

设计电路时,我们将个位和个位、十位和十位分别接入一片加法器。

在进行加法运算时我们所选择的加法器是完全符合要求的,但是在进行减法运算时加法器就不能满足我们的设计要求了。

因此我们将减法转换为加法进行运算,运算时采用补码的形式。

在进行减法时通过异或门将减数的原码全部转换为补码,输入加法器中进行相加。

最后将进位信号加到十位的运算电路上就实现了加减法的运算电路。

在显示电路中,由加法器输出的数据是二进制码。

这些码可能表示超过十的数字,所以显示译码管就不能正确的显示出数字了。

此时要将二进制转化成BCD码,再将BCD 码送到显示译码管中就可以将计算所得的数字显示出来了。

概述1.1设计题目:简易加减计算器1.2设计任务和要求:1)用于两位以下十进制数的加减运算。

2)以合适的方式显示输入数据及计算结果。

1.3设计方案比较:方案一:输入十进制的数字,再通过编码器对十进制的数字进行编码,输出二进制的数据。

运用显示译码器对输入的数字以十进制的形式进行显示。

在进行加减计算的时候将二进制数字运用数模转换,然后再进行相加减。

然后将这些模拟信号再次转换成数字信号转换成数字信号,再将数字信号输入到显示译码管中来显示数剧。

这个方案中要进行数模转换和模数转换所需要的电路器件有些复杂,并且转换的时候需要很长的时间,而且转换以后数值的精度不高。

位可控加减法器设计32位算术逻辑运算单元

位可控加减法器设计32位算术逻辑运算单元标题:深入探讨位可控加减法器设计中的32位算术逻辑运算单元一、引言在计算机系统中,算术逻辑运算单元(ALU)是至关重要的部件,用于执行数字运算和逻辑运算。

而在ALU中,位可控加减法器设计是其中的重要部分,尤其在32位算术逻辑运算单元中更是不可或缺。

本文将深入探讨位可控加减法器设计在32位算术逻辑运算单元中的重要性,结构特点以及个人观点和理解。

二、位可控加减法器设计的重要性位可控加减法器是ALU中的重要组成部分,它具有对加法和减法操作进行控制的能力,可以根据输入信号来实现不同的运算操作。

在32位算术逻辑运算单元中,位可控加减法器的设计要考虑到对每一位进行并行操作,并且要保证高速、低功耗和稳定性。

位可控加减法器设计在32位算术逻辑运算单元中具有非常重要的意义。

三、位可控加减法器设计的结构特点在32位算术逻辑运算单元中,位可控加减法器的设计需要考虑到以下几个结构特点:1. 并行运算:位可控加减法器需要能够实现对32位数据的并行运算,以提高运算速度。

2. 控制信号:设计需要合理的控制信号输入,来实现不同的运算模式和操作类型。

3. 进位传递:保证进位信号能够正确传递和计算,以确保运算的准确性。

4. 低功耗:设计需要考虑到低功耗的特点,以满足现代计算机系统对能源的需求。

四、个人观点和理解在我看来,位可控加减法器设计在32位算术逻辑运算单元中扮演着十分重要的角色。

它不仅需要具备高速、稳定和精确的运算能力,还需要考虑到功耗和控制信号的合理设计。

只有兼具这些特点,才能更好地满足现代计算机系统对于高效、可靠和低功耗的需求。

五、总结和回顾通过本文对位可控加减法器设计在32位算术逻辑运算单元中的深入探讨,我们可以看到它在计算机系统中的重要性和结构特点。

而个人观点也表明了它需要具备高速、低功耗和稳定性等特点,才能更好地满足现代计算机系统的需求。

在写作过程中,我对位可控加减法器设计在32位算术逻辑运算单元中的重要性和结构特点进行了深入探讨,并分享了个人观点和理解。

58位可控加减法器设计实验设计思路

58位可控加减法器设计实验设计思路设计思路:1.设计目标:设计一个可控加减法器,实现两个n位二进制数的加减法运算,并且能够通过控制信号选择加法或减法运算。

2.确定输入输出:输入为两个n位的二进制数A和B,以及一个控制信号S,输出为一个n位的二进制数C,表示加减法结果。

3.设计原理:加减法运算的实质是多位二进制数的逐位相加。

根据数字电路的原理,我们可以采用逐位全加器的方式完成加减法运算。

4.设计步骤:(1)设计全加器:一个全加器可以完成两个输入位和一个进位位的加法运算,输出一个和位和一个进位位。

根据全加器的真值表和卡诺图,可以使用逻辑门电路设计一个全加器。

(2)设计n位可控加减法器:根据逐位相加的原理,可以设计一个n位的可控加减法器。

对于每一位的加减法运算,我们可以通过控制信号S来选择相应的输入信号。

当S为0时,选择两个输入数的相应位进行相加;当S为1时,在两个输入数的相应位进行相减。

同时,还需要考虑进位的传递问题,以及最高位的溢出问题。

(3)结合n位全加器和n位可控加减法器,可以实现一个完整的可控加减法器电路。

5.确定控制信号S的设计:可控加减法器需要一个控制信号S来选择加法或减法运算。

我们可以通过一个开关或者一个控制寄存器来控制S的值。

当控制信号为0时,进行加法运算;当控制信号为1时,进行减法运算。

6.设计电路框图和布局:根据上述设计思路,可以绘制可控加减法器的电路框图和布局。

在设计电路布局时,需要考虑信号的传输路径、布线的优化和电路稳定性等因素。

7.仿真和验证:使用电路设计软件进行仿真和验证。

在仿真中,可以输入不同的测试样例,验证可控加减法器的正确性和稳定性。

需要特别关注边界情况和溢出情况的处理。

8.制作原型:根据电路设计结果,可以进行实际电路的制作和调试。

根据实际情况,可以选择不同的集成电路元件,如逻辑门芯片、触发器等,并根据需要进行连线、焊接等操作。

9.测试和优化:对制作好的原型进行测试和优化。

加减法运算器电路

加减法运算器电路加减法运算器电路是一种用于进行数字加减运算的电路,通常用于数字逻辑电路或计算机系统中。

它可以接受两个输入数字,并输出它们的和或差,具有广泛的应用领域。

加减法运算器电路的设计通常包括以下几个关键部分:输入端、加法器、减法器、选择器、输出端等。

首先,输入端用于接收两个数字的输入。

这些输入数字可以是二进制数字,也可以是十进制数字经过编码转换为二进制表示。

输入端需要将输入的数字传递给加法器或减法器进行运算。

加法器是加减法运算器电路的核心部分之一。

它能够接受两个数字的输入,并将它们相加得到一个和。

加法器通常采用全加器电路进行设计,全加器能够实现三个数字的加法运算,其中两个数字是输入数字,另一个数字是进位数字。

通过级联多个全加器电路,可以实现多位数字的加法运算。

减法器是加减法运算器电路的另一个核心部分。

它能够接受两个数字的输入,并将它们相减得到一个差。

减法器通常采用全减器电路进行设计,全减器能够实现两个数字的减法运算,其中一个数字是被减数,另一个数字是减数。

通过级联多个全减器电路,可以实现多位数字的减法运算。

选择器用于选择加法器或减法器的输出结果作为最终的输出。

根据需要进行加法或减法运算,选择器可以将加法器或减法器的输出传递给输出端。

最后,输出端用于输出加法或减法运算的结果。

输出端可以是数字显示器、LED指示灯或数字信号输出接口,将计算结果显示给用户或传递给其他电路进行进一步处理。

总的来说,加减法运算器电路的设计需要充分考虑数字逻辑电路的设计原理,合理选择加法器、减法器和选择器的设计方案,确保电路能够准确、稳定地进行加减法运算。

加减法运算器电路在数字电子技术和计算机领域有着重要的应用,是数字系统中不可或缺的一部分。

计算机组成原理八位原码加减法器电路课程设计

计算机组成原理八位原码加减法器电路课程设计是一个重要的课题,它涉及到计算机内部数字运算的实现方式。

在加减法器电路的设计中,我们需要考虑到输入数据的编码方式以及运算的性质。

在这个设计中,我们将使用八位原码进行加减法运算。

首先,我们需要明确输入的数据格式。

原码表示法是一种最直观的数值表示方法,它直接反映了数值的正负和绝对大小。

对于八位二进制原码,它的取值范围是-256到255。

在这个范围内,数值的大小和其对应的二进制表示之间的关系是简单的线性关系。

接下来,我们来看一下加减法器的电路设计。

由于我们需要进行的是加法和减法运算,我们需要使用两个不同的电路模块:加法器和减法器。

对于加法器,我们可以使用异或门和与门组合的方式来实现。

八位二进制数的异或运算具有"无进位"的性质,因此在需要加法运算时,我们可以通过异或门来实现逐位相加。

由于输入的数据是以原码形式给出的,因此在输出端需要进行一次模2取反操作,将加法结果转化为实际的数值大小。

这个过程可以用一个简单的逻辑表达式描述如下:C[7:0] = A[7:0] XOR B[7:0]D[7:0] = 255 - C[7:0]其中,C[7:0]是异或运算的结果,D[7:0]是实际数值大小。

对于减法器,我们同样可以使用异或门和与门来实现。

由于减法运算涉及到负数的情况,我们需要引入进位信号来处理负数减法的溢出问题。

具体的实现方式可以参考加法器的设计,只是在输出端需要进行一次模2加操作,将减法结果转化为实际的数值大小。

在进行电路设计时,我们还需要考虑到一些细节问题,比如输入输出端的延迟问题、电路的稳定性和抗干扰能力等。

这些因素都可能影响到电路的性能和精度。

因此,在进行电路设计时,我们需要充分考虑这些因素,并通过实验和测试来验证我们的设计是否满足要求。

总的来说,八位原码加减法器电路的设计是一个复杂而又重要的任务。

通过这个设计,我们可以更好地理解计算机内部数字运算的实现方式,也可以为更高级的计算机组成原理课程设计打下基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中央民族大学数字电路实验报告加减法运算器的设计姓名:王瑞琦学号: ******** 班级:13级计算机一班所在院系:信息工程学院指导老师:***完成日期:2015/03/28-2015/03/29目录一、实验目的 (3)二、实验设备 (3)三、实验内容 (3)四、实验功能概要 (3)五、设计详细描述 (4)5.1四位行波进位加减法运算器 (4)5.1.1功能描述 (4)5.1.2封装模块图 (4)5.1.3总电路图 (4)5.1.4组成模块 (5)5.1.5程序设计 (6)5.1.6功能仿真波形图 (8)5.2四位超前进位加法运算器 (9)5.2.1功能概述 (9)5.2.2封装模块图 (9)5.2.3程序设计 (9)5.2.4功能仿真波形图 (11)六、实验注意事项 (11)七、实验问题及解决方法 (12)一、实验目的1、掌握加减法运算器的Verilog HDL语言描述方法2、理解超前进位算法的基本原理3、掌握基于模块的多位加减运算器的层次化设计方法4、掌握溢出检测方法和标志线的生成技术5、熟悉QuartusⅡ 10.0和DE2-115使用方法二、实验设备PC机+ QuartusⅡ10.0 + DE2-115三、实验内容1、在PC机上安装QuartusⅡ10.0或更高版本并破解。

(注意:QuartusⅡ10.0版本以上软件不再包含仿真组件,因此需要在安装QuartusⅡ10.0同时选择安装第三方仿真工具,我们可以选择安装免费的Modelsim-Altera,学习如何编写Verilog HDL格式的仿真测试文件Testbench。

)2、在PC机上安装DE2-115的驱动程序。

3、使用Verilog HDL语言实现一个4位行波(串行)进位的加减法运算器,要求有溢出和进位标志,仿真正确后封装成模块。

4、使用Verilog HDL语言实现一个4位超前(并行)进位加减运算器,要求有溢出和进位标志,仿真正确后封装成模块。

四、实验功能概要1.四位行波进位的加减法运算器,有溢出和进位标志。

2.四位超前进位的加减法运算器,有溢出和进位标志。

五、设计详细描述5.1四位行波进位加减法运算器5.1.1功能描述带符号位的4位的两数进行加减运算,m进行控制,m=0时进行加法,m=1时进行减法。

S表示输出结果,C表示进位输出,Y标志溢出。

5.1.2封装模块图5.1.3总电路图5.1.4组成模块一位全加器电路图一位全加器封装图一位全加器功能仿真波形图求补电路图求补电路封装模块图5.1.5程序设计module num4_wait(m,A,B,Y,SS);input wire m;input wire[3:0] A;input wire[3:0] B; output wire Y;output wire[3:0] SS;wire[3:0] AA;wire[3:0] BB;wire[3:0] S;wire SYNTHESIZED_WIRE_0; wire SYNTHESIZED_WIRE_9; wire SYNTHESIZED_WIRE_2; wire SYNTHESIZED_WIRE_3; wire SYNTHESIZED_WIRE_4; wire SYNTHESIZED_WIRE_5; wire SYNTHESIZED_WIRE_6; wire SYNTHESIZED_WIRE_7;Add_minus b2v_inst(.A(SYNTHESIZED_WIRE_0),.B(BB[3]),.Ci(SYNTHESIZED_WIRE_9),.C(SYNTHESIZED_WIRE_7),.S(S[3]));Add_minus b2v_inst1(.A(SYNTHESIZED_WIRE_2),.B(BB[2]),.Ci(SYNTHESIZED_WIRE_3),.C(SYNTHESIZED_WIRE_9),.S(S[2]));qiubu b2v_inst14(.a(A),.aa(AA));qiubu b2v_inst15(.a(B),.aa(BB));qiubu b2v_inst16(.a(S),.aa(SS));Add_minus b2v_inst2(.A(SYNTHESIZED_WIRE_4),.B(BB[1]),.Ci(SYNTHESIZED_WIRE_5),.C(SYNTHESIZED_WIRE_3),.S(S[1]));Add_minus b2v_inst3(.A(SYNTHESIZED_WIRE_6),.B(BB[0]),.Ci(m),.C(SYNTHESIZED_WIRE_5),.S(S[0]));assign SYNTHESIZED_WIRE_0 = AA[3] ^ m;assign SYNTHESIZED_WIRE_2 = AA[2] ^ m;assign SYNTHESIZED_WIRE_4 = AA[1] ^ m;assign SYNTHESIZED_WIRE_6 = AA[0] ^ m;assign Y = SYNTHESIZED_WIRE_7 ^ SYNTHESIZED_WIRE_9; endmodule5.1.6功能仿真波形图(二进制波形图)正常情况Y=0存在溢出时Y=15.2四位超前进位加法运算器5.2.1功能概述实现两个四位的数的加法,S输出结果,overflow标志是否溢出,carry_out表示进位。

5.2.2封装模块图5.2.3程序设计module Add_minus_num4(input [3:0] a,input [3:0] b,input c0,//carry_ininput clk,input cclr,input m;output reg carry_out,output reg [3:0]sum,output reg overflow);wire c1,c2,c3,c4;wire p0,p1,p2,p3;wire g0,g1,g2,g3;wire sum0,sum1,sum2,sum3;assign g0=a[0]&b[0];assign g1=a[1]&b[1];assign g2=a[2]&b[2];assign g3=a[3]&b[3];assign p0=a[0]^b[0];assign p1=a[1]^b[1];assign p2=a[2]^b[2];assign p3=a[3]^b[3];//并行进位公式assign c1=g0|c0&p0;//g0 + c0p0assign c2=g1|(g0&p1)|(c0&p0&p1);//g1 + p1g0 + p1p0c0assign c3=g2|(g1&p2)|(g0&p1&p2)|(c0&p0&p1&p2);//g2 + p2g1 + p2p1g0 + p2p1p0c0 assign c4=g3|(g2&p3)|(g1&p2&p3)|(g0&p1&p2&p3)|(c0&p0&p1&p2&p3);//g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0c0assign sum0=p0^c0;assign sum1=p1^c1;assign sum2=p2^c2;assign sum3=p3^c3;always @ (posedge clk or negedge cclr)beginif (!cclr)begin //用于复位sum<= 0;carry_out<=0;endelsebeginsum<={sum3,sum2,sum1,sum0};carry_out<=c4;//符号位进位输出overflow =c4^c3;//溢出设计endendendmodule5.2.4功能仿真波形图溢出时carry_out=1;六、实验注意事项1.使用testbench进行仿真时切记initial块之间是并行的,否则会因理解有误使得结果相差很大。

2.使用Modelsim-Altrea仿真,在设置setting中编译TestBench部分建立新的TestBench时,名称一定要与testbench的文件名相同,即xxx_vlg_tst()格式,否则调用时会报错error loading或无法出现波形图。

七、实验问题及解决方法1.使用仿真软件时报错:Info: Start Nativelink Simulation processError: NativeLink did not detect any HDL files in the projectError: NativeLink simulation flow was NOT successfulNativelink TCL script failed with errorCode: NONENativelink TCL script failed with errorInfo: NativeLink did not detect any HDL files in the project(procedure "run_eda_simulation_tool" line 1)invoked from within"run_eda_simulation_tool eda_opts_hash"问题解决:由于是原理图自动生成的verilog hdl语言,而modelsim只能仿真hdl文件,不能仿真原理图。

可以用file->creat/update->create hdl design file from current file来生成一个同名的hdl文件。

之后将原来的原理图文件从工程中移去(否则分析综合时会报错),进行分析综合。

这样就可以进行rtl 仿真了。

2.使用modelsim-altera仿真时发现窗口能弹出,但没有wave波形图问题解决:窗口能弹出表示路径正确,点击波形图下方“transcript”,进入后可看到报错error提示,通常为testbench语法报错,直接进入vt文件进行修改即可。

3.报错error loading问题解决:有两种原因:第一次因为创建testbench时文件名与testbench里的名称不一样;第二次因为没有从工程目录下移除bdf文件或给它更名,我是利用电路图,生成Verilog HDL文件的,因此bdf文件也放在工程目录下,由于二者名字相同,软件无法判断哪个才是需要仿真的文件,因而报错。

相关文档
最新文档