VHDL主要描述语句.docx
- 文档编号:14406968
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:13
- 大小:44.45KB
VHDL主要描述语句.docx
《VHDL主要描述语句.docx》由会员分享,可在线阅读,更多相关《VHDL主要描述语句.docx(13页珍藏版)》请在冰点文库上搜索。
VHDL主要描述语句
Architecturertl
temptemp2;signaltemp,temp2;begin
[PRS1]:
process(
variablet1,t2;
begin
(if
\\l
顺序描述语句(if\case\loop;endprocess;
[PRSn]:
process(
variablet1,t2;
begin
顺序描述语句(if\case\loop;endprocess;
并行描述语句1
并行描述语句1;并行描述语句2;
2011/6/132并行描述语句n;
Endrtl;
VHDL的主要描述语句并(进程语句(Process)并条件/选择信号代入构通用模块调用语句(元件例化)生顺序描述语句变量赋值语句IF语句CALO2011/6/133
重点:
语句是并发执行or顺序执行语
语
语句完成的功能
同
2011/6/134
并发描述语句
并
进并条件信号代入/选择信号代入2011/6/135
进程PROCESS
[进程名]:
PROCESS(信号量1,信号量2….)
BEGIN
[执行语句]
ENDPROCESS;
使用process的原则:
☐结构体内部使用进程
☐结构体内部可以有1个或多个进程存在
☐完成某一独立逻辑功能,设计在同一个process中2011/6/136
进程
进程执行的条件:
✓Process中有一个或者多个信号量称为敏感量
✓敏感量的变化启动该process的执行
进程执行的方式:
☐敏感量触发进程,进入process中;
☐语句从上到下逐句执行一遍,当最后一个语句执行完毕后;下一次敏感量的变化☐返回到开始的process语句中,等待下次敏感量的变化。
2011/6/137
进程
进程中的客体:
✓实体中定义的端口信号port✓构造体中定义的信号量signal✓进程中定义的变量variable☐变量只有在进程中定义和使用,不能将信息带出该进程
2011/6/138
进程
结构体内部的
多个进程
多个进程之间为☐多个进程之间,为并发执行关系☐多个之间可以通过信号量传递信息
☐进程之间可以一边通信,一边并行同步执行2011/6/139
进程
进
描
信
用
PROCESS(CLK(
BEGIN
If(clk’eventandclk=‘1’then(执行语句
endif;
Endprocess;
2011/6/1310
并发信号代入
代入语句:
并发信号代入<=
<=目的信号量<=信号量表达式;
使用原则:
类型和位长度一致☐代入符号两边信号量的类型和位长度致☐操作符在Signal/Port中定义的客体☐使用位置:
进程内/进程外
2011/6/1311
并发信号代入
代
✓代入语句在进程内:
顺序语句形式出现✓代入语句在进程外:
并发语句形式出现<=进程中使用代入语句:
分为代入过程、代入处理过程
代入过程只表示要进行赋值操作代入过程:
只表示要进行赋值操作;代入处理:
真正完成赋值;
2011/6/1312
条件信号代入
条件信号代入语句是并发描述语句
根据不同条件将不同的表达式代入目标信号☐根据不同条件,将不同的表达式代入目标信号☐存在结构体内部,与PROCESS为并行的关系<=11目的信号量<表达式1WHEN条件1ELSE
表达式2WHEN条件2ELSE
33表达式3WHEN条件3ELSE
表达式;
2011/6/1313
选择信号代入
选择信号代入语句是并发描述语句
根据选择信号的值将不同的表达式代入目标信号☐根据选择信号的值,将不同的表达式代入目标信号☐存在结构体内部,与PROCESS为并行的关系WITH选择信号SELECT
目的信号量<=表达式1WHEN值1,
2WHEN表达式2WHEN值2,
表达式3WHEN值3,
……
表达式nWHENOTHERS;
2011/6/1314
顺序描述语句顺变IFCA语句LOOP2011/6/1315
顺序描述语句
变
:
=目的变量:
=表达式
左边:
变量
右边:
变量、信号、字符
进程内部定义和使用只在程内部定义和使用
变
2011/6/1316
IF语句
IF语句:
进程内部使用
IFTHENIF条件THEN条件N
顺序处理语句;
ENDIF顺序处理语句;ELSE;
只有一个程序执行分支顺序处理语句;ENDIF;只有个程序执行分支
两条不同程序执行路径2011/6/1317
IF语句
IF条件1THEN
顺序处理语句
ELSIF条件2THEN
顺序处理语句
ELSIF条件3THEN
顺序处理语句
ELSIF…..
ELSE
顺序处理语句
ENDIF;多条不同程序执行路径2011/6/1318
CASE语句
CASE表达式IS
WHEN值=>顺序处理语句
顺序处语句
WHEN值|值|值=>顺序处理语句WHEN值TO值=>顺序处理语句
WHENOTHERSWHENOTHERS=>顺序处理语句
ENDCASE;
☐
Case语句中的条件表达式的值必须举穷尽,不能重复,WHENOTHERS不能举穷尽的值用WHENOTHERS项表示,不能省略☐
判断表达式=具体的数值,不能判断表达式其中的某一位bit(用if语句可以判断)☐每个分支后可执行多条处理语句
2011/6/1319
if的区别
if和case的区别:
☐if语句是有序的,先处理最起始的条件,如果不满足再处理下一条件(存在优先级的判断);
☐case语句是无序的,所有表达式值都是并行关系;☐if语句是对条件的判断;
☐case语句是判断表达式与数值是否相等;2011/6/1320
if语句和条件代入语句区别
☐if语句在process中使用,可生成锁存电路,完成时序逻辑功能;
外使用完成☐条件代入语句在process外使用,完成基本的组合逻辑;☐if语句可以嵌套,条件代入语句不存在嵌套2011/6/1321
LOOP语句
[标号]:
for循环变量in离散范围loop
顺序处理语句;
endloop[
p[标号];[标号]:
while条件loop
顺序处理语句;
endloop[endloop[
标号];1、循环变量的值在每次循环中都会发生变化
离散范围:
循环变量在循环过程中的取值范围2011/6/1322
2、离散范围:
循环变量在循环过程中的取值范围
LOOP语句
foriIN1to9loopsum<=i+sum;sumi+sum;endloop;foriIN0to7looptemp:
=tempxora(i;endloop;endloop;2011/6/1323
结构描述语句
构
构造体结构描述,是在多层次的设计中,高层次设计模块调用低层次设计模块的描述方法。
通用模块调用语句(元件例化)
调用现成的逻辑模块
生成语句
产生多个相同的结构
2011/6/1324
GENERIC
设计模块包括:
外部端口、内部逻辑功能、模块的参数
什么是设计模块的参数?
参数的作用和目的是什么?
用于不同层次设计模块之间的信息参数信息传递
位矢量长度,数组的位长,器件延时等参数的传递为了使器件模块化通用化为了使器件模块化、通用化、完成参数化的程序设计2011/6/1325
GENERIC
二选一选择器为例:
输入输出数据的位宽,作为模块可变的参数
ENTITYMUXIS
GENERIC(WIDTH:
integer:
=8);
PORT(
SEL:
INBIT;
IN1,IN2:
INSTD_LOGIC_VECTOR(WIDTH-1
DOWNTO0;Sout:
OUTSTD_LOGIC_VECTOR(WIDTH-1
DOWNTO0;
ENDMUX;
在元件被调用时重新指定参数信息
2011/6/1326
GENERIC
多位加法为例多位加法器为例:
加数、被加数、求和位的数据宽度,作为模块参数entityadd_gis
generic(WIDTH:
integer:
=32;generic(WIDTH:
integer:
=32;
port(
cin:
instdlogic;_g;
a:
instd_logic_vector(WIDTH-1downto0;b:
instd_logic_vector(WIDTH-1downto0;dli(WIDTH1d0sum:
outstd_logic_vector(WIDTH-1downto0;cout:
outstd_logic;
endaddg;endadd_g;
在元件被调用时重新指定参数信息
2011/6/1327
元件说明语句
在一个设计的结构体中可以调用其它已设计好的元件或模块,在调用之前要对这些模块或元件进行说明
COMPONENT元件名
--调用元件指定GENERIC参数说明;
--被调用元件参数映射PORT端口列表;
--被调用元件端口映射
ENDCOMPONENT;
COMPONENTHALF_ADDER
PORT(
A,B:
INSTDLOGIC;A,B:
INSTD_LOGIC;
SUM:
OUTSTD_LOGIC;
C_OUT:
OUTSTD_LOGIC;
2011/6/1328ENDCOMPONENT;
元件例化语句
☐
对在结构体中说明的元件进行例化--调用该元件☐
该语句将现成元件的端口信号映射成高层设计电路中的信号☐各元件之间,各模块之间的信号连接关系用portmap语句来实现连接
元件标号:
元件名GENERICMAP(参数)
PORTMAP(信号,信号,….);
;AND2PORTMAPD1D2D3;
u1:
AND2PORTMAP(D1,D2,D3);u2:
AND2PORTMAP(A=>D1,B=>D2,C=>D3);2011/6/1329
元件说明和例化COMPONENTAND2--元件说明PORT(
A,B:
INBIT;
C:
OUTBIT);
ENDCOMPONENT;
U0:
AND2PORTMAP(A=>D0,B=>D1,C=>M0;--元件例化/端口映射元件例端映射2011/6/1330
GENERATE用于产生多个相同的结构和描述规则结构,如元件例化、进程构如元件例化进程标号:
FOR变量IN离散范围GENERATE并行语句ENDGENERATE[标号名];标号:
IF条件GENERATE并行语句ENDGENERATE[标号名];2011/6/1331
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 主要 描述 语句