下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VHDL语言教程

VHDL语言教程.ppt

VHDL语言教程

坤哥
2013-10-22 0人阅读 举报 0 0 暂无简介

简介:本文档为《VHDL语言教程ppt》,可适用于高等教育领域

VHDL语言VHDL语言VHDL:VHSICHardwareDescriptionLanguageVHDL语言基础VHDL基本结构VHDL语句状态机在VHDL中的实现常用电路VHDL程序VHDL仿真VHDL综合优点:HDL设计的电路能获得非常抽象级的描述。如基于RTL(RegisterTransferLevel)描述的IC可用于不同的工艺。HDL设计的电路在设计的前期就可以完成电路的功能级的验证。HDL设计的电路类似于计算机编程。HDLHardwareDescriptionLanguage一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率缩短设计周期减小设计成本可在芯片制造前进行有效的仿真和错误检测。常用的HDL语言:VHDL、VerilogHDLVHDL是美国国防部在世纪年代初为实现其高速集成电路硬件VHSIC计划提出的描述语言IEEE从年开始致力于VHDL标准化工作融合了其它ASIC芯片制造商开发的硬件描述语言的优点于年形成了标准版本(IEEEstd)。年我国国家技术监督局推荐VHDL做为电子设计自动化硬件描述语言的国家标准。VHDL概述:VHDL优点:覆盖面广系统硬件描述能力强是一个多层次的硬件描述语言VHDL语言具有良好的可读性既可以被计算机接受也容易被人们所理解VHDL语言可以与工艺无关编程VHDL语言已做为一种IEEE的工业标准便于使用、交流和推广。VHDL优点:设计的最终实现取决于针对目标器件的编程器工具的不同会导致综合质量不一样。标识符(Identifiers)要求:首字符必须是字母末字符不能为下划线不允许出现两个连续的下划线不区分大小写VHDL定义的保留字(关键字)不能用作标识符标识符字符最长可以是个字符。注释由两个连续的虚线(--)引导。VHDL语言基础标识符用来定义常数、变量、信号、端口、子程序或参数的名字由字母(A~Za~z)、数字(~)和下划线()字符组成。例如:ABSACCESSAFTERALLANDARCHITECTUREARRAYATTRIBUTEBEGINBODYBUFFERBUSCASECOMPONENTCONSTANTDISCONNECTDOWNTOELSEELSIFENDENTITYEXITFILEFORFUNCTIONGENERICGROUPIFINPUREININOUTISLABELLIBRARYLINKAGELOOPMAPMODNANDNEWNEXTNORNOTOFONOPENOROTHERSOUTPACKAGEPOUTPROCEDUREPROCESSPURERANGERECODEREMREPORTRETURNROLRORSELECTSHAREDSIGNALSLASLLSRASUBTYPETHENTRANSPORTTOTYPEUNAFFECTEDUNITSUNTILUSEVARIABLEWAITWHENWHILEWITHXORXNOR关键字(保留字):关键字(keyword)是VHDL中具有特别含义的单词只能做为固定的用途用户不能用其做为标识符。数据对象(DateObjects)常量ConstantConstantbuswidth:integer:=定义总线宽度为常数数据对象包括常量、变量、信号和文件四种类型。常量是对某一常量名赋予一个固定的值而且只能赋值一次。通常赋值在程序开始前进行该值的数据类型则在说明语句中指明。Constant常数名:数据类型:=表达式ConstantVcc:real:=定义Vcc的数据类型是实数赋值为V常量所赋的值应和定义的数据类型一致常量在程序包、实体、构造体或进程的说明性区域内必须加以说明。定义在程序包内的常量可供所含的任何实体、构造体所引用定义在实体说明内的常量只能在该实体内可见定义在进程说明性区域中的常量只能在该进程内可见。Variable变量名:数据类型:=初始值Variablecount:integerto:=定义count整数变量变化范围~初始值为。变量Variable变量只能在进程语句、函数语句和过程语句结构中使用。变量的赋值是直接的非预设的分配给变量的值立即成为当前值变量不能表达“连线”或存储元件不能设置传输延迟量。变量赋值语句:目标变量名:=表达式变量定义语句:x:=实数变量赋值为Y:=x运算表达式赋值注意表达式必须与目标变量的数据类型相同A(to):=(“”)位矢量赋值Signal信号名:数据类型:=初始值Signalclock:bit:=‘0’定义时钟信号类型初始值为信号Signal信号表示逻辑门的输入或输出类似于连接线也可以表达存储元件的状态。信号通常在构造体、程序包和实体中说明。信号定义语句:Signalcount:BITVECTOR(DOWNTO)定义count为位位矢量信号赋值语句:目标信号名<=表达式x<=Z<=xafterns在ns后将x的值赋予z数据类型布尔:(Boolean)位:(Bit)TYPEBITIS(‘’,’’)取值为和用于逻辑运算位矢量:(BitVector)TYPEBITVECTORISARRAY(Naturalrange<>)OFBIT基于Bit类型的数组用于逻辑运算SIGNALa:BitVector(TO)SIGNALa:BitVector(DOWNTO)VHDL的预定义数据类型在VHDL标准程序包STANDARD中定义好实际使用过程中已自动包含进VHDL源文件中不需要通过USE语句显式调用。TYPEBOOLEANIS(FALSE,TRUE)取值为FALSE和TRUE不是数值不能运算一般用于关系运算符整数:(Integer)取值范围()~()可用位有符号的二进制数表示variablea:integerrangeto在实际应用中VHDL仿真器将Integer做为有符号数处理而VHDL综合器将Integer做为无符号数处理要求用RANGE子句为所定义的数限定范围以便根据范围来决定表示此信号或变量的二进制数的位数。字符:(Character)TYPECHARACTERIS(NUL,SOH,STX,…,‘’,‘!’,…)通常用‘’引起来区分大小写字符串:(String)VARIABLEstringvar:STRING(TO)stringvar:=“ABCD”通常用“”引起来区分大小写实数:(Real)取值范围E~E仅用于仿真不可综合十进制浮点数##e八进制浮点数E十进制浮点数时间:(Time)物理量数据完整的包括整数和单位两个部分用至少一个空格隔开仅用于仿真不可综合fs,ps,ns,us,ms,sec,min,hr错误等级(SeverityLevel):表示系统状态仅用于仿真不可综合TYPEseveritylevelIS(NOTE、WARNING、ERROR、FAILURE)IEEE预定义标准逻辑位与矢量IEEE预定义标准逻辑位与矢量标准逻辑位(StdLogic)标准逻辑位矢量(StdLogicvector)基于StdLogic类型的数组使用StdLogic和StdLogicVector要调用IEEE库中的StdLogic程序包就综合而言能够在数字器件中实现的是“-、、、Z”四种状态。在条件语句中必须要全面考虑StdLogic的所有可能取值情况否则综合器可能会插入不希望的锁存器。U:UninitializedX:ForcingUnkown:Forcing:ForcingZ:HighImpedanceW:WeakUnknownL:WeakH:Weak:Don’tcare枚举:typestatesis(idledecisionreadwrite)typebooleanis(falsetrue)typebitis(‘’‘’)数组:typevaluetypeisarray(downto)ofintegertypematrixtypeisarray(to,to)ofstdlogic用户自定义TYPE数据类型名IS数据类型定义OF基本数据类型或TYPE数据类型名IS数据类型定义SUBTYPE子类型名IS基本数据类型定义RANGE约束范围subtypedigitisintegerrangeto数据类型转换VHDL为强定义类型语言不同类型的数据不能进行运算和直接赋值。类型标记法VariableA:integerVariableB:realA=integer(B)B=real(A)函数法Convinterger(A)由stdlogic转换为integer型在stdlogicunsigned包。常数转换法常量转换法Typeconvtableisarray(stdlogic)ofbitConstanttable:convtable:=(‘’|’L’=>’’,‘’|’H’=>’’,others=>’’)Signala:bitsignalb:stdlogicA<=table(b)将stdlogic型转换为bit型具有转换表性质的常数在“STDLOGIC”、“STDLOGICARITH”和“STDLOGICUNSIGNED”的程序包中提供的数据类型变换函数。属性属性属性提供的是关于信号、类型等的指定特性。‘event:若属性对象有事件发生则生成布尔值“true”常用来检查时钟边沿是否有效。上升沿:Clock’EVENTANDClock=‘’’range:生成一个限制性数组对象的范围’left:生成数据类型或数据子类型的左边界值’right,’high,’low,’length’range:“ton”’reverserange:“ndownto”运算符运算符算术运算符:+-*MODREMSLLSRLSLASRAROLROR**ABS关系运算符:==<><=>=逻辑运算符:ANDORNANDNORXNORNOTXOR赋值运算符:<=:=关联运算符:=>其他运算符:+-并置操作符SIGNALa:STDLOGICVECTOR(DOWNTO)SIGNALd:STDLOGICVECTOR(DOWNTO)a<=''''d()''元素与元素并置并置后的数组长度为IFad=""THEN–在IF条件句中可以使用并置符运算符优先级别逻辑、算术运算符(NOT**ABS)乘法运算符(MODREM*)正负运算符:+-加减、并置运算符:+-关系运算符:==<><=>=逻辑运算符:ANDORNANDNORXNORNOTXOR移位运算符的左边为一维数组其类型必须是BIT或BOOLEAN右边必须是整数移位次数为整数的绝对值。移位运算符操作示意图“”SLL=“”“”SRL=“”“”SLA=“”“”SRA=“”“”ROL=“”“”ROR=“”SLL:将位向量左移右边移空位补零SRL:将位向量右移左边移空位补零SLA:将位向量左移右边第一位的数值保持原值不变SRA:将位向量右移左边第一位的数值保持原值不变ROL和ROR:自循环左右移位。取余运算(aREMb)的符号与a相同其绝对值小于b的绝对值。例如:()REM=()REM=()取模运算(aMODb)的符号与b相同其绝对值小于b的绝对值。例如:()MOD=MOD()=()VHDL基本结构VHDL基本结构实体(Entity):描述所设计的系统的外部接口信号定义电路设计中所有的输入和输出端口结构体(Architecture):描述系统内部的结构和行为包集合(Package):存放各设计模块能共享的数据类型、常数和子程序等配置(Configuration):指定实体所对应的结构体库(Library):存放已经编译的实体、结构体、包集合和配置。LIBRARYIEEE库、程序包的说明调用USEIEEEStdLogicALLENTITYFreDeviderIS实体声明PORT(Clock:INStdlogicClkout:OUTStdlogic)ENDARCHITECTUREBehaviorOFFreDeviderIS结构体定义SIGNALClk:StdLogicBEGINPROCESS(Clock)BEGINIFrisingedge(Clock)THENClk<=NOTClkENDIFENDPROCESSClkout<=ClkENDVHDL的基本设计单元结构:程序包说明、实体说明和结构体说明三部分。实体(Entity)实体(Entity)ENTITY实体名ISGENERIC(常数名:数据类型:设定值)PORT(端口名:端口方向端口类型端口名:端口方向端口类型端口名n:端口方向端口类型)END实体名实体描述了设计单元的输入输出接口信号或引脚是设计实体经封装后对外的一个通信界面。ENTITYFreDeviderISPORT(Clock:INStdlogicClokout:OUTStdlogic)END实体名最后一条端口声明语句无分号端口方向端口类型端口名实体名由设计者自由命名用来表示被设计电路芯片的名称但是必须与VHDL程序的文件名称相同。要与文件名一致例如:GENERIC(wide:integer:=)说明宽度为GENERIC(tmp:integer:=ns)说明延时ns类属说明类属为设计实体与外界通信的静态信息提供通道用来规定端口的大小、实体中子元件的数目和实体的定时特性等。格式:GENERIC(常数名:数据类型:设定值∶常数名:数据类型:设定值)端口方向:INOUTINOUTBUFFER“OUT”和“BUFFER”都可定义输出端口若实体内部需要反馈输出信号则输出端口必须被设置为“BUFFER”而不能为“OUT”。同方向、同类型的端口可放在同一个说明语句中。ENTITYFulladderISPORT(a,b,c:INBITsum,carry:OUTBIT)ENDFulladder结构体(Architecture)结构体(Architecture)ARCHITECTURE结构体名OF实体名IS声明语句BEGIN功能描述语句END结构体名用于声明该结构体将用到的信号、数据类型、常数、子程序和元件等。声明的内容是局部的。具体描述结构体的功能和行为。结构体定义了设计单元具体的功能描述了该基本设计单元的行为、元件和内部的连接关系。一个实体可对应多个结构体每个结构体代表该实体功能的不同实现方案或不同实现方式。同一时刻只有一个结构体起作用通过CONFIGURATION决定用哪个结构体进行仿真或综合。在结构体描述中具体给出了输入、输出信号之间的逻辑关系。ARCHITECTUREBehaviorOFFreDeviderIS结构体定义SIGNALClk:StdLogic信号声明BEGINPROCESS(Clock)BEGINIFrisingedge(Clock)THENClk<=NOTClkENDIFENDPROCESSClkout<=ClkEND库、程序包的调用库、程序包的调用LIBRARYIEEEUSEIEEEStdLogicALLLIBRARY库名USE库名程序包名项目名调用此程序包中所有的资源LIBRARYIEEEUSEIEEEStdLogicALLUSEIEEEStdLogicArithALLUSEIEEEStdLogicUnsignedALLVHDL语句VHDL语句并行语句在结构体中的执行是同时进行执行顺序与书写顺序无关。并行信号赋值语句并行信号赋值语句简单赋值语句目标信号名<=表达式目标信号的数据类型与右边表达式一致ARCHITECTUREBehaviorOFFreDeviderISSIGNALClk:StdLogicBEGINPROCESS(Clock)BEGINIFrisingedge(Clock)THENClk<=NOTClkENDIFENDPROCESSClkout<=Clk选择信号赋值语句WITH选择表达式SELECT赋值目标信号<=表达式WHEN选择值表达式WHEN选择值表达式nWHENOTHERS选择值要覆盖所有可能情况若不能一一指定用OTHERS为其他情况找个出口选择值必须互斥不能出现条件重复或重叠的情况。LIBRARYIEEEUSEIEEEStdLogicALLENTITYMUXISPORT(DataDataDataData:INStdLogicVECTOR(DOWNTO)Sel:INStdLogicVector(DOWNTO)DOUT:OUTStdLogicVector(DOWNTO))ENDARCHITECTUREDataFlowOFMUXISBEGINWITHSelSELECTDOUT<=DataWHEN“”DataWHEN“”DataWHEN“”DataWHEN“”“”WHENOTHERSENDX多路选择器条件信号赋值语句条件信号赋值语句赋值目标信号<=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE表达式nWHEN赋值条件nELSE表达式各赋值语句有优先级的差别按书写顺序从高到低排列各赋值条件可以重叠。LIBRARYIEEEUSEIEEEStdLogicALLENTITYPriorityEncoderISPORT(I:INStdLogicVECTOR(DOWNTO)A:OUTStdLogicVector(DOWNTO))ENDARCHITECTUREDataFlowOFPriorityEncoderISBEGINA<=“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”WHENI()=‘’ELSE“”END进程语句进程本身是并行语句但内部是顺序语句进程只有在特定的时刻(敏感信号发生变化)才会被激活。[进程标号:]PROCESS(敏感信号参数表)[声明区]BEGIN顺序语句 ENDPROCESS[进程标号]在进程中起作用的局部变量一个进程可以有多个敏感信号任一敏感信号发生变化都会激活进程进程语句定义顺序语句模块用于将从外部获得的信号值或内部的运算数据向其他的信号进行赋值。进程的工作原理进程的工作原理当某个敏感信号的值发生变化时每个进程语句立即完成进程内顺序语句所定义的功能行为。执行过程终止顺序语句所定义的功能行为的结果可以赋值给信号并通过信号被其他的进程读取或赋值。进程与时钟进程与时钟在每个上升沿启动一次进程(执行进程内所有的语句)。上升沿描述:Clock’EVENTANDClock=‘’下降沿描述:Clock’EVENTANDClock=‘’上升沿描述:risingedge(Clock)下降沿描述:fallingedge(Clock)LIBRARYIEEEUSEIEEEStdLogicALLENTITYFreDeviderISPORT(Clock:INStdlogicClkout:OUTStdlogic)ENDARCHITECTUREBehaviorOFFreDeviderISSIGNALClk:StdLogicBEGINPROCESS(Clock)--将时钟作为进程的敏感信号BEGINIFrisingedge(Clock)THENClk<=NOTClk--在时钟上升沿执行Clk<=NOTClkENDIFENDPROCESSClkout<=ClkENDLIBRARYIEEEUSEIEEEStdLogicALLENTITYCounterISPORT(RESET:INStdLogic--异步复位信号Clock:INStdlogic--时钟信号NUM:BUFFERIntegerRANGETO)--计数器输出值ENDARCHITECTUREBehaviorOFCounterISBEGINPROCESS(RESET,Clock)--将复位、时钟作为进程的敏感信号BEGINIFRESET=‘’THENNum<=--复位时Num清ELSIFrisingedge(Clock)THENIFNum=THENNum<=--如果Num=就清ELSENum<=Num--否则自加ENDIFENDIFENDPROCESSEND仿真波形:LIBRARYIEEEUSEIEEEStdLogicALLUSEIEEEStdLogicunsignedALLENTITYCounterISPORT(clr:INStdLogicinl:instdlogicvector(downto)outl:outstdlogicvector(downto)--计数器输出值)ENDARCHITECTUREBehaviorOFCounterISBEGINPROCESS(clr,inl)--进程的敏感信号BEGINIF(clr=‘’orinl=“”)THENoutl<=“”ELSEoutl<=inlENDIFENDPROCESSEND重载符号在库IEEEStdLogicunsigned中预先声明LIBRARYIEEEUSEIEEEStdLogicALLUSEIEEEStdLogicunsignedALLENTITYCounterISPORT(clrclk:INStdLogiccnt:bufferstdlogicvector(downto)--计数器输出值)ENDARCHITECTUREBehaviorOFCounterISBEGINPROCESSBEGINWaituntilclk’eventandclk=‘’IF(clr=‘’orcnt=)THENcnt<=“”ELSEcnt<=cntENDIFENDPROCESSENDWait语句信号赋值有寄存功能引入时序器件进程的启动进程的启动当process的敏感信号参数表重没有列出任何敏感信号时进程通过wait语句启动。ARCHITECTUREBehaviorOFstateISBEGINPROCESS--敏感信号列表为空BEGINwaituntilClock--等待clock激活进程IF(drive=‘’)THENCASEoutputISWHENs=>output<=sWHENs=>output<=sWHENs=>output<=sWHENs=>output<=sENDCASEENDIFENDPROCESSEND进程注意事项:进程注意事项:进程本身是并行语句但内部为顺序语句进程在敏感信号发生变化时被激活在使用了敏感表的进程中不能含wait语句在同一进程中对同一信号多次赋值只有最后一次生效在不同进程中不可对同一信号进行赋值一个进程不可同时对时钟上、下沿敏感。进程中的信号赋值是在进程挂起时生效的而变量赋值是即时生效。相对于结构体而言信号具有全局性是进程间进行并行联系的重要途径。进程为综合器支持且其建模方式直接影响仿真和综合结果综合后对应于进程的硬件结构对进程中所有可读入信号都是敏感的。SIGNALA,B:IntegerRANGETO:PROCESS(Clock)BEGINIFrisingedge(Clock)THEN:B<=AB<=B:ENDIFENDPROCESSPROCESS(Clock)BEGINIFrisingedge(Clock)THEN:ELSIFfallingedge(Clock)THEN:ENDIFENDPROCESS元件例化语句元件例化语句元件例化引入一种连接关系将预先设计好的实体定义为元件并将此元件与当前设计实体中的端口相连接从而为当前设计实体引入一个新的低一级的设计层次。Component元件名port(端口名表)Endcomponent元件名例化名:元件名portmap(元件端口名=>连接端口名,…)要插在电路系统板上的芯片较大的电路系统电路板上准备接受芯片的插座元件例化语句列出对外通信的各端口名当前系统与准备接入的元件对应端口相连的通信端口。名字关联方式:portmap语句中位置可以任意位置关联方式:端口名和关联连接符号可省去连接端口名的排列方式与所需例化的元件端口定义中的端口名相对应。位二进制全加器内部端口外部端口外部端口内部端口端口连线顺序语句顺序语句顺序语句仅出现在进程和子程序中。顺序语句综合后映射为实际的门电路系统一上电门电路开始工作。电路可实现逻辑上的顺序执行实际上所有门电路是并行工作的。赋值语句流程控制语句空操作语句等待语句子程序调用语句返回语句赋值语句赋值语句ENTITYTESTSignalISPORT(Reset,Clock:INStdlogicNumA,NumB:OUTIntegerRANGETO)ENDARCHITECTURETESTOFTESTSignalISSIGNALA,B:IntegerRANGETOBEGINPROCESS(RESET,Clock)VARIABLEC:IntegerRANGETOBEGINIFRESET=‘’THENA<=B<=C:=ELSEIFrisingedge(Clock)THENC:=CA<=CB<=AENDIFENDPROCESSNumA<=ANumB<=BEND流程控制语句IF语句:IF条件式THEN顺序语句ENDIFIF条件式THEN顺序语句ELSE顺序语句ENDIF有优先级用IF语句描述组合逻辑电路时务必涵盖所有的情况否则综合后将引入锁存器!ENTITYEncoderISPORT(En:INStdlogicI:INStdlogicVetor(DOWNTO)A:OUTStdlogicVetor(DOWNTO)Idle:OUTStdlogic)ENDARCHITECTUREBehaviorOFEncoderISBEGINPROCESS(En,I)BEGINIFEn=‘’THENIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSIFIFI()=‘’THENA<=“”Idle<=‘’ELSEA<=“”Idle<=‘’ENDIFENDPROCESSEND引入ELSE否则综合器将引入锁存器。不完整条件语句与时序电路ENTITYCOMPBADISPORT(a:INBITb:INBITq:OUTBIT)ENDARCHITECTUREoneOFCOMPBADISBEGINPROCESS(a,b)BEGINIFa>bTHENq<=''ELSIFa<bTHENq<=‘’未提及当a=b时q作何操作ENDIFENDPROCESSEND不完整条件语句与时序电路综合结果:综合结果:完整条件语句ENTITYCOMPGOODISPORT(a:INBITb:INBITq:OUTBIT)ENDARCHITECTUREoneOFCOMPGOODISBEGINPROCESS(a,b)BEGINIFa>bTHENq<=''ELSEq<=''ENDIFENDPROCESSEND完整条件语句CASE语句选择值不可重复或重叠当CASE语句的选择值无法覆盖所有的情况时,要用OTHERS指定未能列出的其他所有情况的输出值LIBRARYIEEEUSEIEEEStdLogicALLENTITYMUXISPORT(DataDataDataData:INStdLogicVECTOR(DOWNTO)Sel:INStdLogicVector(DOWNTO)DOUT:OUTStdLogicVector(DOWNTO))ENDARCHITECTUREDataFlowOFMUXISBEGINCASESelISWHEN“”=>DOUT<=DataWHEN“”=>DOUT<=DataWHEN“”=>DOUT<=DataWHEN“”=>DOUT<=DataWHENOTHERS=>DOUT<=“”ENDCASEENDPROCESSENDLOOP语句LOOP标号:FOR循环变量IN循环次数范围LOOP顺序语句ENDLOOPLOOP标号临时变量仅在此LOOP中有效无需事先定义。…TO……DOWNTO…从初值开始每执行完一次后递增(递减)直到终值为止。Sum:=FORiINTOLOOPSum:=SumiENDLOOP循环次数只能用具体数值表达否则不可综合NEXT语句NEXT语句主要用在LOOP语句执行中有条件或无条件转向控制跳向LOOP语句的起点。NEXT循环标号WHEN条件NEXT--无条件终止当前循环跳回到本次循环LOOP语句处开始下一次循环。NEXTLOOP标号--当有多重LOOP语句嵌套时跳转到指定标号LOOP语句处重新开始执行循环操作。NEXTLOOP标号WHEN条件表达式--条件表达式为TRUE执行NEXT语句进入跳转操作否则向下执行。EXIT语句EXIT语句主要用在LOOP语句执行中有条件或无条件内部转向控制跳向LOOP语句的终点用于退出循环。当程序需要处理保护、出错和警告状态时语句能提供一个快捷、简便的方法。EXIT循环标号WHEN条件EXIT--无条件从当前循环中退出。EXITLOOP标号--程序执行退出动作无条件从循环标号所标明的循环中退出。EXITLOOP标号WHEN条件表达式--条件表达式为TRUE程序从当前循环中退出。语句为空操作语句一般用于CASE中表示在某些情况下对输出不作任何改变隐含锁存信号。不能用于纯组合逻辑电路。WAIT语句在进程或过程中执行到WAIT语句时程序将被挂起并设置好再次执行的条件。WAITON信号表UNTIL条件表达式FOR时间表达式WAIT--未设置停止挂起的条件表示永远挂起。WAITON信号表--敏感信号等待语句敏感信号的变化将结束挂起再次启动进程。WAITUNTIL条件表达式--条件表达式为中所含的信号发生变化且满足WAIT语句所设条件则结束挂起再次启动进程。WAITFOR时间表达式--超时等待语句从执行当前的WAIT语句开始在此时间段内进程处于挂起状态超过这一时间段后程序自动恢复执行。Configuration配置名of实体名is配置说明End配置名配置语句配置主要为顶层设计实体指定结构体或为参与例化的元件实体指定所希望的结构体以层次方式来对元件例化做结构配置。Configuration配置名of实体名is配置说明End配置名为顶层设计实体指定结构体Entitynandisport(a,b:instdlogicc:outstdlogic)EndentitynandArchitectureoneofnandisbeginc<=not(aandb)EndarchitectureoneArchitecture

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/112

VHDL语言教程

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利