使用VHDL进行数字电路设计.ppt
《使用VHDL进行数字电路设计.ppt》由会员分享,可在线阅读,更多相关《使用VHDL进行数字电路设计.ppt(362页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、使用VHDL进行数字电路设计ASIC技术的发展技术的发展电路系统设计方法电路系统设计方法自定向下的设计流程自定向下的设计流程设计描述风格设计描述风格高层次设计方法ASIC技术的发展由于所设计的系统的规模已从几十几百由于所设计的系统的规模已从几十几百门增加到几万几十万门,使得从前电子门增加到几万几十万门,使得从前电子工程师所熟悉的画电路图、真值表和卡工程师所熟悉的画电路图、真值表和卡诺图的设计方法已经远远不能满足数字诺图的设计方法已经远远不能满足数字系统的复杂性要求系统的复杂性要求ASIC技术的发展高层次设计方法高层次设计方法HLD(High Level Design)是从八十年代末以来,最新专
2、用是从八十年代末以来,最新专用集成电路设计的、最先进的设计方法,集成电路设计的、最先进的设计方法,它为用户设计更大规模、更高水平、性它为用户设计更大规模、更高水平、性能优良的能优良的数字系统数字系统提供了可靠的保证提供了可靠的保证HLD符合目前对电路的两个要求Time to Market:对于通信领域来说,快:对于通信领域来说,快速推出市场需要的系统具有非常重要的速推出市场需要的系统具有非常重要的价值,价值,HLD使得快速设计较大的芯片成使得快速设计较大的芯片成为可能。为可能。SOC:目前对数子系统的需求是规模越:目前对数子系统的需求是规模越来越大,来越大,HLD非集成电路专业背景的通非集成电
3、路专业背景的通信厂商设计大规模芯片提供了可能信厂商设计大规模芯片提供了可能设计技术的发展使得HLD成为可能设计技术的发展使得HLD成为可能采用最原始的版图设计只需要相应的图形编辑采用最原始的版图设计只需要相应的图形编辑工具工具采用电路图设计就需要相应的布局布线工具采用电路图设计就需要相应的布局布线工具采用采用HDL语言设计电路就需要相应的综合工具语言设计电路就需要相应的综合工具支持支持结论结论:正是综合技术的提出使得:正是综合技术的提出使得HLD成为可能成为可能电路设计方法由底向上的设计(由底向上的设计(Bottom-up):从结构):从结构层开始,采用结构化单元和由少数行为层开始,采用结构化
4、单元和由少数行为级模块构成的层次式模型,逐级向上搭级模块构成的层次式模型,逐级向上搭建出符合要求的系统。建出符合要求的系统。自顶而下的设计(自顶而下的设计(Top-Down):先对所):先对所要设计的系统进行功能描述,然后逐步要设计的系统进行功能描述,然后逐步分块细化,直至结构化最底层的具体实分块细化,直至结构化最底层的具体实现现Top-Down的优越性提高设计生产的效率:自顶向下的设计提高设计生产的效率:自顶向下的设计方法允许设计者从一个高抽象层次上对方法允许设计者从一个高抽象层次上对系统的功能进行定制,而不需要考虑门系统的功能进行定制,而不需要考虑门级的具体实现方法,这充分体现了工艺级的具
5、体实现方法,这充分体现了工艺无关性的基本设计思想。设计者只需要无关性的基本设计思想。设计者只需要写出设计中所需部件的硬件描述语言代写出设计中所需部件的硬件描述语言代码或者是其它类型的模型,设计工具就码或者是其它类型的模型,设计工具就会根据编写的高层描述生成门级的实现,会根据编写的高层描述生成门级的实现,这就大大减少了设计者以往必须花费在这就大大减少了设计者以往必须花费在设计细节上的时间设计细节上的时间Top-Down的优越性增加了设计的重用性:增加了设计的重用性:在大多数的自顶在大多数的自顶向下设计过程中,对设计的描述都保持向下设计过程中,对设计的描述都保持在一个通用的工艺水平上,它不是为某在
6、一个通用的工艺水平上,它不是为某一厂家的工艺库而特意定制的,也就是一厂家的工艺库而特意定制的,也就是说,设计是与工艺无关的,所以在实现说,设计是与工艺无关的,所以在实现设计时不必使用某一特定厂家的工艺,设计时不必使用某一特定厂家的工艺,这样就极大的提高了设计的可重用性,这样就极大的提高了设计的可重用性,如果需要改变设计所使用的工艺,只需如果需要改变设计所使用的工艺,只需要将设计在相应的工艺库上映设即可。要将设计在相应的工艺库上映设即可。Top-Down的优越性错误的早期发觉:可以带来好处错误的早期发觉:可以带来好处1 1、减少产品开发周期、减少产品开发周期2 2、降低开发成本降低开发成本3、增
7、加设计一次成功通过的可能性、增加设计一次成功通过的可能性电路设计应该采用的方法强调进行系统开发的方式:首先进行系统分析,给出Specification,划分模块,明确模块接口,确定模块内部功能,此时应该编写详细的设计说明文档,之后才是编程,调试。目前国内很难达到这个层次,但一般较大的设计都是多个设计者完成,因此模块划分和确定接口信号是非常重要的,可以极大的减少设计的调试时间。模块尽量以寄存器为边界,这样对于联调和最后的系统集成非常方便。建立合理的设计习惯对于今后的工作的效率会有巨大帮助设计技术的发展CAD:SchematicsEDA:HDLVHDL和和Verilog是影响最广的两种是影响最广的
8、两种HDL。VHDL相相对对于于Veirlog而而言言,它它在在语语法法上上更更严严谨谨一一些些,虽虽然然这这样样也也使使它它失失去去了了一一些些灵灵活活性性和和多多样样性性,但但从从文文档档纪纪录录、综综合合以以及及器器件件和和系系统统级级的的仿仿真真上上讲讲VHDL是一种更好的选择。是一种更好的选择。VHDL语言在在1981年,美国国防部提出了一种新的硬件描述语言,年,美国国防部提出了一种新的硬件描述语言,称之为称之为VHSIC Hardware Description Language,也就,也就是我们现在所说的是我们现在所说的VHDL,它是美国国防部委托,它是美国国防部委托IBM和和T
9、exas Instruments联合开发的联合开发的。19861986年年,VHDL被建议作为被建议作为IEEE标标准,准,经过了多次更经过了多次更改后改后,直到,直到1987年年12月,它才被接纳为月,它才被接纳为IEEE1076IEEE1076标准。标准。该标准经过不断完善和更新,目前的标准为该标准经过不断完善和更新,目前的标准为IEEE1164,它已被绝大多数,它已被绝大多数IC生产厂家和生产厂家和EDA工具工具供应商所接供应商所接受。当前几乎所有的受。当前几乎所有的EDA软软件,象件,象Synopsys、Mentor Graphics、InovaEDA、Cadence等,均支持该标准等
10、,均支持该标准。VHDL语言的特点VHDL是工业标准的文本格式语言是工业标准的文本格式语言VHDL能能同时支持仿真和综合同时支持仿真和综合VHDL是一是一种并发执行的语言种并发执行的语言VHDL支持支持结构化设计和结构化设计和TOP-DOWN设设计方计方法法VHDL的描述与工艺无关的描述与工艺无关支持多风格的描述方法支持多风格的描述方法数字系统描述的Gajski图VHDL描述数字电路的层次采用VHDL语言描述电路时,我们将电路的描述分为行为(Behavioral)和寄存器传输级(Register Transfer Level)和门级描述(Gate Level)三个层次。这样的划分是根据寄存器和
11、组合逻辑的确定性而言的行为级:寄存器和组合逻辑都不明确RTL级:寄存器明确,组合逻辑不明确。门级:寄存器和组合逻辑都明确三种描述层次的比较在目前的实际设计工作中,行为描述和门级描述都很少用到。门级描述投入大量精力描述电路的具体细节,无法体现出高层描述的优点。行为描述的抽象层次太高,综合工具无法很好的理解设计者的意图,综合出的电路距离设计者的实际要求有很大差距,并且目前主流的综合工具都不具有这种功能,目前有一些推出的行为综合器如Synopsys的Behavioral Complier,但用户的反映都不是很良好使用VHDL描述组合逻辑的方法在使在使用用VHDL描描述组合逻辑电路时,根据描述风格的述
12、组合逻辑电路时,根据描述风格的不同,我们将它分为行为级描述、结构流不同,我们将它分为行为级描述、结构流(Data Flow)描述和结构级(描述和结构级(Structural Level)描述。这里的行为)描述。这里的行为级(级(Behavioral Level)描述和前面的行为描述)描述和前面的行为描述(Behavioral)从概念上是有区别的,或者说是行为描)从概念上是有区别的,或者说是行为描述具体在组合逻辑中的定义。行为级描述是指一个组述具体在组合逻辑中的定义。行为级描述是指一个组合逻辑的功能已经明确,但它的具体实现结构没有确合逻辑的功能已经明确,但它的具体实现结构没有确定,但限定使用组合
13、逻辑实现定,但限定使用组合逻辑实现。高层次设计流程一、系统功能分析进进行行系系统统功功能能分分析析的的目目的的是是在在进进行行系系统统设设计计之之前前明明确确系系统统的的需需求求,也也就就是是确确定定系系统统所所要要完完成成的的功功能能、系系统统的的输输入入输输出出、以以及及这这些些输输入入输输出出之之间间的的关关系系等等,并并且且要确定系统的时序要求。要确定系统的时序要求。系系统统功功能能分分析析的的另另外外一一个个目目的的,就就是是系系统统的的模模块块划划分分。在在系系统统分分析析时时,应应根根据据功功能能的的耦耦合合程程度度,将将系系统统划划分分为为不不同同的的功功能能模模块块,每每一一
14、个个功功能能都都映映射射到到一一个个模模块块,同同时时还还需需要要确确定定模模块块之之间间的的相相互互关关系系,这这是是模模块块化化设设计的基本要求。计的基本要求。二、体系结构设计体体系系结结构构设设计计又又是是整整个个系系统统设设计计阶阶段段最最重重要要的的工工作作,它它的的首首要要任任务务就就是是数数据据通通路路和和控控制制通通路路的的设设计计。在在数数字字系系统统的的设设计计中中,系系统统的的控控制制是是建建立立在在数数据据通通路路的的基基础础之之上上的的,不不同同的的数数据据通通路路对对应应了了不不同同的的控控制制通通路路。数数据据通通路路的的设设计计包包括括被被处处理理数数据据的的类
15、类型型分分析析、处处理理单单元元的的划划分分、以以及及处处理理单单元元之之间间的的关关联联程程度度等等。控控制制通通路路是是数数据据通通路路上上数数据据传传输输的的控控制制单单元元,用用于于协协调调数数据据处处理理单单元元之之间间的的关关系系,控控制制通通路路的的设设计计主主要要包包括括数数据据的调度、数据的处理算法和正确的时序安排等。的调度、数据的处理算法和正确的时序安排等。数数据据通通路路和和控控制制通通路路的的设设计计并并不不是是截截然然分分开开的的,有有时时在在确确定定好好数数据据通通路路后后,由由于于时时序序或或数数据据的的调调度度等等问问题题,而而不不得得不不重重新新修修改改数数据
16、据通通路路。所所以以数数据据通通路路与与控控制制通通路的设计往往要经过许多次反复才能达到最优的效果路的设计往往要经过许多次反复才能达到最优的效果三、系统描述谓系统描述也就是使谓系统描述也就是使用用VHDL语言对语言对系统进行系统进行编码。在进行大型软件的开发时,编码相对于编码。在进行大型软件的开发时,编码相对于前面所进行的系统划分工作相比就显得不是那前面所进行的系统划分工作相比就显得不是那么重要,但在使用硬件描述语言进行数字电路么重要,但在使用硬件描述语言进行数字电路描述时,情况则完全不同,因为语言的描述直描述时,情况则完全不同,因为语言的描述直接决定着电路的性能,不好的编码将无法反映接决定着
17、电路的性能,不好的编码将无法反映所确定的体系结构,可能导致前面所做的工作所确定的体系结构,可能导致前面所做的工作完全浪完全浪四、系统功能仿真系系统统的的功功能能仿仿真真(Functional Simulation)是是用用来来验验证证设设计计者者所所编编写写的的VHDL代代码码是是否否完完成成了了预预定定的的功功能能。几几乎乎所所有有的的高高层层设设计计软软件件都都支支持持语语言言级级的的系系统统仿仿真真,这这样样在在系系统统综综合合前前就就可可以以通通过过系系统统功功能能仿仿真真来来验验证证所所设计系统的功能正确与否。设计系统的功能正确与否。在在语语言言级级系系统统仿仿真真时时,要要求求设设
18、计计者者使使用用VHDL语语言言所所提提供供的的丰丰富富的的仿仿真真语语句句来来编编写写系系统统的的测测试试基基准准程程序序(Testbench)。测测试试基基准准程程序序在在高高层层次次设设计计中中占占有有非非常常重重要要的的地地位位,不不仅仅在在系系统统功功能能仿仿真真时时被被用用来来作作为为功功能能验验证证的的基基准准,而而且且在在门门级级仿仿真真与与后后时时序序仿仿真真都都要要以以此为基准。此为基准。综合优化阶段综综合合器器对对系系统统的的综综合合优优化化主主要要分分为为两两步步:第第一一步步是是将将硬硬件件描描述述语语言言翻翻译译成成门门电电路路,第第二二步步是是对对产产生生的的电电
19、路路进进行行优优化化。主主要要工工作作是是在在第第二二步步进进行行的的,判判断断一一个个综综合器性能的标准也是基于这一方面的。合器性能的标准也是基于这一方面的。系系统统优优化化的的目目的的就就是是花花费费最最小小的的硬硬件件资资源源满满足足最最大大的的时时序序要要求求,所所以以系系统统优优化化就就是是在在系系统统的的速速度度(Speed)和和面面积积(Area)之之间间找找到到一一个个最最佳佳方方案案(Trade-off)。系系统统优优化化的的关关键键在在于于系系统统约约束束条条件件(Constraints)的的设设定定,施施加加到到系系统统的的约约束束条条件件将将使使综综合合器器对对系系统统
20、的的优优化按照设计者所期望的目标进行。化按照设计者所期望的目标进行。系统实现如果系统综合优化的结果满足设计者的如果系统综合优化的结果满足设计者的要求,就可以进行系统实现的工作。在要求,就可以进行系统实现的工作。在一般的一般的ASIC设计中,设计者应该将综合设计中,设计者应该将综合后电路的网表(后电路的网表(Netlist)文件和设计的时)文件和设计的时序要求,交给序要求,交给IC生产厂家进行下一步的生产厂家进行下一步的工作。这是国内一般的做法,专业的微工作。这是国内一般的做法,专业的微电子公司将会参与更多的后面的电子公司将会参与更多的后面的layoutlayout的工作。的工作。设计风格描述设
21、计描述的风格直接控制着设计描述的风格直接控制着EDA工具综工具综合的结果。描述同一功能的两段合的结果。描述同一功能的两段RTL描描述能产生出时序和面积上完全不同的电述能产生出时序和面积上完全不同的电路,好的描述方式就是易于被综合器识路,好的描述方式就是易于被综合器识别并可以被综合出设计者期望的电路,别并可以被综合出设计者期望的电路,电路的质量取决于工程师使用的描述风电路的质量取决于工程师使用的描述风格和综合工具的能力。我将会在外面介格和综合工具的能力。我将会在外面介绍。绍。我个人对高层次设计方法的理解硬件描述语言-schematic(netlist)-版图 综合工具 布局布线工具高级语言-汇编
22、语言-机器语言 高级语言编译器 机器语言编译器(assembler)目前国内还有很多人不认同采用HDL的高层次设计方法,其实就是不能理解综合工具的作用,但映射到不认同C编译器或BASIC编译器的作用确是荒谬的。我认为高层次设计方法实际就是牺牲描述精确度来换取描述效率,在某些具体应用中是不适用的,比如最先进的处理器研究。但对于通常应用背景的数字系统来说Time to Market是非常重要的,高层次设计方法可以极大的提高设计的效率。随着综合工具性能的不断提高,高层设计方法的应用范围会越来越广。VHDL语言基础设计实体和结构体的概念VHDL把一个电路模块看作一个单元,对任何一个单把一个电路模块看作
23、一个单元,对任何一个单元的描述包括接口描述和内部特性描述两个部分。接元的描述包括接口描述和内部特性描述两个部分。接口描述称为设计实体口描述称为设计实体(entity),它提供该单元的公共,它提供该单元的公共信息,如名称、端口等;内部特性描述称为结构体信息,如名称、端口等;内部特性描述称为结构体(architecture),它定义单元的内部操作特性。,它定义单元的内部操作特性。一个结构体可以对应多个实体,结构体和实体的绑定一个结构体可以对应多个实体,结构体和实体的绑定关系称为配置(关系称为配置(configuration)。)。一个电路单元只能有一个一个电路单元只能有一个entity,下面是一个
24、最简单的,下面是一个最简单的例子,描述的电路是一个半加器例子,描述的电路是一个半加器一个半加器的VHDL描述entity halfadder is port(a,b:in bit;sum,carry:out bit);end halfadder;architecture behavior of halfadder is beginprocess(a,b)beginif(a=1 and b=1)then carry=1;else carry=0;end if;if(a/=b)then sum=1;else sum=0;end if;end process;end behavior;Entity的
25、描述entity 实体名实体名 is 类属参数说明类属参数说明 端口说明端口说明end 实体名;实体名;entity mux isgeneric(m:time:=1ns);port(d0,d1,sel:in bit;q:out bit);end mux;端口的方向in(输入)、(输入)、out(输出,结构体内部不(输出,结构体内部不能再使用)、能再使用)、inout(输入输出双向)、(输入输出双向)、buffer(输出,结构体内可再使用)(输出,结构体内可再使用)不提倡使用不提倡使用buffer型,可以在内部在起一型,可以在内部在起一个名字)个名字)结构体的框架architecture 结构体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 VHDL 进行 数字电路 设计
限制150内