该【学习进程语句与流程控制语句 】是由【duzw466】上传分享,文档一共【29】页,该文档可以免费在线阅读,需要了解更多关于【学习进程语句与流程控制语句 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。单击此处添加副标题
202X
学习使用流程控制语句
设计时序电路
说明语句
功能描述语句
块语句
进程语句
信号赋值语句
子程序调用语句
元件例化语句
01
单击此处添加正文
单击此处添加标题
02
单击此处添加正文
单击此处添加标题
构造体结构图
构造体
VHDL中最重要的语句,具有并行和顺序行为的双重性
01
进程和进程语句之间是并行关系
02
进程内部是一组连续执行的顺序语句
03
进程语句与构造体中的其余部分进行信息交流是靠信号完成的
04
进程语句
进程语句
PROCESS1
PROCESSn
signal
signal
ARCHITECTURE
一个构造体可以有多个进程语句
进程和进程之间是并行的
进程和进程之间的数据交换通过信号完成
进程内部是顺序语句
END PROCESS [进程名称];
基本格式:
[进程名称:] PROCESS(敏感信号1,敏感信号2,……)
〈说明区〉
BEGIN
〈顺序语句〉
03
04
05
06
01
02
进程语句
进程语句举例
LIBRARY ieee;
USE ;
ENTITY if_case IS PORT
( a, b, c, d : IN Std_Logic;
sel : IN Std_Logic_Vector(1 downto 0);
y, z : OUT Std_Logic);
END if_case;
ARCHITECTURE logic OF if_case IS
BEGIN
if_label: PROCESS(a, b, c, d, sel)
BEGIN
IF sel="00" THEN y <= a;
ELSIF sel="01" THEN y <= b;
ELSIF sel="10" THEN y <= c;
ELSE y <= d;
END IF;
END PROCESS if_label;
两个进程是并发的
case_label:
PROCESS(a, b, c, d, sel)BEGINCASE sel ISWHEN "00" =>z <= a;WHEN "01" =>z <= b;WHEN "10" =>z <= c;WHEN "11" =>z <= d;WHEN OTHERS =>z <= '0';END CASE;END PROCESS case_label;END logic;
进程的运行依赖于敏感表内参数的变化
进程赖以启动的敏感表。对于表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句
一些VHDL综合器,综合后,对应进程的硬件系统对进程中的所有输入的信号都是敏感的,不论在源程序的进程中是否把所有的输入信号都列入敏感表中
为了使软件仿真与综合后的硬件仿真对应起来,应当将进程中的所有输入信号都列入敏感表中
信号敏感表
敏感表举例
latchlabel: PROCESS (oe)
BEGIN
IF oe=‘1’ THEN
y <= a;
END IF;
END PROCESS if_label;
仿真结果
a
oe
y
敏感表举例
latchlabel: PROCESS (a)
BEGIN
IF oe=‘1’ THEN
y <= a;
END IF;
END PROCESS if_label;
仿真结果
01
02
每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的
顺序语句只能出现在进程(Process) 、函数(Funcation)和过程(Procedure)中
顺序语句包括:赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句
02
01
03
顺序语句
学习进程语句与流程控制语句 来自淘豆网m.daumloan.com转载请标明出处.