4位全加器实验报告.doc
实验2:4位加法器 实验报告
EDA 技术基础实验报告实验项目名称:用原理图输入法设计4位加法器学院专业:信息学院电子专业姓名:学号:实验日期:20 实验成绩:实验评定标准:一、实验目的熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法。
并通过一个4位全加器的设计把握利用EDA 软件进行原理图输入方式的电子线路设计的详细流程。
二、实验器材电脑一台Quartus Ⅱ软件三、实验内容与步骤1.在Quartus Ⅱ软件中建立工程,画图生成一个半加器的.bdf文件。
2.将此半加器文件设置成可调用的元件,使之成为一个元件符号存盘。
3.设计全加器顶层文件,以.bdf存盘。
4.将设计项目(.bdf文件)设置成工程和时序仿真。
5.截图保存波形文件图,及仿真结果。
6.将全加器原理图文件设置成符号元件,以供4位加法器的更高层设计。
7.按实验要求画出4位加法器原理图,建立其波形并仿真,截下仿真结果图。
四、实验电路图(程序)1.半加器电路原理图如下:半加器h_adder.bdf电路原理图(1)2.全加器电路原理图如下:全加器f_adder.bdf电路原理图(2)3.4位加法器four_adder.bdf电路原理图如下:4位加法器four_adder.bdf电路原理图(3)五、实验仿真结果及分析1. 全加器的仿真波形图如下:全加器波形仿真图(3)分析:ain, bin, cin 三段为输入,sum 为和,com 为进位,满足相关的逻辑表达式{sum =(ain ′bin ′cin ′+ain bin ′cin +ain ′bin cin +ain bin cin ′)‘com =(ain ′bin ′+bin ′cin ′+ain′cin′)′2. 4位全加器仿真波形图如下:分析:4位a[3..0]输入与4位b[3..0]输入以及来自cin 输入的数码相加得到4位输出s[3..0]和进位输出c,由图可见满足加法原理。
EDA 四位加法器 实验报告
实验报告课程名称:EDA技术与VHDL实验题目:四位加法器设计班级学号:姓名:成绩:一、实验目的 ..................................................................................... - 1 -二、实验任务 ..................................................................................... - 1 -三、系统总体设计 ............................................................................. - 1 -四、VHDL程序设计......................................................................... - 1 -1. 用原理图输入方式设计半加器 ................................................ - 2 -2. 全加器的设计 ............................................................................ - 4 -3.4位全加器的设计 ....................................................................... - 5 -五、仿真 ............................................................................................... - 5 -六、仿真结果分析 ............................................................................... - 6 -一、实验目的熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计把握文本和原理图输入方式设计的详细流程。
4位全加器实验调查报告.doc
4位全加器实验调查报告.doc本次实验的目的是以4位全加器为基础,学习数字逻辑电路和全加器的原理,掌握实验器材的使用,了解数字逻辑电路实验的基本方法,提高实验动手能力。
实验器材包括:4位全加器芯片、74LS138译码器、7408与门芯片、电路连接线、电源,以及示波器等。
实验步骤:1.将4位全加器芯片插入实验插板中;2.连接电路,将电源插入实验插板上,打开电源;3.将示波器接在电路的输出端口上;4.根据4位全加器的原理,先将第一位数码与第二个数码的和输入全加器中,然后再将第三个数码的和输入,最后将第四个数码的和输入,并记录下每一个和的输出情况;5.接下来,将译码器和门芯片引入电路中,使得全加器的输出信号能够被有效地显示;6.根据实验结果,对每一个输入信号的输出情况进行比较和分析,得出结论。
实验结果:在实验过程中,我们先逐一输入了4个数码,并观察到输出信号。
由于我们将译码器和门芯片引入电路,因此在数字器件上能够直接看出输出情况。
我们可以根据所观察到的数字结果,进行推理和分析。
在实验结果中,我们发现,当全加器输入的是两个0、两个1或者一个0和一个1时,其输出结果都是正确的,即输出结果是0、1、10,其中,1和10为溢出情况。
但当输入信号为11时,其输出结果为00,这是一个错误结果。
进一步分析,我们发现,该错误结果是由于全加器的三重结构造成的。
当输入信号点同时为1时,进位产生的信号是1,但该1会向下一个全加器的进位端产生相反的信号,此时,对应的两个信号在第一个全加器的导通状态下形成了短路,从而导致错误结果的产生。
结论:本次实验通过实际操作4位全加器电路,深入理解了全加器的结构和组成原理,并能够看到数字逻辑电路在实际中的运用。
同时,在本次实验中,我们也发现了全加器的实际运转情况并进一步分析了其可能存在的缺陷,从而提出了解决全加器过程中出现的短路问题的解决方法和措施,对我们今后的学习和研究都有非常重要的参考意义。
四位全加器实验报告
武汉轻工大学数学与计算机学院《计算机组成原理》实验报告题目:4位二进制计数器实验专业:软件工程班级:130X班学号:XXX姓名:XX指导老师:郭峰林2015年11月3日【实验环境】1. Win 72. QuartusII9.1计算机组成原理教学实验系统一台。
【实验目的】1、熟悉VHDL 语言的编写。
2、验证计数器的计数功能。
【实验要求】本实验要求设计一个4位二进制计数器。
要求在时钟脉冲的作用下,完成计数功能,能在输出端看到0-9,A-F 的数据显示。
(其次要求下载到实验版实现显示)【实验原理】计数器是一种用来实现计数功能的时序部件,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。
计数器由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS 触发器、T 触发器、D 触发器及JK 触发器等。
计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
计数器按计数进制不同,可分为二进制计数器、十进制计数器、其他进制计数器和可变进制计数器,若按计数单元中各触发器所接收计数脉冲和翻转顺序或计数功能来划分,则有异步计数器和同步计数器两大类,以及加法计数器、减法计数器、加/减计数器等,如按预置和清除方式来分,则有并行预置、直接预置、异步清除和同步清除等差别,按权码来分,则有“8421”码,“5421”码、余“3”码等计数器,按集成度来分,有单、双位计数器等等,其最基本的分类如下:计数器的种类⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎨⎧⎪⎩⎪⎨⎧⎪⎩⎪⎨⎧⎩⎨⎧进制计数器十进制计数器二进制计数器进制可逆计数器减法计数器加法计数器功能异步计数器同步计数器结构N 、、、321 下面对同步二进制加法计数器做一些介绍。
同步计数器中,所有触发器的CP 端是相连的,CP 的每一个触发沿都会使所有的触发器状态更新。
4位加法器实验报告
硬件描述语言实验题目:四位全加器学院数学与计算机学院学科门类xxxxxxxxxx专业xxxxxxxxxx学号姓名x指导教师xxxx20xx年x 月xx日1、实验目的:练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言行为描述的编写方法。
2、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
3、实验要求:设计一个四位加法器,其引脚及其功能如下表。
4、实验步骤:(1)用RTL描述方式描述4位加法器①RTL描述方式是一种明确规定寄存器描述的方法,它要求在描述时要么采用寄存器硬件的一一对应的直接描述,要么采用寄存器之间的功能描述。
RTL描述方式可以进行逻辑综合,这是其他描述方式所不具备的特点。
②编辑代码这种描述方法详细描述了加法器的计算过程,即写出了每一位的计算和进位方法。
模块内部(构造体说明部分)需要定义三个连接线,定义语句为:signal c0,c1,c2 : std_logic代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(a,b:in std_logic_vector(3 downto 0);ci:in std_logic;s:out std_logic_vector(3 downto 0);co:out std_logic);end entity;architecture rtl of adder4 issignal c0,c1,c2:std_logic;s(0) <= a (0) xor b(0) xor ci;c0<= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);s(1) <= a (1) xor b(1) xor c0;c1<= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0);s(2) <= a (2) xor b(2) xor c1;c2<= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1);s(3) <= a (3) xor b(3) xor c2;co<= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2);end architecture rtl;③仿真结果(2)用行为描述方式描述4位加法器①行为描述是对系统数学模型的描述,其抽象程度比寄存器传输描述方式和结构描述方式更高。
四位全加器
1.C机一台;
2.Altera Blaster下载器一根;
3.KHF-5实验箱一台。
三、实验原理
全加器是由两个加数Xi和Yi以及低位来的进位Ci-1作为输入,产生本位和Si以及向高位的进位Ci的逻辑电路。它不但要完成本位二进制码Xi和Yi相加,而且还要考虑到低一位进位Ci-1的逻辑。对于输入为Xi、Yi和Ci-1,输出为Si和Ci的情况,根据二进制加法法则可以得到全加器的真值表如下表9-1所示:
五、实验过程
1.打开QUARTUSII软件,新建一个工程。
2.建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3.按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。
4.编写完VHDL程序后,保存起来。方法同实验一。
5.对编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
BEGIN
abc <= a & b ; --a相并b,即a与b并置操作
PROCESS(abc)
BEGIN
CASE abc IS --类似于真值表的CASE语句
WHEN "00" => so<='0'; co<='0' ;
WHEN "01" => so<='1'; co<='0' ;
WHEN "10" => so<='1'; co<='0' ;
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;
eda四位全加器实验报告
eda四位全加器实验报告EDA实验报告(四位全加器的实现)实验一四位全加器的实现一、实验目的1、掌握Quartus9.0图形编辑输入法2、掌握Quartus环境下文件的编译、仿真及下载方法3、了解VHDL语言的设计流程4、掌握quartus环境下VHDL的使用方法二、实验内容1、用图形/原理图法实现4位全加器。
2、用VHDL语言实现4位全加器,必须使用元件例化。
3、仿真并通过。
3、下载到实验板,并验收三、实验步骤1、图形编辑发设计4位加法器(1)新建图形文件,设计一位全加器,逻辑电路图如下图(图1-1)所示。
图1-1(2)将设计好的一位全加器进行例化,操作为file?Create/Update?Create symbol files for currentfile,完成此操作后会在元器件符号表里找到刚刚做好的一位全加器。
(3)再新建一个图形文件,用四个已经做好的一位全加器级联成一个四位全加器,其逻辑原理图如图1-2所示。
编辑好后保存文件,在文件列表里找到该文件,右键?Set as Top-level Entity,将其设置为顶层文件,点击编译按钮就行编译。
1图1-2(4)新建波形文件,赋予每个输入端口某种输入信号,保存波形文件,进行功能仿真,观察输出端波形与输入信号关系是否正确。
若不正确,查找问题所在并解决问题;若正确,则进行管脚分配,分配完毕后再编译一次使分配生效,连接DE2开发板到电脑,将文件下载到开发板进行验证。
2、用VHDL语言设计4位加法器(1)新建一个VHDL源文件,文件名为adder1.vhd,使用VHDL 实现一位全加器,其VHDL代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY adde1r ISPORT(A,B,Ci:IN STD_LOGIC;S,Co:OUT STD_LOGIC);END adder1;ARCHITECTURE qadder OF adder1 ISBEGINPROCESS(A,B,Ci)VARIABLE n1,n2,n3:STD_LOGIC;BEGINn1:=A AND B;n2:=A XOR B;2n3:=Ci AND n2;Co=n3 OR n1;S=n2 XOR Ci;END PROCESS;END qadder;(2)再新建一个VHDL源文件,命名为adder4.vhd,在这里将adder一位全加器例化并使用它,做成四位全加器,代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(A,B:in std_logic_vector(3 downto 0); S:out std_logic_vector(3 downto 0);Co:out std_logic;Ci:in std_logic);end adder4;architecture adder_4 of adder4 iscomponent adderport(A:in std_logic;B:in std_logic;Ci:in std_logic;Co:out std_logic;S:out std_logic);end component;signal c1,c2,c3:std_logic;beginu1:adder port map(A(0),B(0),Ci,c1,S(0)); u2:adder port map(A(1),B(1),c1,c2,S(1)); u3:adder port map(A(2),B(2),c2,c3,S(2)); u4:adder port map(A(3),B(3),c3,Co,S(3)); end adder_4;(3)保存文件后将adder4设置为顶层文件并编译,编译通过后按照与图形编辑发一样的仿真、管脚分配方式进行操作,最后下载到开发板验证四、实验现象两种方式实现的四位加法器下载到DE2开发板后都可正常工作,其中使用SW0作为低位的进位,SW4~1作为数据B,SW8~5作为数据A,LDG3~0作为输出的结果,LEDG4作为输出的进位。
四位加法器实验报告
四位加法器实验报告四位加法器实验报告一、引言在数字电路的学习中,加法器是一个非常重要的基础电路。
本次实验旨在通过设计和实现四位加法器,加深对数字电路原理的理解,并掌握加法器的设计方法和实现过程。
二、实验目的1. 理解加法器的原理和工作方式;2. 掌握加法器的设计方法和实现过程;3. 学会使用逻辑门电路和触发器构建加法器;4. 验证加法器的正确性和稳定性。
三、实验原理1. 半加器半加器是最基本的加法器,用于实现两个一位二进制数的相加。
其逻辑电路如下:(插入半加器电路图)2. 全加器全加器是由两个半加器和一个或门构成,用于实现三个一位二进制数的相加。
其逻辑电路如下:(插入全加器电路图)3. 四位加法器四位加法器是由四个全加器和一些其他逻辑门组成,用于实现四个四位二进制数的相加。
其逻辑电路如下:(插入四位加法器电路图)四、实验步骤1. 按照电路图连接逻辑门和触发器,搭建四位加法器电路;2. 使用开关设置输入数据,观察输出结果;3. 验证加法器的正确性,将不同的输入数据相加,并手动计算结果进行对比;4. 测试加法器的稳定性,观察输出结果是否随着时间稳定。
五、实验结果与分析通过实验,我们成功搭建了四位加法器电路,并进行了多组数据的测试。
实验结果表明,加法器能够正确地进行四个四位二进制数的相加,并输出正确的结果。
同时,实验中观察到输出结果在一段时间后稳定下来,验证了加法器的稳定性。
六、实验总结本次实验通过设计和实现四位加法器,加深了对数字电路原理的理解,并掌握了加法器的设计方法和实现过程。
通过实验验证了加法器的正确性和稳定性,提高了实际操作能力和解决问题的能力。
同时,实验中还发现了一些问题,比如电路连接错误、输入数据设置错误等,这些问题在实验中及时发现和解决,也对实验结果的准确性起到了保障作用。
在今后的学习中,我们将进一步深入研究数字电路的原理和应用,不断提高自己的实验技能和创新能力。
希望通过这次实验,能够为我们的学习和未来的工作打下坚实的基础。
4位alu设计实验报告
4位alu设计实验报告引言阿里巴巴淘宝研发部需要一个高效的算术逻辑单元(ALU),用于处理复杂的计算任务。
本实验旨在设计并实现一个4位ALU,以满足淘宝研发部的需求。
设计思路功能需求根据淘宝研发部的需求,4位ALU需实现以下基本功能:1. 加法运算2. 减法运算3. 与门运算4. 或门运算5. 异或门运算6. 比较两个数的大小(等于、大于、小于)设计方案为了实现这些功能,我们将使用以下组件:1. 4位全加器电路- 用于加法运算2. 4位比较器电路- 用于比较运算3. 4位逻辑门电路- 用于与门、或门、异或门运算设计方案如下:![ALU](alu_design.png)实验步骤1. 设计并实现4位全加器电路2. 设计并实现4位比较器电路3. 设计并实现4位逻辑门电路4. 使用以上电路组件实现4位ALU电路5. 进行基本运算和比较测试,验证ALU功能是否正确实验结果通过实验验证,4位ALU完成了预期的功能需求。
以下是一些测试样例及输出结果:加法运算- 输入:A=1010,B=0011- 输出:Sum=1101减法运算- 输入:A=1010,B=0011- 输出:Diff=0111与门运算- 输入:A=1010,B=0011- 输出:A&B=0010或门运算- 输入:A=1010,B=0011- 输出:A B=1011异或门运算- 输入:A=1010,B=0011- 输出:A^B=1001比较运算- 输入:A=1010,B=0011- 输出:A>B=0001结论本实验成功设计并实现了一个功能齐全的4位ALU电路,能够满足淘宝研发部的需求。
经过测试,ALU能够正确执行加法、减法、与门、或门、异或门以及比较运算。
这个高效的ALU电路将在处理复杂计算任务时发挥巨大作用。
四位全加器实验报告格式
实验二 使用VHDL 语言设计语言设计四位全加器四位全加器 实验报告专业班级专业班级:: 学号学号:: 姓名姓名::一、实验目的1. 了解四位全加器的工作原理。
2. 掌握基本组合逻辑电路的设计方法。
3. 熟悉应用Quartus II 进行FPGA 开发过程和开发方法。
4. 掌握VHDL 语言程序的基本结构,初步熟悉VHDL 语言设计方法。
二、实验原理全加器是由两个加数A i 和B i 以及低位来的进位C i 作为输入,产生本位和Si 以及向高位的进位C O 的逻辑电路。
它不但要完成本位二进制码A i 和B i 相加,而且还要考虑到低一位进位C i 的逻辑。
对于输入为A i 、B i 和C i ,输出为S i 和C O 的情况,根据二进制加法法则可以得到全加器的真值表:A iB iC i S i C O 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 111由真值表得到Si 和Ci 的逻辑表达式为:S i =A i ⊕B i ⊕C iC O =(A i ⊕B i )C i +A i B i这是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。
四位全加器可以看作是4个1位全加器串行构成。
三、实验内容实验内容1.根据逻辑表达式设计一个四位二进制全加器,考虑最低位的进位输入信号。
2.写出四位全加器的VHDL 语言源代码,并下载验证。
四、预习要求1.了解VHDL 语言程序的基本结构一个VHDL 语言程序必须包含 和 两个部分,除这两个部分外,多数程序还包含 和 。
• 实体:定义电路实体的外观,电路的外部输入和输出端口,即模块的外部特征。
实体使用关键字 来定义,用 关键字来定义输入输出端口, 以 关键字结束。
• 结构体:用来描述电路的内部结构和逻辑功能。
结构体是有一个或多个并行语句构结构体是有一个或多个并行语句构成的成的,,他们的书写顺序并不代表执行顺序,这一点与其他高级语言有所不同。
4位全加器实验报告doc
#10 $display ("A B=%b %b,S_t=%b,C3_t=%b",A_t,B_t,S_t,C3_t); A_t = 0111;B_t = 1100;C_1_t = 0;
#10 $display ("A B=%b %b,S_t=%b,C3_t=%b",A_t,B_t,S_t,C3_t);end endmodule
表2 全加器逻辑功能真值表
图4 全加器方框图
图5 全加器原理图
多位全加器连接能够是逐位进位,也能够是超前进位。逐位进位也称串行进位,其逻辑电路简单,但速度也较低。
四位全加器
如图9所示,四位全加器是由半加器和一名全加器组建而成:
图9 四位全加器原理图
【实验步骤】
(1)成立新工程项目:
打开ISE软件,进入集成开发环境,点击File→New project成立一个工程项目adder_4bit。
input cin; initial assign {cout,sum}=a+b+cin; begin endmodule a=4'b0; b=4'b0; cin=1'b0; #210 $stop; end always #10 a=a+1; always #5 b=b+1; always #100 cin=cin+1;endmodule 四、仿真波形如下:
全加器实验报告
全加器实验报告一、实验目的。
本实验旨在通过实际操作,加深对全加器的理解,掌握全加器的工作原理及实现方法,并通过实验结果验证理论知识的正确性。
二、实验仪器与材料。
1. 74LS86四位全加器芯片。
2. 电源。
3. 示波器。
4. 示波器探头。
5. 逻辑开关。
6. 电阻。
7. 电容。
8. 连线板。
9. 连线。
三、实验原理。
全加器是一种能够进行三个二进制数相加的逻辑电路,它可以实现两个二进制数相加并输出相应的和及进位。
全加器由两个半加器和一个 OR 门组成。
其中,半加器用于处理两个输入位的和,而 OR 门用于处理进位。
四、实验步骤。
1. 将74LS86四位全加器芯片插入连线板中;2. 根据电路连接图,连接电源、示波器、逻辑开关、电阻、电容及连线;3. 通过逻辑开关输入两个二进制数,并观察示波器输出的和及进位信号;4. 对不同的输入组合进行实验,记录实验结果;5. 分析实验数据,验证全加器的工作原理。
五、实验结果与分析。
通过实验,我们成功实现了对74LS86四位全加器芯片的测试。
当输入 A、B和进位信号 Cin 分别为 0、1、0 时,我们观察到输出的和为 1,进位信号 Cout 为 0,符合全加器的工作原理。
当输入 A、B 和进位信号 Cin 分别为 1、1、1 时,我们观察到输出的和为 1,进位信号 Cout 为 1,也符合全加器的工作原理。
六、实验总结。
通过本次实验,我们深入理解了全加器的工作原理,掌握了全加器的实现方法,并通过实验结果验证了理论知识的正确性。
在今后的学习和工作中,我们将继续努力,不断提高自己的实验能力和动手能力,为更好地应用所学知识打下坚实的基础。
七、参考文献。
1. 《数字逻辑电路与设计》。
2. 《数字电子技术基础》。
全加器实验报告到此结束。
EDA实验报告 4位全加器,16位频率计数器
实验课程名称:EDA技术与应用实验项目名称4位全加器实验实验成绩实验者专业班级组别同组者实验日期一、实验目的1.进一步加深理解全加器的工作原理及电路组成,加深对EDA技术的掌握。
2.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个四位全加器的设计把握原理图输入方式设计的详细流程。
二、实验内容实验内容1:按照书本4.5.1节完成半加器和1位全加器的设计,包括用原理图输入,编译,综合,适配,仿真,实验板上的硬件测试,并将此全加器电路设置成一个元件符号入库。
实验内容2:建立一个更高层次的原理图,利用以上获得的1位全加器构成4位全加器,并完成编译,综合,适配,仿真和硬件测试。
三、实验仪器1.计算器及操作系统2.Quartus II软件四、实验原理一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。
1、半加器描述根据半加器真值表可以画出半加器的电路图。
a b so Co0 0 0 00 1 1 01 0 1 01 1 0 1表1半加器h_adder真值表图1 半加器h_adder电路图2、1位全加器描述一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL 描述。
图2 1位全加器电路图3、4位全加器设计描述4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。
其中,其中cin 表示输入进位位,cout 表示输出进位位,输入A 和B 分别表示加数和被加数。
S 为输出和,其功能可用布尔代数式表示为:S=A+B+Ciii i i o ABC ABC ABC ABC C +++=首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。
四位加法器实验报告
四位加法器实验报告1.实验目的:掌握组合逻辑电路的基本分析与设计方法;理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法;学习元件例化的方式进行硬件电路设计;学会利用软件仿真实现对数字电路的逻辑功能进行验证和分析。
2.实验仪器:数字逻辑实验箱3.实验内容:A. 设计实现逐次进位加法器,进行软件仿真并在实验平台上测试。
B. 设计实现超前进位加法器,进行软件仿真并在实验平台上测试。
C.使用VHDL自带加法运算实现一个4位全加器。
4.实验代码:A. 逐次进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity FDFA is#定义串行加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;S:out std_logic_vector(3 downto 0);Co:out std_logic);end entity;architecture struct of FDFA iscomponent fadder is#基于一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end component fadder;signal c0,c1,c2:std_logic;beginU0:fadder port map(A(0),B(0),Ci,S(0),c0);U1:fadder port map(A(1),B(1),c0,S(1),c1);U2:fadder port map(A(2),B(2),c1,S(2),c2);U3:fadder port map(A(3),B(3),c2,S(3),Co);end architecture struct;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end entity;architecture func of fadder isbeginco<=(a and b) or (ci and ( a xor b));s<=a xor b xor ci;end architecture func;B. 超前进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LAC is#定义超前进位加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end entity;architecture struct of LAC issignal wirep, wireg:std_logic_vector(3 downto 0);signal wirec:std_logic_vector(2 downto 0);component fadder is#基于一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end component fadder;component Ker is#Ker总理进位传递信号P与进位产生信号G,以及进位信号C port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));end component Ker;beginU0:fadder port map(Ai=>A(0),Bi=>B(0),c=>Ci,si=>S(0),pi=>wirep(0),gi=>wireg(0));U1:fadder port map(Ai=>A(1),Bi=>B(1),c=>wirec(0),si=>S(1),pi=>wirep(1),gi=>wireg(1));U2:fadder port map(Ai=>A(2),Bi=>B(2),c=>wirec(1),si=>S(2),pi=>wirep(2),gi=>wireg(2));U3:fadder port map(Ai=>A(3),Bi=>B(3),c=>wirec(2),si=>S(3),pi=>wirep(3),gi=>wireg(3));L:Ker port map(ci=>Ci,P(0)=>wirep(0),P(1)=>wirep(1),P(2)=>wirep(2),P(3)=>wirep(3),G(0)=>wireg(0),G(1)=>wireg(1),G(2)=>w ireg(2),G(3)=>wireg(3),C(0)=>wirec(0),C(1)=>wirec(1),C(2)=>wirec(2),C(3)=>Co);end architecture struct;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end entity;architecture func of fadder isbeginpi<=Ai xor Bi;gi<=Ai and Bi;si<=Ai xor Bi xor c;end architecture func;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Ker is#定义Ker port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));architecture func of Ker isbeginC(0)<=G(0) or ( P(0) and ci );C(1)<=G(1) or ( P(1) and G(0) ) or ( P(1) and P(0) and ci );C(2)<=G(2) or ( P(2) and G(1) ) or ( P(2) and P(1) and G(0) ) or ( P(2) and P(1) and P(0) and ci );C(3)<=G(3) or ( P(3) and G(2) ) or ( P(3) and P(2) and G(1) ) or ( P(3) and P(2) and P(1) and G(0) ) or ( P(3) and P(2) and P(1) and P(0) and ci );end architecture func;C. VHDL自带加法运算实现4位全加器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity VHDLAD is#定义VHDL自带加法运算实现4位全加器总体接口,如果加和比原来和少,则会进位port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end VHDLAD;architecture bhv of VHDLAD issignal D:std_logic_vector(3 downto 0);beginprocess(A,B,Ci,D)beginD <= A + B;if(Ci = '1') thenD <= D + 1;end if;if(D >= A) thenS <= D;Co <= '0';elseS <= D;Co <= '1';end if;end process;end bhv;5.软件仿真结果说明下面图片每幅有14条信号线,从上到下依次为A的低位到高位(共4条)、B的低位到高位(共4条)、输入的进位信号、和的低位到高位(共4条)、输出进位信号。
1FPGA实验报告4位全加器—徐艺萍
1FPGA实验报告4位全加器—徐艺萍试验⼀4位全加器实验1.实验原理全加器能进⾏加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。
全加器的真值表如表1所⽰。
表1 全加器真值表4位全加器可以采⽤四个1位全加器级连成并⾏相加串⾏进位的加法器,实现框图如图1所⽰,其中CSA为1位全加器。
由图可以看出,每1位的进位信号送给下1位作为输⼊信号,因此,任1位的加法运算必须在低1位的运算完成之后才能进⾏,因此它的延迟⾮常可观,⾼速运算肯定⽆法胜任。
图1 4位串⾏进位加法器实现框图在图1中,A和B为加法器的输⼊位串,对于四位全加器则位宽为4位,D 为加法器输出位串,和输⼊位串相同,C为进位输⼊( Ci ) 或输出( Co )。
实现代码为:module adder4(cout,sum,ina,inb,cin);output[3:0] sum;output cout;input[3:0] ina,inb;input cin;assign {cout,sum}=ina+inb+cin;endmodule2.实验⽬的⒈熟悉ISE9.1 开发环境,掌握⼯程的⽣成⽅法;⒉了解Verilog HDL语⾔在FPGA 中的使⽤;⒊了解4位全加器的Verilog HDL语⾔实现。
3.实验内容⒈⽤Verilog HDL语⾔设计4位全加器,进⾏功能仿真验证。
⒉使⽤Chipscope Pro ⽣成VIO/ICON 核,在线观测调试。
4.实验准备⒈将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好;⒉将RS232 串⼝线⼀端与计算机连接好,另⼀端与板卡的J11 相连接;⒊启动计算机,当计算机启动后,将XUPV2Pro 板的电源开关SW11 打开到ON 上。
观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指⽰灯是否均亮。
若有不亮的,请断开电源,检查电源;5.实验步骤⒈创建⼯程及设计输⼊⑴在E:\project\⽬录下,新建名为count8的新⼯程器件族类型(Device Family)选择“Virtex2P”,器件型号(Device)选“XC2VP30 ff896 -7”,综合⼯具(Synthesis Tool)选“XST (VHDL/Verilog)”,仿真器(Simulator)选“ISE Simulator(VHDL/Verilog)”。
四位并行加法器实验报告
安徽大学计科院《计算机组成原理》课程设计实验设计报告设计题目:四位并行加法器设计班级:08软件二班小组成员:黄德宏(E20814116)胡从建(E20814110)指导老师:周勇完成日期:2011-3-15一.任务概述1.1设计题目概述:四位并行加法器采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。
超前进位产生电路是根据各位进位的形成条件来实现的。
它不需要依靠低位进位来到后在进行高位进位,而是根据各位输入同时产生进位,改变了进位逐位传送的方式,明显提高了加法器的工作速度。
1.2设计任务:通过小组合作讨论,利用MuxPlus2软件设计画出四位并行加法器原理图,在实验箱上连线,实现4位二进制数相加并得到正确的结果.1.3设计目的:○1掌握MaxPlus2软件的使用方法,并以此为工具进行设计电路原理图.○2了解加法器的工作原理,掌握超前进位产生电路的设计方法.○3正确将电路原理图下载到试验箱中.○4正确通过实验箱连线实现4位二进制数的相加并得到正确结果.○5增强小组协作的能力以及对知识探求的兴趣。
○6完成设计实验报告.1.4设计思路:加法器是计算机的基本运算部件之一。
若不考虑进位输入,两数码Xn,Yn相加称为半加,如下图为半加其功能表:(b)半加器逻辑图(c)用异或门实现半加器将Xn Yn以及进位输入Cn-1相加称为全价,其功能表如下图:a.(全加器功能表)(b)全加器的逻辑图(c)全加器的全加和Fn也可用异或门表示由功能表可得全加和Fn和进位输出Cn表达式:F n=X n Y n C n-1+ X n Y n C n-1+ X n Y n C n-1+ X n Y n C n-1C n= X n Y n C n-1+ X n n C n-1+n Y n C n-1+ X n Y n C n-1F n还可以用两个半加器来形成:F n=X n○+Y n○+C n-1如此,将n个全加器相连可得n位加法器,如图:但加法时间较长,只是因为其位间进位使串行的传送的,本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关,只有改变进位逐位传送,才能提高加法器的工作速度。
全加器实验报告
4位全加器的设计实验报告
班级:通信12-2班学号:姓名:韦建萍
一、实验目的
熟悉利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个4位全加器的设计,掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
二、实验原理
一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。
加法器举例说明:设M = 1101 ,N = 1110,CIN=0,则
1、半加器(设其名为h_adder)的电路:
2、全加器(设其名为f_adder)的电路:
三、实验内容和步骤
1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真;
半加器电路原理设计图如图:
半加器电路仿真图如图:
全加器电路原理设计图如图:
全加器电路仿真图如图:
2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成
编译、综合、适配、仿真。
4位全加器电路原理图如图:
4位全加器仿真图如图:
四、仿真分析及心得体会
仿真分析:
四位全加器S0为和位,C0为进位,当a0=1,b0=1时,S0=0,C0=1,就是和位为零,进位进1。
以此类推,当a1=1,b1=0,C0=1时,和位S0=0,进位C0=1。
实验体会:
通过这次实验让我学会了如何掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程,利用Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法。
eda实验报告(四位全加器的实现)
eda实验报告(四位全加器的实现)一、概述本实验是基于EDA软件对四位全加器电路进行实现的过程。
在EDA软件中,通过电路图的设计和仿真,可以有效地判断电路的正确性,从而进一步改进设计方案。
二、实验过程本实验的目的是实现四位全加器的电路。
在四位全加器的电路中,需要实现三个输入端口A、B和CIN,以及两个输出端口SUM和COUT。
其中,SUM输出端口表示输入端口A和B相加的结果,COUT输出端口则表示两个输入端口相加后的进位。
首先,在EDA软件中,使用电路图工具设计了四位全加器的电路。
在电路图中,输入端口和输出端口均使用标准连接器进行连接。
在电路图中,使用四个完整加法器电路连接起来,从而实现四位全加器电路的功能。
接着,对设计出的电路进行了仿真。
仿真的过程中,需要给输入端口设置相应的电信号,以模拟实际应用中的电路电信号。
通过观察仿真结果,可以判断输入端口和输出端口的功能是否正确,从而判断电路图的设计是否正确。
最后,将完成的电路图经过PCB工具进行绘制。
绘制完成后,将其导入到模拟工具中,进行实际电路的模拟测试。
在测试过程中,需要将输入端口和输出端口分别连接到接口测试架,并按照正常的电路连接方式进行测试。
通过测试结果,可以判断电路图中所设计的电路是否正确。
同时,测试结果还能验证电路的可靠性和稳定性,从而进行后续改进。
三、实验结果根据以上实验过程,在EDA软件中,成功设计了四位全加器电路,并进行了仿真和实际测试。
在测试结果中,电路功能正常,而输出端口的结果也与预期结果一致。
经过多次测试,电路的稳定性和可靠性也得到了验证。
四、结论通过以上实验,得出如下结论:1. EDA软件在电路设计和仿真方面具有很大的优势,能够极大地提高电路设计的效率和可靠性。
2. 在设计电路时,需要充分考虑各个输入端口之间的电路连接方式,以确保电路的准确性和稳定性。
3. 在完成电路设计之后,需要进行仿真和测试,以验证电路的正常功能和性能表现,从而进一步改进和优化电路设计方案。
四位加法器实验报告
四位加法器实验报告四位加法器实验报告引言:在现代科技高速发展的时代,计算机已经成为人们生活中不可或缺的一部分。
而计算机的核心部件之一就是加法器。
加法器是计算机中用于实现加法运算的电子电路,其功能是将两个二进制数相加并输出结果。
本实验旨在通过搭建四位加法器电路,深入了解加法器的工作原理和实现方式。
一、实验目的通过本实验,我们的目的是掌握四位加法器的原理和工作方式,了解二进制数的加法运算规则,并通过实际搭建电路进行验证。
二、实验材料1. 电路板2. 电子元件:电阻、电容、晶体管等3. 电源线、导线4. 示波器、万用表等实验仪器三、实验步骤1. 搭建四位加法器电路根据实验原理,我们需要使用多个晶体管、电阻和电容等元件来搭建四位加法器电路。
首先,将电路板连接好电源线和导线,并按照电路图的要求依次连接各个元件。
确保连接正确无误后,进行下一步操作。
2. 进行加法运算在搭建好四位加法器电路后,我们可以通过输入两个二进制数并观察输出结果来进行加法运算。
将需要相加的两个二进制数输入到电路中,然后观察输出端的显示结果。
通过比对输入和输出的二进制数,可以验证加法器电路的正确性。
3. 测试电路的稳定性和可靠性在进行加法运算的过程中,我们还需要测试电路的稳定性和可靠性。
通过不断输入不同的二进制数并观察输出结果,可以检验电路在不同情况下的工作状况。
同时,还可以通过示波器等实验仪器对电路的波形进行观察和分析,进一步验证电路的性能。
四、实验结果与分析通过实验,我们成功地搭建了四位加法器电路,并进行了加法运算测试。
实验结果显示,电路能够正确地将输入的二进制数相加,并输出相应的结果。
同时,在测试电路的稳定性和可靠性时,电路表现出了较好的工作状态,波形稳定且无明显干扰。
五、实验总结通过本次实验,我们深入了解了四位加法器的工作原理和实现方式,并通过实际搭建电路进行了验证。
实验结果表明,四位加法器电路能够准确地进行二进制数的加法运算,并具备较好的稳定性和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四位全加器
11微电子黄跃1117426021
【实验目的】
采用modelsim集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。
【实验内容】
加法器是数字系统中的基本逻辑器件。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).
【实验原理】
表2 全加器逻辑功能真值表
图4 全加器方框图
图5 全加器原理图
多位全加器连接可以是逐位进位,也可以是超前进位。
逐位进位也称串行进位,其逻辑电路简单,但速度也较低。
四位全加器
如图9所示,四位全加器是由半加器和一位全加器组建而成:
图9 四位全加器原理图
【实验步骤】
(1)建立新工程项目:
打开modelsim软件,进入集成开发环境,点击File→New project建立一
个工程项目adder_4bit。
建立文本编辑文件:
点击File→New在该项目下新建Verilog源程序文件adder_4bit.v
并且输入源程序。
(2)编译和仿真工程项目:
在verilog主页面下,选择Compile— Compile All或点击工具栏上的按钮启动编译,直到project出现status栏全勾,即可进行仿真。
选择simulate - start simulate或点击工具栏上的按钮开始仿真,在跳出来的 start simulate框中选择work-test_adder_4bit测试模块,同时撤销Enable Optimisim前的勾,之后选择ok。
在sim-default框内右击选择test_adder_4bit,选择Add Wave,然后选择simulate-run-runall,观察波形,得出结论,仿真结束。
四位全加器
1、原理图设计
如图9所示,四位全加器是由半加器和一位全加器组建而成:
图9 四位全加器原理图
【仿真和测试结果】
下图为四位全加器的仿真图:
图10 仿真图
【程序源代码】
1位全加器程序代码如下:
module f_adder(a,b,cin,sum,cout);
output sum,cout;
input a,b,cin;
wire s1,c1,c2;
xor(s1,a,b);
and(c1,a,b);
or(sum,s1,cin);
and(c2,s1,cin);
xor (cout,c2,c1);
endmodule
四位全加器程序代码如下:
module adder_4bit(s,co,a,b,ci);
output[3:0] s;
output co;
input[3:0] a,b;
input ci;
wire ci1,ci2,ci3;
f_adder f0(a[0],b[0],ci,s[0],ci1);
f_adder f1(a[1],b[1],ci1,s[1],ci2);
f_adder f2(a[2],b[2],ci2,s[2],ci3);
f_adder f3(a[3],b[3],ci3,s[3],co);
Endmodule
四位全加器测试程序代码如下:
module test_adder_4bit;
reg [3:0] A,B;
reg CI;
wire [3:0] S;
wire CO;
adder_4bit A1(S,CO,A,B,CI);
initial
begin
$monitor($time,"A=%b,B=%b,CI=%b,CO=%b,S=%b\n",A,B,CI,CO,S);
end
initial
begin
A=4'd0;B=4'd0; CI=1'B0;
#5 A=4'd3;B=4'd4;
#5 A=4'd2;B=4'd5;
#5 A=4'd9;B=4'd9;
#5 A=4'd10;B=4'd15;
#5 A=4'd10;B=4'd5;CI=1'b1;
end
endmodule
【实验心得和体会】
通过设计4位全加器,熟练了原理图输入方法,学会使用Verilog语言输入方法,也能较灵活地使用modlesim软件。
由时序图可以看出实现了4位全加器的功能,Verilog的程序设计是正确的,实验是成功的。
精品策划书。