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 熟悉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位全加器。
四位二进制全加器设计
四位二进制全加器设计(总3页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除组合逻辑电路课程设计题目:用74ls283构成四位二进制全加/减器一、设计思路74ls283为四位加法器,而如果希望进行减法运算,则需要将其转化为加法,而之前学到,二进制运算,一个数减去另一个数,即等于加上其补码。
于是得到如下公式,A-B=A+(-B)=A+B’+1。
将其全部视为加法运算,即一个数加上一个正数或者一个负数,这个数为加数B。
那么,需要将加数增添一位符号位,以区分正负。
因为74ls283芯片的引脚为低位向正在运算的数的进位,所以可以将其作为加数的符号位。
当其为正数时,输入为0,即计算A+B。
而当加数为负数时候,使其输入为1,并将B取反,再加上进位1,正好与公式相符。
根据以上原理,应用输入作为符号位,进行4位被加(减)数与5位加(减)数的加法运算。
设A3-A0为被加(减)数,B3-B0为加(减)数,M0为符号位。
当M0为0时表示正数,为1时表示负数。
而当B为负数需要取反时,刚好可以利用异或门的特性来进行,即1异或B等于B’,0异或B等于B即将B的各个数位和M0通过异或门相连,即可以做到负数取反。
二、电路图如图,输入输出ABC都用LED来指示二进制的数值,开关S2控制A的数值,S1控制B的数值以及符号位。
BX1指示灯指示的是输入B经过异或门作用后的电平。
三、由于此电路进行的是加法运算,两个加数一共2的9次方中组合,所以真值表又多又显而易见,此处将不给出。
四、举例演示:(1)5+6=11如图拨动开关,A=5,B=6,可见C为11的二进制表示1011。
(2)7-3=4如图,将M0置为1以表示负数。
BX1表示的是3的反码,在74283中进行了加1的运算即变成了补码,输出结果为0100(2)=4(10)(3)1000+1000=10000由于输出只有四位,而1000+1000会产生进位。
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”为顶层文件。
4位加法器的设计原理
4位加法器的设计原理四位加法器是一种数字电路,用于实现四位二进制数的加法运算。
它由多个逻辑门组成,主要包括四个全加器、一个四路二选一选择器和一个四位二进制数输出。
在四位加法器中,每个全加器都负责计算两个输入位和上一位的进位的和。
全加器的原理是采用异或门(XOR)、与门(AND)和或门(OR)的组合。
具体来说,全加器有三个输入端,分别是两个输入位(A和B)和上一位的进位(Cin),两个输出端,分别是当前位的和(S)和当前位的进位(Cout)。
全加器的计算公式如下:S = (A XOR B) XOR CinCout = AB + (A XOR B)Cin其中,“XOR”代表异或操作,“AND”代表与操作,“OR”代表或操作。
全加器的设计原理是基于四位二进制数的加法运算规则。
在四位加法过程中,每一位的和由该位的两个输入位和上一位的进位确定。
进位则与上一位的输入位和上一位的进位有关。
因此,通过级联四个全加器,就可以实现四位加法运算。
除了四个全加器以外,四位加法器还包括一个四路二选一选择器。
这个选择器根据一个控制信号选择输出。
四位加法器的输出是一个四位二进制数,可以选择以原码、反码或补码的形式输出。
通过选择器的控制信号,可以选择输出形式。
四位加法器的工作原理是:首先,将四个输入数两两相加,得到每一位的和,以及进位。
然后,将每一位的和通过四个全加器计算得到最终的和,同时将进位以及控制信号传递给选择器。
最后,选择器选择要输出的结果。
总结来说,四位加法器是基于全加器的构建的数字电路,可以实现四位二进制数的加法运算。
它的设计原理是根据四位二进制数加法的规则和全加器的计算公式,通过级联四个全加器,并通过选择器控制输出形式,实现四位二进制数的加法运算。
4位快速加法器设计原理
4位快速加法器设计原理首先,了解数制转换是设计快速加法器的基础。
在二进制数系统中,每一位的值只能为0或1,当其中一位的和超过1时,需要向高位进位。
因此,我们可以利用布尔运算来实现加法运算。
快速加法器通过将加法运算拆分为多个步骤,并利用并行计算的方式,可以快速完成加法运算。
其次,了解逻辑门的设计是设计快速加法器的关键。
逻辑门是一种电子器件,可以根据输入的电信号产生不同的输出电信号。
在快速加法器的设计中,常用的逻辑门有与门、或门、异或门等。
与门可以实现两个输入同时为1时输出1的功能;或门可以实现两个输入中至少有一个为1时输出1的功能;异或门可以实现两个输入恰好有一个为1时输出1的功能。
基于以上原理,可以设计一个基本的四位快速加法器。
该快速加法器的输入为两个四位二进制数A和B,输出为一个四位的和S和一个进位Carry。
具体设计原理如下:1.将输入的两个四位二进制数A和B分别拆分成四个单独的位,记为A0、A1、A2、A3和B0、B1、B2、B32.首先,通过四个异或门实现每一位的和的计算,即S0=A0⊕B0、S1=A1⊕B1、S2=A2⊕B2和S3=A3⊕B33.对于每一位的进位,需要通过与门和或门来实现。
每一位的进位通过与门计算出来,然后通过或门将前一位的进位和当前位的进位相加,得到当前位的最终进位。
4.对于最高位的进位,需要通过或门单独计算,因为这一位没有前一位的进位。
5.将四个异或门和五个与门、三个或门组合成一个四位快速加法器的电路。
通过上述原理设计的四位快速加法器可以实现对两个四位二进制数的快速加法运算。
这种设计不仅提高了加法运算的效率,而且可以利用并行计算的方式进行运算,从而进一步提高了运算速度和效率。
总结起来,设计四位快速加法器的原理涉及到数制转换、逻辑门的设计和运算器的构建等方面。
通过合理的设计和组合,可以构建出一个高效、快速的四位加法器,为计算机运算提供了有力支持。
完整四位全加全减器设计
四位全加全减器设计一.实验目的1熟悉在max+plus II 的环境下设计数字电路的步骤和方法2学习使用vhdl语言,进行设计数字电路的RTL级电路3通过max+plus II 软件中对自行设计的电路的仿真,加深对数字电路设计的理解。
二.实验原理1.功能描述输入:select,Ci, A, B 输出:S,CoSelect=0时,S为全加器的求和位(A+B),Co为全加器的高位进位。
Ci为全加器低位进位。
Select=1时,S为全减器的求差位(A-B),Co为全减器的高位借位。
Ci为全减器低位借位。
2.一位全加全减器真值表:输入输出Select Ci A B S Co0 0 0 0 0 00 0 0 1 1 00 0 1 0 1 00 0 1 1 0 10 1 0 0 1 00 1 0 1 0 10 1 1 0 0 10 1 1 1 1 11 0 0 0 0 01 0 0 1 1 11 0 1 0 1 01 0 1 1 0 01 1 0 0 1 11 1 0 1 0 11 1 1 0 0 01 1 1 1 1 13.逻辑化简由真值表得S=A○十B○十Ci=((A○十Select)○十B○十Ci)○十SelectCo=(A○十Select)B+Ci((A○十Select)+B)=((A○十Select)○十B)Ci+(A○十Select)B对于半加器的逻辑表达式为:S=A○十B Co=AB综上,一位全加全减器可由两个半加器,两个异或门和一个或门组成。
4.毛刺的产生与消除组合逻辑电路由于输入到输出各端的延时不同,在输出端稳定之前会产生错误的输出。
在本电路中,由于低位的进位或借位传输到输出的时间比其他信号传输的延时要长,因此当低位产生进位或借位时会出现错误的输出。
一种常见的方法是利用D触发器的D输入端对毛刺信号不敏感的特点,在输出信号的保持时间内,用触发器读取组合逻辑的输入输出信号。
由组合逻辑电路的最大延时Td为16.7ns,D触发器的时钟周期T应略大于Td,取20ns。
用原理图输入法设计4位全加器
实验一------用原理图输入法设计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位全加器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位全加器的功能仿真。
实验一:四位加法器
必修实验:实验一:四位加法器实验目的:一、熟悉MAX+plusⅡ软件和AEDK实验箱操作二、熟悉可编程器件开发流程三、巩固VHDL语言四、掌握层次化设计方法实验内容:用层次化设计方法设计一个4位加法器:1.底层用文本输入方式,顶层用原理图输入方式,用结构体三种实现方式分别编写程序,编译,调试。
2.仿真,分析结果,绘制波形。
3绑定引脚,在教学实验箱上完成相应的搭线、下载.分析加法器实现的结果。
实验步骤:一、在计算机上用浏览器建立自己的文件夹,要求用英文。
二、用文本输入法建立底层模块:用三种结构体描述方法(行为、数据流、结构描述)给出一位全加器的VHDL语言描述。
建议使用模板。
文件建立后使用File-set current file to project建立项目,点工具栏上图符存盘检验。
点击菜单MAC+plusⅡ\HierarchyDisplay,观察此时的项目层次图。
(程序要求写在附页)。
三、用图形编辑器建立顶层文件,并存入前一步的文件夹中。
利用4个一位全加器,前一个的输出cout为下一个的输入cin来完成串行四位加法器。
文件建立后点工具栏上图符(完成存盘、将项目绑定到现有文件、检验三个步骤)。
点击菜单MAX+plusⅡ\Hierarchy Display,观察此时的项目层次图。
四、作时序仿真,画出时序仿真波形图。
(四位数据要求以总线形式显示)五、选择器件(max epm7128s-15),绑定引脚,设置下载接口,编程下载。
以按键模拟数字(注,板上无多余按键,C0不接)开关设置S2-7,OFF L8-L1 不允许显示实验注意事项:本实验的教学录像仅供不熟练者参考,已掌握者可以放手自己操作。
不应只是跟着录像走过场,而要真正理解MAX+plusⅡ这种EDA软件的设计流程,和层次化设计中的模块划分。
实验过程大约需要3-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 分 别接发光二极管。
数字逻辑_4位全加器课程设计
目录摘要 (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位数加法器设计报告
设计报告:4位数加法器
1.简介:
2.设计原理:
3.设计步骤:
步骤一:确定输入和输出
步骤二:设计全加器
全加器是4位数加法器的基本单元,它负责进行两个二进制数位的加法运算,并生成相应的和与进位输出。
全加器的输入包括两个二进制数位(A和B)和一个进位信号(Cin),输出是一个和位(S)和一个进位输出(Cout)。
步骤三:连接四个全加器
使用四个全加器将输入的两个4位二进制数逐位相加,将进位信号连接到下一级全加器的进位输入,结果和输出为4位二进制数。
步骤四:设计加法器的控制逻辑
控制逻辑用于判断在每个时钟周期中是否需要进行进位。
当两个输入数的相应位以及前一位的进位信号都为1时,才会产生进位输出。
步骤五:测试和调试
对设计的4位数加法器进行仿真测试,并使用实际电子元件进行搭建和调试。
4.设计要点:
-全加器的设计要考虑进位信号的传播和延迟。
-用适当的逻辑门和触发器将四个全加器连接在一起。
-控制逻辑的设计要注意时序和状态转换。
5.设计优化:
-使用快速加法器设计,减小进位传播延迟。
-采用并行加法器设计,在多个位上同时进行加法运算,提高运算速度。
-加入流水线设计,将加法运算划分为多个阶段,提高运算频率。
6.结论:
4位数加法器是一种常见的数字逻辑电路,用于对两个4位二进制数进行加法运算。
它的设计原理简单直观,涉及到全加器、控制逻辑和进位传播等方面的内容。
通过合理的设计和优化,可以实现高效的4位数加法器。
同时,我们也可以考虑在此基础上进行更高位数的加法器设计,以满足不同的需求。
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所示) ,最后运行波形仿真。
FPGA4位全加器的设计
目录一、设计原理 (1)二、设计目的 (1)三、设计内容 (2)四、设计步骤 (2)五、总结与体会 (6)4位全加器设计报告一、设计原理全加器是指能进行加数、被加数和低位来的进位信号相加,并根据求和结果给出该位的进位。
4位加法器可以采用4个以为全加器级连成串行进位加法器,如下图所示,其中CSA 为一位全加器。
显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算无法胜任。
A 和B 为加法器的输入位串,对于4位加法器其位宽为4位,S 为加法器输出位串,与输入位串相同,C 为进位输入(CI )或输出(CO )。
实现代码为: 全加器真值表如下:module adder4(cout,sum,ina,inb,cin); output[3:0]sum; output cout;input[3:0]ina,inb; input cin;assign {count,sum}=ina+inb+cin; endmodule二、设计目的⑴熟悉ISE9.1开发环境,掌握工程的生成方法。
⑵熟悉SEED-XDTK XUPV2Pro 实验环境。
⑶了解Verilog HDL 语言在FPGA 中的使用。
⑷了解4位全加器的Verilog HDL 语言实现。
输 入 输 出Xi Yi Ci-1 SiCi 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 11111三、设计内容用Verilog HDL语言设计4位全加器,进行功能仿真演示。
四、设计步骤1、创建工程及设计输入。
⑴在E:\progect\目录下,新建名为count8的新工程。
⑵器件族类型(Device Family)选择“Virtex2P”器件型号(Device)选“XC2VP30 ff896-7”综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”⑶下面一直next和确定。
4位数加法器课程设计 2
一、设计任务和要求1.1、任务描述:1、系统通过4×4的矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E;3、可以进行加法以外的计算(乘、除、减);4、创新功能。
1.2、任务要求:1、理解任务书要求,明确分工,查找相关资料,制定系统方案;2、论证系统设计方案,运用Proteus等软件绘制电路原理图;3、根据硬件电路,确定算法,设计程序框图,编写程序代码;4、误差分析与改进,完成设计报告。
二、方案论证2.1、适用矩阵键盘控制作为输入电路,电路和软件稍微复杂,但是相比用独立按键,可节省I/O口,其原理图如2.1所示:图2.1 矩阵键盘控制电路2.2、采用LED数码管显示,数码管图如图2.2.1所示:下图则是加法器电路的原理图:23.1、主控模块该设计的核心控制电路是 AT89C52单片机。
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其引脚AT89C51芯片模型33.1.1、主要功能特性(1) 4K字节可编程闪烁存储器。
(2) 32个双向I/O口;128×8位内部RAM 。
(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz。
(4) 可编程串行通道。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程逻辑器件设计大作业题目四位全加器设计学院自动化与电气工程学院班级姓名学号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,仿真的结果与实际的运算结果是相同的。
由仿真结果可知,设计的程序完成了全加器的功能,因此该程序正确。
总结与体会时光飞逝,一转眼,一个学期又进尾声了,本学期的能力拓展强化训练也完成了。
俗话说“好的开始是成功的一半”。