8位加法器设计程序过程
8位加法器的设计
实验二8位加法器的设计1.实验目的:(1)学习使用Quartus II软件的基本用法(2)了解和掌握VHDL语言的语法规则和编程方法及基本流程(3)了解VHDL语言的基本结构(4)掌握元件例化设计思想2.实验内容设计一个由两个4位二进制并行加法器级联而成的8位加法器。
参考设计方案:加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。
并行进位加法器通常比串行级联加法器占用更多的资源。
随着位数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大。
因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。
实践证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。
这样,多位加法器由4位二进制并行加法器级联构成是较好的折中选择,下图即为八位加法器原理框图。
3.实验要求(1)画出系统的RTL原理框图,说明系统中个主要成分的功能(2)编写VHDL程序(3)进行系统时序仿真,画出时序图(4)记录实验过程中遇到的问题及解决办法4.程序设计5.生成RTL电路图如图所示,一个8位加法器由2个4位二进制并行加法器级联构成,4位二进制并行加法器U1的进位输出串接在U2的低位进位CIN上,4位二进制并行加法器U1的输入是A、B、CIN,4位二进制并行加法器U2的输入是A、B和由U1来的进位CONT,从而得到一个8位全加器。
6.仿真波形7.实验心得在本次实验中我遇到的问题是,刚开始我以为只要把4位二进制并行加法器和8位二进制加法器的VHDL程序代码全打在ADDER8B 中编译就可以了,这样做虽然也能够编译成功,但是,结果是,Quartus II软件只默认编译的第一个源程序,也就是4位二进制并行加法器的源程序。
结果我尝试了很久才发现,原来要把两个.vhd文件分开书写,并且8位二进制加法器的顶层文件名要与程序的实体名称一致。
8位串行全加器设计
8位串行全加器设计一.实验目的1.掌握ISE开发工具的使用,掌握FPGA开发的基本步骤;2.掌握8位串行全加器电路设计的一般办法;3.掌握程序下载的办法;4.初步了解开发板资源,掌握开发板的使用方法,重点掌握按键,开关,LCD,LED的使用方法。
二.实验内容1.用VHDL实现8位串行全加器8位串行全加器顶层模块电路如下图所示。
图 8位串行全加器顶层模块其中a_in,b_in:数据输入,使用板上开关(S0~S15);sum_out:运算结果输出,使用LED显示运算结果。
2.将程序下载到FPGA并进行检验资源使用要求用开关(S0~S15)输入加数,被加数。
用 LED(D8~D15)显示运算结果。
三.实验步骤1.启动ISE,新建工程文件;2.编写8位串行全加器模块Hadder,其原理图如上图所示。
3.编写完加法器模块之后,在顶层文件上实现映射;4.新建UCF文件,输入位置约束;5.完成综合,实现,生成下载文件;6.连接开发板USB下载线,开启开发板电源;7.下载FPGA;8.输入数据,验证结果。
四.关键代码entity add_one isPort ( a_in : in STD_LOGIC;b_in : in STD_LOGIC;cin : in STD_LOGIC;si : out STD_LOGIC;cout : out STD_LOGIC);end add_one;architecture Behavioral of add_one isbeginsi<=(a_in xor b_in)xor cin;cout<=(a_in and b_in)or(cin and a_in)or(cin and b_in); end Behavioral;-- 一位加entity add_eight isPort ( a : in STD_LOGIC_VECTOR (7 downto 0);b : in STD_LOGIC_VECTOR (7 downto 0);sum : out STD_LOGIC_VECTOR (7 downto 0);c_out :out STD_LOGIC);end add_eight;architecture Behavioral of add_eight is component add_oneport( a_in,b_in,cin:in STD_LOGIC;si,cout:out STD_LOGIC);end component;signal c: STD_LOGIC_VECTOR (7 downto 0);signal c_in:STD_LOGIC:='0';beginu0: add_one port map(a(0),b(0),c_in,sum(0),c(0)); u1: add_one port map(a(1),b(1),c(0),sum(1),c(1)); u2: add_one port map(a(2),b(2),c(1),sum(2),c(2)); u3: add_one port map(a(3),b(3),c(2),sum(3),c(3)); u4: add_one port map(a(4),b(4),c(3),sum(4),c(4)); u5: add_one port map(a(5),b(5),c(4),sum(5),c(5)); u6: add_one port map(a(6),b(6),c(5),sum(6),c(6)); u7: add_one port map(a(7),b(7),c(6),sum(7),c_out); end Behavioral;--八位加。
8位加法器设计程序过程
8位加法器设计程序过程实验 8位加法器设计一、实验目的熟悉利用QuartusⅡ的图形编辑输入法设计简单组合电路,掌握层次化设计方法,并通过8位全加器的设计,进一步熟悉利用EDA软件进行数字系统设计的流程。
二、实验仪器与器材计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。
三、实验内容1. 基本命题利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。
2. 扩展命题利用文本输入法设计4位并行进位加法器,再利用层次设计方法构成8位加法器。
通过时序仿真,比较两种加法器的性能。
四、实验设计思路按照如图2-1,2-2,2-3设计半加器、全加器、串行级联加法器① 设计半加器图2-1半加器设计图② 设计全加器图2-2全加加器设计图③ 设计串行级联8位加法器图2-3串行级联8位加法器设计图④ 仿真波形图对以上的串行级联加法器进行仿真。
设置时钟频率为/1/10ns。
每20ns对a,b输入口进行+2操作。
所得结果见图2-8。
由图可知延时大约为14ns。
图2-4串行级联加法器仿真波形图对以上的串行级联加法器进行仿真。
设置时钟频率为/2.0us。
每10us对a,b输入口进行+2操作。
所得结果见图2-4。
由图可知延时大约为10us。
五、实验要求将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。
六、实验思考题(1)与单一设计文件比较,实现层次化设计应注意哪些问题?答:实现层次化设计需要注意的是:假设B设计中引用A设计,那么需要将A设计的工程文件放在B设计的工程文件中,另外,B设计的工程必须要以B的实体名称对应,不然仿真的时候会出错。
(2)比较图形编辑和文本编辑两种8位二进制加法器的性能,分析它们的主要异同点。
以下是文本编辑的参考程序。
1) 4位二进制数加法器ADDER4B的VHDL描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER4B ISPORT ( CIN4 : IN STD_LOGIC;A4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);B4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);S4 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT4 : OUT STD_LOGIC);END ADDER4B;ARCHITECTURE behav OF ADDER4B ISSIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL AA,BB : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINAA<='0'&A4;BB<='0'&B4;SINT <= AA + BB + CIN4;S4 <= SINT(3 DOWNTO 0);COUT4 <= SINT(4);END behav;图2-9ADDER4B仿真波形图对以上的ADDER8B进行仿真。
用原理图输入法设计8位全加器
实验五用原理图输入法设计8位全加器一、实验目的熟悉利用QuartusII的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计,把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验原理一个8位全加器可以由8个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。
而一个1位全加器可以也是通过原理图输入的方法来完成。
三、实验内容(一)完成半加器和全加器的设计1、打开原理图输入编辑窗(1)File/new/“Block Diagram/Schematic File ”(2)在编辑窗中合适位置双击/展开libraries的“+”号、primitives/logic (3)根据半加器电路图,一次双击logic中的元件and2、not、xnor及pin 中的输入引脚input、输出引脚output调入各元件。
(4)通过左侧工具栏选择连线,按原理图连接好电路(5)双击input和output的PIN NAME至变成黑色,输入各引脚名:a、b、co、so(6)存盘 Fileve as/建立文件夹及目录,如d:\adder\存盘文件名为h_adder (7)生成电路符号在打开半加器原理图时/File/“Create/Update”/Create Symbol Files for Current File说明:A.转换生成电路符号也适用输入文本形式的文件B.只针对被打开的原理图或文件C.转换好的元件必须存在当前工程的文件夹中(8)设计全加器再打开一个原理图编辑窗口/调入元件连接好电路图/以名f_adder将其存在同一文件夹中。
(9)将f_adder.bdf设置为工程 File/New Project Wizard/Next/工程名和顶层文件名都为f_adder2.编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。
8位串行全加器设计
8位串行全加器设计串行全加器是一种基本的数字电路,用于实现两个二进制数的加法运算。
它可以将两个数位相同的二进制数相加,并将其和以及进位输出。
本文将详细介绍如何设计一个8位串行全加器。
首先,我们需要了解全加器的功能。
全加器由两个输入和两个输出组成。
输入包括两个要相加的二进制数位以及前一位的进位(Carry In),输出包括当前位的和(Sum)和当前位的进位(Carry Out)。
设计一个8位串行全加器时,我们需要将8个全加器连接在一起。
每个全加器的输入为两个二进制数位和前一位的进位,输出为当前位的和和当前位的进位。
具体设计步骤如下:1.首先,我们需要设计一个单个全加器电路。
全加器电路可以通过将两个半加器连在一起来实现。
半加器接收两个输入,并输出当前位的和和当前位的进位。
2.设计一个半加器电路。
半加器电路由两个输入和两个输出组成。
输入包括两个要相加的二进制数位,输出包括当前位的和和当前位的进位。
3.实现半加器电路的真值表。
半加器的真值表如下:输入A,输入B,输出S,进位--------,--------,--------,-------0,0,0,0,1,1,1,0,1,1,1,0,根据真值表可知,半加器的和输出为输入A和输入B的异或运算结果,进位输出为输入A和输入B的与运算结果。
4.通过使用逻辑门来实现半加器电路。
可以使用异或门实现和输出,使用与门实现进位输出。
5.设计一个完整的全加器电路。
一个全加器电路由一个半加器和一个或门构成。
半加器负责计算两个输入位的和和进位,而或门负责计算前一位的进位和当前位的进位的和。
全加器电路的输入为两个要相加的二进制数位和前一位的进位,输出为当前位的和和当前位的进位。
6.将8个全加器连在一起。
将第一个全加器的输入连接到待相加的两个8位二进制数的最低位和前一位的进位,将第二个全加器的输入连接到待相加的两个8位二进制数的次低位和第一个全加器的进位,以此类推。
最后一个全加器的输出即为所求的和。
八位全加器设计
八位全加器设计一、实验目的熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验原理及仿真结果方案一8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与下一级一位全加器的进位输入信号cin相连。
设计流程(含仿真波形图):1、全加器的实现:由半加器加上组合电路实现。
仿真结果为:2、八位全加器的实现:由八个全加器组合生成八位全加器。
仿真结果为:方案二直接调用Quartus内部的宏功能模块LPM_ADD_SUB来实现8位全加器,其电路结构图如下:仿真结果为:方案三利用VHDL语言的运算操作符“+”和并置符“&”,可以通过少量的代码来实现复杂的全8位加器,关键代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_unsigned.ALL;ENTITY fulladderarray ISPORT(aa: IN STD_LOGIC_vector(7 downto 0);bb: IN STD_LOGIC_VECTOR(7 DOWNTO 0);cin: IN STD_LOGIC;sum: out STD_LOGIC_VECTOR(7 DOWNTO 0);cout: OUT STD_LOGIC);END ENTITY fulladderarray ;ARCHITECTURE one OF fulladderarray ISsignal nn: std_logic_vector(8 downto 0);BEGINnn<='0'& aa+bb+cin;sum<=nn(7 downto 0);cout<=nn(8);END ARCHITECTURE one;仿真结果为:三、方案比较三种方案的仿真时间如下:三种方案对FPGA的资源利用数量为:方案一方案二方案三经比较分析可得:方案一用时最多,方案三最少;方案一和方案三都用了较少的内部资源,方案一利用了较多的内部资源。
实验06八位硬件加法器
实验六8位硬件加法器一. 实验目的1. 掌握QuartusII的硬件描述语言设计方法2. 了解同步计数器的原理及应用3. 设计一个带使能输入、进位输出及同步清零的增1四位N (N<16)进制同步计数器二. 准备知识1. 串行进位加法器若有多位数相加,则可采用并行相加串行进位的方式来完成。
例如,有两个4位二进制数A3A2A1A0和B3B2B1B0相加,可以采用两片内含两个全加器或1片内含4个全加器的集成电路组成,其原理图如图6.1所示:图6.1 串行进位加法器由图6.1可以看出,每1位的进位信号送给下1位作为输入信号,因此,任1位的加法运算必须在低1位的运算完成之后才能进行,这种进位方式称为串行进位。
这种加法器的逻辑电路比较简单,但它的运算速度不高。
为克服这一缺点,可以采用超前进位等方式。
2. 超前进位加法器对于一个加法器来说,它是一个纯组合电路。
也就是它的输出在输入出现的时刻就已经确定了,包括它的和和进位值,是输入的组合逻辑。
换而言之,只要知道输入,在不算出和的情况下也可以得到进位值,该值仅为输入的组合逻辑,以这样的一种思路设计的叫超前进位加法器。
而所谓串行进位加法器,就是必须算得低位加法的值后才可以继续计算高位值,如图6.1所示的电路,引用了一位全加器构成了四位全加器。
在硬件实现上,在4倍的单个全加器延时时间内它的输出都是不准确的,必须经过4倍的单个全加器延时时间才能得到准确值。
如果是16位或32位的加法器,延时是不可容忍的。
因此一般来说是直接利用输入组合逻辑方式同时决定结果的每一位和输出进位来实现的加法器,为超前进位加法器,相比与串行加法大大减低了多位加法所需要的延迟。
由于串行进位加法器的速度受到进位信号的限制,人们又设计了一种多位数超前进位加法逻辑电路,使每位的进位只由加数和被加数决定,而与低位的进位无关。
现在介绍超前进位的概念。
根据全加器的功能,可列出它的真值表:表6.1 全加器真值表由全加器的真值表可得Si 和Ci 的逻辑表达式:1111111i i i i i i i i i i i i i i i i i i i i i i S A B C A B C A B C A B C A B C A B C A B C -------=+++=⊕+⊕=⊕⊕ (6.1)11111i i i i i i i i i i i i i i i i i i C A B C A B C A B C A B C A B A B C -----=+++=+⊕ (6.2)定义两个中间变量Gi 和Pi :i i i i i iG A B P A B ==⊕ (6.3)当Ai =Bi =1时,Gi =1,由Ci 的表达式可得Ci =1,即产生进位,所以Gi 称为产生量变 。
8位加法器设计程序过程
8位加法器设计程序过程八位加法器是一种组合逻辑电路,用于计算两个八位二进制数的和。
在设计过程中,需要确定输入和输出的位数、电路逻辑、输入输出关系等。
下面是一个八位加法器设计程序的详细过程。
1.确定输入和输出的位数:首先,我们需要明确八位加法器的输入和输出的位数。
在这个例子中,我们使用八位二进制数作为输入,并需要输出一个八位的和。
因此,输入和输出的位数均为8位。
2.确定输入和输出的表示形式:在计算机中,二进制数通常以补码形式进行表示。
因此,在这个例子中,我们将使用补码表示输入和输出。
3.分析电路逻辑:一个八位加法器由八位的全加器以及一个进位逻辑组成。
全加器用于计算两个相应位数相加的结果,而进位逻辑负责处理进位位。
因此,我们需要设计八个全加器和一个进位逻辑。
4.设计全加器电路:全加器是八位加法器的核心部分,用于计算两个位的和以及进位。
全加器的输入包括两个加数位和一个来自前一位的进位位。
输出包括和位以及进位位。
以下是一个典型的全加器电路:- 输入:A、B和C_in- 输出:Sum和C_out-逻辑表达式:Sum = A 异或 B 异或 C_inC_out = (A and B) 或 (C_in and (A 异或 B))设计八个这样的全加器电路,分别用于计算八个相应位数的和以及进位。
5.设计进位逻辑电路:进位逻辑电路负责处理来自各个位的进位。
具体来说,进位逻辑电路需要计算进位位以及进位到下一位的值。
以下是一个典型的进位逻辑电路:- 输入:C_in、C_0、C_1、C_2、C_3、C_4、C_5、C_6 和 C_7- 输出:C_out 和 C_next-逻辑表达式:C_out = C_7C_next = (C_6 and C_7) 或 (C_5 and (C_6 or C_7)) 或 (C_4 and (C_5 or (C_6 or C_7))) 或 ......(C_1 and (C_2 or (C_3 or (C_4 or (C_5 or (C_6 or C_7))))))其中,C_out代表从最高位传出的进位,C_next代表传递给下一位的进位。
用原理图方法设计8位全加器
实验报告一一、实验目的熟悉利用QuartusII的原理图输入方法设计简单电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。
二、实验内容1.根据工作原理,完成1位半加器和全加器的设计;2.建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真。
三、实验环境计算机、QuartusII软件四、实验步骤1.根据半加器工作原理,建立电路并仿真,并将元件打包。
(1)电路(2)仿真:仿真结果分析:S为和信号,当A=1,B=0或A=0,B=1时,和信号S为1,否则为0.当A=B=1时,产生进位信号,及CO=1。
(3)打包后的文件:2.利用半加器构成一位全加器,并打包。
(1)电路(2)仿真仿真结果分析:CI为来自低位的进位,S=A xor B xor CI,即:当A,B,CI中有一位为高电平‘1’或者三位同时高电平为‘1’,则S=1,否则S=0;当A,B,CI有两位或者三位同为高电平‘1’时,产生进位信号CO=‘1’。
(3)打包后的文件3.利用全加器构成8位全加器,并完成编译、综合、适配、仿真。
(1)电路(2)仿真仿真结果分析:八位全加器,和S分别与A,B 对应。
当来自第七位的进位信号为‘1’、A 的最高位和B的最高位三者有两个位高电平‘1’时,则产生进位信号CO=‘1’。
五、实验结果与讨论实验的仿真结果与预计的结果一致,所以所设计的电路是正确的。
不足的地方有:1、对软件还不够熟悉,所以操作的有点慢;2、设计电路时,由于数字电路的知识有些开始淡忘了,所以应当及时去补缺补弱。
六、总结思考题:为了提高加法器工作速度,如何改进以设计的进位方式?答:采用超前进位。
串行加法器的第i位进位是由0~(i-1)决定的,而超前进位是事先得出每一位全加器的进位输出信号,而无需再从低位开始向高位逐位传递进位信号了,这就有效地提高了工作速度了。
EDA技术》实验报告8位二进制加法器设计
《EDA技术》实验报告实验名称: 8位二进制全加器设计
姓名:
班级:
学号:
实验日期:2010-3-29
指导教师:
一、实验设计要求
以一位二进制全加器为基本元件,用例化语句写出8位并行二进制全加器的顶层文件,并讨论此加法器的电路特性。
二、设计原理
电路结构图或原理图
电路功能描述
定义了8位二进制全加器顶层设计元件端口信号,输入端口:AIN, BIN,是八个二进制数,数据类型被定义为STD_LOGIC_VECTOR。
CIN是输入的进位,数据类型IN STD_LOGIC;输出端口:SUM为和,数据类型IN STD_LOGIC COUT 为输出的进位。
三、实验程序
程序1:一位二进制全加器设计顶层描述
程序2:8位并行二进制全加器顶层文件
四、编译及仿真结果
选用器件型号cyclone
编译后使用器件资源情况、引脚配置情况(硬件实验)
仿真结果显示:
该设计是成功的。
输入的进位也要加上去。
0---255 全加器的COUNT 没有进位,而当加到256,COUNT=1,SUM输出0.
五、总结
.1 编译不通过,检查后发现在建立工程时,同一工程的所有文件都必须放在同一文件夹中,而这一步没做。
2 程序中没有将文件名与实体名保持一致出错。
输入半加器的VHDL程序保存文件,将输入的VHDL语言程序保存为h _adder.vhd.
3不知道如何将输入/输出引脚号都添加到矢量波形编辑窗口中。
解决办法:view—utility window—noder finder 将需要引脚拖拽。
8位可控加减法电路设计
8位可控加减法电路设计电路设计是电子学的核心内容之一,也是实际应用中最为常见的任务之一、在这个任务中,我们需要设计一个8位可控加减法电路。
这个电路可以实现8位数的加法和减法运算,并且可以根据输入的控制信号来选择是进行加法还是减法运算。
在我们的电路设计中,我们将使用逻辑门和触发器来实现这个功能。
首先,我们需要一个8位的加法器和一个8位的减法器,这样才能实现加法和减法运算。
我们可以使用全加器来设计8位的加法器,该全加器可以用逻辑门和触发器来实现。
接下来,我们需要一个8位的选择器,该选择器可以根据输入的控制信号来选择是进行加法还是减法运算。
最后,我们需要一个8位的寄存器,该寄存器可以保存加法或减法运算的结果。
下面是我们的电路设计的详细步骤:1.首先,我们需要实现一个全加器。
全加器的输入包括两位的输入数和一个进位。
全加器的输出包括一个和位和一个进位。
我们可以使用逻辑门和触发器来实现全加器。
具体实现方法可以参考全加器的电路原理图。
2.然后,我们需要把8个全加器连接在一起,形成一个8位的加法器。
将输入的两个8位数和一个进位信号分别连接到每个全加器的输入端,将每个全加器的和位依次连接到寄存器中,将每个全加器的进位依次连接到下一个全加器的进位输入端,最后一个全加器的进位输出端不需要连接。
3.接下来,我们需要实现一个8位的减法器。
减法器的输入包括两个8位的输入数和一个借位。
减法器的输出是一个差位和一个借位。
我们可以使用逻辑门和触发器来实现减法器。
具体实现方法可以参考减法器的电路原理图。
4.然后,我们需要把8个减法器连接在一起,形成一个8位的减法器。
将输入的两个8位数和一个借位信号分别连接到每个减法器的输入端,将每个减法器的差位依次连接到寄存器中,将每个减法器的借位依次连接到下一个减法器的借位输入端,最后一个减法器的借位输出端不需要连接。
5.最后,我们需要实现一个8位的选择器。
选择器的输入包括两个8位的输入数和一个控制信号。
八位加法器设计实验报告
八位加法器设计实验报告实验名称:八位加法器设计实验一、实验目的:1.了解数字电路中加法器的基本原理。
2.学习八位加法器的设计和实现方法。
3.掌握八位加法器的工作过程和输出结果。
二、实验器材:数字电路实验箱、电源线、逻辑门芯片(2个8位加法器芯片、1个与门芯片、1个或门芯片)、导线、电压表,显示器。
三、实验原理:四、具体步骤:1.搭建实验电路。
将两个8位加法器芯片、一个与门芯片、一个或门芯片分别插入数字实验箱中,并使用导线连接它们。
将A和B分别连接到8位加法器芯片的A和B输入端,将进位输入端Cin接地。
然后将两个八位加法器芯片的S0-S7依次连接到特定点,作为低位数;再将与门芯片的S仅连接到A口或B口上的特定点,或门芯片的S仅连接到A口上的特定点;然后将A、B、Cin的高位输入引脚接到与门芯片的输入端上;最后将八位加法器芯片的Cout引脚接到特定点,作为进位输出;将与门芯片和或门芯片的输出引脚接到显示器上。
2.进行实验。
给定任意两个8位操作数A和B,将它们输入到加法器中,并设置进位输入端Cin为0。
观察显示器上的运算结果。
3.分析实验结果。
根据实验数据和观察结果,分析八位加法器的工作过程和输出结果,研究其工作原理。
5.总结实验。
根据实验结果和分析,总结设计和实现八位加法器的方法,并讨论可能存在的问题和改进方法。
五、注意事项:1.在搭建实验电路之前,仔细检查电路连接是否准确、导线是否插紧。
2.在实验过程中,注意实验安全,注意观察显示器上的运算结果,及时记录实验数据。
3.实验结束后,将电源关闭,清理整理实验场地,将实验器材归位。
六、实验结果:S0=1,S1=1,S2=0,S3=0,S4=0,S5=0,S6=1,S7=1,Cout=1七、实验总结:通过本次实验,我学习了数字电路中加法器的基本原理,掌握了八位加法器的设计和实现方法,了解了八位加法器的工作过程和输出结果。
我通过实际搭建电路、输入操作数并设置进位输入,观察了八位加法器的运算结果,并根据实验结果进行了分析和总结。
原题目:实现一个8位全加器电路。
原题目:实现一个8位全加器电路。
实现一个8位全加器电路介绍本文档旨在说明如何实现一个8位全加器电路。
全加器电路是一种用于对两个二进制数进行加法运算的电路。
原理全加器电路由三个输入和两个输出组成。
输入包括两个二进制数位和一个进位位,输出为一个和位和一个进位位。
全加器电路的逻辑如下:- 和位的输出等于输入位和进位位的异或结果- 进位位的输出等于输入位和进位位的与运算结果以及输入位间的或运算结果实现要实现一个8位全加器电路,需要按照以下步骤进行:1. 首先,确定所需的器件和元件。
一个全加器电路通常由逻辑门和触发器构成。
逻辑门可以使用与门、或门、异或门等。
触发器可以使用D触发器、JK触发器等。
2. 根据所需的功能和规格,选择适合的逻辑门和触发器。
3. 依照全加器电路的原理,设计电路图。
将逻辑门和触发器按照一定的连接方式进行连接,满足和位和进位位的运算要求。
4. 制作电路板并连接电路。
根据设计的电路图,将所选的逻辑门和触发器按照正确的接线方式进行连接。
5. 进行电路测试。
使用适当的输入信号(两个二进制数位和一个进位位),检查和位和进位位的输出是否符合预期的结果。
6. 优化电路。
根据测试结果,如果电路效果不好或未能达到预期的输出结果,可以尝试优化电路的设计,调整逻辑门和触发器等元件的选择,重新布线等。
7. 验证电路的正确性。
通过多次测试,确保电路能够稳定地进行加法运算,输出正确的和位和进位位。
结论通过以上步骤,我们可以成功实现一个8位全加器电路。
全加器电路在计算机系统中扮演重要的角色,用于进行二进制数的加法运算。
设计8位全加器
实验一设计8位全加器一、实验目的1、掌握运用MAX+plusII原理图编辑器进行层次电路系统设计的方法。
2、进一步熟悉利用MAX+plusII进行电路系统设计的一般流程。
3、掌握8位全加器原理图输入设计的基本方法及过程。
二、实验原理一个8位全加器可以由8个1位全加器构成,加法器间的进位可以以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相连接。
而一个1位全加器则可由实验一包装元件入库得到。
三、实验过程1、先进行一位半加器的设计,设计原理图如下:链接时没有错误,进行波形仿真:仿真波形分析:输入:a=0、b=0时,输出:so=0、co=0输入:a=0、b=1时,输出:so=1、co=0输入:a=1、b=0时,输出:so=1、co=0输入:a=1、b=1时,输出:so=0、co=1存在一定的延迟,仿真结果与理论分析符合。
封装之后的效果图:上图:a、b为输入端口,co、so为输出端口2、再由两个半加器构成一个一位全加器设计原理图如下:链接时没有错误,进行波形仿真:仿真波形分析:输入:ain=1、bin=0、cin=0时,输出:sum=1、cout=0 输入:ain=1、bin=0、cin=1时,输出:sum=0、cout=1输入:ain=1、bin=1、cin=1时,输出:sum=1、cout=1输入:ain=1、bin=1、cin=0时,输出:sum=0、cout=1 在存在延迟的情况下,仿真结果与理论分析一致。
封装之后的效果图:输入端:ain、bin、cin,输出端:sum、cout3、最后有8个一位全加器构成8位全加器,原理图如下:链接时没有错误,进行波形仿真:在一定的延迟的基础前提下,仿真的结果与理论的一致封装之后的效果图:左端全部为输入端,右端为输出端。
实验一 8位全加器
实验一:8位全加器请大家先学习实验一附 Quartus II开发环境简介.doc文件,对照着完成本次实验。
实验步骤1、熟悉QUARTUSⅡ集成开发环境;2、熟悉GW48-PK2型FPGA实验箱;3、编写8位全加器的Verilog HDL源代码;4、完成计算机模拟功能仿真;5、下载到Altera ACEXEP1K30中,使用实验箱完成硬件验证;6、完成实验报告实验要求8位全加器输入:Clk,Rst_,In1,In2,Cin输出:Cout,Sum首先在实验箱左下角有个按钮模式选择,选择到模式1,红色的七段译码器会显示你所选择的模式。
下载到实验箱的时候需要查阅白皮书,首先请查阅第129页找到各实验电路结构图特点和适用范围简述:我们实验时使用结构图NO.1来实现加法器设计,结构图NO.1见白皮书P133页附图3。
关于引脚的绑定,例如键1对应PIO3-PIO0,绑定引脚的时候我们就要查阅白皮书第142页的适合于QuartusII 的部分引脚对照表选择PIO0对应的GW AK30/50 EP1K30/20/50TQC144这一列对应的引脚名称I/00,这个引脚对应与我们程序中的In1[0],依次类推,绑定好引脚In1[2],到In2[7]。
Cin绑到键7,相加的结果绑到译码器5和6。
绑定的时候注意引脚和结果的高低位顺序。
Cout绑到D1。
Rst_绑定到键8。
Clk 绑到CLOCK0。
完成实验后提交:请指导老师观看实验结果,写电子档的实验报告包括实验结果(包括仿真截图,仿真截图需要有文字说明),实验心得,代码(是.V文件)。
截图工具为键盘上的F12右边的那个PrtscSysRq键。
按下此键后,点击电脑左下角的开始—〉所有程序—〉附件—〉画图工具,打开,按住Ctrl+V粘贴图像,再保存截图即可。
提交的时候,请将文件夹命名为学号姓名(如:200531510001XXX)。
回去以后尽快填写纸质实验报告,并在下次做实验的时候交上来。
EDA综合实验——八位全加器
学生实验报告系别电子信息学院课程名称《EDA综合实验》班级实验名称8位全加器的设计姓名实验时间2014年月日学号指导教师王红航成绩批改时间2014年月日报告内容一、实验目的和任务利用Quartus II 原理图输入方法设计简单组合电路, 通过一个8位全加器的设计掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验原理介绍三、一个8位全加器可以由2个4位全加器构成, 加法器间的进位可以用串行方式实现, 即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin相接。
四、设计代码(或原理图)、仿真波形及分析在Quartus II 集成环境下, 选择“Bock Diagram/Schematic File”, 进入Quartus II图形编辑方式。
双击编辑窗口, 在元件选择窗口的符号库“Library”栏中, 选择”Primitives”文件夹中的”Logic”后, 调出元件。
根据8位加法器设计的原理图, 将2个4位加法器74283及输入、输出元件符号调入, 完成电路内部的连接及输入、输出元件的连接, 并将相应的输入、输出元件符号名分别更改为A[7..0]、B[7..0]、SUM[7...0]和OUT2。
再将当前设计设定为工程, 目标芯片类型为ACEX1K;型号为EP1K30TC144-3。
编译设计文件, 选择“Start Compilation”对文件进行编译。
然后进行逻辑仿真设计, 先建立波形文件, 然后输入信号节点, 设置波形参量, 编辑输入信号, 保存文件。
时序仿真图功能仿真图由图片可以看出, 当8位全加器的输入端口A输入为60时, B端口输入为160时, 输出SUM 为220, 进位OUT2为0;当输入端口A输入为60时, B输入为200时, SUM为4, 进位OUT2为1.当8位全加器的输入端口A输入为80时, B端口输入为200时, 输出SUM为24, 进位OUT2为1;当输入端口A输入为80时, B输入为160时, SUM为240, 进位OUT2为0.证明设计是正确的。
proteus8位加法器电路设计
proteus8位加法器电路设计一、引言随着计算机科学和电子工程的快速发展,设计和实现高性能的加法器电路对于数字系统的工程师来说变得越来越重要。
加法器电路是计算机中最基本的数字电路之一,其功能是实现数字的加法运算。
在本文中,我们将探讨关于proteus8位加法器电路设计的内容。
首先,我们将介绍与加法器电路设计相关的基本概念。
然后,我们将学习如何使用Proteus软件进行电路设计和仿真。
最后,我们将展示一个完整的8位加法器电路设计示例。
二、基本概念2.1 加法器电路的基本原理加法器电路是用于执行数字加法运算的电路。
它由一组逻辑门和触发器构成,能够对两个输入数字进行加法运算,并输出运算结果。
常见的加法器电路有半加器、全加器和并行加法器等。
2.2 8位加法器电路的设计要求在设计一个8位加法器电路时,我们需要考虑以下要求:1.能够同时处理8位二进制数的加法运算;2.采用并行加法器的设计方法,以提高运算效率;3.能够正确处理进位并输出最终的运算结果;4.使用适当的逻辑门和触发器实现加法器功能;5.能够进行仿真和测试,确保设计的正确性。
三、Proteus软件介绍Proteus是一款广泛用于电子电路设计和仿真的软件。
它提供了完整的电路设计和仿真环境,能够帮助工程师快速进行电路设计和验证。
3.1 Proteus的基本功能Proteus具有以下基本功能:1.电路设计:通过拖放元件和连接线,可以设计各种类型的电路,包括数字电路、模拟电路和混合电路等。
2.仿真器:Proteus提供了强大的仿真器,可以对设计的电路进行仿真和验证,以确保设计的正确性。
3.PCB设计:Proteus还提供了PCB设计的功能,可以将设计的电路转化为实际的PCB板。
4.系统级仿真:Proteus能够在电路和软件之间建立联系,进行系统级仿真和调试。
3.2 Proteus的使用步骤使用Proteus进行电路设计和仿真,通常需要以下步骤:1.创建新工程:在Proteus中创建一个新的工程,并选择适合的电路类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验8位加法器设计
一、实验目的
熟悉利用QuartusⅡ的图形编辑输入法设计简单组合电路,掌握层次化设计方法,并通过8位全加器的设计,进一步熟悉利用EDA软件进行数字系统设计的流程。
二、实验仪器与器材
计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。
三、实验内容
1. 基本命题
利用图形输入法设计一个一位半加器和全加器,再利用级联方法构成8位加法器。
2. 扩展命题
利用文本输入法设计4位并行进位加法器,再利用层次设计方法构成8位加法器。
通过时序仿真,比较两种加法器的性能。
四、实验设计思路
按照如图2-1,2-2,2-3设计半加器、全加器、串行级联加法器
①设计半加器
图2-1半加器设计图
②设计全加器
图2-2全加加器设计图
③设计串行级联8位加法器
图2-3串行级联8位加法器设计图
④仿真波形图
对以上的串行级联加法器进行仿真。
设置时钟频率为/1/10ns。
每20ns对a,b输入口进行+2操作。
所得结果见图2-8。
由图可知延时大约为14ns。
图2-4串行级联加法器仿真波形图
对以上的串行级联加法器进行仿真。
设置时钟频率为/2.0us。
每10us对a,b输入口进行
+2操作。
所得结果见图2-4。
由图可知延时大约为10us。
五、实验要求
将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。
六、实验思考题
(1)与单一设计文件比较,实现层次化设计应注意哪些问题?
答:实现层次化设计需要注意的是:假设B设计中引用A设计,那么需要将A 设计的工程文件放在B设计的工程文件中,另外,B设计的工程必须要以B的实体名称对应,不然仿真的时候会出错。
(2)比较图形编辑和文本编辑两种8位二进制加法器的性能,分析它们的主要异同点。
以下是文本编辑的参考程序。
1) 4位二进制数加法器ADDER4B的VHDL描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER4B IS
PORT ( CIN4 : IN STD_LOGIC;
A4 : IN STD_LOGIC_VECTOR(3DOWNTO0);
B4 : IN STD_LOGIC_VECTOR(3DOWNTO0); S4 : OUT STD_LOGIC_VECTOR(3DOWNTO0); COUT4 : OUT STD_LOGIC);
END ADDER4B;
ARCHITECTURE behav OF ADDER4B IS
SIGNAL SINT : STD_LOGIC_VECTOR(4DOWNTO0);
SIGNAL AA,BB : STD_LOGIC_VECTOR(4DOWNTO0); BEGIN
AA<='0'&A4;
BB<='0'&B4;
SINT <= AA + BB + CIN4;
S4 <= SINT(3DOWNTO0);
COUT4 <= SINT(4);
END behav;
图2-9ADDER4B仿真波形图
对以上的ADDER8B进行仿真。
设置时钟频率为/2.0us。
每10us对a,b输入口进行+2操作。
所得结果见图2-9。
由图可知延时大约为20us。
2)应用ADDER4B设计8位二进制数加法器ADDER8B的VHDL描述
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ADDER8B IS
PORT ( CIN : IN STD_LOGIC;
A : IN STD_LOGIC_VECTOR(7DOWNTO0);
B : IN STD_LOGIC_VECTOR(7DOWNTO0);
S : OUT STD_LOGIC_VECTOR(7DOWNTO0);
COUT : OUT STD_LOGIC );
END ADDER8B;
ARCHITECTURE struc OF ADDER8B IS
COMPONENT ADDER4B
PORT ( CIN4 : IN STD_LOGIC;
A4 : IN STD_LOGIC_VECTOR(3DOWNTO0);
B4 : IN STD_LOGIC_VECTOR(3DOWNTO0);
S4 : OUT STD_LOGIC_VECTOR(3DOWNTO0);
COUT4 : OUT STD_LOGIC );
END COMPONENT;
SIGNAL CARRY_OUT : STD_LOGIC;
BEGIN
U1 : ADDER4B -- 例化一个4位二进制加法器U1 PORT MAP ( CIN4 => CIN, A4 => A(3DOWNTO0),
B4 => B(3DOWNTO0), S4 => S(3DOWNTO0),
COUT4 => CARRY_OUT );
U2 : ADDER4B --例化一个4位二进制加法器U2 PORT MAP ( CIN4 => CARRY_OUT, A4 => A(7DOWNTO4),
B4 => B(7DOWNTO4), S4 => S(7DOWNTO4),COUT4 => COUT ); END struc;
图2-10ADDER8B仿真波形图
对以上的ADDER8B进行仿真。
设置时钟频率为/2.0us。
每10us对a,b输入口进行+2操作。
所得结果见图2-10。
由图可知延时大约为20us。
实验错误小结:
Quartus中仿真时出现no simulation input file assignment specify 解决方法
这个错误的意思是:仿真文件没有被指定,要仿真的话先要建一个仿真文件:
情况1、file -> new -> 选择Other file选项卡 -> Vector Waveform File
然后把输入输出端口加进去,再设置输入的信号,保存,就可以仿真了。
情况2、如果你之前已经建立过了,就打开assignments->settings->simulator settings
看里面的有个文本框 simulation input 里面是否为空,为空的话就要找到你所建立的Vector Waveform File 文件,是以*.VMF结尾的,如果没找到,你又以为你建立了Vector Waveform File ,很可能粗心的你还没保存Vector Waveform File ,保存了才会在project里面找到。