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

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VHDL语言详解

VHDL语言详解.doc

VHDL语言详解

钱小荣
2017-09-18 0人阅读 举报 0 0 暂无简介

简介:本文档为《VHDL语言详解doc》,可适用于综合领域

VHDL语言详解主讲:张晓磊内容提要VHLD概述VHLD的一些基本概念VHDL的数据对象数据类型及类型转换运算符等VHDL的顺序描述语句VHDL的并行描述语句VHDL的子程序结构VHDL库、程序包和配置VHDL的预定义属性VHDL的重载VHDL结构体的描述方式。概述()VeryhighspeedintegratedHardwareDescriptionLanguage(VHDL)发展史年美国国防部的VHSIC(VeryHighSpeedIntegratedCircuit)计划年正式诞生―VHSIC硬件描述语言‖年月VHDL被接纳为IEEE标准年该标准被修订更新为新的VHDL标准IEEE概述()用语言的方式而非图形等方式描述硬件电路容易修改容易保存特别适合于设计的电路有:复杂组合逻辑电路如:译码器、编码器、加减法器、多路选择器、地址译码器…状态机等等……概述()另一种硬件描述语言VerilogHDL到年PhilMoore在GatewayDesignAutomation发明年被Candence收购年月通过IEEE标准(IEEE)语法上Verilog基于C语言简单易学概述()VHDLvsVerilogHDLUSAIBM,TI,ATT,INTEL…VHDLUSASiliconValley…VerilogEuropeVHDLJapanVerilogKoreaVHDLVHDL的一些基本概念基本概念()VHDL的功能描述输入端口输出端口描述电路的行为和功能InputportOutputportfunctions基本概念()VHDL的一些规定(‘的字符和―‖的字符串除外)每个逻辑行以一个作为结束标志注释说明使用双短划线―––‖开头()用户定义的变量名、实体名等以字母开头下划线连用命名不能与相同在MAXPLUSII中存盘应与设计的。基本概念()基本结构USE定义区PACKAGE定义区ENTITY定义区ARCHITECTURE定义区CONFIGURATION定义区定义电路实体的外观IO接口的规格决定哪一个architecture被使用调用库和程序包自定义程序包描述电路内部的功能说明电路执行什么动作或功能基本概念()VHDLENTITYmuxaISPORT(a,b:INBITs:INBITy:OUTBIT)ENDENTITYmuxaARCHITECTUREoneOFmuxaISBEGINyqqqqqqqq)oflogicVHDL语言的数据类型()记录类型记录元素可以是任何类型的标量元素可以属于相同的也可以是不同的类型。定义的格式:Type记录类型名isrecord记录元素名:数据类型名记录元素名:数据类型名……endrecordVHDL语言的数据类型()子类型上述基本类型的子集对选择信号赋值语句或case语句进行约束建立决断子类型子类型与其基本类型之间可以相互赋值如果基本类型向子类型赋值该基本类型对象的值要在子类型的范围内。不能用array来定义新的子类型定义的格式SubtypeisVHDL语言的数据类型()的例子:SubtypenaturalisintegerrangetoSubtypebyteisstdlogicvector(downto)SubtypestdlogicisresolvedstdulogicSubtypeXisresolvedstdulogicrangeX‘to‘的例子:Subtypebyteisarray(downto)ofstdlogicTYPE与SUBTYPE的区别TYPE定义的类型是SUBTYPE仅仅是某基本类型的libraryieeeuseieeestdlogicallentitytestisport(a:instdlogicvector(downto)s:outstdlogicvector(downto))endtestarchitecturettoftestistypebyteisarray(downto)ofstdlogicsignaldata:bytebegindata大于枚举与整数类型及对应的一维数组=大于等于枚举与整数类型及对应的一维数组AND与BITBOOLEANSTDLOGICOR或BITBOOLEANSTDLOGICNAND与非BITBOOLEANSTDLOGICNOR或非BITBOOLEANSTDLOGICXOR异或BITBOOLEANSTDLOGICXNOR异或非BITBOOLEANSTDLOGIC逻辑操作符NOT非BITBOOLEANSTDLOGIC正整数符号操作符,负整数VHDL语言的运算操作符()运算符优先级NOTABS**最高优先级*MODREM(正号),(负号),SLLSLASRLSRAROLROR==>=ANDORNANDNORXORXNOR最低优先级VHDLVHDL语言的运算操作符()ANDNANDORNORXORNOTSIGNALabc:STDLOGICVECTOR(DOWNTO)SIGNALd,e,f,g:STDLOGICVECTOR(DOWNTO)SIGNALhIjk:STDLOGICSIGNALlmnop:BOOLEANaa,=>b,=>c,=>d)指定位的脚标来进行位连接qc,=>d,others=>a)采用others进行位的连接注意others的说明只能放在最后。VHDL的词法单元()标识符有效的字符:包括个大小写英文字母数字包括,以及下划线―‖任何标识符必须以英文字母开头必须是单一下划线―‖且其前后都必须有英文字母或数字标识符中的英语字母不分大小写允许包含图形符号(如回车符、换行符等)也允许包含空格符VHDL的词法单元()注释以虚线‘开始直到本行末尾的一段文字主要用来对设计进行说明和解释可以在源代码的任何位置进行标注注释文字不会被编译数字可以表示成十进制、二进制、八进制或十六进制可以是整数也可以是浮点数相邻数字之间插入一个下划线或在数字前加若干个零对数字的数值不会有影响但是不允许在数字之间出现空格。E(=)(=)必须带有小数点如:E(=)(=)##SIGNALd,d,d,d,d,:INTEGERRANGETOdthenelsifthen…………elseendifelsifelseVHDL中的顺序语句()Case语句可读性比if语句好常用来描述根据某逻辑表达式的值而进行的操作格式:caseiswhen=>………………whenothers=>endcase:When语句中有相同的选择When语句中的选择值不能遗漏When语句可以颠倒次序但是others必须在最后。VHDL中的顺序语句()Loop语句用于某些操作重复进行或重复进行到某个条件满足为止的情况。Forloop循环whileloop循环Forloop循环格式:循环标号:for循环变量in离散范围loopendloop循环标号离散范围值可以不是整数只要是离散数值即可。VHDL中的顺序语句()Whileloop循环格式:循环标号:whileloopendloop循环标号forloop语句一般可以被综合whileloop语句只有某些高级综合工具可以综合一般采用forloop语句。VHDL中的顺序语句()Next语句格式:next循环标号when条件功能:有条件或无条件地结束当前这次循环开始下一次循环用在loop循环内部Exit语句格式:exit循环标号when条件功能:有条件或无条件地结束当前这次循环并终止该循环执行loop循环语句后面的语句用在loop循环内部VHDL中的顺序语句()Return语句格式:return表达式用来结束当前的函数或是过程体的执行在过程体中该语句不能有表达式在函数体中该语句必须有表达式语句格式:空操作常用于case语句的whenothers=>VHDL中的顺序语句()过程调用语句格式:过程名(实参表)在进程、函数、过程中使用该语句时它是一条顺序语句断言语句格式:assertreportseverityVHDL中的顺序语句()断言语句的出错级别:{note,warning,error,failure}该语句可以中断模拟过程提供相应的信息Report语句格式:reportseverityVHDL提供的一种顺序断言语句的短格式。并行描述语句并行描述语句()进程语句:process格式:进程标号:process敏感信号表is进程语句说明部分beginendprocess进程标号所有的进程语句都是并行执行的在一个进程语句中的代码是顺序执行的进程语句的输出与输入以及敏感信号表的事件发生有关任何进程描述中最好有一个敏感信号表并行描述语句()块语句:block格式:块标号:block卫式表达式类属句子类属接口表端口句子端口接口表块说明部分beginendblock块标号每个块语句都是结构体的子模块在一个块语句中的代码也是并行执行的卫式表达式为假时不执行该块语句含卫式表达式的块语句不能被综合并行描述语句()信号代入语句简单的信号赋值:whenelsewhenelse……whenelseIf…then语句vsWhen语句与硬件电路十分贴近高级描述与硬件无关不能嵌套可以嵌套Else语句是Else语句可有可无必须用在进程之外只能在进程中使用When语句是并行语句If语句是顺序语句并行描述语句()选择性的信号赋值格式:withselectwhenwhen……whenwhenothers与case语句类似但是是并行描述语句必须把表达式的值在条件中都要列举出来并行描述语句()并行断言语句格式与顺序断言语句相同在断言条件为―false‖时给出一条信息报告并行过程调用语句格式与顺序过程调用语句相同并行执行执行顺序与书写顺序无关并行描述语句()元件例化语句主要用于模块化的设计当中避免大量的重复工作引用元件时首先在结构体说明部分进行元件的说明(component)然后在使用元件时对该元件进行例化描述各个例化语句的执行顺序与书写顺序无关并行描述语句()元件说明部分第一部分是将一个定义为一个元件语句的功能是对待调用的元件作出调用声明格式:COMPONENTgenericPORT()ENDCOMPONENT并行描述语句()元件例化部分格式::GENERICMAP()PORTMAP(=>,)此元件与当前设计实体(顶层文件)中元件间及端口的连接说明标号名在结构体中必须是唯一的映射语句就是把元件的参数和端口与实际连接的信号对应起来以进行元件的引用映射方式:位置映射和名称映射并行描述语句()GENERIC类属参数说明及映射语句GENERIC类属参数说明语句:……用在实体说明或元件说明中端口说明语句之前主要用来为设计实体指定参数端口宽度、器件延迟时间等并行描述语句()GENERIC类属参数映射语句格式:GENERICMAP类属映射语句可用于设计从外部端口改变元件内部参数或结构规模的元件或称类属元件易于使设计具有通用性类属映射语句与端口映射语句PORTMAP()具有相似的功能和使用方法它描述相应元件类属参数间的衔接和传送方式它的类属参数衔接(连接)表达方式也相同。LIBRARYIEEEUSEIEEESTDLOGICALLENTITYandnISGENERIC(n:INTEGER:=delay:time)PORT(a:INSTDLOGICVECTOR(nDOWNTO)c:OUTSTDLOGIC)ENDARCHITECTUREbehaveOFandnISBEGINPROCESS(a)VARIABLEint:STDLOGICBEGINint:=''FORIINa'LENGTHDOWNTOLOOPIFa(i)=''THENint:=''ENDIFENDLOOPc,delay=>ns)n,nsPORTMAP(a()=>d,a()=>d,a()=>d,c=>q)u:andnGENERICMAP(,ns)n,nsPORTMAP(d,q)END必须有空格名称映射位置映射并行描述语句()生成语句(generate)

用户评价(0)

关闭

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

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

提示

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

文档小程序码

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

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/20

VHDL语言详解

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利