简单状态机.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

24.03.2019
14
6、用verilog语言实现状态机(重点)


1、Verilog HDL设计流程
2、Verilog HDL模块的基本概念
3、状态机模块的输入输出端口
4、主要的数据类型wire和reg 5、参数(parameters)的概念 6、条件判断语句 7、程序中的数据表达方式 8、功能仿真
2、演示设计效果。
3、分析语言。 4、以解决具体问题为导向进行学习。
24.03.2019
3
状态机

1、什么是状态机


2、一个实例—简单的状态机(8状态)
3、实验硬件平台


4、硬件框图
5、软件框图 6、用verilog语言实现状态机(重点)
24.03.2019
4
以状态机为基本的时序电路设计
现状态
输出逻辑
组合逻辑
• 状态寄存器由一组触发器组成,用来记忆状态机当前所处的状态。
24.03.2019
7
有限状态机状态编码state定义

定义STATE常量 • 状态较少情况下(比如4个一下),用onehot方式表示. 比如: STATE0, STATE1, STATE2, STATE3分别用 0001 , 0010 , 0100 , 1000 来表示. onehot编码占用触发器较多。注意多余的状态。

4、FPGA与LED之间采用简单驱动连接。
(段码通常采用74LS573,位选通常采用74LS04, 或者三极管)
24.03.2019
13
5、软件框图

简单的状态机,有8个状态,数码管输出当 前状态的编号 state0--state1--state2--state3--state4-state5--state6-state7--state0

一般采用组合电路输出 • 在always块的敏感表不含时钟 • 这种状态机组合和时序全部分开

也可用时序输出 • 在always块的敏感表中只有时钟和复位 • 这种状态机的组合电路和时序电路揉和在一起 • 每个输出都是寄存器输出
24.03.2019
ቤተ መጻሕፍቲ ባይዱ
9
2、一个实例—简单的状态机(8状态)

简单的状态机,有8个状态,数码管输出当 前状态的编号:
Verilog HDL硬件描述语言
第二讲
24.03.2019
长江大学电信学院
1
第一讲回顾

学习可编程技术的现实意义


CPLD/FPGA的具体应用举例
三大公司的芯片简介


三大公司的软件开发平台简介
目前存在的5种硬件描述语言简介
24.03.2019
2
本节课计划:

1、分析具体实例—状态机


24.03.2019
18
模块的结构

“模块”(block)是Verilog的基本设计单元。 一个模块是由两部分组成的,一部分描述接口,另一部分描述逻辑功能, 即定义输入是如何影响输出的。 module block (a,b,c,d); input a,b; output c,d; assign c= a | b ; assign d= a & b; endmodule
输出由状态决定,与输入信号无关
下一个 状态逻辑
组合逻辑
下一状态
状态 寄存器
时序逻辑
现状态
输出电路
组合逻辑
• 状态寄存器由一组触发器组成,用来记忆状态机当前所处的状态。
24.03.2019
6
mealy型 输出与状态及输入信号相关 有限状态机
输入 输出
下一个 状态逻辑
组合逻辑
下一状态
状态 寄存器
时序逻辑
24.03.2019 15
Verilog HDL设计流程

自顶向下(Top-Down)设计
24.03.2019
16
Verilog HDL模块的基本概念
/*一个名为adder的三位加法器的例子。 copyright XAUT 24.03.2019 */
module adder ( count,sum,a,b,cin ); //模块定义开始 input [2:0] a,b; input cin; output count; output [2:0] sum; //输入信号定义 //输出信号定义 //输出信号定义 //输出信号定义

0→1 →2 →3 → 4→5 →6 → 7
24.03.2019
10
3、实验硬件平台
24.03.2019
11
4、硬件框图
FPGA
LED
详细图片加驱动电路 板书(略)
24.03.2019 12
4、硬件框图

1、FPGA的外围电路


2、LED数码管的结构(8段数码管)
3、FPGA与LED直接连接(利弊)

有限状态机是由寄存器组和组合逻辑构成的硬件时序电路。

有限状态机的状态可以在同一时钟跳变沿的情况下从一个 状态转向另一个状态。
究竟转向哪一状态还是留在原状态不但取决于各个输入值, 还取决于当前所在状态。 有限状态机分为Mealy型有限状态机,和Moore型有限状态 机。


24.03.2019
5
Moore型 有限状态机
• •
状态较多时(比如16个状态),尽量少占用触发器. STATE0, STATE1,…STATE15分别用 4’h0 , 4’h1 ,… 4’hf 来表示。 建议用parameter来定义,不要用`define来定义 (`define只用来定义变量位宽和延时大小)
24.03.2019
8
有限状态机的输出
assign {count,sum} = a + b + cin; //模块功能描述 endmodule //模块定义结束
24.03.2019
17
Verilog HDL模块的基本概念



Verilog HDL程序是由模块构成的。每个模块的内容都是嵌在 module和endmodule两个语句之间。每个模块实现特定的功能。 模块是可以进行层次嵌套的。可以将大型的计分割成不同的小模 块来实现特定的功能,最后通过顶层模块调用子模块来实现整体功 能。 每个模块要进行端口定义,并说明输入输出口,然后对模块的功能进 行行为逻辑描述。 Verilog HDL区分大小写。也就是说大小写不同的标识符是不同的。 此外,Verilog HDL是自由格式的,即结构可以跨越多行编写,也 可以在一行内编写。白空(新行、制表符和空格)没有特殊意义。 除了endmodule语句外,每个语句和数据定义的最后必须有分号。 可以用/*.....*/和//.......对Verilog HDL程序的任何部分作注释。
相关文档
最新文档