当前课程知识点:现代电子系统设计 > 第八章 FPGA与数字系统设计 > 8.9 Verilog硬件设计语言 > 8.9.5 Verilog设计举例(2)
接下来讲第八章第九节
Verilog硬件描述语言
第五小节
Verilog设计举例(2)
下面我们来看行为描述
怎样进行行为描述呢
行为描述
是对电路它的功能进行描述
它不关心电路内部的结构
也不关心输入到输出的数据流
它关心的是电路整体的功能
它采用的是一个过程赋值语句
always来描述
always是一个结构化的声明
在这个结构化的声明中
可以采用与C语言类似的控制结构
例如if else
和case语句
所谓always是说
它总是等待输入的变化
然后再去执行它的结构体
下面举例组合逻辑设计
前面我们介绍过
组合逻辑设计的时候
可以用always语句
那么这时候
它的括号中是变量
也就是所有的输入变量
它总是等待输入变量的变化
然后再执行它的结构体
在执行结构体的时候
是顺序执行的
下面我们看具体的例子
还是以这个二选一多路选择器为例
这时候我们先定义这个模块
它的名字
输入和输出变量
在这要注意的是
它的两个输出变量
out和outbar
要定义成寄存器型
然后我们用always模块
来描述它的功能
这时候always模块中
它的括号中的变量
是a b sel三个输入变量
只有等这三个输入变量中间
某一个或者是几个发生变化的时候
它才执行它的结构体
那么结构体中
是描述这个多路选择器的功能
if sel等于1
那么out就等于a
否则的话out就等于b
最后是outbar等于~ out
那这样它就可以把这个
多路选择器的功能描述出来了
非常简单
在这要注意的是
它的输出变量必须定义为reg型
也就是out和outbar
在always模块中应用的时候
要把它定义为reg型
第二个要注意的就是
它的声明的语句是顺序执行的
所以它的这个顺序是有关的
另外它的赋值语句
采用的是等号
这种赋值语句我们称它为
阻塞赋值
所谓阻塞赋值就是说
要等到当前的语句执行完了以后
才能够执行下一个语句
也就是执行当前语句的时候
是阻塞下面一个语句的执行的
在行为描述的过程中
过程赋值语句和连续赋值语句
是可以共存的
也就是在同一个模块中
可以用这两种语句
例如还是这个例子
我们在描述out
和a b sel的关系的时候
用always语句
而描述out和outbar关系的时候
用连续赋值语句assign
接下来看时序逻辑的设计
前面我们提到过
时序逻辑设计的时候
也可以用always语句
只不过这时候
它的括号中的变量
是一个变量的上升沿或者下降沿
例如这个时钟的上升沿
然后它内部的结构体是同步执行的
我们以一个D触发器为例
它有三个输入
一个是时钟CLK
一个是输入D
还有一个就是清零信号clearb
然后有一个输出Q
首先我们定义这个D触发器的模块
然后它的这个输入和输出变量
列举在括号中
然后接下来描述它的输入input
和输出output变量
另外它的输出变量Q
也要定义为reg型
接下来用always语句来描述
输入和输出之间的功能关系
在它的括号中
列举了是clock的上升沿
那也就是说
只有当clock上升沿的时候
才执行这个always里头的结构体
那么结构体是if clearb等于0
那么Q就等于0
否则Q就等于D
这样就描述了
这个D触发器它的功能
在这要注意的是
它采用的是一种叫
非阻塞赋值的语句
也就是说在always模块中
所有的语句是同时执行的
就是在clock上升沿的时候
同步执行
所以它采用的赋值的等号
是在等号的左边
再加了一个箭头
代表非阻塞的赋值语句
这个是跟前面的阻塞赋值语句
不一样的地方
因此我们说
用非阻塞的赋值语句
可以描述时序电路
而用阻塞语句来描述
组合逻辑电路
感谢您的观看
-课程简介
-1.1 电子系统简介
-1.2 现代电子系统举例
-1.3 现代电子系统的组成
-1.4 现代电子系统设计方法
-第一章 作业
-2.1 传感器定义
-2.2 传感器的分类和性能指标
-2.3 常用传感器介绍
-2.4 常用执行器介绍
-第二章 作业
-3.1 模拟信号处理简介
-3.2 信号放大和隔离电路
-3.3 滤波电路
--3.3 滤波电路
-3.4 运算电路(一)
-3.5 运算电路(二)
-3.6 电压比较器
-3.7 功率放大电路
-3.8 模-数转换器
-3.9 数-模转换器
-第三章 作业
-4.1 直流电源简介
-4.2 线性稳压电源
-4.3 开关稳压电源
-第四章 作业
-5.1 微处理器简介
-5.2 微处理器和片上系统的发展历程
-5.3 微处理器分类
-5.4 微处理器和片上系统举例
-5.5 微处理器和片上系统硬件结构
-5.6 外围接口和设备
-5.7 嵌入式软件开发方法
-5.8 嵌入式操作系统
-5.9 外围设备应用程序开发简介
-第五章 作业
-6.1 TM4C123 简介
-6.2 TM4C123 实验板
-6.3 TM4C123 软件开发
-6.4 TM4C123 实验举例
-第六章 作业
-7.1 PSoC简介
-7.2 PSoC实验板
-7.3 PSoC软件开发
-7.4 PSoC实验举例
-第七章 作业
-8.1 FPGA简介
-8.2 FPGA的发展趋势
-8.3 FPGA的特点
-8.4 FPGA的结构
-8.5 FPGA结构举例
-8.6 FPGA设计工具和方法
-8.7 QuartusⅡ集成开发环境
-8.8 DE2-115实验平台简介
-8.9 Verilog硬件设计语言
-- 8.9.8 设计仿真
-8.10 数字电路设计与仿真举例
-第八章 作业
-9.1 SOPC简介
-9.2 Nios II 微处理器简介
-9.3 Avalone总线简介
-9.4 SOPC设计方法简介
-9.5 SOPC设计举例
-- 9.5.1 设计内容
-9.6 Nios II 软件设计
-第九章 作业
-10.1 实验内容与要求
-10.2 实验设备与器材
-10.3 注意事项与调试方法
-10.4 实验结果展示
-第十章 作业
-期末考试
--期末考试