收藏 分销(赏)

采用VHDL进行高层次设计.ppt

上传人:wang****lang 文档编号:22877 上传时间:2020-07-29 格式:PPT 页数:362 大小:1.27MB
下载 相关 举报
采用VHDL进行高层次设计.ppt_第1页
第1页 / 共362页
采用VHDL进行高层次设计.ppt_第2页
第2页 / 共362页
采用VHDL进行高层次设计.ppt_第3页
第3页 / 共362页
采用VHDL进行高层次设计.ppt_第4页
第4页 / 共362页
采用VHDL进行高层次设计.ppt_第5页
第5页 / 共362页
点击查看更多>>
资源描述

1、使用VHDL进行数字电路设计,中国最大的资料库下载,ASIC技术的发展电路系统设计方法自定向下的设计流程设计描述风格,高层次设计方法,中国最大的资料库下载,ASIC技术的发展,由于所设计的系统的规模已从几十几百门增加到几万几十万门,使得从前电子工程师所熟悉的画电路图、真值表和卡诺图的设计方法已经远远不能满足数字系统的复杂性要求,中国最大的资料库下载,ASIC技术的发展,高层次设计方法HLD(HighLevelDesign)是从八十年代末以来,最新专用集成电路设计的、最先进的设计方法,它为用户设计更大规模、更高水平、性能优良的数字系统提供了可靠的保证,中国最大的资料库下载,HLD符合目前对电路的

2、两个要求,TimetoMarket:对于通信领域来说,快速推出市场需要的系统具有非常重要的价值,HLD使得快速设计较大的芯片成为可能。SOC:目前对数子系统的需求是规模越来越大,HLD非集成电路专业背景的通信厂商设计大规模芯片提供了可能,中国最大的资料库下载,设计技术的发展使得HLD成为可能,中国最大的资料库下载,设计技术的发展使得HLD成为可能,采用最原始的版图设计只需要相应的图形编辑工具采用电路图设计就需要相应的布局布线工具采用HDL语言设计电路就需要相应的综合工具支持结论:正是综合技术的提出使得HLD成为可能,中国最大的资料库下载,电路设计方法,由底向上的设计(Bottom-up):从结

3、构层开始,采用结构化单元和由少数行为级模块构成的层次式模型,逐级向上搭建出符合要求的系统。自顶而下的设计(Top-Down):先对所要设计的系统进行功能描述,然后逐步分块细化,直至结构化最底层的具体实现,中国最大的资料库下载,Top-Down的优越性,提高设计生产的效率:自顶向下的设计方法允许设计者从一个高抽象层次上对系统的功能进行定制,而不需要考虑门级的具体实现方法,这充分体现了工艺无关性的基本设计思想。设计者只需要写出设计中所需部件的硬件描述语言代码或者是其它类型的模型,设计工具就会根据编写的高层描述生成门级的实现,这就大大减少了设计者以往必须花费在设计细节上的时间,中国最大的资料库下载,

4、Top-Down的优越性,增加了设计的重用性:在大多数的自顶向下设计过程中,对设计的描述都保持在一个通用的工艺水平上,它不是为某一厂家的工艺库而特意定制的,也就是说,设计是与工艺无关的,所以在实现设计时不必使用某一特定厂家的工艺,这样就极大的提高了设计的可重用性,如果需要改变设计所使用的工艺,只需要将设计在相应的工艺库上映设即可。,中国最大的资料库下载,Top-Down的优越性,错误的早期发觉:可以带来好处1、减少产品开发周期2、降低开发成本3、增加设计一次成功通过的可能性,中国最大的资料库下载,电路设计应该采用的方法,强调进行系统开发的方式:首先进行系统分析,给出Specification,

5、划分模块,明确模块接口,确定模块内部功能,此时应该编写详细的设计说明文档,之后才是编程,调试。目前国内很难达到这个层次,但一般较大的设计都是多个设计者完成,因此模块划分和确定接口信号是非常重要的,可以极大的减少设计的调试时间。模块尽量以寄存器为边界,这样对于联调和最后的系统集成非常方便。建立合理的设计习惯对于今后的工作的效率会有巨大帮助,中国最大的资料库下载,设计技术的发展,CAD:SchematicsEDA:HDLVHDL和Verilog是影响最广的两种HDL。VHDL相对于Veirlog而言,它在语法上更严谨一些,虽然这样也使它失去了一些灵活性和多样性,但从文档纪录、综合以及器件和系统级的

6、仿真上讲VHDL是一种更好的选择。,中国最大的资料库下载,VHDL语言,在1981年,美国国防部提出了一种新的硬件描述语言,称之为VHSICHardwareDescriptionLanguage,也就是我们现在所说的VHDL,它是美国国防部委托IBM和TexasInstruments联合开发的。1986年,VHDL被建议作为IEEE标准,经过了多次更改后,直到1987年12月,它才被接纳为IEEE1076标准。该标准经过不断完善和更新,目前的标准为IEEE1164,它已被绝大多数IC生产厂家和EDA工具供应商所接受。当前几乎所有的EDA软件,象Synopsys、MentorGraphics、I

7、novaEDA、Cadence等,均支持该标准。,中国最大的资料库下载,VHDL语言的特点,VHDL是工业标准的文本格式语言VHDL能同时支持仿真和综合VHDL是一种并发执行的语言VHDL支持结构化设计和TOP-DOWN设计方法VHDL的描述与工艺无关支持多风格的描述方法,中国最大的资料库下载,数字系统描述的Gajski图,中国最大的资料库下载,VHDL描述数字电路的层次,采用VHDL语言描述电路时,我们将电路的描述分为行为(Behavioral)和寄存器传输级(RegisterTransferLevel)和门级描述(GateLevel)三个层次。这样的划分是根据寄存器和组合逻辑的确定性而言的

8、行为级:寄存器和组合逻辑都不明确RTL级:寄存器明确,组合逻辑不明确。门级:寄存器和组合逻辑都明确,中国最大的资料库下载,三种描述层次的比较,在目前的实际设计工作中,行为描述和门级描述都很少用到。门级描述投入大量精力描述电路的具体细节,无法体现出高层描述的优点。行为描述的抽象层次太高,综合工具无法很好的理解设计者的意图,综合出的电路距离设计者的实际要求有很大差距,并且目前主流的综合工具都不具有这种功能,目前有一些推出的行为综合器如Synopsys的BehavioralComplier,但用户的反映都不是很良好,中国最大的资料库下载,使用VHDL描述组合逻辑的方法,在使用VHDL描述组合逻辑电路

9、时,根据描述风格的不同,我们将它分为行为级描述、结构流(DataFlow)描述和结构级(StructuralLevel)描述。这里的行为级(BehavioralLevel)描述和前面的行为描述(Behavioral)从概念上是有区别的,或者说是行为描述具体在组合逻辑中的定义。行为级描述是指一个组合逻辑的功能已经明确,但它的具体实现结构没有确定,但限定使用组合逻辑实现。,中国最大的资料库下载,高层次设计流程,中国最大的资料库下载,一、系统功能分析,进行系统功能分析的目的是在进行系统设计之前明确系统的需求,也就是确定系统所要完成的功能、系统的输入输出、以及这些输入输出之间的关系等,并且要确定系统的

10、时序要求。系统功能分析的另外一个目的,就是系统的模块划分。在系统分析时,应根据功能的耦合程度,将系统划分为不同的功能模块,每一个功能都映射到一个模块,同时还需要确定模块之间的相互关系,这是模块化设计的基本要求。,中国最大的资料库下载,二、体系结构设计,体系结构设计又是整个系统设计阶段最重要的工作,它的首要任务就是数据通路和控制通路的设计。在数字系统的设计中,系统的控制是建立在数据通路的基础之上的,不同的数据通路对应了不同的控制通路。数据通路的设计包括被处理数据的类型分析、处理单元的划分、以及处理单元之间的关联程度等。控制通路是数据通路上数据传输的控制单元,用于协调数据处理单元之间的关系,控制通

11、路的设计主要包括数据的调度、数据的处理算法和正确的时序安排等。数据通路和控制通路的设计并不是截然分开的,有时在确定好数据通路后,由于时序或数据的调度等问题,而不得不重新修改数据通路。所以数据通路与控制通路的设计往往要经过许多次反复才能达到最优的效果,中国最大的资料库下载,三、系统描述,谓系统描述也就是使用VHDL语言对系统进行编码。在进行大型软件的开发时,编码相对于前面所进行的系统划分工作相比就显得不是那么重要,但在使用硬件描述语言进行数字电路描述时,情况则完全不同,因为语言的描述直接决定着电路的性能,不好的编码将无法反映所确定的体系结构,可能导致前面所做的工作完全浪,中国最大的资料库下载,四

12、、系统功能仿真,系统的功能仿真(FunctionalSimulation)是用来验证设计者所编写的VHDL代码是否完成了预定的功能。几乎所有的高层设计软件都支持语言级的系统仿真,这样在系统综合前就可以通过系统功能仿真来验证所设计系统的功能正确与否。在语言级系统仿真时,要求设计者使用VHDL语言所提供的丰富的仿真语句来编写系统的测试基准程序(Testbench)。测试基准程序在高层次设计中占有非常重要的地位,不仅在系统功能仿真时被用来作为功能验证的基准,而且在门级仿真与后时序仿真都要以此为基准。,中国最大的资料库下载,综合优化阶段,综合器对系统的综合优化主要分为两步:第一步是将硬件描述语言翻译成

13、门电路,第二步是对产生的电路进行优化。主要工作是在第二步进行的,判断一个综合器性能的标准也是基于这一方面的。系统优化的目的就是花费最小的硬件资源满足最大的时序要求,所以系统优化就是在系统的速度(Speed)和面积(Area)之间找到一个最佳方案(Trade-off)。系统优化的关键在于系统约束条件(Constraints)的设定,施加到系统的约束条件将使综合器对系统的优化按照设计者所期望的目标进行。,中国最大的资料库下载,系统实现,如果系统综合优化的结果满足设计者的要求,就可以进行系统实现的工作。在一般的ASIC设计中,设计者应该将综合后电路的网表(Netlist)文件和设计的时序要求,交给I

14、C生产厂家进行下一步的工作。这是国内一般的做法,专业的微电子公司将会参与更多的后面的layout的工作。,中国最大的资料库下载,设计风格描述,设计描述的风格直接控制着EDA工具综合的结果。描述同一功能的两段RTL描述能产生出时序和面积上完全不同的电路,好的描述方式就是易于被综合器识别并可以被综合出设计者期望的电路,电路的质量取决于工程师使用的描述风格和综合工具的能力。我将会在外面介绍。,中国最大的资料库下载,我个人对高层次设计方法的理解,硬件描述语言-schematic(netlist)-版图综合工具布局布线工具高级语言-汇编语言-机器语言高级语言编译器机器语言编译器(assembler)目前

15、国内还有很多人不认同采用HDL的高层次设计方法,其实就是不能理解综合工具的作用,但映射到不认同C编译器或BASIC编译器的作用确是荒谬的。我认为高层次设计方法实际就是牺牲描述精确度来换取描述效率,在某些具体应用中是不适用的,比如最先进的处理器研究。但对于通常应用背景的数字系统来说TimetoMarket是非常重要的,高层次设计方法可以极大的提高设计的效率。随着综合工具性能的不断提高,高层设计方法的应用范围会越来越广。,中国最大的资料库下载,VHDL语言基础,中国最大的资料库下载,设计实体和结构体的概念,VHDL把一个电路模块看作一个单元,对任何一个单元的描述包括接口描述和内部特性描述两个部分。

16、接口描述称为设计实体(entity),它提供该单元的公共信息,如名称、端口等;内部特性描述称为结构体(architecture),它定义单元的内部操作特性。一个结构体可以对应多个实体,结构体和实体的绑定关系称为配置(configuration)。一个电路单元只能有一个entity,下面是一个最简单的例子,描述的电路是一个半加器,中国最大的资料库下载,一个半加器的VHDL描述,entityhalfadderisport(a,b:inbit;sum,carry:outbit);endhalfadder;architecturebehaviorofhalfadderisbeginprocess(a,

17、b)beginif(a=1andb=1)thencarry=1;elsecarry=0;endif;if(a/=b)thensum=1;elsesum=都非常常用赋值运算符=,:=,中国最大的资料库下载,逻辑运算,Andornandxornornot操作数必须类型和长度都相同注意使用括号c“1100”这是因为定义了IEEE.std_logic_unsigned库,中国最大的资料库下载,Std_logic_unsigned库,function(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR)returnBOOLEAN;function(L:STD_LOGIC_VECT

18、OR;R:INTEGER)returnBOOLEAN;function(L:INTEGER;R:STD_LOGIC_VECTOR)returnBOOLEAN;function=(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR)returnBOOLEAN;function=(L:STD_LOGIC_VECTOR;R:INTEGER)returnBOOLEAN;function=(L:INTEGER;R:STD_LOGIC_VECTOR)returnBOOLEAN;function=(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR)retur

19、nBOOLEAN;function=(L:STD_LOGIC_VECTOR;R:INTEGER)returnBOOLEAN;function=(L:INTEGER;R:STD_LOGIC_VECTOR)returnBOOLEAN;,中国最大的资料库下载,加法运算,最常见的加一计数器可以写成:A=A+1这是因为在unsigned中定义了function+(L:STD_LOGIC_VECTOR;R:STD_LOGIC_VECTOR)returnSTD_LOGIC_VECTOR;function+(L:STD_LOGIC_VECTOR;R:INTEGER)returnSTD_LOGIC_VECTOR

20、;function+(L:INTEGER;R:STD_LOGIC_VECTOR)returnSTD_LOGIC_VECTOR;function+(L:STD_LOGIC_VECTOR;R:STD_LOGIC)returnSTD_LOGIC_VECTOR;function+(L:STD_LOGIC;R:STD_LOGIC_VECTOR)returnSTD_LOGIC_VECTOR;,中国最大的资料库下载,引用库文件,这个预先定义的包文件std_logic_unsigned.vhd被已经被预先编译的IEEE库中,因此设计者在使用上面的操作时,需要使用IEEE.std_logic_unsigned.

21、all;否则编译时就会出错.用户可以自己包文件,编译到指定库中,并在源文件中引用这个包文件:usemy_library.my_package.all,中国最大的资料库下载,进程process,一个进程就相当于一个并行的语句,它的内部时串行的进程名:process(进程敏感信号列表)begin顺序描述语句;endprocessprocess语句从process开始,到endprocess结束,进程名可以省略。,中国最大的资料库下载,Process的例子,mux2:process(a,b,s)beginif(s=0)thenf=a;elsef=b;endif;endprocess;进程的所有输入信

22、号应该放在敏感表内,否则会造成前后仿真不符,中国最大的资料库下载,信号和变量,信号在电路模块之间传递信息,signal用在模块内部,具体表现在变量在entity的端口和architecture内说明,variable在process内部说明,无法传递到process外面赋给变量的值则立即成为当前值,而赋给信号的值必须在进程结束后才能成为当前值。,中国最大的资料库下载,顺序语句,Waitif;caseloop对于一般的可综合电路描述,这四种顺序语句已经足够了,中国最大的资料库下载,Wait语句,Waituntilclkeventandclk=1then用来描述寄存器在testbench中描述延迟

23、时可以使用waitforxxxns;敏感表相当于一个waiton语句,中国最大的资料库下载,进程的启动,process(a,b,s)beginif(s=0)thenf=a;elsef=b;endif;-waitona,b,s进程在这个地方挂起endprocess;,中国最大的资料库下载,IF语句,IFcondition1THENsequence_of_statements1ELSIFcondition2THENsequence_of_statements2ELSEsequence_of_statements3ENDIF;其中括号内为可选部分,它表示当条件1成立时,执行顺序语句序列1;当条件2成

24、立时,执行顺序语句序列2;否则执行顺序语句序列3。ELSEIF付句可以重复,但ELSE付句只能有一条。,中国最大的资料库下载,IF语句,注意如果if引导event代表时钟,此时不能有else复句用户组合逻辑的if,如果没有else付句,一定要在IF语句前面有缺省赋值,否则会造成不需要的latch,中国最大的资料库下载,IF语句,IF语句对应的电路就是多选电路,比如ifselect=1thenoutputsequence_of_statements1;ENDCASE其中条件有如下四种表达方法:WHEN值=WHEN值值值=WHEN值TO值=WHENothers=选择项必须覆盖表达式所有选项,不足时

25、其它选项包括在others项中。,中国最大的资料库下载,Case语句,Case语句对应的是无优先级的多选如果在case中给多个信号赋值一定要在前面有缺省赋值.大家看下面的程序有什么问题?,中国最大的资料库下载,Case语句,Process(decoder_in)beginCASEdecoder_inISWHEN“000”=decoder_outdecoder_outdecoder_outdecoder_outdecoder_outdecoder_outdecoder_outdecoder_outdecoder_outX);,中国最大的资料库下载,Loop语句,FORidentifierINdi

26、screte_rangeLOOPsequence_of_statemetnsENDLOOP;LOOP语句适用于描述有重复操作,或模块需要很强的迭代能力时使用。如下电路完成对输入的8位向量的翻转,即信号的高位与低位对调:FORiIN0TO7LOOPoutput_vector(i)=input_vector(7-i);ENDLOOP;,中国最大的资料库下载,loop语句,上述程序中i为循环变量,在VHDL中不允许任何对循环变量的赋值,也就是说不允许在任何函数返回值中存在循环变量,或在任何过程的输出与双向参量中存在循环变量。并且循环变量不用显式说明,它的作用域仅存在于循环语句内部,因此不允许在循环语

27、句内部存在于循环变量同名的变量或信号,中国最大的资料库下载,进制,B(binary)O(octal)X(Hexadecimal)通常情况下我们都用二进制对于位宽为4n的用16进制极为方便,在VHDL的语言规定中,可以使用=X”0F”赋值,但synopsys到9910才支持,如果工具不支持只能使用2进制.,中国最大的资料库下载,理解并行的概念,在architecture中的语句都是并行的,它们的执行顺序和位置无关,一个process相当于一个并行语句.比如在architecture中存在:D=A+E;A=B+C;将产生两个加法器,第二个输出作为第一个的一个输入在仿真时,当B或C变化时,激活语句2

28、,当A或E变化时,激活语句2.本质:在现实电路中,各个部件是并行工作的,一个部件的输入变化,才会引起这个部件的输出变换.,中国最大的资料库下载,避免组合环,在一般情况下不要使用组合环,尤其是不要用行为级描述组合环,如果需要使用电路图形式,并在设计中不要优化这个模块,中国最大的资料库下载,练习写一个带有异步复位同步置数的增量计数器,Clk时钟load同步置数信号rst异步清零data置入数据count计数器输出,中国最大的资料库下载,lIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcounte

29、rISPORT(clk:INstd_logic;load:INstd_logic;rst:INstd_logic;data:INstd_logic_vector(7downto0);count:OUTstd_logic_vector(7downto0);ENDcounter;ARCHITECTUREarc_counterOFcounterISSIGNALcnt:std_logic_vector(7downto0);BEGINPROCESS(clk,rst)BEGINIFrst=1THENcnt0);ELSIFclkeventANDclk=1THENIFload=1THENcnt=data;EL

30、SEcnt=cnt-1;ENDIF;ENDIF;ENDPROCESS;count=cnt;ENDarc_counter;,中国最大的资料库下载,敏感表,Process(a,b)begins=a;t=b;v=sort;endprocess,Process(a,b,s,t)begins=a;t=b;v=sort;endprocess,仿真和综合的区别?,结论:出现在赋值号左边的都应该写在敏感表中,中国最大的资料库下载,Latch,Process(x,z)beginifx=1theny=z;endif;endprocess;,X=0时需要保存原值,导致产生一个latch,使用VHDL描述基本电路,中

31、国最大的资料库下载,原因,采用HDL语言进行数字电路设计的流程中最重要的环节就是将语言描述转化为电路,将你的设计付诸实现,因此你必须知道所描述的语言对应的电路,只有这样综合工具才会输出一个可预知的、准确的、高质量的结果,满足设计者对电路功能、时序和面积上的要求。数字电路都是由一些基本单元连接而成的,只有能准确的描述这些常见电路才有可能使用这些模块构建更复杂的数字电路,因此熟悉数字电路中一些常见电路的描述是进行大规模系统设计的基础,中国最大的资料库下载,RTL电路模型,中国最大的资料库下载,结论,对于RTL电路的描述主要就是针对时序部件和组合逻辑的描述,如果设计者在使用VHDL语言进行描述时,能

32、遵照组合逻辑和时序电路描述的规范,那么就可以使综合工具明确设计者的意图,综合出设计者期望的电路。,中国最大的资料库下载,数字系统的结构,除了调用的一些宏单元模块时序电路、组合逻辑以及总线和存储单元,这四种基本单元就可以构成各种各样的数字电路。我个人的理解,不知道对不对?,中国最大的资料库下载,时序部件,时序逻辑电路在任一时刻的输出信号不但与当时的输入信号有关,而且还依赖于电路原来的状态,因此这类电路必须具有记录过去状态的能力。时序逻辑电路中最基本的记忆部件就是就是触发器(flip-flop)和锁存器(latch),它们都是一位的存储单元,多位存储单元就可以构成寄存器(Register),中国最

33、大的资料库下载,LATCH,锁存器是电平触发的,锁存器的值在时钟的一个逻辑状态可以更改,在另一个逻辑状态被保存下来,因此在使能阶段输入端的一个毛刺也会导致电路的误操作,无法阻止毛刺的传播,容易产生较多的竞争冒险现象。从数字电路教材中,我们可以知道锁存器的优点是面积小、功耗低、速度较快,因此在许多全定制和半定制ASIC设计中会使用锁存器单元,但在使用FPGA或CPLD实现电路时,应该避免使用锁存器。,中国最大的资料库下载,寄存器的描述,PROCESSBEGINWAITUNTIL(edge)ENDPROCESS;或PROCESS(sensitivitylist)BEGINIF(edge)ENDIF

34、;ENDPROCESS;,中国最大的资料库下载,时钟沿描述,使用WAIT语句时,进程不需要敏感表,WAITUNTIL语句就相当于敏感表的功能。在使用IF语句时应该将时钟信号放入敏感表中。对于时钟的跳变有两种描述方法,event属性或函数调用。如下所示:clkeventANDclk=1-上跳沿的event属性描述clkeventANDclk=0-下跳沿的event属性描述rising_edge(clk)-上跳沿的函数调用falling_edge(clk)-下跳沿的函数调用在电路设计中,应使用event属性来描述时钟跳变,因为一些VHDL的综合工具并不支持函数调用,并且函数只检测0到1和1到0的跳

35、变,无法检测出X到1或0到X,这对于使用的九值逻辑是不适合的。,中国最大的资料库下载,时钟沿描述,时钟沿在作为IF或ELSIF语句的条件时,只可以单独使用,不能和其他条件共存,如下面的语句就是错误的:IF(edgeANDrst=1)THEN同时当某一IF语句或ELSIF语句后有时钟沿做条件时,就不可以在有ELSE付句,如下面的语句描述也是错误的:IFrst=1THENSequential_statementELSIF(edge)THENSequential_statementELSESequential_statementENDIF;,中国最大的资料库下载,异步复位和同步复位,记忆部件在电路加

36、电后其状态是不确定的,它的初值应由复位信号来设置,根据设置的时机不同,可分为同步置位和异步置位。所谓同步置位是指置位信号只有在给定的时钟沿下才可以完成工作;而异步复位是指复位信号一旦生效存储部件就会被置位。其原理如下图所示,中国最大的资料库下载,Asynreset和synreset,中国最大的资料库下载,异步复位的VHDL描述,PROCESS(sensitivitylist)BEGINIF(reset)THENELSIF(set)THENELSIF(edge)THENENDIF;ENDPROCESS;此时的敏感表只需要异步负位信号和时钟信号即可,IF语句相对于WAIT语句更灵活一些,中国最大的

37、资料库下载,强调,在FPGA设计中尽量不要使用latch,中国最大的资料库下载,触发器描述,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdffISPORT(data:INstd_logic;clk:INstd_logic;q:OUTstd_logic);ENDdff;ARCHITECTUREdffOFdffISBEGINPROCESSBEGINWAITUNTILclkeventANDclk=1;q=data;ENDPROCESS;ENDdff;,中国最大的资料库下载,电路图,中国最大的资料库下载,带异步复位上沿的D触发器,LIBRARYIEEE;U

38、SEIEEE.STD_LOGIC_1164.ALL;ENTITYdff_asyn_resetISPORT(data:INstd_logic;clk:INstd_logic;reset:INstd_logic;q:OUTstd_logic);ENDdff_asyn_reset;ARCHITECTUREdff_asyn_resetOFdff_asyn_resetISBEGINPROCESS(clk,reset)BEGINIFreset=0THENq=0;ELSIFclkeventANDclk=1THENq=data;ENDIF;ENDPROCESS;ENDdff_asyn_reset;,中国最大的

39、资料库下载,电路图,中国最大的资料库下载,带异步置位复位的上跳沿D触发器,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff_asynISPORT(data:INstd_logic;clk:INstd_logic;preset:INstd_logic;reset:INstd_logic;q:OUTstd_logic);ENDdff_asyn_preset;ARCHITECTUREdff_asynOFdff_asynISBEGINPROCESS(clk,preset,reset)BEGINIFpreset=0THENq=1;ELSIFreset=0T

40、HENq=0;ELSIFclkeventANDclk=1THENq=data;ENDIF;ENDPROCESS;ENDdff_asyn;,中国最大的资料库下载,电路图,中国最大的资料库下载,带异步复位和输入使能的上跳沿D触发器,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdff_ck_enISPORT(data:INstd_logic;clk:INstd_logic;reset:INstd_logic;en:INstd_logic;q:OUTstd_logic);ENDdff_ck_en;ARCHITECTUREdff_ck_enOFdff_ck_

41、enISBEGINPROCESS(clk,reset)BEGINIFreset=0THENq=0;ELSIFclkeventANDclk=1THENIFen=1THENq=data;ENDIF;ENDIF;ENDPROCESS;ENDdff_ck_en;,中国最大的资料库下载,电路图,中国最大的资料库下载,计数器,计数器是数字系统中使用最多的时序电路。它不仅能用于对时钟脉冲计数,还可用于定时、分频、产生节拍脉冲以及进行数字运算等。稍微复杂的数字系统,几乎都包含计数器。按计数器中触发器翻转的次序,可以把计数器分为同步式和异步式两种。在同步计数器中,当时钟脉冲输入时触发器的翻转是同时的,而在异步计

42、数器中,触发器则不是同时翻转的一般的设计中都使用同步计数器,中国最大的资料库下载,带异步清零和计数使能的8位同步计数器,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcounter8ISPORT(clk:INstd_logic;en:INstd_logic;rst:INstd_logic;count:OUTstd_logic_vector(7downto0);ENDcounter8;ARCHITECTUREcounter8OFcounter8ISSIGNALcnt:std_logic_ve

43、ctor(7downto0);BEGINPROCESS(clk,en,cnt,rst)BEGINIFrst=0THENcnt0);ELSIFclkeventANDclk=1THENIFen=1THENcnt=cnt+1;ENDIF;ENDIF;ENDPROCESS;count=cnt;ENDcounter8;,中国最大的资料库下载,RTL视图,中国最大的资料库下载,建议,大家在初期的练习中,对于简单电路可以使用synplify综合后观察它的RTL视图,比较自己对模块的基本理解,可以提高对vhdl描述和综合的认识。,中国最大的资料库下载,移位操作,LIBRARYIEEE;USEIEEE.STD_

44、LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYshiftISPORT(clk:INstd_logic;rst:INstd_logic;data:INstd_logic;Q:OUTstd_logic_vector(7downto0);ENDshift;ARCHITECTUREshiftOFshiftISSIGNALQ_temp:std_logic_vector(7downto0);BEGINPROCESS(rst,clk)BEGINIFrst=1THENQ_temp0);ELSIFclkeventANDclk=1THENQ_temp=Q_

45、temp(6downto0)elsifclkeventandclk=1thenifword_counter_enable=1thenword_counter=word_counter+1;endif;endif;endprocess;process(word_coutner)beginifword_counter=“001”thenword_syn=1;elseword_syn=0;endif;endprocess;,中国最大的资料库下载,组合电路的描述,在RTL电路模型中,处于各个寄存器之间的部分都是组合逻辑电路,相对于寄存器的描述,组合逻辑的描述相对模糊,设计者只能大约的估计出组合部分的面

46、积和时延,而组合逻辑在很大程度上决定着电路的面积和速度,因此对于组合电路的准确描述就显得十分重要。只有了解基本组合单元的特点,才能使由VHDL语言描述产生的电路符合设计者时序和面积上的要求。组合逻辑的特点是在任何时刻电路的输出仅仅取决于该时刻的输入信号,而与这一时刻输入信号作用前电路原来的状态没有任何关系。在电路结构上基本是由逻辑门组成,只有从输入到输出的通路,没有从输出反馈到输入的回路。虽然逻辑电路由于具体问题的不同而千差万别,但其中也有若干种电路在各类数字系统中大量的出现,并且其它许多电路都是在它们的基础上变化得到的,下面就介绍如何用VHDL语言来描述这些基本电路。,中国最大的资料库下载,

47、多选电路,ENTITYpri_muxISPORT(input_a:INstd_logic;input_b:INstd_logic;input_c:INstd_logic;input_d:INstd_logic;select_a:INstd_logic;select_b:INstd_logic;select_c:INstd_logic;pout:OUTstd_logic);ENDpri_mux;ARCHITECTUREpri_muxOFpri_muxISBEGINPROCESS(input_a,input_b,input_c,input_d,select_a,select_b,select_c)

48、BEGINIFselect_a=1THENpout=input_a;ELSIFselect_b=1THENpout=input_b;ELSIFselect_c=1THENpout=input_c;ELSEpoutpoutpoutpoutpoutpoutYoutYoutYoutYoutYoutYoutYoutYoutYout0);ENDCASE;ENDIF;ENDPROCESS;ENDdecoder;,中国最大的资料库下载,电路图,中国最大的资料库下载,算术运算电路,在数字电路中加减运算都是采用补码通过加法器来实现的,普通的乘除法也是分解成加和移位操作分步完成的,因此加法器是所有算术运算电路中最基本的部件。许多处理器(比如8031、8086和80286等)的ALU单元就是由函数发生器和加法器构成的,它是数据通路上最关键的部件之一,它的时延直接影响着系统工作频率。从一些计算机组成原理的教材上可以知道加法器分为串行进位加法器和超前进位加法器,设计者可以根据系统的需要决定采用哪一种形式。在原来的设计方法中,加法器的形式一旦确定就很难更改,除非对这个模块重新设计,灵活性和重用性都很差;采用VHDL来描述加法电路时灵活性就很大,即可以指定加法器的结构,也可以在综合时通过施加约束条件来控制

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > PPT模板

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服