当前课程知识点:EDA技术与应用 >  第四章 VHDL语言概述 >  4.14 选择信号赋值语句 >  4.14.2 选择信号赋值语句 教学视频

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

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

下一节:4.15.1 元件例化语句 导学

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

4.14.2 选择信号赋值语句 教学视频课程教案、知识点、字幕

同学们,大家好

这一讲

我们来学习另一种并行信号赋值语句

选择信号赋值语句

通过前面的学习

我们已经知道对信号的赋值可以是简单的

不附加任何条件的赋值

也可以是有条件的赋值

在VHDL语言中,对信号的赋值

还可以通过一个多值表达式的不同取值

来选择具体的赋值操作

这就是选择信号赋值语句的作用

下面我们来学习它的结构和功能

选择信号赋值语句的语法格式是这样的

在选择信号赋值语句中

选择表达式是该语句的敏感条件

每当选择表达式的值发生变化时

选择信号赋值语句就会被执行

执行的时候会用选择表达式的当前取值

和各条WHEN子句的选择值作比较

如果某一条子句的选择值

和选择表达式的当前值相等

那么

就会把这条WHEN子句中的表达式

赋值给目标信号

所以

我们看到选择信号赋值语句的执行方式

和CASE语句有点相似

的确如此

和CASE语句一样

选择信号赋值语句

也要求各选择值不能有重叠的现象

同时

各条HEN子句中选择值必须对选择表达式

所有可能出现的情况予以涵盖

不允许出现涵盖不全的情况

因此

我们经常用关键字OTHERS来做到这一点

但是CASE语句属于顺序语句

只能用在进程、函数或过程内部

而选择信号赋值语句是并行语句

它不能用在进程、函数或过程内部

每一条选择信号赋值语句

相当于一个进程

另外,我们还要注意一个细节

那就是在选择信号赋值语句中

除了最后一条WHEN子句用分号结束以外

其他各条WHEN子句的结尾都是逗号

而条件信号赋值语句的各条子句

结尾是没有标点符号的

只有最后一句是分号结束

下面我们用选择信号赋值语句来重新设计

上一讲中的4选1多路选择器

熟悉一下选择信号赋值语句的应用

也能体会到

选择信号赋值和条件信号赋值的联系和区别

电路的名称为mux4_1

d3、d2、d1、d0是四个数据输入端

s1和s0是两个地址端

q是数据输出端

电路的功能

是根据s1和s0这两个地址端的不同状态

从d3、d2、d1、d0中选择一个输出到q

当地址溢出的时候

电路的输出为高阻态

下面是用选择信号赋值语句完成的设计代码

代码开始

依然是必要的库声明和程序包声明

然后是实体说明

定义了实体名称和所有的电路端口

结构体采用了选择信号赋值语句

首先定义了一个信号temp

数据类型为STD_LOGIC_VECTOR

宽度是1 DOWNTO 0

把s1和s0并置后赋值给temp

这样temp就代表着选择的地址

当4选1多路选择器的地址发生变化的时候

选择信号赋值语句

就会读取当前temp的值

并且和各条WHEN子句的选择值进行比对

根据比中的结果决定d3、d2、d1和d0

哪一个信号被选中输出

如果地址信号不在上述四种情况之内

则输出为高阻态

和条件信号赋值语句相似

选择信号赋值也是一种并发执行的语句

它的功能是根据选择条件的不同取值

来选择对目标信号进行不同的赋值

选择信号赋值语句中的各条子句是并行的

没有优先等级之分

选择值不允许相互重叠

而条件信号赋值的各条子句

是有优先级别的

执行时会根据条件的先后顺序进行判断

所以这两种信号赋值还是有一些区别的

选择信号赋值和条件信号赋值

都是并行语句

不能用在进程的内部

只能在结构体部分来使用它们

好,本讲到这里就结束了

同学们,再见

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.14.2 选择信号赋值语句 教学视频笔记与讨论

也许你还感兴趣的课程:

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