4位全加器设计解析

合集下载

4位全加器.docx

4位全加器.docx

根据波形, 当输入为家如前一位进位信号后, 当 c1 为低电平, 全加器与半加器功能一样, 当 c1 为高电平时,输出 s0 与 c0 正好与半加器相反,验证了全加器的功能。 2,建立一个更高层次的原理图设计,利用以上获得的 1 位全加器串联构成 4 位全加器,并完 成编译、综合。 四位全加器原理图如下所示:
实验一 用原理图输入法设计四位全加器
一 实验目的及内容
熟悉利用 Quartus II 的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过 一个 4 位全加器的设计把握利用 EDA 软件进行原理图输入方式的电子线路设计的详细流程。
二 实验原理
一个 4 位全加器可以由 4 个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加 法器的相接。而 1 位全加器可 以用两个半加组合得到。
四 实验总结
通过本次实验,我掌握了 Quartus II 的原理图输入方法设计简单组合电路和层次化设计 的方法和详细流程。并且使用了原理图来创建原件库,而且还进行个各个层次的仿真,很好的 理解了全加器的各个层次的功能结构以及 Quartus 的使用方法。
仅 供 参 考
仅 供 参 考
三 实验仪器
1、 PC 机一台 2、 Quartus II 9.0 软件
四 实验步骤及结果分析
1:完成半加器和全加器的设计,包括原理图输入、编译、综合。 �+a 由半加器的真值表得s0 = ab � b; c0 = ab ,可得半加器原理图如下所示:
图 1 半加器原理图
半加器仿真波形图如下图所示:
其中 a,b 为输入,s0 为一位和输出,c0 为进位输出,根据仿真波形知,b 为低电平时, s0=a ; b 为高电平时,c0=a,s0=a � ;满足半加器真值表。

实验一 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位全加器。

4位二进制全加器设计

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”为顶层文件。

四位全加器实验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,这个数根据自己的需要而定。

4位加法器的设计原理

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位全加器

实验一------用原理图输入法设计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位快速加法器设计故障与调试引言:在数字电路设计中,快速加法器是一个非常重要的组件。

它用于将两个二进制数相加,并输出其结果。

然而,在设计和实现过程中,可能会遇到一些故障或错误。

本文将介绍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课程设计

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,仿真的结果与实际的运算结果是相同的。

由仿真结果可知,设计的程序完成了全加器的功能,因此该程序正确。

总结与体会时光飞逝,一转眼,一个学期又进尾声了,本学期的能力拓展强化训练也完成了。

俗话说“好的开始是成功的一半”。

相关文档
最新文档