当前课程知识点:EDA技术与应用 >  第四章 VHDL语言概述 >  4.12 进程 >  4.12.2 进程 教学视频

返回《EDA技术与应用》慕课在线视频课程列表

4.12.2 进程 教学视频在线视频

下一节:4.12.4 进程 讨论

返回《EDA技术与应用》慕课在线视频列表

4.12.2 进程 教学视频课程教案、知识点、字幕

同学们,大家好

这一讲我们来学习VHDL的进程

所以进程既有并行的特点

当我们描述一个设计实体的结构体的时候

进程PROCESS是使用最为频繁的语句

一个结构体中可以只有一个进程

也可以包含多个进程

各个进程之间是并行的关系

也就是说,各个进程是并发执行的

但是,具体到每一个进程内部

构成这个进程的语句却必须是顺序执行的

所以进程既有并行的特点

又有顺序执行的语句

构成了VHDL代码的基本框架

进程是一段复合语句

进程的语法格式是这样的

进程标号是一个进程的名字

它是一个可选项

当结构体中只有一个进程时

进程标号可以省略

如果结构体中有多个进程

为了对进程加以区分

进程标号还是很有必要的

进程主要是由三个部分构成

首先是敏感信号列表

进程的状态有等待和执行两种情况

究竟处于哪一种状态

是由进程的敏感信号列表决定的

如果敏感信号列表中所有信号都没有变化

那么该进程就会一直处于等待状态

此时进程内部的语句也就不会被执行

只要敏感信号列表中

有任何一个信号发生变化

进程就会启动,或者叫被激活

进程每启动一次

内部的那些顺序语句就会被执行一次

进程的第二个部分是进程说明部分

进程说明部分

通常用来定义在本进程内部使用的变量

但是一定要注意

在进程的说明部分是不允许定义信号的

第三部分是顺序描述语句

进程内部的顺序语句可以有多条

通常由IF语句、CASE语句

WAIT语句或LOOP语句构成

这些语句就能够对设计实体

进行行为描述或数据流描述

这是一个进程的主体

进程作为VHDL语言中使用最为广泛的语句

具有明显的特点

正确认识进程的特性

并熟练掌握进程的设计和应用,十分重要

第一个特点:进程有两种工作状态

等待状态和执行状态

进程处于哪一种状态取决于敏感信号

或者是由WAIT语句引导的条件

敏感信号列表

列出了进程对其敏感的所有信号

每当敏感信号列表中的

一个或多个信号发生变化时

进程就会被启动,并执行

另外也可以用WAIT语句来控制进程的启动

当WAIT UNTILL后面的条件满足时

或者WAIT ON后面的信号有变化时

进程也会启动

需要强调的是

如果在进程内部使用了WAIT语句

来控制进程是否启动

那么在关键字PROCESS后面

就不能再有敏感信号列表了

进程执行的时候

会自动执行进程内部的那些顺序语句

当遇到END PROCESS时

进程就会停下来

进入等待状态

直到再次满足进程启动的条件

才会重新启动

如此往复,循环下去

第二个特点是

进程是并发性和顺序性地有机结合

进程本身是并发执行的

当一个结构体中有多个进程时

各个进程的执行都是平等的

都依赖于各自的敏感信号列表

而不是看哪一个进程写在前面就先执行

这是和硬件内部结构的各个部分的

并发性相适应的

同时进程内部的语句必须是顺序执行的

这些语句决定了该进程所具有的功能

第三个特点:进程的说明部分

主要是定义进程的局部变量

要注意

在这里定义的变量只能在进程内部生效

如果需要在两个以上的进程之间传递数据

就必须依靠信号来实现

正是由于信号是多个进程之间

进行联系的途径

所以信号是不能在进程说明部分来定义的

我们可以通过前面几讲中提到的

模10计数器的例子

来体会一下进程的应用

在这个计数器的设计中

结构体就是由一个进程语句构成的

当然这个进程语句内部

又是由多条顺序语句构成的

由于在进程内部需要一个临时存放计数结果

并且不断更新的存储单元

所以在进程的说明部分

定义了一个变量temp

这个变量只在进程内部起作用

进程的敏感信号是时钟信号clk

当时钟信号发生变化时进程才会启动

进程启动后

就会执行它内部的顺序语句

首先

判断时钟信号clk的上升沿是否到来

如果是,就会根据复位端rst的状态

来判断是否复位

以及根据变量tmp的值

决定是进位还是继续计数

所以我们说进程的功能

也就是结构体的功能

主要是由

进程内部的这些顺序语句来实现的

而进程就是把结构体的并行特点

和结构体功能的实现

有机结合起来的一种语法结构

如果用WAIT语句来控制进程的启动

那么就不允许,也不需要

在PROCESS后边使用敏感信号列表了

进程是构成VHDL结构体的重要语法结构

因此也是使用最频繁的并行语句

结构体中可以包含一个或多个进程

信号可以在多个进程之间传递数据

而变量只能在某一个进程内部定义和使用

进程是否启动

完全取决于进程的敏感信号或者WAIT语句

与进程的书写顺序无关

因此,进程是并行语句

进程作为一种应用广泛的并行语句

功能强大

请同学们一定要熟练掌握

好,本讲到这里就结束了

同学们,再见

EDA技术与应用课程列表:

第一章 EDA技术概述

-1.1 EDA技术概述

--1.1.1 EDA技术概述 导学

--1.1.2 EDA技术概述 教学视频

--1.1.3 EDA技术概述 单元测验

--1.1.4 EDA技术概述 讨论

第二章 可编程逻辑器件概述

-2.1 可编程逻辑器件(PLD)概述

--2.1.1 可编程逻辑器件 导学

--2.1.2 可编程逻辑器件概述 教学视频

--2.1.3 可编程逻辑器件概述 单元测验

--2.1.4 可编程逻辑器件概述 讨论

-2.2 CPLD的结构和原理

--2.2.1 CPLD结构和原理 导学

--2.2.2 CPLD的结构和原理 教学视频

--2.2.3 CPLD的结构和原理 单元测验

--2.2.4 CPLD的结构和原理 讨论

-2.3 FPGA的结构和原理

--2.3.1 FPGA的结构和原理 导学

--2.3.2 FPGA的结构和原理 教学视频

--2.3.3 FPGA的结构和原理 单元测验

--2.3.4 FPGA的结构和原理 讨论

-2.4 FPGA和CPLD的选用

--2.4.1 FPGA和CPLD的选用 导学

--2.4.2 FPGA和CPLD的选用 教学视频

--2.4.3 FPGA和CPLD的选用 单元测验

--2.4.4 FPGA和CPLD的选用 讨论

-2.5 FPGA与CPLD的编程和配置

--2.5.1 FPGA与CPLD的编程与配置 导学

--2.5.2 FPGA与CPLD的编程与配置 教学视频

--2.5.3 FPGA与CPLD的编程与配置 单元测验

--2.5.4 FPGA与CPLD的编程与配置 讨论

第三章 EDA开发平台——QuartusII应用

-3.1 QuartusII概述

--3.1.1 Quartus Ⅱ概述 导学

--3.1.2 Quartus Ⅱ概述 教学视频

--3.1.3 Quartus Ⅱ概述 单元测验

--3.1.4 Quartus Ⅱ概述 讨论

-3.2 新建工程

--3.2.1 新建工程 导学

--3.2.2 新建工程 教学视频

--3.2.3 新建工程 单元测验

-3.3 设计输入

--3.3.1 设计输入 导学

--3.3.2 设计输入 教学视频

--3.3.3 设计输入 单元测验

--3.3.4 设计输入 讨论

-3.4 设计编译

--3.4.1 设计编译 导学

--3.4.2 设计编译 教学视频

--3.4.3 设计编译 单元测验

--3.4.4 设计编译 讨论

-3.5 仿真验证

--3.5.1 仿真验证 导学

--3.5.2 仿真验证 教学视频

--3.5.3 仿真验证 单元测验

--3.5.4 仿真验证 讨论

-3.6 器件编程

--3.6.1 器件编程 导学

--3.6.2 器件编程1 教学视频

--3.6.3 器件编程2 教学视频

--3.6.4 器件编程 单元测验

--3.6.5 器件编程 讨论

-3.7层次化设计

--3.7.1 层次化设计 导学

--3.7.2 层次化设计 教学视频

--3.7.3 层次化设计 单元测验

--3.7.4 层次化设计 讨论

-3.8 宏功能模块的使用

--3.8.1 宏功能模块的使用 导学

--3.8.2 宏功能模块的使用 教学视频

--3.8.3 宏功能模块的使用 单元测验

--3.8.4 宏功能模块的使用 讨论

第四章 VHDL语言概述

-4.1 VHDL语言概述

--4.1.1 VHDL概述 导学

--4.1.2 VHDL语言概述 教学视频

--4.1.3 VHDL语言概述 单元测验

--4.1.4 VHDL概述 讨论

-4.2 VHDL代码的结构

--4.2.1 VHDL代码的结构 导学

--4.2.2 VHDL代码的结构 教学视频

--4.2.3 VHDL代码的结构 单元测验

--4.2.4 VHDL代码的结构 讨论

-4.3 库和库声明

--4.3.1 库和库声明 导学

--4.3.2 库和库声明 教学视频

--4.3.3 库和库声明 单元测验

--4.3.4库和库声明 讨论

-4.4 实体说明

--4.4.1 实体说明 导学

--4.4.2 实体说明 教学视频

--4.4.3 实体说明 单元测验

--4.4.4 实体说明 讨论

-4.5 结构体

--4.5.1 结构体 导学

--4.5.2 结构体 教学视频

--4.5.3 结构体 单元测验

--4.5.3 结构体 讨论

-4.6 VHDL预定义数据类型

--4.6.1 VHDL预定义数据类型 导学

--4.6.2 VHDL预定义数据类型 教学视频

--4.6.3 VHDL预定义数据类型 单元测验

--4.6.4 VHDL预定义数据类型 讨论

-4.7 常量、变量和信号

--4.7.1 常量、变量和信号 导学

--4.7.2 常量、变量和信号 教学视频

--4.7.3 常量、变量和信号 单元测验

--4.7.4 常量、变量和信号 讨论

-4.8 运算操作符和属性

--4.8.1 运算操作符和属性 导学

--4.8.2 运算操作符和属性 教学视频

--4.8.3 运算操作符和属性 单元测验

--4.8.4 运算操作符和属性 讨论

-4.9 IF语句和WAIT语句

--4.9.1 IF语句和WAIT语句 导学

--4.9.2 IF语句和WAIT语句 教学视频

--4.9.3 IF语句和WAIT语句 单元测验

--4.9.4 IF语句和WAIT语句 讨论

-4.10 CASE语句

--4.10.1 CASE语句 导学

--4.10.2 CASE语句 教学视频

--4.10.3 CASE语句 单元测验

--4.10.4 CASE语句 讨论

-4.11 LOOP循环语句

--4.11.1 LOOP循环语句 导学

--4.11.2 LOOP循环语句 教学视频

--4.11.3 LOOP循环语句 单元测验

--4.11.4 LOOP循环语句 讨论

-4.12 进程

--4.12.1 进程 导学

--4.12.2 进程 教学视频

--4.12.3 进程 单元测验

--4.12.4 进程 讨论

-4.13 条件信号赋值语句

--4.13.1 条件信号赋值语句 导学

--4.13.2 条件信号赋值语句 教学视频

--4.13.3 条件信号赋值语句 单元测验

-4.14 选择信号赋值语句

--4.14.1 选择信号赋值语句 导学

--4.14.2 选择信号赋值语句 教学视频

--4.14.3 选择信号赋值语句 单元测验

-4.15 元件例化语句

--4.15.1 元件例化语句 导学

--4.15.2 元件例化语句 教学视频

--4.15.3 元件例化语句 单元测验

--4.15.4 元件例化语句 讨论

-4.16 VHDL模块化设计

--4.16.1 VHDL模块化设计

--4.16.2 VHDL模块化设计 教学视频

--4.16.3 VHDL模块化设计 单元测验

--4.16.4 VHDL模块化设计 讨论

第五章 设计方法概述

-5.1 设计方法概述

--5.1.1 设计方法概述 导学

--5.1.2 设计方法概述 教学视频

--5.1.3 设计方法概述 单元测验

--5.1.4 设计方法概述 讨论

-5.2 EDA综合设计案例(1)— 数字钟的设计

--5.2.1 EDA综合设计案例1 导学

--5.2.2 EDA综合设计设计案例1— 数字钟的设计 教学视频

--5.2.3 EDA综合设计案例1 单元测验

--5.2.4 EDA综合设计案例1 讨论

-5.3 EDA综合设计案例(2)—16×16点阵控制器设计

--5.3.1 EDA综合设计案例2 导学

--5.3.2 EDA综合设计案例2—16×16点阵控制器设计 教学视频

--5.3.3 EDA综合设计案例2 单元测验

--5.3.4 EDA综合设计案例2 讨论

思政教育

-国产EDA技术如何突破?

4.12.2 进程 教学视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。