VHDL语言教程优质PPT.ppt
- 文档编号:13886879
- 上传时间:2022-10-14
- 格式:PPT
- 页数:112
- 大小:2.09MB
VHDL语言教程优质PPT.ppt
《VHDL语言教程优质PPT.ppt》由会员分享,可在线阅读,更多相关《VHDL语言教程优质PPT.ppt(112页珍藏版)》请在冰豆网上搜索。
,VHDL优点:
设计的最终实现取决于针对目标器件的编程器,工具的不同会导致综合质量不一样。
3.1.1标识符(Identifiers),要求:
首字符必须是字母末字符不能为下划线不允许出现两个连续的下划线不区分大小写VHDL定义的保留字(关键字),不能用作标识符标识符字符最长可以是32个字符。
注释由两个连续的虚线()引导。
3.1VHDL语言基础,标识符用来定义常数、变量、信号、端口、子程序或参数的名字,由字母(AZ,az)、数字(09)和下划线(_)字符组成。
例如:
ABS,ACCESS,AFTER,ALL,AND,ARCHITECTURE,ARRAY,ATTRIBUTE,BEGIN,BODY,BUFFER,BUS,CASE,COMPONENT,CONSTANT,DISCONNECT,DOWNTO,ELSE,ELSIF,END,ENTITY,EXIT,FILE,FOR,FUNCTION,GENERIC,GROUP,IF,INPURE,IN,INOUT,IS,LABEL,LIBRARY,LINKAGE,LOOP,MAP,MOD,NAND,NEW,NEXT,NOR,NOT,NULL,OF,ON,OPEN,OR,OTHERS,OUT,PACKAGE,POUT,PROCEDURE,PROCESS,PURE,RANGE,RECODE,REM,REPORT,RETURN,ROL,ROR,SELECT,SHARED,SIGNAL,SLA,SLL,SRA,SUBTYPE,THEN,TRANSPORT,TO,TYPE,UNAFFECTED,UNITS,UNTIL,USE,VARIABLE,WAIT,WHEN,WHILE,WITH,XOR,XNOR,关键字(保留字):
关键字(keyword)是VHDL中具有特别含义的单词,只能做为固定的用途,用户不能用其做为标识符。
3.1.2数据对象(DateObjects),常量Constant,Constantbus_width:
integer:
=8;
-定义总线宽度为常数8,数据对象包括常量、变量、信号和文件四种类型。
常量是对某一常量名赋予一个固定的值,而且只能赋值一次。
通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。
Constant常数名:
数据类型:
表达式,ConstantVcc:
real:
=5.0;
-定义Vcc的数据类型是实数,赋值为5.0V,常量所赋的值应和定义的数据类型一致;
常量在程序包、实体、构造体或进程的说明性区域内必须加以说明。
定义在程序包内的常量可供所含的任何实体、构造体所引用,定义在实体说明内的常量只能在该实体内可见,定义在进程说明性区域中的常量只能在该进程内可见。
Variable变量名:
数据类型:
初始值;
Variablecount:
integer0to255:
=20;
-定义count整数变量,变化范围0255,初始值为20。
变量Variable,变量只能在进程语句、函数语句和过程语句结构中使用。
变量的赋值是直接的,非预设的,分配给变量的值立即成为当前值,变量不能表达“连线”或存储元件,不能设置传输延迟量。
变量赋值语句:
目标变量名:
=表达式;
变量定义语句:
x:
=10.0;
-实数变量赋值为10.0Y:
=1.5+x;
-运算表达式赋值,注意表达式必须与目标变量的数据类型相同A(3to6):
=(“1101”);
-位矢量赋值,Signal信号名:
初始值,Signalclock:
bit:
=;
-定义时钟信号类型,初始值为0,信号Signal,信号表示逻辑门的输入或输出,类似于连接线,也可以表达存储元件的状态。
信号通常在构造体、程序包和实体中说明。
信号定义语句:
Signalcount:
BIT_VECTOR(3DOWNTO0);
-定义count为4位位矢量,信号赋值语句:
目标信号名=表达式;
x=9;
Z=xafter5ns;
-在5ns后将x的值赋予z,3.1.2数据类型,布尔:
(Boolean),位:
(Bit)TYPEBITIS(0,1);
-取值为0和1,用于逻辑运算,位矢量:
(Bit_Vector)TYPEBIT_VECTORISARRAY(Naturalrange)OFBIT;
-基于Bit类型的数组,用于逻辑运算SIGNALa:
Bit_Vector(0TO7);
SIGNALa:
Bit_Vector(7DOWNTO0),VHDL的预定义数据类型,在VHDL标准程序包STANDARD中定义好,实际使用过程中,已自动包含进VHDL源文件中,不需要通过USE语句显式调用。
TYPEBOOLEANIS(FALSE,TRUE);
-取值为FALSE和TRUE,不是数值,不能运算,一般用于关系运算符,整数:
(Integer)取值范围-(231-1)(231-1),可用32位有符号的二进制数表示variablea:
integerrange-63to63在实际应用中,VHDL仿真器将Integer做为有符号数处理,而VHDL综合器将Integer做为无符号数处理;
要求用RANGE子句为所定义的数限定范围,以便根据范围来决定表示此信号或变量的二进制数的位数。
字符:
(Character)TYPECHARACTERIS(NUL,SOH,STX,!
);
-通常用引起来,区分大小写;
字符串:
(String)VARIABLEstring_var:
STRING(1TO7);
string_var:
=“ABCD”;
-通常用“”引起来,区分大小写;
实数:
(Real)取值范围-1.0E38+1.0E38,仅用于仿真不可综合1.0-十进制浮点数843.6e+4-八进制浮点数43.6E-4-十进制浮点数,时间:
(Time)物理量数据,完整的包括整数和单位两个部分,用至少一个空格隔开,仅用于仿真不可综合;
fs,ps,ns,us,ms,sec,min,hr,错误等级(SeverityLevel):
表示系统状态,仅用于仿真不可综合;
TYPEseverity_levelIS(NOTE、WARNING、ERROR、FAILURE);
IEEE预定义标准逻辑位与矢量,标准逻辑位(Std_Logic),标准逻辑位矢量(Std_Logic_vector),基于Std_Logic类型的数组;
使用Std_Logic和Std_Logic_Vector要调用IEEE库中的Std_Logic_1164程序包;
就综合而言,能够在数字器件中实现的是“、0、1、Z”四种状态。
在条件语句中,必须要全面考虑Std_Logic的所有可能取值情况,否则综合器可能会插入不希望的锁存器。
U:
Uninitialized;
X:
ForcingUnkown;
0:
Forcing01:
Forcing1Z:
HighImpedanceW:
WeakUnknownL:
Weak0H:
Weak1:
Dontcare,枚举:
typestatesis(idle,decision,read,write);
typebooleanis(false,true);
typebitis(0,1);
数组:
typevalue_typeisarray(127downto0)ofinteger;
typematrix_typeisarray(0to15,0to31)ofstd_logic;
用户自定义,TYPE数据类型名IS数据类型定义OF基本数据类型或TYPE数据类型名IS数据类型定义,SUBTYPE子类型名IS基本数据类型定义RANGE约束范围,subtypedigitisintegerrange0to9;
3.1.3数据类型转换,VHDL为强定义类型语言,不同类型的数据不能进行运算和直接赋值。
类型标记法,VariableA:
integer;
VariableB:
real;
A=integer(B);
B=real(A);
函数法,Conv_interger(A);
-由std_logic转换为integer型,在std_logic_unsigned包。
常数转换法/常量转换法,Typeconv_tableisarray(std_logic)ofbit;
Constanttable:
conv_table:
=(0|L=0,1|H=1,others=0);
Signala:
bit;
signalb:
std_logic;
A=table(b);
-将std_logic型转换为bit型,具有转换表性质的常数,在“STD_LOGIC_1164”、“STD_LOGIC_ARITH”和“STD_LOGIC_UNSIGNED”的程序包中提供的数据类型变换函数。
属性,属性提供的是关于信号、类型等的指定特性。
event:
若属性对象有事件发生,则生成布尔值“true”,常用来检查时钟边沿是否有效。
上升沿:
ClockEVENTANDClock=1,range:
生成一个限制性数组对象的范围,left:
生成数据类型或数据子类型的左边界值;
right,high,low,length,range:
“0ton”;
reverse_range:
“ndownto0”,运算符,算术运算符:
,*,/,MOD,REM,SLL,SRL,SLA,SRA,ROL,ROR,*,ABS,关系运算符:
,/,=,逻辑运算符:
AND,OR,NAND,NOR,XNOR,NOT,XOR,赋值运算符:
=,:
=,关联运算符:
=,其他运算符:
,&
并置操作符,SIGNALa:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALd:
STD_LOGIC_VECTOR(1DOWNTO0);
.a=10d
(1)1;
-元素与元素并置,并置后的数组长度为4.IFad=101011THEN.-在IF条件句中可以使用并置符,运算符优先级别,逻辑、算术运算符(NOT,*,ABS),乘法运算符(/,MOD,REM,*),正负运算符:
,,加减、并置运算符:
关系运算符:
AND,OR,NAND,NOR,XNOR,NOT,XOR,移位运算符的左边为一维数组,其类型必须是BIT或BOOLEAN,右边必须是整数移位次数为整数的绝对值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 教程