VHDL语言.docx
- 文档编号:24109392
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:17
- 大小:19.86KB
VHDL语言.docx
《VHDL语言.docx》由会员分享,可在线阅读,更多相关《VHDL语言.docx(17页珍藏版)》请在冰豆网上搜索。
VHDL语言
VHDL语言
VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage),超高速集成电路硬件描述语言。
VHDL语言基础
主要构件:
一、实体(Entity)
二、结构体(Architecture)
三、程序包(Package)
四、库(Library)
五、配置(Configuration)
一、实体(Entity)
1、功能:
实现设计单元的端口说明。
2、语法结构:
ENTITY实体名IS
PORT(端口名{,端口名}:
端口模式数据类型;
端口名{,端口名}:
端口模式数据类型);
END实体名;
1)、端口名:
每个引脚的名称
2)、端口模式:
引脚上数据传输的方向
3)、常用端口模式:
方向
说明
IN
输入到实体
OUT
从实体输出
INOUT
双向数据传输
BUFFER
从实体输出(但可反馈到实体内部)
3、样例:
ENTITYand_2IS
PORT(a,b:
INSTD_LOGIC;
y:
OUTSTD_LOGIC);
ENDand_2;
实体and_2输入a,b;输出y
二、结构体(Architecture)
1、功能:
描述设计单元内部结构和行为,建立输入输出关系。
2、语法结构:
ARCHITECTURE结构体名OF实体名IS
[结构体说明语句]
BEGIN
[功能描述语句]
END结构体名;
1)、结构体说明语句:
结构体功能描述语句,其中要用到内部信号、常数、数据类型、函数(无时可省略)。
2)、功能描述语句:
用并行语句形式描述设计单元功能。
3)、并行语句类型:
a、进程语句(PROCESS)
b、块描述语句(BLOCK)
c、信号赋值语句
d、子程序调用语句
e、元件例化语句
3、样例:
ARCHITECTUREoneOFand_2IS
BEGIN
y<=aandb
ENDARCHITECTUREone;
并行语句执行顺序与其书写顺序无关,在实际电路中所有并行语句功能同时实现。
三、程序包(Package)
1、功能:
存放各设计模块共享的数据类型、常数、子程序等。
2、语法结构:
USELIBRARY库名.程序包名.项目名;
3、样例:
(对IEEE库的1164程序包中所有项目的说明)
USEIEEE.STD_LOGIC_1164.ALL;
四、库(Library)
1、功能:
存储和放置设计单元(元件、程序包等)。
2、VHDL库
库名称
说明
IEEE库
常用资源库:
含IEEE认可和某些公司提供的资源,如
STD_LOGIC_1164程序包,STD_LOGIC_ARITH算术运算包
STD库
VHDL标准库:
存放STANDARD的程序集合,该集合定义了多种常用的数据类型
ASIC库
资源库:
存放和各种逻辑门一一对应的实体
WORK库
当前作业库:
存放当前设计项目生成的全部文件目录
用户自定义库
资源库:
存放用户自己创建定义的非标准程序包集合和实体
3、样例:
LIBRARY库名;
如:
LIBRARYIEEE;
五、配置(Configuration)
1、功能:
为实体指定所要配置的结构体。
2、语法结构:
CONFIGURATION配置名OF实体名IS
FOR被选结构体名
ENDFOR;
END配置名;
3、样例:
ENTITYequ2IS
PORT(a,b:
INSTD_LOGIC_VECTOR(1DOWNTO0);
Equ:
OUTSTD_LOGIC);
ENDequ2;
ARCHITECTUREequationOFequ2IS//结构体一
…
ENDequation;
ARCHITECTUREcon_behaveOFequ2IS//结构体二
…
ENDcon_behave;
ARCHITECTUREequationOFequ2IS//结构体三
…
ENDseq_behave;
实体equ2拥有三个结构体:
equation、con_behave、seq_behave,可以用配置语句选择与实体对应的结构体,如选用结构体con_behave,实现语句:
CONFIGURATIONaequbOFequ2IS
FORcon_behave
ENDFOR;
ENDCONFIGURATION;
VHDL的数据对象和数据类型
一、VHDL数据对象
1、常量:
不变的量,定义时进行赋值,在整个程序中保持不变
语法格式:
CONSTANT常量名:
数据类型:
=表达式;
举例:
CONSTANTV:
INTERGER:
=8;
2、变量
语法格式:
VARIABLE变量名:
数据类型[:
=表达式];
举例:
VARIABLEy:
INTERGER;
3、信号:
定义电路中的连线和元件的端口的数据对象
语法格式:
SIGNAL信号名:
数据类型;
举例:
SIGNALA:
INTERGER;
二、VHDL数据类型
1、整数数据类型(INTERGER)
取值范围:
-2147483547~2147483546
2、实数数据类型(REAL)
取值范围:
-1.0E38~1.0E38
`3、位数据类型(BIT)
属于枚举数据类型,取值为“1”和“0”
4、位矢量数据类型(BIT_VECTOR)
用双引号括起来的一组位数据,如:
”10011”,通常用来表示数据总线。
5、布尔数据类型(BOOLEAN)
属于枚举数据类型,取值为’TURE’和’FALSE’。
常用来表示关系运算和关系运算结果。
6、字符数据类型(CHARACTER)
ASCII码的128个字符,书写时用单引号,区分大小写。
如:
’a’、’A’等。
7、字符串数据类型(STRING)
双括号括起来的一串字符,如:
”abgh”。
8、STD_LOGIC数据类型
属于枚举数据类型,取值有以下九种:
‘U’
初始值
‘X’
不定
‘0’
0
‘1’
1
‘Z’
高阻
‘W’
弱信号不定
‘L’
弱信号0
‘H’
弱信号1
‘-’
不可能情况
9、STD_LOGIC_VECTOR数据类型
用双引号括起来的一组STD_LOGIC数据,如”101011”,通常用来表示数据总线。
注意:
使用STD_LOGIC、STD_LOGIC_VECTOR数据类型时必须在库、程序包说明区进行说明。
VHDL的操作符和表达式
一、算术操作符和算术表达式
操作符
说明
+
加
-
减
*
乘
/
除
**
乘方
mod
求模
rem
求余
abs
绝对值
举例:
A+B-C、X*Y/Z
二、逻辑操作符和逻辑表达式
操作符
说明
and
与
or
或
nand
与非
nor
或非
xor
异或
xnor
同或
not
逻辑非
举例:
AANDB、NOTZ
三、关系操作符和关系表达式
操作符
说明
=
等于
/=
不等于
<
小于
<=
小于等于
>
大于
>=
大于等于
举例:
Y>=G、A=B
四、并置操作符和并置表达式
并置操作符“&”主要用来将操作数或数组组合起来,以形成新的操作数。
例“10”&“11”结果为“1011”。
VHDL基本语句
一、顺序语句:
执行顺序与书写顺序一致,只用于进程和子程序中。
1、顺序信号赋值语句
格式:
目标信号<=表达式;
举例:
Y<=AANDB;
2、变量赋值语句
格式:
目的变量:
=表达式;
举例:
Y:
=A+B;
3、IF语句(条件控制语句)
格式一:
IF条件表达式THEN
顺序语句;
ENDIF;
举例:
IFa=‘1’THEN
c<=b;
ENDIF;
格式二:
IF条件表达式THEN
顺序语句;
ELSE
顺序语句;
ENDIF;
格式三:
IF条件表达式THEN
顺序语句;
ELSIF条件表达式THEN
顺序语句;
…
ELSE
顺序语句;
ENDIF;
4、CASE语句
语法格式:
CASE表达式IS
WHEN选择值=>顺序语句;
WHEN选择值=>顺序语句;
…
[WHENOTHERS=>顺序语句;]
ENDCASE;
“选择值”的取值应“选择唯一,覆盖全集”。
“选择值”的具体表示形式有以下四种:
a、WHEN值=>顺序语句;
b、WHEN值|值|…|值=>顺序语句;
c、WHEN值TO值=>顺序语句;
d、WHENOTHERS=>顺序语句;
举例:
用CASE语句设计4选1数据选择器的程序片段
SIGNALs:
STD_LOGIC_VECTOR(1DOWNTO0);
…
CASEsIS
WHEN“00”=>z<=a;
WHEN“01”=>z<=b;
WHEN“10”=>z<=c;
WHEN“11”=>z<=d;
WHENOTHERS=>z<=‘X’;
ENDCASE;
5、LOOP语句
a、无条件LOOP语句语法格式:
[LOOP标号:
]LOOP
顺序语句;
ENDLOOP[LOOP标号];
需引入其它控制语句才能退出循环,如exit、next等。
b、FOR…LOOP语句语法格式
[LOOP标号:
]FOR循环变量IN循环次数范围LOOP
顺序语句;
ENDLOOP[LOOP标号];
循环变量是临时变量,不必事先定义。
循环次数规定顺序语句的执行次数,从循环变量初值开始每执行一次递增1,直至最大值。
c、WHILE…LOOP语句语法格式:
[LOOP标号:
]WHILE条件表达式LOOP
顺序语句;
ENDLOOP[LOOP标号];
举例:
abcd:
WHILE(i<=10)LOOP
sum:
=i+sum;
i=i+1;
ENDLOOPabcd;
6、NEXT语句
格式:
NEXT[WHEN条件];
当满足条件时中止当前循环,开始下一次循环
举例:
loop2:
LOOP
b:
=b+1;
NEXTWHENb<10;
…
ENDLOOPloop2;
7、EXIT语句
格式:
EXIT[标号][WHEN条件];
举例:
EXIT语句在比较器中的应用
FORiIN1DOWNTO0LOOP
IF(a(i)=’1’ANDb(i)=’0’)THEN
a_less_than_b<=false;
EXIT;
ELSIF(a(i)=’0’ANDb(i)=’1’)THEN
a_less_than_b<=true;
EXIT;
ELSENULL;
ENDIF;
ENDLOOP;
8、子程序和子程序调用语句
a、函数
定义语句的语法格式:
FOUNCTION<函数名>(参数表)RETURN<数据类型>IS
BEGIN
顺序语句;
RETURN[返回变量名];
END<函数名>;
调用语句的语法格式:
函数名(实际参数表);
函数的参数只能是方式为IN的输入信号,函数只能有一个返回值。
举例:
比较器函数形式的程序设计实例
FOUNCTIONmin(x,y:
INTERGER)RETURNINTERGERIS
BEGIN
IFx RETURNx; ELSE RETURNy; ENDIF; ENDmin; b、过程 过程定义语句的语法格式 PROCEDURE<过程名>(参数表)IS BEGIN 顺序语句; END<过程名>; 过程调用语句的语法格式: 过程名(实际参数表); 过程的参数可以为IN、OUT和INOUT方式,在进行参数说明时除了说明其名称、数据类型,还要说明其端口方式。 举例: 比较器过程形式的程序设计 PROCEDUREswap(data: INOUTdata_array;low,high: ininterger)IS VARIABLEtmp: data_element; BEGIN IF(data(low)>data(high))THEN tmp: =data(low); data(low): =data(high); data(high): =tmp; ENDIF; ENDswap; 用过程调用语句调用过程swap swap(detain,1,2); 二、并行语句: 当满足条件时,多个语句同时被执行,与书写顺序无关 1、BLOCK语句 功能: 将一大段并行语句划分为若干子模块,提高程序的可读性。 语法格式: [块标号: ]BLOCK[(块保护表达式)] [块说明语句;] BEGIN 并行语句; ENDBLOCK[块标号]; 块保护表达式是布尔表达式,当其为真时,该块中的语句被执行。 举例: 用BLOCK语句设计2选1数据选择器 ARCHITECTUREconnectOFmuxIS SIGNALtmp1,tmp2,tmp3: BIT; BEGIN BLOCK BEGIN tmp1<=d0ANDnotsel; tmp2<=d1OR(notsel); tmp3<=tmp1ORtmp2; q<=tmp3; ENDBLOCK; ENDconnect; 2、进程语句(PROCESS) 语法格式: [进程名: ]PROCESS(敏感信号表) [说明语句;] BEGIN 顺序语句; ENDPROCESS[进程名]; 敏感信号变化启动进程。 说明语句说明数据类型、子程序、变量等,作用范围仅限于本进程。 举例: 用语句进程设计“2输入与门” [nandx;]PROCESS(a,b) BEGIN Y<=aANDb; ENDPROCESSnandx; 3、并行信号赋值语句 a、简单并行信号赋值语句 语句格式: 目标信号<=表达式; 举例: ARCHITECTUREoneOFsentIS BEGIN output<=inb; ENDone; b、条件并行信号赋值语句 语句格式: 目标信号<=表达式1WHEN赋值条件1ELSE 表达式2WHEN赋值条件2ELSE … 表达式n; 举例: x<=aWHEN(s=“00”)ELSE bWHEN(s=“01”)ELSE cWHEN(s=“10”)ELSE d; c、选择并行信号赋值语句 语句格式: WITH选择表达式SELECT 目标信号<=表达式1WHEN选择值1, 表达式2WHEN选择值2, … 表达式nWHEN选择值n; 举例: WITH表达式SELECT x<=aWHEN(s=“00”), bWHEN(s=“01”), cWHEN(s=“10”), dWHENOTHERS; 4、并行过程调用语句 并行过程调用语句与顺序过程调用语句形式基本相同,只是出现的位置不同。 举例: 用并行过程调用语句调用过程swap ARCHITECTURE… BEGIN swap(detain,1,2); … END;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言