VHDL语言的基本知识点罗列

上传人:夏** 文档编号:488450539 上传时间:2023-04-11 格式:DOCX 页数:10 大小:36.58KB
返回 下载 相关 举报
VHDL语言的基本知识点罗列_第1页
第1页 / 共10页
VHDL语言的基本知识点罗列_第2页
第2页 / 共10页
VHDL语言的基本知识点罗列_第3页
第3页 / 共10页
VHDL语言的基本知识点罗列_第4页
第4页 / 共10页
VHDL语言的基本知识点罗列_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《VHDL语言的基本知识点罗列》由会员分享,可在线阅读,更多相关《VHDL语言的基本知识点罗列(10页珍藏版)》请在金锄头文库上搜索。

1、VHDL语言的基本知识点罗列1VHDL语言的标识符VHDL中的标识符可以是常数、变量、信号、端口、子程序或参数的名字。使用标识符要遵守如下法则:a)标识符由字母(A-Z;az)、数字和下划线字符组成。任何标识符必须以英文字母开头。末字符不能为下划线。b)不允许出现两个连续下划线。标识符中不区分大小写字母。VHDL定义的保留子或称关键字,不能用作标识符。九c)VHDL中的注释由两个连续的短线(-)开始,直到行尾。以下是非法标识符:-Decoder一起始不能为非英文字母3DOP一起始不能为数字Large#number林能成为标识符的构成符号Data_bus不能有双下划线Copper_最后字符不能为

2、下划线On一关键字不能用作标识符。注:在AHDL语言中标识符要区分大小写,但在VHDL语言中不区分大小写。所以写程序时,一定要养成良好的书写习惯,应用关键字时用大写,自己定义的标识符用小写。标识符表示的几种数据对象的详细说明如下:1) 常数(Constant)常数是一个固定的值,主要是为了使设计实体中的常数更容易阅读和修改。常数一被赋值就不能在改变。一般格式:CONSTANT常数名:数据类型:=表达式;例:CONSTANTVcc:REAL:=5.0;设计实体的电源电压指定常数所赋得值应与定义的数据类型一致。常量的使用范围取决于它被定义的位置。程序包中定义的常量具有最大的全局化特性,可以用在调用

3、此程序包的所有设计实体中;设计实体中某一结构体中定义的常量只能用于此结构体;结构体中某一单元定义的常量,如一个进程中,这个常量只能用在这一进程中。2) 变量(Variable)变量是一个局部变量,它只能在进程语句、函数语句和进程语句结构中使用。用作局部数据存储。在仿真过程中。它不像信号那样,到了规定的仿真时间才进行赋值,变量的赋值是立即生效的。变量常用在实现某种算法的赋值语句中。一般格式:VARIABLE变量名数据类型约束条件:=表达式;例:VARIABLEx,y:INTEGER;定义x,y为整数变量VARIABLEcount:INTEGERRANGE0TO255:=10;定义计数变量范围变量

4、的适用范围仅限于定义了变量的进程或子程序中。若将变量用于进程之外,必须该值赋给一个相同的类型的信号,即进程之间传递数据靠的信号。变量赋值语句的语法格式如下:目标变量:=表达式;变量赋值符号是:=。赋值语句右方的表达式必须是一个与目标变量有相同数据类型的数值。变量不能用于硬件连线和存储元件。3) 信号(Signal)信号是描述硬件系统的基本数据对象,它类似于连接线,它除了没有数据流动方向说明以外,其它性质与实体的端口(Port)概念一致。变量的值可以传递给信号,而信号的值不能传递给变量。信号通常在构造体、包集合和实体中说明。信号说明格式为:SIGNAL信号名:数据类型;信号初始值的设置不是必需的

5、,而且初始值仅在VHDL的行为仿真中有效。1 .变量变量只能在进程、函数和过程中使用,一旦赋值立即生效。例:VARIABLEx,y:INTEGER;VARIABLEcount:INTEGERRANGE0TO255:=10;2 .信号信号除了没有方向的概念以外几乎和端口概念一致。例:SIGNALsys_clk:BIT:=0;SIGNALground:BIT:=0在程序中,信号值输入信号时采用代入符=,而不是赋值符:=,同时信号可以附加延时。信号传送语句:s1 (小于) =(小于等于) (大于) =(大于等于)3) 算术运算符+(加)/(除)SLL(逻辑左移)ROR(逻辑循环右移)-(减)MOD(

6、求模)SRL(逻辑右移)ABS(取绝对值)*(乘)REM(取余)SLA(算术左移)4) 其他运算符(并联运算符,在元件例化时可用于形参倒实参的映射)4VHDL语言的结构VHDL语言主要组成构件有设计实体(Entity)、结构体(Architecture)、子程序(FunctionProcedure)、集合包(Package)和库(Library),前四种称为可编译的设计单元。一个VHDL设计就是有这四种构件的组成,编译之后将它们放在制定的库中共享。其中,实体用于描述设计的接口界面信号,它规定端口数目,端口方向和端口类型。它与硬件电路设计中的符号相对应。而结构体指定设计的真实行为,性能和结构,与

7、硬件电路设计中的原理图相对应。子程序是可被调用的执行某一特定功能算法的集合。集合包则是为了使常用的数据类型、常数和子程序对于其他设计块可用而集中充放的一批设计单元和约定。4.1 设计实体实体的定义语法为:ENTITY实体名IS端口说明;END实体名;端口说明书写格式如下:PORT(端口名,端口名:方向数据类型名;端口名,端口名:方向数据类型名);例如,一个二选一路数据选择器的设计实体可描述如下:ENTITYselectionISPORT(a,b,sel:INBIT;C:OUTBIT);ENDselection;4.2 构造体用于描述系统内部的结构和行为。构造体部分定义了设计单元的具体功能(行为

8、)。1.构造体句法如下:ARCHITECTURE构造体名OF实体名IS定义t句内部信号,常数,数据类型,函数等的定义;BEGIN并行处理语句;END构造体名;例如:ARCHITECTUREdataflowOFselectionISBEGINq=(aANDset)OR(NOTselANDd1);ENDdataflow;4.2.1构造体的子结构描述在规模较大的电路设计中,全部电路都用唯一的一个模块来描述是非常不方便的。为此,电路设计者总希望将整个电路分成若干个相对比较大的模块来进行电路的描述。这样,一个构造体可以用几个子结构,既相对比较独立的几个模块来构成。VHDL语言可以有以下三种形式的子结构描

9、述语句:1) 子程序:VHDL提供两种子程序:函数(FUNCTION)和过程(PROCEDURE)函数函数的定义形式如下:FUNCTIONRETURNIS定义i句;BEGIN;END函数名称;.下面是一个比较器的例子:FUNCTIONmax(a,b:INTEGER)RETURNINTEGERISBEGINIF(a=b)THENRETURNa;ELSERETURNb;ENDIF;ENDmax;一个函数定义好后,可以在其它地方调用。过程过程的定义形式如下:PROCEDURE接口表ISBEGIN;END过程名称;.下面是一个比较器的例子:FUNCTIONmax(a,b,c:INTEGER)ISBEGINIF(a=b)THENc=a;ELSEc=b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号