4位全加器

合集下载

4位全加器

4位全加器

四位全加器的VHDL实现通信0704 王学申0120703490117一、设计要求:采用QuartusII或Max+PlusII集成开发环境,利用VHDL硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。

二、设计分析加法器是数字系统中的基本逻辑器件。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).三、加法器的分类(一)半加器能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。

或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。

图1为半加器的方框图。

图2为半加器原理图。

其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。

图1 半加器图2 半加器原理图根据二进制数相加的原则,得到半加器的真值表如表1所列。

信号输入信号输出A B S C0 0 0 00 1 1 01 0 1 01 1 0 1表1 半加器的真值表由真值表可分别写出和数S,进位数C的逻辑函数表达式为:(1) C=AB (2)由此可见,式(1)是一个异或逻辑关系,可用一个异或门来实现;式(2)可用一个与门实现。

仿真结果如图3所示:图3 半加器仿真图(二)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。

图4为全加器的方框图。

图5全加器原理图。

被加数A i、加数B i从低位向本位进位C i-1作为电路的输入,全加和S i与向高位的进位C i作为电路的输出。

能实现全加运算功能的电路称为全加电路。

实验一 4位全加器的设计(1)

实验一  4位全加器的设计(1)

实验一4位全加器的设计一、实验目的:1 熟悉QuartusⅡ与ModelSim的使用;2 学会使用文本输入方式和原理图输入方式进行工程设计;3 分别使用行为和结构化描述方法进行四位全加器的设计;4 理解RTL视图和Technology Map视图的区别;5 掌握简单的testbench文件的编写。

二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。

三、实验内容:1.QuartusII软件的熟悉熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。

2.设计1位全加器原理图设计的原理图如下所示:VHDL源程序如下(行为描述):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity f_add_bev is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : out std_logic;CO : out std_logic);end entity;architecture bev of f_add_bev isbegin(CO,S)<=('0',A)+('0',B)+('0',CIN);end bev;VHDL源程序如下(行为描述)的RTL与technology map视图VHDL源程序如下(数据流描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_fl is(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic);end entity;architecture fl of f_add_fl isbeginS<=A XOR B XOR CIN;CO<=((A XOR B)AND CIN)OR(A AND B);end fl;VHDL源程序如下(数据流描述)的RTL与technology map视图:VHDL源程序如下(结构化描述):library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity f_add_con isport(A : in std_logic;B : in std_logic;CIN : in std_logic;S : OUT std_logic;CO : out std_logic );end entity;architecture con of f_add_con is COMPONENT hadd_vhdPORT(a : IN STD_LOGIC;b : IN STD_LOGIC;co : OUT STD_LOGIC;s : OUT STD_LOGIC );END COMPONENT;SIGNAL S1:STD_LOGIC;SIGNAL CO1:STD_LOGIC;SIGNAL CO2:STD_LOGIC;beginh_add1 : hadd_vhdport map(a => a,B => B,S => S1,CO => CO1);h_add2 : hadd_vhdport map(a => S1,B => CIN,S => S,CO => CO2);CO<=CO1 OR CO2;end con;VHDL源程序如下(结构化描述)的RTL与technology map视图:Testbench文件源程序如下:LIBRARY cycloneiii ;LIBRARY ieee ;USE cycloneiii.cycloneiii_components.all ;USE ieee.std_logic_1164.all ;ENTITY f_add_fl_tb ISEND ;ARCHITECTURE f_add_fl_tb_arch OF f_add_fl_tb ISSIGNAL A : STD_LOGIC :='0';SIGNAL CO : STD_LOGIC ;SIGNAL CIN : STD_LOGIC :='0'; SIGNAL B : STD_LOGIC :='0'; SIGNAL S : STD_LOGIC ;COMPONENT f_add_flPORT (A : in STD_LOGIC ;CO : buffer STD_LOGIC ;CIN : in STD_LOGIC ;B : in STD_LOGIC ;S : buffer STD_LOGIC );END COMPONENT ;BEGINDUT : f_add_flPORT MAP (A => A ,CO => CO ,CIN => CIN ,B => B ,S => S ) ;A<=NOT A AFTER 0.25US;B<=NOT B AFTER 0.5US;CIN<=NOT CIN AFTER 1US;END ;功能仿真波形如下:时序仿真波形如下:3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器作为电路单元,设计4位全加器。

基于FPGA的4位全加器实验

基于FPGA的4位全加器实验

试验一 4位全加器实验1.实验原理.实验原理全加器能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号。

该位的进位信号。

全加器的真值表如表1所示。

所示。

表1 全加器真值表全加器真值表输入输入输出输出AiBi Ci-1 Si Ci0 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 111114位全加器可以采用四个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 开发环境,掌握工程的生成方法;开发环境,掌握工程的生成方法; ⒉了解⒉了解 V erilog HDL 语言在语言在 FPGA 中的使用;中的使用; ⒊了解4位全加器的V erilog HDL 语言实现。

语言实现。

3.实验内容.实验内容⒈用V erilog HDL 语言设计4位全加器,进行功能仿真验证。

4位全加器实验调查报告.doc

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位全加器电路,深入理解了全加器的结构和组成原理,并能够看到数字逻辑电路在实际中的运用。

同时,在本次实验中,我们也发现了全加器的实际运转情况并进一步分析了其可能存在的缺陷,从而提出了解决全加器过程中出现的短路问题的解决方法和措施,对我们今后的学习和研究都有非常重要的参考意义。

四位全加器实验Verilog

四位全加器实验Verilog

实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。

2.了解Verilog HDL语言的行为描述的优点。

2、实验原理4位全加器工作原理1)全加器除本位两个数相加外,还要加上从低位来的进位数,称为全加器。

被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。

能实现全加运算功能的电路称为全加电路。

全加器的逻辑功能真值表如表中所列。

2)1位全加器一位全加器(FA)的逻辑表达式为:S=A⊕B⊕Cin;Co=AB+BCin+ACin其中A,B为要相加的数,Cin为进位输入;S为和,Co是进位输出;这两幅图略微有差别,但最后的结果是一样的。

3)4位全加器4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。

3、实验步骤四、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIJN:83L4:64KHZ:805、心得体会首先,实现这一段全加器代码并不难,但是由于困惑给的三个时钟输入,没有太懂意思,所以只写了全加器控制LED灯的代码;后来问清楚后,运行全加器代码,有错误,原来是建文件时用的是verilog hdl,我建的是其他类型的;后来还有错,原来是把冒号打成分号;编译成功后,LED不亮,后来发现是硬件老化,换了箱子。

这一部分做好后,我准备把控制声音的加上去,本来准备再加一个模块,可是不能有两个顶层块,就对主模块做了补充,用case命令调用不同的状态,因为时间紧迫,所以代码写得比较简单,没有用经典的分频代码。

这里附一小段,是我在研究分频控制时看懂的网上的经典分频代码,适合乐曲自动播放等高级的实现,仅供分享assign preclk=(divider==16383)?1:0;//divider==16383,preclk=1always @(posedge clk) //基频上升沿触发beginif(preclk) //preclk=1divider=origin;elsedivider=divider+1;endalways @(posedge preclk) //调整占空比beginspeaker=~speaker; //2 分频产生方波信号end这部分实现了分频功能,其中origin+divider=16384=2^14,这个数根据自己的需要而定。

四位全加器

四位全加器
二、实验设备
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;

四位全加器原理

四位全加器原理

四位全加器原理四位全加器是数字电路中常用的一种逻辑电路,它可以用来实现对四位二进制数进行加法运算。

在计算机中,加法是最基本的运算之一,因此四位全加器在数字电路中有着广泛的应用。

在本文中,我们将介绍四位全加器的原理和工作方式。

四位全加器由四个单位的全加器组成,每个全加器都有三个输入和两个输出。

输入包括两个加数和上一位的进位,输出包括本位的和以及向下一位的进位。

全加器的原理是通过对输入信号进行逻辑运算,得到输出信号。

首先,我们来看一下单个全加器的原理。

一个全加器有三个输入A、B和Cin,分别代表两个加数和上一位的进位;有两个输出S和Cout,分别代表本位的和以及向下一位的进位。

全加器的逻辑运算可以用如下的真值表来表示:A B Cin S Cout。

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 1 1 1。

通过观察真值表,我们可以得到全加器的逻辑表达式:S = A ⊕ B ⊕ Cin。

Cout = (A ∧ B) ∨ (Cin ∧ (A ⊕ B))。

其中,⊕代表异或运算,∧代表与运算,∨代表或运算。

这些逻辑表达式描述了全加器的工作原理,通过对输入信号进行逻辑运算,可以得到输出信号。

接下来,我们将四个全加器连接起来,形成四位全加器。

在四位全加器中,每个全加器的进位输入都连接到上一个全加器的进位输出,这样就可以实现对四位二进制数的加法运算。

四位全加器的原理和单个全加器类似,只是需要考虑更多的输入和输出信号。

通过对四位全加器的原理和工作方式的了解,我们可以更好地理解数字电路中的加法运算。

四位全加器作为数字电路中的基本组成部分,有着重要的应用价值。

它不仅可以用于计算机中的加法运算,还可以用于其他数字电路中的逻辑运算。

因此,对四位全加器的原理进行深入的研究和理解,对于数字电路的学习和应用都具有重要的意义。

总之,四位全加器是数字电路中常用的一种逻辑电路,它可以用来实现对四位二进制数进行加法运算。

4位全加器verilog课程设计

4位全加器verilog课程设计

4位全加器verilog课程设计一、课程目标知识目标:1. 理解4位全加器的原理和功能,掌握其Verilog硬件描述语言实现方法。

2. 学习并掌握数字电路中加法器的基本结构和工作原理。

3. 掌握Verilog模块化编程,能够实现并测试4位全加器的基本功能。

技能目标:1. 能够运用Verilog语言编写4位全加器的代码,并进行功能仿真。

2. 学会使用硬件描述语言进行数字电路的设计,提高实际问题解决能力。

3. 能够对4位全加器进行调试和优化,提升编程实践技能。

情感态度价值观目标:1. 培养学生的团队合作意识,提高学生在项目实践中的沟通与协作能力。

2. 增强学生对数字电路设计领域的兴趣,激发学生的创新精神。

3. 引导学生树立正确的价值观,认识到科技发展对社会进步的重要性。

课程性质:本课程为电子信息工程及相关专业高年级的数字电路设计课程,旨在通过4位全加器的Verilog实现,让学生掌握数字电路设计的基本方法和实践技能。

学生特点:学生已具备一定的数字电路基础和Verilog编程知识,具备分析问题和解决问题的能力。

教学要求:注重理论与实践相结合,鼓励学生积极参与课堂讨论,培养学生的动手能力和实际操作技能。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得明显进步。

二、教学内容本课程教学内容主要包括以下几部分:1. 数字加法器原理回顾:介绍加法器的基本原理,重点讲解4位全加器的工作流程和关键特性。

- 教材章节:数字电路基础,第3章第2节。

2. Verilog硬件描述语言基础:复习Verilog的基本语法,强调模块化编程方法。

- 教材章节:硬件描述语言Verilog,第4章。

3. 4位全加器的Verilog设计:- 设计原理:讲解4位全加器的设计思路和实现方法。

- 代码编写:引导学生编写4位全加器的Verilog代码,并进行模块化设计。

- 教材章节:数字电路设计,第5章第3节。

4. 功能仿真与调试:- 介绍仿真工具和仿真方法,指导学生进行4位全加器的功能仿真。

四位全加器版图课程设计

四位全加器版图课程设计

四位全加器版图课程设计一、课程目标知识目标:1. 让学生理解四位全加器的原理,掌握其功能、结构和操作方法。

2. 使学生掌握数字电路中加法器的基本概念,了解四位全加器在数字系统中的应用。

3. 帮助学生掌握二进制数加法运算的规则,并能运用四位全加器进行简单的二进制加法计算。

技能目标:1. 培养学生运用所学知识,分析并设计简单的四位全加器电路。

2. 提高学生动手实践能力,能够正确搭建四位全加器电路,并进行调试。

3. 培养学生运用四位全加器解决实际问题的能力。

情感态度价值观目标:1. 培养学生对数字电路的兴趣,激发他们学习电子技术的热情。

2. 培养学生严谨的科学态度,注重实验数据的准确性和可靠性。

3. 引导学生认识到数字电路在现代科技中的重要作用,增强他们的国家荣誉感和责任感。

课程性质分析:本课程为电子技术基础课程,旨在让学生掌握四位全加器的基本原理和实际应用,培养他们的实践操作能力。

学生特点分析:学生为初中年级学生,对电子技术有一定的基础,具备基本的电路知识和动手能力,但需要进一步引导和培养。

教学要求:1. 注重理论与实践相结合,让学生在实际操作中掌握四位全加器的原理和应用。

2. 采用启发式教学方法,引导学生主动思考、探索,培养他们的创新意识。

3. 注重个体差异,因材施教,使每位学生都能在课程中取得实质性的进步。

二、教学内容1. 四位全加器的基本概念与原理:- 加法器的作用与分类- 四位全加器的结构及工作原理- 二进制数加法运算规则2. 四位全加器的电路设计与分析:- 电路元件的选用与连接- 四位全加器的逻辑表达式及简化- 电路图的绘制与解读3. 四位全加器的实际应用:- 在数字系统中的应用场景- 与其他数字电路的组合应用- 实际电路搭建与调试4. 教学内容的安排与进度:- 第一课时:介绍加法器的基本概念,引导学生了解四位全加器的原理和结构- 第二课时:讲解二进制数加法运算规则,分析四位全加器的电路设计方法- 第三课时:指导学生动手搭建四位全加器电路,进行调试与优化- 第四课时:探讨四位全加器在实际应用中的组合运用,培养学生的创新意识教材关联:教学内容与教材第四章“数字电路基础”中第四节“加法器”相关内容紧密关联,涵盖了四位全加器的基本原理、电路设计、实际应用等方面,为学生提供了系统性的学习指导。

4位全加器

4位全加器

设计过程如下:1.构建一个全加器全加器的真值表和逻辑表达式如下:表一全加器真值表逻辑表达式为:S=A⊕B⊕c , C=AB+(A⊕B)c(1)选逻辑门。

双击Logic and Bit Operations。

将Logical Operator模块拖到工作窗口中。

双击模块打开Block Parameters窗口,将Main标签中的Operator选项改为XOR或OR,再拖入一个AND门。

(2)选输入信号。

选用Pulse Generator。

打开Sources面板,拖入三个Pulse Generator 并放置在窗口的左侧。

这三个Pulse Generator作为加法器真值表的三个输入。

双击第一个并将它的周期(period)设定为8秒,相位延迟(phase delay)设定为4秒,Pluse Width设置为50并Pulse Generator重命名为A input,。

双击第二个,将周期设定为4秒,相位设定为2秒,Pluse Width设置为50,重命名为B input,。

双击第三个,将周期设定为2秒,相位设定为1秒,Pluse Width设置为50,重命名为C input。

(3)输入输出的观测。

用Commonly Used Blocks 中的Scope(示波器)模块。

输入分别为A、B、C输出为S、C(4)选好之后,进行连线,连线结果如下图1 全加器逻辑图(5)执行运行用示波器分别观察A、B、C 、S、C如下:A:B:C:S:C:经过比较,各波形与全加器真值表中数值相符合,因此,创建全加器模块。

2. 创建全加器模块选中要创建子系统的模块,选择Edit\CreateSubsystem 菜单,创建全加器模块,命名为Full_Adder,结果如下图图2 全加器模块3.构建一个4位加法器复制为四个全加器,并在Commonly Used Blocks中拖动3个In、2个Out、2个Demux、1个Mux,并连接成四位全加器,如下图所示:图3 4位全加器经赋值检验连接正确,保存命名为Full Adder_4。

四位全加器

四位全加器

实验四四位全加器一、实验目的l. 用组合电路设计4位全加器。

2.了解Verilog HDL语言的行为描述的优点。

二、实验原理4位全加器可看作4个1位全加器串行构成, 具体连接方法如下图所示:采用Verilog HDL语言设计该4位全加器,通过主模块调用子模块(1位全加器)的方法来实现。

(S表示输出结果;C表示进位输出)一位全加器的数学表示如下:(S是1位输出结果,C是1位进位输出)S=A⊕B⊕CinC=AB+BCin+ACin一位全加器可以通过两种方式实验,1)门级建模:xor (s11,a,b);and(c1,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);2)数据流方式:assign {s,cc}=a+b+cin;四位全加器:S是4位输出结果,C0、C1、C2、CC为进位输出S[0]=A[0]⊕B[0]⊕CinC0=A[0]B[0]+B[0]Cin+A[0]CinS[1]=A[1]⊕B[1]⊕C0C1=A[1]B[1]+B[1]C0+A[1]C0S[2]=A[2]⊕B[2]⊕C1C2=A[2]B[2]+B[2]C1+A[2]C1S[3]=A[3]⊕B[3]⊕C2C3=A[3]B[3]+B[3]C2+A[3]C2三、实验内容l. 用Verilog HDL语言设计4位全加器(调用子模块的方法)。

2、根据led灯显示的结果,可以通过将相应的控制信号连接至“扬声器”的输入端VIN,使得4位全加器输出不同数值时,扬声器能自动调节,并发出不同的“嘀嘀嗒嗒”的声音。

3. 锁定引脚, 并下载验证之。

四、管教配置其中:clk1k与clk4k用于控制扬声器的驱动脉冲信号。

五、实验连线K1-K4:14-11K5-K8:18-15L5-L8:7-10VIN:83L4:6500KHZ:8KHZ:34KHZ:801024HZ:81六、实验代码:module shiyan4(s,cc,a,b,cin,speaker,clk3,clk8,clk4,clk500); output [3:0] s;output reg speaker;output cc;input [3:0] a,b;input cin;input clk8,clk3,clk4,clk500;wire c0,c1,c2;yiweiadd add0(s[0],c0,a[0],b[0],cin);%子模块调用yiweiadd add1(s[1],c1,a[1],b[1],c0);yiweiadd add2(s[2],c2,a[2],b[2],c1);yiweiadd add3(s[3],cc,a[3],b[3],c2);always @(a or b)begincase(s)4'b0000: speaker=clk3;4'b0001:speaker=clk4;4'b0010:speaker=clk8;4'b0011:speaker=clk500;default:;endcaseendendmodule子模块:module fulladd(s,cc,a,b,cin);output s,cc;input a,b,cin;wire c11,c22,s11;xor (s11,a,b);and(c11,a,b);xor (s,s11,cin);and(c22,s11,cin);xor(cc,c22,c11);endmodule七、实验心得1扬声器的实现有两种方法:一是用多个时钟来表示不同的计算结果;二是用一个时钟,通过分频来实现不同的频率的声音。

4位全加器

4位全加器

实验一用原理图输入法设计4位全加器一、实验目的1)熟悉利用Quartus II 的原理图输入方法设计简单组合电路;2)掌握层次化设计的方法;3)并通过一个4位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。

二、实验内容1)完成半加器、全加器和4位全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。

键1、键2、键3(PIO0/1/2)分别接ain、bin、cin;发光管D2、D1(PIO9/8)分别接sum和cout。

2)建立一个更高的层次的原理图设计,利用以上获得的1位全加器构成的4位全加器,并完成编译、综合、适配、仿真和硬件测试。

建议选择电路模式1(附图F-2):键2、键1输入4位加数:键4、键3输入4位被加数:数码6和数码5显示加和:D8显示进位cout。

三、实验仪器1)计算机及操作系统;2)QuartusII软件;3)编程电缆。

四、实验原理一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出 cout 与相邻的高位加法器的最低进位输入信号 cin 相接。

一个1位全加器可以参考教材介绍的方法来完成。

1位全加器示意图如图1所示。

其中,其中CI为输入进位位,CO为输出进位位,输入A和B分别为加数和被加数。

S为输出和,其功能可用布尔代数式表示为:图1 1位全加器i i i i o i i i ABCABC ABC ABC C ABCC B A C B A C B A S +++=+++= 五、实验步骤1、完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路设计成一个硬件符号入库。

键1、键2、键3(PIO0/1/2)分别接ain 、bin 、cin ;发光管D2、D1(PIO9/8)分别接sum 和cout 。

2、建立一个更高层次的原理图设计,利用以上获得的1位全加器构成4位全加器,并完成编译、综合、适配、仿真、和硬件测试。

四位全加器设计

四位全加器设计

一. 设计原理。

1.全加器与脉冲信号发生器电路图U1、U2 和 U3A 组成一位全加器, 个加数”由 U1A 的 1、2 “2 脚输入, “进位”有 U8A 的 5 脚输入, “全加和”由 U2C 的 8 脚输出到 D 触发器 U4A 的数据输出端 D,进位输出到 U8A 的 数据输入端。

和 U3C 组成的基本 RS 触发器和单刀双掷无 U3B 锁按键 KP 一起组成脉冲发生器,每按一次 KP 在 U3C 的管脚 8 形成的一个正位脉冲给所有 D 触发器提供 CP 脉冲 2 累加器 A 电路图由双 D 触发器 U4 和 U5 组成的“移位寄存器 A”保存累加器 的一个加数 3.累加器 B 电路图由双 D 触发器 U6 和 U7 组成的“移位寄存器 B”保存累加器 的另一个加数,D 触发器 U8A 保存进位位 C4.累加器电路图按下 KR 键可使所有 D 触发器复位为全 0,复位后可通过KA3-KA0 键分别设置加数 A 的各个位,通过 KB3-KB0 键分别 设置另一个加数 B 的各个位, 通过 KC 设置来自低位的进位 C。

按 KP 键 4 次产生 4 各 CP 脉冲完成累加, 结果在寄存器 A 中, 向高位的进位在 C 中,寄存器 B 全为 0.二、制作调试过程 1、 步骤 (1) 打印: 3 个电路图分别打印在 3 张要求大小的硫酸 将 纸上 (2) 裁板:裁切 3 张比电路图大小大一点的铜板 (3) 压图: 用过热机将电路图压在铜板上, 冷却后撕去硫 酸纸,检查电路是否完整 (4) 腐蚀:将铜板放在三氯化铁腐蚀液中腐蚀 (5) 钻孔:用钻孔机钻孔 (6) 焊接:用电烙铁将每个元器件焊接在正确的位置上 2、 准备工作 用万能表检查有没有短路、断路情况。

三、 测试。

(1) 全加器与脉冲信号发生器的测试 A0,B0,C 接逻辑开关,VCC 接电源,GND 解地,S,CO,CP 分 别接发光二极管。

四位全加器实验报告

四位全加器实验报告

四位全加器实验报告四位全加器实验报告引言:在计算机科学领域,加法器是一种常见的数字电路,用于将两个二进制数相加。

全加器是一种特殊的加法器,能够处理三个输入位:两个用于相加的位和一个用于进位的位。

本实验旨在设计和实现一个四位全加器电路,并验证其正确性。

一、实验背景全加器是计算机中常用的逻辑电路之一。

在二进制加法中,当两个位相加时,如果产生进位,则需要将进位传递到下一位的计算中。

全加器的作用就是处理这种进位情况,确保加法运算的正确性。

二、实验目的1. 设计一个四位全加器电路。

2. 实现全加器电路的逻辑功能。

3. 验证全加器电路的正确性。

三、实验原理1. 全加器的逻辑功能:全加器的逻辑功能可以通过真值表表示。

对于两个输入位A和B以及进位输入位Cin,全加器的输出位和进位输出位可以通过以下公式计算:Sum = A ⊕ B ⊕ CinCout = (A ∧ B) ∨ (Cin ∧ (A ⊕ B))2. 四位全加器电路的设计:四位全加器由四个全加器和三个2-1多路选择器组成。

其中,每个全加器的输入位分别与两个相邻位的输出位相连,最高位的进位输入位与电源连接,最低位的进位输出位与地线连接。

每个2-1多路选择器的选择位分别与两个相邻位的进位输出位相连。

四、实验步骤1. 根据实验原理设计四位全加器电路。

2. 使用逻辑门电路和多路选择器等器件搭建电路。

3. 连接电路中的输入和输出端口。

4. 转接开关设置输入位的值。

5. 连接电源,观察输出位的值。

6. 更改输入位的值,再次观察输出位的值。

7. 对比实际输出值与预期值,验证电路的正确性。

五、实验结果与分析经过实验观察和计算,我们得到了四位全加器电路的输出结果。

与预期结果相比较,实际输出值与预期值完全一致,证明了电路的正确性。

六、实验总结通过本次实验,我们成功设计并实现了一个四位全加器电路,并验证了其正确性。

全加器作为计算机中常用的逻辑电路,具有重要的应用价值。

通过深入学习和掌握全加器的原理和设计方法,我们可以更好地理解和应用计算机科学中的相关知识。

EDA实验一 1位全加器和四位全加器的设计

EDA实验一 1位全加器和四位全加器的设计

实验一1位全加器和四位全加器的设计一、实验目的1、掌握Quartus Ⅱ6.0软件使用流程。

2、初步掌握VHDL的编程方法。

3、掌握图形层次设计方法;4、掌握全加器原理,能进行多位加法器的设计。

二、实验原理(一位全加器的逻辑表达式为:sum=a^b^Cl;Ch= a&b|(a^b)&Cl.(2)四位加法器加法器是数字系统中的基本逻辑器件。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

三、实验连线(1)一位全加器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、将JPLED1短路帽右插,JPLED的短路帽全部上插。

3、请将JP103的短路帽全部插上,,打开实验箱电源。

( 2 ) 四位加法器1、将EP2C5适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG 口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边2、JPLED1短路帽右插,JPLED的短路帽全部上插。

3、请将JP103的短路帽全部插上,,打开实验箱电源。

四、实验代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY fulladder ISPORT(A,B,C1 :IN STD_LOGIC;CH,SUM : OUT STD_LOGIC);END ENTITY fulladder;ARCHITECTURE ADO OF fulladder isSIGNAL AB :STD_LOGIC;BEGINSUM<=A XOR B XOR C1;AB<=A XOR B;CH<=(A AND B) OR (AB AND C1);END ARCHITECTURE ADO;一位全加器波形如下:图4-1四位加法器波形如下:图4-2五、实验仿真过程SW1,SW2,SW3对应a,b,Cl;D101,D102分别对应sum和Ch,当结果为0时彩色LED灯熄灭,当结果为1时彩灯点亮,改变SW1,SW2,SW3的输入状态,观察实验结果。

四位全加器原理

四位全加器原理

四位全加器原理四位全加器是一种用于将两个四位二进制数相加的电子电路。

它由四个单独的全加器组成,每个全加器负责对应位置上的两个二进制数位和进位进行加法运算。

四位全加器的具体原理如下:四位全加器由4个单独的全加器组成,它们分别是最低位的全加器(低位全加器)、第二低位的全加器、第三低位的全加器和最高位的全加器(高位全加器)。

每个全加器有三个输入:两个待相加的二进制数位和进位输入,以及一个进位输出。

它们还有两个输出:一个是此位相加结果的输出,另一个是进位输出。

四位全加器的原理是通过级联连接四个单独的全加器来实现四位二进制相加运算。

最低位的全加器接收两个待相加的二进制数位和进位作为输入,并计算出该位的相加结果和进位输出。

然后,第二低位的全加器接收来自最低位的全加器的进位输出以及两个待相加的二进制数位作为输入,并计算出该位的相加结果和进位输出。

以此类推,第三低位的全加器和最高位的全加器依次接收前一位的进位输出和两个待相加的二进制数位作为输入,并计算出它们各自的相加结果和进位输出。

具体来说,每个全加器的功能如下:1. 输入:两个待相加的二进制数位和进位- 第一个输入是A位,代表待相加的二进制数的位。

- 第二个输入是B位,也代表待相加的二进制数的位。

- 第三个输入是进位输入,也就是上一位的进位输出。

2. 输出:相加结果及进位输出- 第一个输出是S位,代表相加结果。

- 第二个输出是进位输出,代表是否产生进位。

为了实现全加器的功能,我们可以使用门电路来实现加法运算。

典型的实现方式是使用两个异或门和一个与门。

异或门用于计算两个输入的和,而与门用于计算进位输出。

具体来说,全加器的实现如下:1. 将A位和B位输入到两个异或门中,得到两个部分和。

2. 将部分和和进位输入到一个异或门中,得到相加结果(S位)。

3. 将部分和和进位输入到一个与门中,得到进位输出。

通过级联连接四个全加器,我们就可以实现四位二进制数的加法。

具体连接方式如下:1. 将低位全加器的A位和B位输入连接到待相加的两个四位数的对应位。

eda实验报告(四位全加器的实现)

eda实验报告(四位全加器的实现)

eda实验报告(四位全加器的实现)一、概述本实验是基于EDA软件对四位全加器电路进行实现的过程。

在EDA软件中,通过电路图的设计和仿真,可以有效地判断电路的正确性,从而进一步改进设计方案。

二、实验过程本实验的目的是实现四位全加器的电路。

在四位全加器的电路中,需要实现三个输入端口A、B和CIN,以及两个输出端口SUM和COUT。

其中,SUM输出端口表示输入端口A和B相加的结果,COUT输出端口则表示两个输入端口相加后的进位。

首先,在EDA软件中,使用电路图工具设计了四位全加器的电路。

在电路图中,输入端口和输出端口均使用标准连接器进行连接。

在电路图中,使用四个完整加法器电路连接起来,从而实现四位全加器电路的功能。

接着,对设计出的电路进行了仿真。

仿真的过程中,需要给输入端口设置相应的电信号,以模拟实际应用中的电路电信号。

通过观察仿真结果,可以判断输入端口和输出端口的功能是否正确,从而判断电路图的设计是否正确。

最后,将完成的电路图经过PCB工具进行绘制。

绘制完成后,将其导入到模拟工具中,进行实际电路的模拟测试。

在测试过程中,需要将输入端口和输出端口分别连接到接口测试架,并按照正常的电路连接方式进行测试。

通过测试结果,可以判断电路图中所设计的电路是否正确。

同时,测试结果还能验证电路的可靠性和稳定性,从而进行后续改进。

三、实验结果根据以上实验过程,在EDA软件中,成功设计了四位全加器电路,并进行了仿真和实际测试。

在测试结果中,电路功能正常,而输出端口的结果也与预期结果一致。

经过多次测试,电路的稳定性和可靠性也得到了验证。

四、结论通过以上实验,得出如下结论:1. EDA软件在电路设计和仿真方面具有很大的优势,能够极大地提高电路设计的效率和可靠性。

2. 在设计电路时,需要充分考虑各个输入端口之间的电路连接方式,以确保电路的准确性和稳定性。

3. 在完成电路设计之后,需要进行仿真和测试,以验证电路的正常功能和性能表现,从而进一步改进和优化电路设计方案。

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

四位全加器的VHDL实现
通信0704 王学申0120703490117
一、设计要求:
采用QuartusII或Max+PlusII集成开发环境,利用VHDL硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四位进位加法器。

二、设计分析
加法器是数字系统中的基本逻辑器件。

多位加法器的构成有两种方式:并行进位和串行进位方式。

并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。

通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。

实现多位二进制数相加的电路称为加法器,它能解决二进制中1+1=10的功能(当然还有 0+0、0+1、1+0).
三、加法器的分类
(一)半加器
能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。

或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。

图1为半加器的方框图。

图2为半加器原理图。

其中:A、B分别为被加数与加数,作为电路的输入端;S为两数相加产生的本位和,它和两数相加产生的向高位的进位C一起作为电路的输出。

图1 半加器
图2 半加器原理图
根据二进制数相加的原则,得到半加器的真值表如表1所列。

信号输入信号输出
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
表1 半加器的真值表
由真值表可分别写出和数S,进位数C的逻辑函数表达式为:
(1) C=AB (2)
由此可见,式(1)是一个异或逻辑关系,可用一个异或门来实现;式(2)可用一个与门实现。

仿真结果如图3所示:
图3 半加器仿真图
(二)全加器
除本位两个数相加外,还要加上从低位来的进位数,称为全加器。

图4为全加器的方框图。

图5全加器原理图。

被加数A i、加数B i从低位向本位进位C i-1作为电路的输入,全加和S i与向高位的进位C i作为电路的输出。

能实现全加运算功能的电路称为全加电路。

全加器的逻辑功能真值表如表2中所列。

信号输入端信号输出端
A i
B i
C i S i C i
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 1 1 1
表2 全加器逻辑功能真值表
图4 全加器方框图
图5 全加器原理图
其仿真结果如图6所示:
图6 全加器仿真图
多位全加器连接可以是逐位进位,也可以是超前进位。

逐位进位也称串行进位,其逻辑电路简单,但速度也较低。

五、加法器的VHDL实现
5.1实验步骤
(1)建立新工程项目:
打开Quartus II软件,进入集成开发环境,点击File→New projectwizard建立一个工程项目adder。

图7 项目的建立
建立文本编辑文件:
点击File→New在该项目下新建VHDL源程序文件adder.v
并且输入源程序。

编译工程项目:
在Quartus II主页面下,选择Processing—Start Compilation或点击工具
栏上的按钮启动编译,直到出现“Full Compilation Report”对话框,点击OK 即可。

图8 编译成功
相应的VHDL程序如下所示:
(一)半加器
VHDL语言描述语句为:
so<=a xor b;
co<=a and b
程序设计:
library ieee;
use ieee.std_logic_1164.all;
entity h_adder is
port (a,b:in std_logic;
so,co:out std_logic); ――定义输入、输出端口
end h_adder;
architecture bh of h_adder is
begin
so<=a xor b; ――“异或”运算
co<=a and b; ――“与”运算
end bh;
(二)全加器
1位全加器可由两个半加器组成,在半加器的基础上,采用元件调用和例化语句,将件连接起来,而实现全加器的VHDL编程和整体功能。

全加器包含了两个半加器和一个或门。

在此基础上可设计出四位全加器。

六、四位全加器
1、原理图设计
如图9所示,四位全加器是由半加器和一位全加器组建而成:
图9 四位全加器原理图
下图为四位全加器的时序仿真图:
图10 时序图
四位全加器程序代码如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity add4 is
port(cin:in std_logic;
a,b:in std_logic_vector(3 downto 0);
s:out std_logic_vector(3 downto 0);
cout:out std_logic);
end add4;
architecture beh of add4 is
signal sint:std_logic_vector(4 downto 0);
signal aa,bb:std_logic_vector(4 downto 0);
begin
aa<='0' & a(3 downto 0); --4位加数矢量扩为5位,提供进位空间
bb<='0' & b(3 downto 0);
sint<=aa+bb+cin;
s(3 downto 0)<=sint(3 downto 0);
cout<=sint(4);
end beh;
七、小结
通过设计4位全加器,熟练了原理图输入方法,学会使用VHDL语言输入方法,也能较灵活地使用QuartusII软件。

由时序图可以看出实现了4位全加器的功能,VHDL的程序设计是正确的,实验是成功的。

相关文档
最新文档