4位全加器设计解析
- 格式:doc
- 大小:414.48 KB
- 文档页数:13
实验一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位全加器。
任务一4位全加器设计一、实验目的1、掌握运用Quartus II原理图编辑器进行层次电路系统设计的方法。
2、进一步熟悉利用Quartus II进行电路系统设计的一般流程。
3、掌握4位全加器原理图输入设计的基本方法及过程。
二、实验原理(1)设计一位半加器真值表:(2)设计一位全加器真值表:SOn=n n n−1;COn=(A n⨁B n)C n−1+A n B n;(2)设计多位全加器由一位全加器组合成多位全加器。
依次将低位全加器的进位输出端接到高位全加器的进位输入端,由四个一位全加器构成四位全加器。
三、实验过程1、一位半加器的设计(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“01.bdf”,如图:(2)仿真波形①执行“Files”─>“New”─>“Vector Waveform File”─>“OK”②在波形编辑窗口双击左键,执行“Insert Node or Bus”─> “New Finder”─> “List”─>“》”─>“OK”。
③保存文件为“01.vwf”。
④执行菜单“Processing”─> “Start Simulation”,如图:(3)仿真波形分析:(4)封装之后的图:设“01.bdf”为顶层文件,执行“Files”─>“Create、Update”─> “Create Symbol Files forCurrent Files”,保存。
如图:2、一位全加器(1)电路图①执行“Files”─>“New”─>“Block Diagram/Sch matic”─>“OK”②在编辑窗口输入“与非”门电路原理图,保存电路为“02.bdf”,如图:(2)仿真波形①设“02.bdf”为顶层文件。
实验四四位全加器一、实验目的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,这个数根据自己的需要而定。
4位加法器的设计原理四位加法器是一种数字电路,用于实现四位二进制数的加法运算。
它由多个逻辑门组成,主要包括四个全加器、一个四路二选一选择器和一个四位二进制数输出。
在四位加法器中,每个全加器都负责计算两个输入位和上一位的进位的和。
全加器的原理是采用异或门(XOR)、与门(AND)和或门(OR)的组合。
具体来说,全加器有三个输入端,分别是两个输入位(A和B)和上一位的进位(Cin),两个输出端,分别是当前位的和(S)和当前位的进位(Cout)。
全加器的计算公式如下:S = (A XOR B) XOR CinCout = AB + (A XOR B)Cin其中,“XOR”代表异或操作,“AND”代表与操作,“OR”代表或操作。
全加器的设计原理是基于四位二进制数的加法运算规则。
在四位加法过程中,每一位的和由该位的两个输入位和上一位的进位确定。
进位则与上一位的输入位和上一位的进位有关。
因此,通过级联四个全加器,就可以实现四位加法运算。
除了四个全加器以外,四位加法器还包括一个四路二选一选择器。
这个选择器根据一个控制信号选择输出。
四位加法器的输出是一个四位二进制数,可以选择以原码、反码或补码的形式输出。
通过选择器的控制信号,可以选择输出形式。
四位加法器的工作原理是:首先,将四个输入数两两相加,得到每一位的和,以及进位。
然后,将每一位的和通过四个全加器计算得到最终的和,同时将进位以及控制信号传递给选择器。
最后,选择器选择要输出的结果。
总结来说,四位加法器是基于全加器的构建的数字电路,可以实现四位二进制数的加法运算。
它的设计原理是根据四位二进制数加法的规则和全加器的计算公式,通过级联四个全加器,并通过选择器控制输出形式,实现四位二进制数的加法运算。
实验一------用原理图输入法设计4位全加器
1.实验目的
熟悉利用MAX+PLUSⅡ的原理图输入法来设计简单组合逻辑电路,学会层次化设计方法,并通过一个4位全加器的设计,学会利用EDA软件进行电子电路设计的详细流程。
2.实验原理。
一个4位全加器可以由4个1位全加器构成,加法器间的进位可用串行方式实现,即将低位加法器的进位输出与相邻的高位加法器的进位输入信号相接。
而一个1位全加器可按图3-19所示连接,其波形图如3-20所示。
图3-19 1位全加器的原理图
图3-20 1位全加器的波形图
3.实验内容。
(1)按照教材完成1位全加器adder的设计,包括原理图输入、编译、综合、适配、仿真,并将此全加器电路设置成一个硬件符号入库。
(2)建立一个更高的原理图设计层次,取名为adder4.利用以上获得
的1位全加器构成4位全加器,电路原理图如图3-21所示。
图3-21 4位全加器电路原理图
4.实验结果。
首先按照原理图设计1位全加器,之后通过四个1位全加器正确连接后则设计出4位全加器,其波形图如上图所示.。
4位快速加法器设计故障与调试4位快速加法器设计故障与调试引言:在数字电路设计中,快速加法器是一个非常重要的组件。
它用于将两个二进制数相加,并输出其结果。
然而,在设计和实现过程中,可能会遇到一些故障或错误。
本文将介绍4位快速加法器的设计故障和调试方法。
一、4位快速加法器的基本原理1.1 二进制加法的基本概念二进制加法是指将两个二进制数相加,并按照二进制规则进行进位和求和。
当两个二进制数A=1101和B=1010相加时,其结果为C=10111。
1.2 4位快速加法器的结构4位快速加法器由四个全加器组成,每个全加器负责计算一对输入位的和以及前一位的进位。
四个全加器按照级联方式连接起来,形成一个完整的4位快速加法器。
二、常见故障与解决方法2.1 电路连接错误在设计和实现过程中,可能会出现电路连接错误导致功能无法正常工作。
这种情况下,需要检查电路连接是否正确,并进行修正。
2.2 逻辑门选择错误在选择逻辑门时,可能会选错门类型或门数量不足,导致电路无法正确计算和输出结果。
解决方法是仔细检查逻辑门的选择,并根据需要增加或更换逻辑门。
2.3 信号线延迟问题在数字电路中,信号线延迟是一个常见的问题。
当信号传输的时间超过了设计所允许的范围时,可能会导致计算结果出错。
解决方法是通过添加缓冲器或调整信号线长度来解决延迟问题。
2.4 电源供应不稳定电源供应不稳定可能导致电路工作不正常或产生噪声干扰。
为了解决这个问题,可以使用稳压器来提供稳定的电源,并添加滤波器以降低噪声干扰。
三、调试方法3.1 逐级验证在进行调试时,可以使用逐级验证的方法。
首先验证单个全加器的功能是否正常,然后再将多个全加器级联起来进行整体验证。
3.2 输入输出检查通过检查输入和输出信号是否符合预期结果,可以确定是否存在故障。
如果输入和输出不匹配,则需要检查逻辑门连接、输入数据和控制信号等方面是否有错误。
3.3 示波器测量使用示波器可以观察信号的波形和时序,从而帮助定位故障。
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位全加器的功能仿真。
实验四四位全加器一、实验目的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扬声器的实现有两种方法:一是用多个时钟来表示不同的计算结果;二是用一个时钟,通过分频来实现不同的频率的声音。
一. 设计原理。
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)Abstract (2)1设计关键 (3)2设计过程 (4)2.1设计思路 (5)2.2设计过程 (6)3设计过程 (7)3.1设计实现代码 (7)3.2功能仿真 (8)4设计总结 (9)参考文献 (10)摘要全加器的运用是相当的广泛的,像各种各样的CPU和某些模型机,然而对于快速正确的加法器的设计是相当的重要的,所以在这次课程设计我选择对全加器的设计与实现。
一个器件需要进一步的更新换代,在我所学的知识领域里面,我认为应该需要两个方面,一个是设计,有一个好的设计,它就像一种需求一样,即使这种设计在实际上暂时无法得到应用,但是,在一定时期以后,它是可以实现的。
另一个是工艺,对于一个好的设计,由于工艺还没有达到那个水平没法进行对好的设计的实现。
所以在这次我使用我所学过的知识进行对这个四位全加器进行设计。
由于涉及串联进位,会导致进位延迟,故这种设计仅适用于低速情况。
关键词:全加器四位延迟低速AbstractFulladder implement use is quite widespread, like all sorts of CPU and some model machine, yet for rapid correct adder design is quite important, so in this course design fulladder device for my choice of design and implementation.A device need further upgrading, in my knowledge field inside, I think should need two aspects, one is the design, there is a good design, it is just like a kind of demand the same, even if the design in actually temporarily unable to find application, but, in a certain period after, it is can be realized. Another is the process, for a good design, due process have not reached the level on a good design can achieve. So in this time I use my knowledge learned about this four fulladder device to carry on the design. Because it involves a series carry and can lead to carry delay, so this design only suitable for low speed.Keywords: fulladder device four delay low speed1设计关键全加器是组合逻辑电路的一个重要的器件,它的设计方式有多种,这里采用逐个进位即串行进位和超前进位即并行进位综合设计。
四位并行加法器设计四位并行加法器是一种电子设计电路,可以执行四位二进制数的并行加法操作。
它由多个逻辑门和加法器组成,可以通过并行的方式同时对四位数进行加法计算,提高了计算速度。
本文将详细介绍四位并行加法器的设计原理和实现方法。
首先,我们需要了解二进制加法的原理。
在数字电路中,二进制加法器是一种能够对两个二进制数字进行相加运算的电路。
它的输入包括两个二进制数字和一个进位输入,输出是一个和结果和一个进位输出。
对于四位加法器来说,需要使用四个单独的加法器来执行每一位的加法运算。
每个加法器都有两个输入位和一个进位输入,以及一个和结果和一个进位输出。
这四个加法器可以并行地执行四位加法运算,从而提高计算速度。
接下来,我们将设计一个四位并行加法器的电路。
首先,我们需要一个四位完全加器。
一个四位完全加器可以由四个单独的全加器组成。
一个全加器是一种能够完成两个输入位和一个进位输入位的加法运算的电路。
它的输出包括一个和结果和一个进位输出。
为了实现四位并行加法器,我们可以将四个全加器按照并行的方式连接在一起,使得每个全加器的输入位和进位输入位都与相应的输入连接。
其中,第一个全加器的进位输入为0,其他三个全加器的进位输入位分别与前一个全加器的进位输出位相连。
这样,我们就可以实现四位加法运算。
在实际设计中,我们可以使用逻辑门和触发器来搭建完整的四位并行加法器电路。
首先,我们将使用逻辑门来实现全加器。
全加器的实现可以使用两个异或门、一个与门和一个或门来构建。
异或门用于计算两个输入位的和结果,与门用于计算两个输入位和进位输入位的交集,或门用于计算和结果的并集。
通过组合这些逻辑门,我们就可以构建一个完整的全加器。
接下来,我们将使用四个全加器和一些额外的逻辑门和触发器来构建四位并行加法器。
我们可以使用一个四输入的或门来进行四个全加器的和结果的合并。
为了实现进位输入位的传递,我们可以使用多级的触发器来实现。
具体的电路设计取决于具体的需求和实现方式。
4位数加法器设计报告
设计报告:4位数加法器
1.简介:
2.设计原理:
3.设计步骤:
步骤一:确定输入和输出
步骤二:设计全加器
全加器是4位数加法器的基本单元,它负责进行两个二进制数位的加法运算,并生成相应的和与进位输出。
全加器的输入包括两个二进制数位(A和B)和一个进位信号(Cin),输出是一个和位(S)和一个进位输出(Cout)。
步骤三:连接四个全加器
使用四个全加器将输入的两个4位二进制数逐位相加,将进位信号连接到下一级全加器的进位输入,结果和输出为4位二进制数。
步骤四:设计加法器的控制逻辑
控制逻辑用于判断在每个时钟周期中是否需要进行进位。
当两个输入数的相应位以及前一位的进位信号都为1时,才会产生进位输出。
步骤五:测试和调试
对设计的4位数加法器进行仿真测试,并使用实际电子元件进行搭建和调试。
4.设计要点:
-全加器的设计要考虑进位信号的传播和延迟。
-用适当的逻辑门和触发器将四个全加器连接在一起。
-控制逻辑的设计要注意时序和状态转换。
5.设计优化:
-使用快速加法器设计,减小进位传播延迟。
-采用并行加法器设计,在多个位上同时进行加法运算,提高运算速度。
-加入流水线设计,将加法运算划分为多个阶段,提高运算频率。
6.结论:
4位数加法器是一种常见的数字逻辑电路,用于对两个4位二进制数进行加法运算。
它的设计原理简单直观,涉及到全加器、控制逻辑和进位传播等方面的内容。
通过合理的设计和优化,可以实现高效的4位数加法器。
同时,我们也可以考虑在此基础上进行更高位数的加法器设计,以满足不同的需求。
硬件描述语言及应用课程设计报告书
姓名
班级
学号
指导教师
师范学院新能源与电子工程学院
题目:
4位加法器的设计
设计的目的和要求:
一、设计目的:
复习加法器的原理,掌握加法器的设计实现方法,设计实现数字系统设计中常用的4位加法器,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。
二、设计要求:
1、模块与程序名必须为add+班级+学号+改名首字母。
如4班23号王宝宝,模块名:add423wbb,存盘时程序名必须是add423wbb.v。
2、输入端口分别为a、b、cin,a和b为被加数,位长四位,cin为低位进位,位长一位。
输出端口分别为sum、cout,sum为a与b相加后的和,位长四位,cout为向高位的进位,位长一位。
3、仿真时间时长为1微秒,点菜单View→Fit in Window。
仿真结束截图需反映整个仿真时间段情况。
4、菜单Options→Grid Size设置为100ns。
5、输入端口a、b设置波形时需把菜单Options→Snap to Grid前打勾,数据可分开设,右键点vote→Ungroup。
分开设完再点击enter group合并,再进行数据调整。
cin的波形设一两个变化即可,仿真结果要求输出的cout必须有段为“1”。
6、所有输入端口的波形需要设置,输出端口的波形通过仿真得到波形。
4位快速加法器设计原理快速加法器是一种计算器件,可以快速地对两个二进制数进行加法运算。
相对于一般的加法器,它具有更高的速度和效率。
本文主要介绍4位快速加法器的设计原理。
1.基本概念在二进制加法中,加法器通过对两个二进制数分别进行逐位相加的方法,得到它们的和。
二进制加法的基本规则如下:0+0=0;1+0=1;0+1=1;1+1=0(进位1)。
在四位二进制数的加法中,每位相加可以得到一个位和进位两位。
4位快速加法器在计算时需要考虑到位和进位两个方面。
2.快速加法器的组成4位快速加法器可以由4个1位全加器和1个2位全加器组成。
1位全加器的输出等于输入A、B和进位C的和。
输出S等于(A xor B) xor C,进位C 等于AB+C(A xor B)。
2位全加器是由两个1位全加器和一个2选1选择器组成。
输入A和B分别与这两个全加器相连,进位C输入到这两个全加器的进位端。
选择器的选择信号是两个输入和上一个全加器的进位,选择器的输出连接到2位全加器的进位输出。
3.原理图4位快速加法器的原理图如下所示:每个1位全加器都由具有相同运算功能的逻辑门电路组成。
在1位全加器中,输入A、B和进位C分别与XOR、AND和OR门相连,这些门的输出再次进行逻辑运算得到输出S和新的进位C。
2位全加器由两个1位全加器和一个2选1选择器组成。
选择器的选择信号是上一个1位全加器的进位和两个输入的和。
这两个1位全加器的进位输出也分别与这个选择器相连。
4.流程图4位快速加法器的计算流程图如下所示:将输入的两个4位二进制数的第0位分别输入到1位全加器1和2中。
这两个全加器的进位C0均为0,得到第0位的位和(S0)和进位(C1)。
然后,将输入的两个4位二进制数的第1位分别输入到1位全加器3和4中。
全加器3的进位C1为1,因为它是在第0位加法器的进位C1的基础上进行的。
全加器4的进位C2为全加器3的进位C2与两个输入的和的2选1选择器输出的结果。
4位二进制全加器的设计摘要加法器是产生数的和的装置。
加数和被加数为输入,和数与进位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进位为输出则为全加器。
常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。
在电子学中,加法器是一种数位电路,其可进行数字的加法计算。
在现代的电脑中,加法器存在于算术逻辑单元(ALU)之中。
加法器可以用来表示各种数值,如:BCD、加三码,主要的加法器是以二进制作运算。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运行速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行加法器的资源占用差距也会越来越大。
我们采用4位二进制并行加法器作为折中选择,所选加法器为4位二进制先行进位的74LS283,它从C0到C4输出的传输延迟很短,只用了几级逻辑来形成和及进位输出,由其构成4位二进制全加器,并用Verilog HDL进行仿真。
关键字全加器,四位二进制,迭代电路,并行进位,74LS283,Verilog HDL仿真总电路设计一、硬件电路的设计该4位二进制全加器以74LS283(图1)为核心,采用先行进位方式,极大地提高了电路运行速度,下面是对4位全加器电路设计的具体分析。
图11)全加器(full-adder )全加器是一种由被加数、加数和来自低位的进位数三者相加的运算器。
基本功能是实现二进制加法。
输入输出输入输出CI B A S ⊕⊕==AB'CI'+A'BCI'+A'B'CI+ABCI()AB CI B A CO ++=其中,如果输入有奇数个1,则S 为1;如果输入有2个或2个以上的1,则CO=1。
实现全加器等式的门级电路图如图2所示,逻辑符号如图3所示.图2 图32)四位二级制加法器 a) 串行进位加法器四位二进制加法器为4个全加器的级联,每个处理一位。
实验二 4 位加法器原理图设计一、实验目的1、进一步掌握 Quartus Ⅱ原理图输入设计法。
2、通过4位加法器的设计,掌握原理图输入法中的层次化设计。
二、实验原理So=a xor b; co=a and b;图 2-1 半加器原理图图 2-2 1位全加器原理图图 2-3 4 位加法器原理图4 位加法器(如图 2-3)是以 1 位全加器作为基本硬件,由 4 个 1 位全加器串行构成,1位全加器又可以由两个1位的半加器和一个或门连接而成(如图 2-2),而1位半加器可以由若干门电路组成(如图 2-1)。
三、实验内容本次实验使用 Altera FPGA 的开发工具 Quartus Ⅱ,利用原理图输入设计方法设计一个 4位加法器,取实验板上的 8 位按键的高 4 位与低 4 位分别作为 4 位加数与被加数,其中 8 个 LED 取 5 位作为结果输出,LED2~LED5 作为 4 位相加之和的输出结果,LED1作为两数高 4 位相加的进位 (LED 亮,表示低电平“0”, LED 灭,表示高电平“1”)四、实验步骤1、打开QUARTUS II软件,新建一个工程adder4bit。
2、建完工程之后,再新建一个Block Diagram/Schematic File。
在原理图编辑窗口绘制如图 2-1 的半加器原理图。
点击 File ->Save,将已设计好的图文件取名为:h_adder,并存在此目录内。
3、将 h_adder 设置成顶层实体。
在诸多文件打开的状态下,选中 h_adder.bdf为当前文件。
点击 Project → Set as Top-Level Entity。
4、编译。
如果发现有错,排除错误后再次编译。
直到编译通过就可以进行波形仿真了。
5、时序仿真。
建立波形文件,设置波形参量,再保存(注意: QuartusⅡ在波形仿真时,只支持一个与工程名同名的波形文件,所以在对多个文件进行波形仿真时,对波形文件都取工程名进行保存,后缀名为.vwf;若确实想保留多个波形文件,则可以分别命名,想对哪个波形文件进行仿真时,点击Processing->simulation Tool,在Simulation input中输入待仿真的波形文件即可,如图2-4所示) ,最后运行波形仿真。
可编程逻辑器件设计大作业题目四位全加器设计学院自动化与电气工程学院班级姓名学号2104年12月30 日目录摘要 (1)1.设计目的 (2)2.设计要求 (2)3.设计原理 (2)3.1.四位全加器 (2)3.2.四位全加器的原理图 (4)4.设计方案 (4)4.1.仿真软件 (4)4.2.全加器原理 (5)4.2.1一位全加器的设计与原理 (5)4.2.2四位全加器的原理及程序设计 (5)5.程序设计 (7)6.仿真及结果 (8)总结与体会 (10)参考文献 (11)摘要VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
本次设计是用VHDL语言设计四位全加器,并用Quartus II仿真。
关键词:VHDL 四位全加器Quartus II四位全加器设计1.设计目的复习加法器的原理,掌握加法器的设计实现方法,设计实现数字系统设计中常用的4位全加器,在此基础上进一步熟悉MAX+PLUSⅡ或Quartus II软件的使用方法,熟练掌握EDA的图形编程方法、开发流程、以及组合逻辑电路的设计、分析、综合、仿真方法。
2.设计要求1)复习EDA的相关技术与方法;2)掌握VHDL或者Verilog语言,并要求能编写程序。
3)Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。
4)设计相关简单的电路,完成既定的功能。
3.设计原理3.1.四位全加器加法器是数字系统中的基本逻辑器件。
例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。
但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。
多位加法器的构成有两种方式:并行进位和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。
通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。
四位全加器可对两个多位二进制数进行加法运算,同时产生进位。
当两个二进制数相加时,较高位相加时必须加入较低位的进位项(Ci),以得到输出为和(S)和进位(C0)。
其中CIN表示输入进位位,COUT表示输出进位位,输入A和B分别表示()()()()cinb a cinb a cin b a cin ab b a cin b a b a abcin cin b a cin b a cin b a s ⊕⊕=⊕+⊕=+++=+++=加数和被加数。
输出SUM =A +B +CIN ,当SUM 大于255时,COUT 置‘1’。
其管脚图如下:图3-1 四位全加器管脚图全加器是能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位信号的加法电路。
其真值表如表1所示:表1 全加器真值表输入输出a b cin s cout 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 11111根据真值表可得出下列表达式:()()cinb a ab cin b a b a ab abcincin b a bcin a cin ab cout ⊕+=++=+++=根据以上表达式,可以用数据流方式设计出1位全加器。
要设计的是4位全加器,这里采用串行进位来设计。
先设计4个1位的全加器,然后将低位的进位输出与高位的进位输入相连,将要进行加法运算的两个4位数的每一位分别作为每一个1位全加器的输入,进行加法运算,所有的1位全加器的输出组成一个4位数,即输入的两个4位数之和,最高位的全加器产生的进位输出即两个4位数求和的进位输出。
3.2.四位全加器的原理图4位全加器的原理图如图3-2所示:图3-2 四位全加器原理图根据图3-2所示,可以采用结构化描述方式设计4位全加器。
4.设计方案4.1.仿真软件Quartus II 是Altera 公司的综合性PLD 开发软件,支持原理图、VHDL 、VerilogHDL 以及AHDL (Altera Hardware Description Language )等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。
Quartus II 除了可以使用Tcl 脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
4.2.全加器原理4.2.1一位全加器的设计与原理一位全加器的原理图如下:图4-1 一位全加器原理图一位全加器的程序设计:ENTITY adder1 IS --1位全加器设计PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END adder1;ARCHITECTURE dataflow OF adder1 IS --用数据流方式设计1位全加器SIGNAL tmp:STD_LOGIC; --用tmp表示a⊕b BEGINtmp<=a XOR b AFTER 10 ns;s<=tmp XOR cin AFTER 10 ns;cout<=(a AND b)OR(tmp AND cin) AFTER 20 ns;END dataflow;4.2.2四位全加器的原理及程序设计要设计的是4位全加器是采用串行进位来设计的。
首先根据已经设计好的一位的全加器通过将低位的进位输出与高位的进位输入相连的方法,组成所需要的四位全加器。
其程序如下:ENTITY adder4 IS --4位全加器设计PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);cin:IN STD_LOGIC;s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cout:OUT STD_LOGIC);END adder4;ARCHITECTURE structural OF adder4 IS --用结构化描述风格设计4位全加器COMPONENT adder1PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END COMPONENT;SIGNAL x,y,z:STD_LOGIC;FOR u1,u2,u3,u4:adder1 USE ENTITY WORK.adder1(dataflow);BEGINu1:adder1 PORT MAP(a(0),b(0),cin,s(0),x);u2:adder1 PORT MAP(a(1),b(1),x,s(1),y);u3:adder1 PORT MAP(a(2),b(2),y,s(2),z);u4:adder1 PORT MAP(a(3),b(3),z,s(3),cout);END structural;四位全加器的原理图:图4-2 四位全加器原理图5.程序设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder1 IS --1位全加器设计PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END adder1;ARCHITECTURE dataflow OF adder1 IS --用数据流方式设计1位全加器SIGNAL tmp:STD_LOGIC; --用tmp表示a⊕b BEGINtmp<=a XOR b AFTER 10 ns;s<=tmp XOR cin AFTER 10 ns;cout<=(a AND b)OR(tmp AND cin) AFTER 20 ns;END dataflow;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY adder4 IS --4位全加器设计PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);cin:IN STD_LOGIC;s:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);cout:OUT STD_LOGIC);END adder4;ARCHITECTURE structural OF adder4 IS --用结构化描述风格设计4位全加器COMPONENT adder1PORT(a,b,cin:IN STD_LOGIC;s,cout:OUT STD_LOGIC);END COMPONENT;SIGNAL x,y,z:STD_LOGIC;FOR u1,u2,u3,u4:adder1 USE ENTITY WORK.adder1(dataflow);BEGINu1:adder1 PORT MAP(a(0),b(0),cin,s(0),x);u2:adder1 PORT MAP(a(1),b(1),x,s(1),y);u3:adder1 PORT MAP(a(2),b(2),y,s(2),z);u4:adder1 PORT MAP(a(3),b(3),z,s(3),cout);END structural;6.仿真及结果根据上面的程序我进行了仿真,首先是对1位全加器进行仿真,结果如图6-1所示:图6-1 1位全加器仿真图由图6-1可以看出,1位全加器的仿真结果与表1相符,说明1位全加器设计成功。
然后我又对4位全加器进行仿真,结果如图6-2所示:图6-2 4位全加器仿真图由图6-2可以看出,对设计的全加器进行了2组数据的仿真,由于4位全加器最低位的进位为0,因此将cin置0,仿真的结果与实际的运算结果是相同的。
由仿真结果可知,设计的程序完成了全加器的功能,因此该程序正确。
总结与体会时光飞逝,一转眼,一个学期又进尾声了,本学期的能力拓展强化训练也完成了。
俗话说“好的开始是成功的一半”。