版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、宁波大学科技学院本科毕业设计论文编号: 本科毕业设计(论文)基于硬件描述语言的四位加减法器设计Design of a four bit adder-subtracter based on hardware description language诚 信 承 诺我谨在此承诺:本人所写的毕业论文基于硬件描述语言的四位加减法器设计均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 2015年4月19日摘 要【摘要】本设计为四位加减法器,使用基本的逻辑门(与门、或门、异或门、与非门等)组成一个完整的电路,实行四位加减法的运算。本设计用硬
2、件描述语言VHDL来设计程序,在Modelsim工具软件下,运用数据流描述基本逻辑门,采用层次化结构组织完整电路,将逻辑门组合成一个半加器,由半加器组合成一个一位全加器,再通过串行的方式将4个一位全加器级联起来,最后利用一位可选择异或信号位,实现四位二进制数的加减法功能。【关键词】 四位加减法器;硬件描述语言;VHDL;基本逻辑门;串行进位Abstract【ABSTRACT】The design for the four bit adder-subtractor using basic logic gates (AND, OR, XOR, NAND gates, etc.) to form a
3、 complete circuit, the implementation of the four operations of addition and subtraction. The design of hardware description language VHDL to design the program, under the Modelsim software tools, the use of the data stream to describe the basic logic gates, using the hierarchical structure of the o
4、rganization complete the circuit, the combinational logic gates into a half adder, a combination of half-adder into a one full adder, and then through a serial manner four a full adder cascade together to produce .Finally, using a choose the XOR signal, addition and subtraction functions to achieve
5、the four binary numbers.【KEYWORDS】four bit adder-subtractor; hardware description language; VHDL; basic logic gates; serial carry目 录1 绪论11.1 选题背景11.1.2 课题相关技术的发展11.1.3 课题研究的必要性21.2 课题研究的内容22 VHDL简介32.1 VHDL描述32.1.1 VHDL与FPGA的关联32.2 VHDL程序基本结构42.3 VHDL程序设计流程42.4 VHDL的描述方式62.4.1 行为描述62.4.2 结构描述62.4.3
6、数据流描述72.5 VHDL语言的优势82.6 VHDL的测试验证文件Testbench83 四位加减法器的设计103.1 用与门、或门、异或门来设计一位全加器113.1.1 与门的设计113.1.2 或门的设计113.1.3 异或门的设计123.1.4 半加器的设计123.1.5 一位全加器的设计133.2 用与非门、异或门来设计一位全加器143.2.1 与非门的设计143.2.2 一位全加器的设计153.3 用与非门来设计一位全加器153.3.1 半加器的设计163.3.2 一位全加器的设计163.4 三种一位全加器设计方法的分析173.5 四位加法器的设计173.6 四位加减法器的设计1
7、84 实验的分析194.1 测试程序194.2 测试的实验波形204.3 四位加减法器程序235 结论25参考文献26致谢27附录2829宁波大学科技学院本科毕业设计论文1 绪论微电子技术前进的脚步导致了日益增加的制造ASID的产品,这带来了设计挑战困难,测试方法和工具的复杂性,因此,由硬件描述语言(VHDL)替代示意图,成为数字系统设计的基础。使用高密度数字系统的设计过程中的主要部分是在验证过程,在很多应用领域设计的验证已经成为项目发展的重要组成部分在时间,成本方面,并将其转化为一种有利资源。VHDL已经成为行业标准的硬件描述语言系统,在产品开发的过程中,利用VHDL语言来编写设计电路系统已
8、经成为产品设计的关键。 本设计采用了现代最基本硬件描述语言VHDL,它在设计逻辑电路时,不仅可以对门级电路系统进行描述,还可以描述系统行为级电路;支持三种不同的描述风格:结构描述、行为描述、数据流描述,涉及内容丰富、表述力强,由此其在设计领域愈来愈重要。ASIC是专用的系统集成电路,是一种可以进行逻辑处理功能的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片不同的是,它具有设计开发时间短、设计中用到的材料少、开发工具齐全、标准产品无需测试、质量有保障以及可以远距离监测等优点。本设计的目标是实现一个逻辑电路,使用VHDL用于对硬件设计实现,然后检查在模拟器使用的编译过程,用Mod
9、elsim来模拟这逻辑电路。该电路的功能是通过写VHDL测试平台代码来验证。Modelsim提供了一个完整的VHDL仿真测试环境,支持程序的功能设计,VHDL源代码验证和时序模型仿真。1.1 选题背景VHDL是一种全新的硬件描述语言,通常应用于数字电子技术与系统电路的编写、仿真和自动化设计,是当今电子设计自动化(EDA)的关键部分。1.1.2 课题相关技术的发展现代设计的电子器件的形状越来越小,功能越来越丰富,功率消耗也越来越小。它与一般意义上的电子器件在结构上的最大不同是使用大规模基本可编程逻辑器件,不但增强了性能,还降低能耗。同时又大程度地运用现代数字电子技术,提高产品的自动化能力和核心竞
10、争力,减短了产品的开发设计周期。EDA技术结合很多学科最前沿的科研成果,形成的一门全新技术,来适应现代电子技术的要求1。EDA技术是利用计算机技术将大规模的基本逻辑元件用VHDL语言风格的描述方式,将系统电路从电子系统转变为硬件系统,以程序软件开发系统和EDA软件系统为主要设计工具,通过一系列的逻辑编写,逻辑化简,综合优化,布局布线,时序仿真,最终对设计芯片进行仿真验证,逻辑映射,编译下载等步骤。因此,EDA技术是一门集成专用器件和电子电路系统的多学科结合的新技术2。本设计利用VHDL硬件描述语言结合基本逻辑门进行的,逻辑门是在集成电路上的基本组件。简单的逻辑门可由晶体管组成,输入信号通过这些
11、晶体管后能将原来的高低电平进行转化后产生高电平或者低电平的信号。高、低电平可以相当于数字电路中1和0,从而实现逻辑运算。常见的逻辑门包括与门,或门,与非门,异或门等等,这些逻辑门可以组合使用实现更为复杂的逻辑运算。1.1.3 课题研究的必要性随着计算机技术、数字电子技术、大型可编程逻辑器件的发展和VHDL语言的出现,利用软件来完成对硬件系统的设计毫无问题。VHDL语言和硬件系统没有具体的联系,而对设计平台也没有特殊的要求,并具有极强的电路描述和建立模型能力,能从不同层次对数字系统进行建模和描述,同时对系统进行逻辑综合和优化,从而大程度地简化了硬件设计任务,而且提高了效率和质量,还减少了设计成本
12、。VHDL已经成为一种非常重要的高层次设计技术, 是如今数字电路设计者设计数字硬件时的关键。1.2 课题研究的内容本设计主要基于VHDL的四位加减法器,要求使用基本逻辑门来组合电路,通过串行进位来设计电路逻辑图。具有将四位输入进行正确的加减,把结果和进位完整的输出,利用数据流描述方式直接对数据进行高层次运算。2 VHDL简介2.1 VHDL描述VHDL是一种超高速集成电路硬件描述语言。VHDL是用于说明硬件电路系统的语言,它由1980年美国政府发起的超高速集成电路(VHSIC)计划产生,当时由于国家安全原因,美国军方需要一种描述电子系统的标准化方法。它是一种基本的硬件描述语言,可用于模型的多层
13、次抽象数字系统,从体系结构级到门级。被建立模型的系统的复杂性可以从一个简单的门到一个完整的数字电子系统3。VHDL语言可以被视为顺序,并行,网表,波形产生的一个融合和定时规范语言4。VHDL支持开发,验证,综合,和测试硬件。建模数字硬件设备可在模拟器编写代码,然后代码被合成为一个网列表,其中一个编译器编译这些写入的代码转换成机器代码。VHDL是迅速被接受为设计通用的通信介质,计算机工程厂商,FPGA供应商和整个行业的ASIC厂商在使用标准化VHDL作为输入和输出,使用其中的工具包括仿真工具,综合工具的,布局布线工具等等。它支持许多不同的设计方法(自顶向下,自底而上等)和设计技术(同步,异步等)
14、5。VHDL可以用来捕捉在一个大的系统中的每个组件的性能和接口要求,在设计中的每个组件被定义为界面,这也被称为VHDL实体,这些部件的验收要求在测试平台的形式进行说明。该设计的细节输入或捕获在一个基于计算机的设计系统。在本设计系统中,设计人员可以输入用VHDL描述,一旦设计被输入到基于计算机的设计中,电路的工作就是进行仿真以检查它是否能够满足设计规范的功能和定时要求,功能仿真将在设计过程中发现最合乎逻辑的错误。下一阶段是测绘的时序约束,可以由综合工具读取的格式进行说明,如果符合满足定时约束,它产生一个净列表。VHDL可用于设计和测试的发展。一个VHDL测试平台可以创建、验证电路,使之符合功能和
15、时序约束。这些测试设计可以通过使用文本编辑器或输入图形波形来产生。2.1.1 VHDL与FPGA的关联用VHDL硬件描述语言设计的数字电路系统,再进行简单的逻辑综合与系统优化,布局排线后,直接将其烧录到 FPGA 上进行结果测试,是现在数字硬件系统设计验证的技术方法之一。这些基本的可编辑电器元件可以用来组成一些逻辑门电路(比如与门、或门、异或门、与非门等等),再通过这些基本的逻辑门电路设计成更加复杂的电路系统。现在的电路控制芯片有两种,一种是关于软件的(如单片机,PLC,AVR)还有一种是关于硬件的(如FPGA,PAL,GAL)。其中的不同之处在于单片机是执行程序来编译电路的,而FPGA用VH
16、DL硬件语言来对其编程,仿真下载编译后不是让FPGA去执行程序,而是编写程序来实现FPGA内部符合设计要求的电路功能。使这个FPGA转变为我们预期的那种硬件系统,VHDL硬件描述语言不同于C语言,C语言是一种是软件语言,芯片读写语句时是一条条执行,但VHDL是一种硬件语言,在执行程序语句时,所有的语句都是同时执行的,没有先后,也就是是并行的。VHDL作为一种基本的硬件语言,通过编写程序就可以得到想要的电路原理图。FPGA是一种半定制电路,里面全是记忆元件,逻辑门电路,只需执行相应的VHDL程序语句就能设计出复杂电路6。2.2 VHDL程序基本结构VHDL在语法上,与基本的编程语言大体相同如C语
17、言,但它作为一种硬件语言,在结构上就和硬件元件有特殊的联系。VHDL语言一般包括库(Library),实体(Entity),结构体(Architecture),包集合(Package)和配置(Configuration)五个部分。其中,实体是每种编程语言的关键部分,在VHDL语言中,实体是由结构体和实体说明来构成。实体声明规定了实体的名称,并列出了一组接口端口。实体介绍了外部视图,或者数字系统的硬件抽象,端口信号通过该实体与外部环境相互沟通;结构体用于指定一个实体的内部细节,设计中的每个体系结构必须由实体的名称来约束7。在VHDL中,可以创建一个及以上的结构为一个实体,各种类型样式用于通过结构
18、来指定一个实体的细节,可以用顺序赋值语句来表示数据流或行为,配置语句用于从库中选取所需要的,原来组成不同功能的电路在被用来设计系统功能时发生变化,产生新的结构,再将相应的器件编写到实体的结构体中;包集合中包含了各个设计模块需要的相应的数据类型、变量声明和子程序等。库首先声明,告诉哪些库使用编译器,那么基本的某个库ieee.std_logic_1164,它定义包含标准数据类型的一个标准软件包,这个数据类型称为STD_LOGIC的。2.3 VHDL程序设计流程VHDL程序在设计过程中,使用自上向下的方法,先对系统的整个结构进行设计,对顶层总的功能模块进行整体划分,然后对各个子模块进行设计并布局,再
19、通过综合与优化,编译和门级仿真,如果没有错误,最后实现电路的时序仿真,用VHDL设计数字系统的流程如图2-1所示:输入源程序编译源程序仿真综合门级仿真时序仿真图2-1 VHDL设置系统流程图流程说明:1. 输入VHDL代码,这是在硬件语言设计中基本的输入方式之一,而且还可以使用逻辑框图和功能图作为输入,这样看起来更加直观,简洁,容易明白。2. 将VHDL代码或者框图等输入方式写入到VHDL程序中。3. 对代码进行功能的仿真验证,用于确认电路系统的设计功能有无差异。这过程适用于大规模的复杂设计,在优化前对源代码仿真验证,对于大规模设计来说,就可以减少很多重复的次数,缩短了设计的时间,节约了成本。
20、4.用仿真验证工具对VHDL程序进行编译处理,生成对应的门级描述文件,相当于把计算机上的硬件描述语言转变成实际中的硬件电路。FPGA产品中的综合优化非常特殊,必须找到对应的集成电路厂家综合库才能实现综合优化处理。5. 把各个基本逻辑门电路模型进行仿真,使其实现相应的逻辑结果,再把输出的结果送到上级电路模型中。6. 最后对程序进行时序仿真验证。因为这时已经由原来设计的程序电路转变为目标器件的实际硬件特性,所以由仿真结果可以清楚准确地表示出芯片的实际性能8。VHDL语言已逐渐成为一种基本的硬件描述语言,现代计算机软件供应商已把VHDL作为其CAD或EDA软件输入与输出的标准,其中Mentor公司制
21、作出一款方便实用的综合工具Modelsim, 它可以全方面的对电路系统进行逻辑设计,从编写、综合与优化、布局布线到仿真、下载编译都非常便捷。2.4 VHDL的描述方式VHDL结构体通过行为描述、数据流描述、结构描述这三类不同的描述风格来表示可编程逻辑器件的输入输出。2.4.1 行为描述行为级描述,有时也叫算法级描述,它不只是描述单一器件,而是描述整个电路系统的数学模型,因此行为级描述是一类顶层的描述方式。行为级描述只是将电路系统的功能,或者是设计电路中如何将输入转化为输出的过程表示出来,不包括实现具体的硬件结构,也没有关于硬件结构的信息。行为级描述一般只有顺序进程,没有结构化的进程。行为级描述
22、的电路器件包含了系统设计的行为,把每一个顺序语句写入具体的进程中去,在将多个具体的进程构成一个完整的设计模型。使用行为级描述方式的程序着重建立标准的数学模型、正确的实体行为和精确的输出结果,而不是从设计电路组织的实体和逻辑门级的实现来完成设计。当VHDL语言程序采用行为级描述风格时,通常状况下只适用于行为层次的仿真验证,却不可以进行整体逻辑的综合优化。整体逻辑的综合只能在数据流描述风格下进行,不能在行为级描述方式下。因此,为了在行为级描述风格下进行整体逻辑的综合,通过一些EDA软件把行为级描述转换为数据流级描述方式。2.4.2 结构描述结构描述方式与行为级描述方式只描述过程不同,它是描述这个设
23、计元件的硬件整体是怎么构成的。使用多层次化的设计结构下,用这种描述方式把底层的设计电路模块嵌入顶层的电路模块系统中,也可以就用基本逻辑门电路模块来组成一个大规模的逻辑电路系统。一般采用生成语句和元件例化语句编写程序的方法,来绘制结构描述程序可模仿逻辑图。结构描述电路的基本过程: (1)绘制框图。先分析目标系统电路中需要用到的逻辑单元的种类和数量。用一个实例元件来代表每个子单元,只标出其功能、编号和端口及信号流向等特征,而不用了解其内部结构。 (2)元件说明。用一个器件语句来说明对应子单元的功能。 (3)信号说明。将各个元器件之间的输入输出信号分别进行命名,称为信号名。把这些输入输出信号分别用S
24、IGNAL语句予以声明。 (4)元件例化。依据实例器件的端口特性和模板元件的端口之间的对应关系,把各个实例器件用一个器件例化语句加以说明。 (5)用一个框架把整个设计程序连接起来。把一个大规模可编辑的电路系统,先将其分解为多个子模块,再把每个子模块分解成更小的单元,对其进行多层次的设计。这样,可以使更多的设计者同时进行合作。在多层次设计中,每个层次都可以由一个单一的元气器件,再构成一个大规模的模块或复杂的系统,可以先对每个器件进行分别仿真验证,然后再对系统整体进行调试。因此,结构化描述不但是一种好的设计思想,更是一种独特的设计方法,在多层次化的电路系统中更为重要。 2.4.3 数据流描述数据流
25、描述,也叫RTL的描述方式,就是描述各个寄存器之间对应的硬件结构功能。数据流描述方式利用VHDL语言并行读写的赋值特性,将数据流的运动方向、运动路径和运动结果描述出来,实现完整的逻辑综合优化方式。数据流描述方式不但能描述组合电路,还能描述时序电路。数据流描述是指把电路系统中的信号在储存元件之间进行运算和交换进行描述。设计者利用RTL描述方式,直接用VHDL自带的各种复杂运算符对系统进行高层次的逻辑运算和数学建模,与具体硬件电路结构无关。设计者用数据流风格描述时,侧重于对电路数据运算层面进行综合与优化,可以专注于数据流的处理和控制。本设计采用数据流描述方式,数据流描述方式能更加直接地表述逻辑电路
26、的行为。例如一位全加器,其逻辑功能描述如下: s = x XOR y sum = s XOR c_in c_out = (x AND y) OR( s AND c_in) 2.5 VHDL语言的优势(1)功能描述性强。可用于门级,电路级还可以是系统级的描述,仿真和编译。 (2)便携性。使用相同的描述设计和仿真工具,也用于不同的平台。(3)开发周期短,成本低。这主要是由于VHDL支持分解和大规模利用现有的设计,从而加速设计进程。(4) 可以延长设计的生命周期。因为VHDL不会因为工艺硬件的变化而使描述过时,所以进行硬件描述时不用关心硬件具体的结构。VHDL能对目标电路系统进行仿真与验证,可以很大
27、程度上确保设计的准确性,使用者可以不必知道如何测试相量就可以进行整个电路级的调试,而且设计者可以通过比较各种方案之间的可行性及其优劣,来确定最符合自己的预期结果的设计方案。(5) VHDL具有独立性。描述电路设计时,不与具体的实际硬件结构关联,设计者可以不管目标器件是什么,也不必顾及设计系统的结构组成,就可以对其开始设计。(6) VHDL语言正规、标准,简洁,复用和共享方便9。2.6 VHDL的测试验证文件Testbench验证是什么呢?写一程序,你往里面加了代码,然后再调试一下,这个就是验证的过程。同样你可以分成几个部分,一个你的设计,然后你给他一定的激励。然后你再试一下,看看这个程序是不是
28、达到你想要的结果了,那就是一种验证的手段,如果不对了,那么改一点,再试试,这个就是反复验证。在当前的项目,验证工程师多于设计师,有些复杂的设计有时达到两个或三比一的。验证问题将会是一个普遍的关注的问题,行业研究得出,今天设计的所有芯片的一半中需要有一个或多个返工。显著,这些研究表明,所有机制的74是由于功能性错误,因此,验证已经成为一个项目对目标获利的关键。VHDL已经成为行业标准的硬件描述语言系统,在产品开发过程中每个设计都应该进行验证10。验证是用于证明在执行保留的过程总的设计意图,这是毫不奇怪的,验证已经成为验证工程师对所有的硬件设计的关键项目,放入验证是提高代码准确率非常重要的部分之一
29、。可以通过并行处理来有必要实现削减整体的验证时间,它需要能够与彼此以及与所述设计的实施编写和调试测试平台平行。验证时间,也可以使用更高的抽象层次,这不但提高了效率,而且不必担心降低抽象水平。有时需要额外抽象机制来实现期望的结果,在更高的抽象水平像执行总线周期的水平或更高,都可以用来代替在验证过程中的0或1。有助于减少验证时间的另一个因素是自动化,尽管验证的某些部分可以被自动化,但是很多功能,协议和接口都需要进行验证变换,而通用自动化不能提供完整验证的解决方案。验证是在设计阶段,其中最初的设计与要求的规格功能作出匹配。验证检查,检验所有的设计规则,这里,如果它实现什么是指进行什么并不意味着对所述
30、电路的检查,这两个条件是必不可少的。这种类型的评价采用了多种技术,包括逻辑验证的功能测试与正确使用硬件描述语言全功能模拟和产生。3 四位加减法器的设计四位加减法器的设计方法有两种,一种是自下而上;另一种是自顶而下。本文采用自顶向下的设计方法来完成。自顶向下的设计方法,是指从顶层设计到底层,从电路系统的顶层结构开始,对整体进行仿真,再将电路系统划分成各个子模块。然后再对各个子模块进行分别仿真验证,符合要求之后经EDA开发平台由计算机自动综合成门级电路,进行门级仿真验证。自顶向下的方法重点在于对每个层次进行仿真验证,来确保系统特性符合电路设计预期要求,以便于在早期就能发现和纠正设计中出现的错误。四
31、位加减法器系统的流程设计图如下图3-1所示:四位加减法器程序设计与门设计异或门设计或门设计第4位加减法器程序设计第2位加减法器程序设计第3位加减法器程序设计第1位加减法器程序设计与门设计异或门设计或门设计与门设计异或门设计或门设计与门设计异或门设计或门设计图3-1 四位加减法器流程图流程说明:1.本设计按照“自顶而下”的设计方法进行系统划分。2.先设计出四位加减法器总的程序,然后再分别调用各位的子程序。在串行四位加减法器中,因为每一位的加减和进位方法都一样,所以只需写一个循环就可以了11。3.每一位的程序中都需要调用与门、或门、异或门等,因此需要将各个逻辑门电路调试完成。本文将使用三种方法来设
32、计一位全加器:第一种使用三个逻辑门(与门、或门、异或门)来实现全加器的功能;第二种使用两个逻辑门(与非门、异或门)来实现;第三种只使用一个逻辑门(与非门)来实现全加器的功能。减法的设计就是加法的延伸,在数字电路中,减去一个数就是加上这个数的补码,因此,本文使用异或门来实现,在每一位的输入端加上一个异或门来产生反码,再加上最后的进位来实现补码12。要进行四位数的相加减,最简洁的方法就是将四个加减法器进行级联。3.1 用与门、或门、异或门来设计一位全加器本小节采用三种逻辑门来设计全加器,先把每个逻辑门的数据流风格描述设计出来,再结合半加器的真值表写出其逻辑函数表达式,通过逻辑表达式把半加器的逻辑图
33、设计出来。全加器的设计与半加器相似,通过真值表写出逻辑函数表达式,再对表达式进行卡诺图化简转化,再对照逻辑函数表达式,整合三个逻辑门画出全加器的逻辑电路图。3.1.1 与门的设计与运算。当两个输入信号的电平一致时,输出才会和输入一致,不然就为0这种因果关系称为与逻辑。用数据流风格描述为:library ieee;use ieee.std_logic_1164.all;entity and_gate is port( a,b: in std_logic; y: out std_logic );end and_gate;architecture df of and_gate isbegin y=a
34、 and b;end df;3.1.2 或门的设计或运算。当两个输入信号的电平有一个为1时,输出信号为1,不然就为0这种因果关系称为或逻辑。用数据流风格描述为:library ieee;use ieee.std_logic_1164.all;entity or_gate is port( a,b: in std_logic; y: out std_logic );end or_gate;architecture df of or_gate isbegin y=a or b;end df;3.1.3 异或门的设计异或逻辑运算是一种二变量逻辑运算,当两个变量电平不同时,逻辑函数值为1;当两个输入变
35、量电平相同时,逻辑函数值为0。用数据流风格描述为:library ieee;use ieee.std_logic_1164.all;entity xor_gate isport(a,b: in std_logic;y: out std_logic);end xor_gate;architecture df of xor_gate isbeginy=a xor b;end df;3.1.4 半加器的设计半加器的真值表见表3-1所示。表中的A表示被加数输入,B表示加数输入,S为输出,C为向后一高位的进位输出。表3-1 半加器的真值表输入输出被加数A加数B和数S进位数C000001101010110
36、1由真值表可直接写出输出逻辑函数表达式: (3-1) (3-2)可见,可用一个异或门和一个与门组成半加器,如图3-2所示。图 32 半加器逻辑图3.1.5 一位全加器的设计在做加法运算时,要考虑到从前一低位产生的进位。全加器就具有这种功能。全加器得到的真值表见表3-2所示。表中的表示被加数输入,表示加数输入,表示来自前一低位的进位输入,为输出,为向后一高位的进位输出。其VHDL程序描述见附录。由真值表来写出和的输出逻辑函数表达式,再通过卡诺图化简和转换得 (3-3) (3-4)表 3-2 全加器的真值表输入输出 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1
37、 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 由此画出全加器的逻辑电路如图3-3所示。图 3-3 全加器3.2 用与非门、异或门来设计一位全加器本小节使用两个逻辑门来设计全加器,先设计与非门的数据流描述,利用上小节已经设计好的异或门和半加器设计,通过对逻辑函数表达式的化简和转换,得到不变,对进行转化为与非与非形式,再对照逻辑表达式,整合逻辑门设计出全加器的逻辑电路图。3.2.1 与非门的设计与非逻辑运算是由与运算和非运算组合而成的。用数据流风格描述为:library ieee;use ieee.std_logic_1164.all;entity nand_gat
38、e is port( a,b: in std_logic; y: out std_logic );end nand_gate;architecture df of nand_gate isbegin ya_tb,b=b_tb,sel=sel_tb,sum=sum_tb,cout=cout_tb );stimulus_a: process is begin a_tb=0001; wait for 20 ns; a_tb=0111; wait for 20 ns; a_tb=0110; wait; end process stimulus_a;stimulus_b: process is begi
39、n b_tb=0000; wait for 10 ns; b_tb=0110; wait for 20 ns; b_tb=0101; wait; end process stimulus_b; stimulus_sel: process is begin sel_tb=0; wait for 30 ns; sel_tbsel,b=b(i),y=x(i); end generate; c(0)a(i),b=x(i),cin=c(i),sum=sum(i),cout=c(i+1); end generate; cout=c(4);end stru;程序说明:将a、b、sum定义为4位标准逻辑矢量,
40、因为我们要做的是4位加减法器,所以在程序的开头要调用库文件ieee.std_logic_1164.all,再将原来的输入进位sel、输出进位cout定义为标准逻辑量。在实体中把x声明为4位标准逻辑矢量,把c声明为5位标准逻辑矢量,因为有时第4位相加还会产生进位,所以要把它的长度定义为5位。串行4位加减法器就是把4个全加减器串联起来,所以,为了方便,我选用一个IF循环语句把4个一位的连接起来。先定义一个长度为4的i,那么这个程序中加减数的每一位都可以用i来表示,再调用一个异或门,使这个逻辑电路可以做加减法:当sel=0时,输入b与sel相异或,结果还是原来的输入b,这样电路就做加法;当sel=1
41、时,输入b与sel相异或,就是将b转变为b的补码,减去一个数就是加上一个数的补码,因此,这里使用异或门来实现加减法。最后,调用一位加减法器的实体,再将输入的每一位相关联,实现4位串行加减法器,把最后的进位c(4)赋值给cout。 5 结论将设计的VHDL程序在Modelsim软件上运行,最终得到的数据结果实验波形和与预期效果基本一致,能准确地实现四位加减法器的功能。在此次的四位加减法器的设计过程中,更进一步地熟悉有关数字电路的知识和具体应用。学会了仿真软件Modelsim的基本使用,对硬件描述语言VHDL的编写,程序的仿真等工作。并从仿真结果来分析本设计中存在的问题和不足,根据这些不足来调试和改善程序。在本次设计过程中遇到很多问题,如对软件的不熟悉,在建立工程时不能用中文来命名,编译时应选择测试文件来编译,不能选择对程序进行优化,不然会软件崩溃的;由于对VHDL语言的接触太少,它与C语言有很大的不同,因此在编写语句时,不知道如何声明,调用,编写实体等等。由于时间仓促,本设计只对一位全加器进行不同地设计,使用串行的方法进行进位,而没有设计超快速进位的方法。参考文献1 张蓉,刘鸣. 基于VHDL技术的数字电路J. 实验室科学,2007,5.实验教学研究2 沈小丽,潘兰芳,李敏,李青. VHDL语言在数字电路中的设计与应用J.现代电子技术,2005,28(12): 93
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44744-2024粮食储藏低温储粮技术规程
- 2024面向智能制造专业领域的多模态内容资源分类与编码标准规范
- 包头2024年09版小学五年级下册英语第3单元寒假试卷
- 2023年过热蒸汽干燥设备资金申请报告
- 2023年环氧丙烷资金申请报告
- 2024年电源适配器项目资金需求报告代可行性研究报告
- 强化品德修养方面存在的问题-原因-措施
- 三维数字内容制作-三维动画材质师工作流程
- 【上海54】期中模拟卷01【24-25章】
- 质量月代表的发言稿(3篇)
- 第1章 复合材料概论
- 中药材种植课件
- 大货车安全隐患排查方案及流程
- 无人机飞行操作手册
- 癌症治疗指南手册
- 建立网络安全管理责任制明确安全工作职责和责任
- 2024年浙江省海港集团招聘笔试参考题库含答案解析
- 安徽省工伤职停工留薪分类目录
- 食堂灭四害方案五
- 安全技术之传动装置的防护措施
- 小麦病虫害识别及防治技术课件
评论
0/150
提交评论