当前课程知识点:现代电子系统设计 > 第八章 FPGA与数字系统设计 > 8.9 Verilog硬件设计语言 > 8.9.6 Verilog设计举例(3)
接下来讲第八章第九节
Verilog硬件描述语言
第六小节Verilog设计举例(3)
我们前面讲过
在always模块中
可以用if和case语句
那么怎样来用呢
其实我们在前面举的这个
二选一数据选择器的例子中
已经用了这个if语句
那我们用if else来描述
这个输出out和ab之间的关系
实际上我们也可以用case
来描述这种关系
这是一个用case描述
这个out和ab的例子
那么case在用的时候
它和endcase是一起来用的
当它的条件sel等于1的时候
就执行out等于a
当sel等于0的时候
就执行out等于b
所以它用起来也是比较简单的
另外我们用了一个default语句
也就是一个缺省语句
缺损情况下
out等于x也就是位置的状态
之所以用这个default语句
是为了防止在case语句列举的时候
没有列全的情况
当然我们也可以不用这个default
那这个时候
也可以在它always语句一开始
就用out等于x
然后再用这个case语句
这样的话也可以
接下来我们看一个状态机
设计的例子
我们设计一个简单的状态机
它只有两个状态
s等于0
s等于1
然后它有两个输入变量
in和reset
reset是一个复位信号
in是一个输入信号
然后它有一个输出变量out
当in等于0的时候
那么状态它是保持的
也就是说它如果原来
在s等于0的状态
它还在0的状态
如果在1的状态
它也就还保持在1的状态
当reset等于1的时候
那么这时候无论是哪个状态
都要回到0状态
也就是原来是0状态
它还保持在0状态
如果原来是1状态
它就要回到0状态
另外在0状态的时候
它的输出等于1
另外在1状态的时候
它的输出等于0
这是这个状态机它的描述
接下来我们看怎么样
用语言来实现它
首先我们定义一个模块
就是FSM
表示状态机
然后列举了它的
输入和输出的变量
另外因为这个电路
是一个时序电路
所以还有一个时钟信号clock
作为输入信号
另外它的输出信号
是out
那这时候out还要把它定义成
reg型的变量
另外为了描述它的状态
我们引入了一个reg型的
state变量
然后它的两个状态0和1
用参数来描述
s0等于0
s1等于1
这是它的变量和参数
接下来我们就用两个always模块
也就是两段式的方式
来描述这个状态机
第一个always模块
用来描述在不同的状态下
它的输出的变量
第二个always模块
用来描述在输入条件变化的时候
状态是怎样转换的
下面现在第一个always模块
在这个always模块中
它括号中的输入变量是state
然后用case语句来描述
在状态s0的情况下
它的输出out等于1
在状态s1的情况下
它的输出out等于0
default的情况
out是等于0
这是第一个always模块
它描述的是不同状态下
输出的一个关系
接下来第二个always模块
就描述状态的转换
这时候它的括号中的变量是
clk或者reset的上升沿
也就是说当clk或者reset
出现上升沿的时候
就执行这个always它的结构体
首先if reset等于1
那么state就会回到0
这是第一个语句描述
reset它的作用
接下来否则如果reset不是等于1
那这时候接下来就用case语句
描述它的状态的转换
如果状态是等于0
那这时候只要输入等于1的话
那么它就转换到状态s1
也就是state等于s1
否则的话
它还维持它的s0的状态
如果case state等于s1
这时候就看这个输入变量
如果输入变量等于1
那这时候这个状态就回到0
否则的话
它还维持它自己原来的状态s1
这是状态转换的描述
感谢您的观看
-课程简介
-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 实验结果展示
-第十章 作业
-期末考试
--期末考试