FPGA有限状态机设计 王安然.

Slides:



Advertisements
Similar presentations
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Advertisements

第11章 触发器及时序逻辑电路 龚淑秋 制作.
第四章 时序逻辑电路 返回 4.1 概 述 4.2 时序逻辑电路的结构及类型 4.3 状态表和状态图 4.4 时序逻辑电路的分析与设计
实验四 利用中规模芯片设计时序电路(二).
第五章 触发器 5.1 概述(掌握触发器基本概念) 5.2 SR锁存器(掌握基本结构及动作特点)
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
Chapter 5 Sequential Logic Circuit
第6章 时序逻辑电路 《数字电子技术基础》 时序逻辑电路的基本概念 时序逻辑电路的基本分析方法和分析步骤。
数字逻辑:应用与设计 复习大纲.
第8章 Verilog有限状态机设计.
计算机基础知识 丁家营镇九年制学校 徐中先.
Greatest Common Divisor ---最大公约数
窗户 门 讲台.
VHDL數位電路實習與專題設計 文魁資訊-UE301
时序电路 计数器分析及设计 刘鹏 浙江大学信息与电子工程学院 April 10, 2018 EE141
第四章 同步时序逻辑电路.
Chapter 5 Verilog 硬體描述語言
Chapter 5 Verilog硬體描述語言
控制器2 刘鹏 Dept. ISEE Zhejiang University Source: 补充讲义
Verilog HDL 数字系统设计及实践 第5章 时序逻辑建模.
EDA技术 廖义奎.
时序电路 计数器分析及设计 刘鹏 浙江大学信息与电子工程学院 March 31, 2016 EE141
时序逻辑电路 -分析.
第4章 第4章 触发器和时序逻辑电路 4.1 触发器 4.2 时序逻辑电路 *4.3 应用举例 上页 下页 返回.
FPGA设计.
临界区软件互斥软件实现算法.
第四章 同步时序逻辑电路.
实验四 组合逻辑电路的设计与测试 一.实验目的 1.掌握组合逻辑电路的设计 方法 2.学会对组合逻辑电路的测 试方法.
大作业要求 1、按照选题要求设计电路,并仿真、下载,实现电路。 2、撰写综合报告.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
FPGA设计方法 刘志凯 2008年8月.
CPU结构和功能.
14.2 时序逻辑电路的分析 概述 时序逻辑电路是由存储电路和组合逻辑电路共同组成的,它的输出状态不仅与输入有关,还与电路的过去状态有关,即具有存储功能。 输入信号 输出信号 输出方程 驱动方程 描述时序逻辑电路的三个方程 状态方程 存储电路的输入信号 时序逻辑电路构成框图 存储电路的输出信号.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
8.4 ADC0809接口电路及程序设计.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
数字电子技术 Digital Electronics Technology
K60入门课程 02 首都师范大学物理系 王甜.
时序逻辑电路 -分析.
第 6 章 时序电路的分析与设计 6.1 时序电路概述 6.2 同步时序逻辑电路的分析 6.3 异步时序电路的分析方法
第四章 时序逻辑电路 触发器 时序电路概述 同步时序电路的分析 同步时序电路的设计 异步时序电路 小结.
设计示例一 用门级结构描述D触发器:.
信号量(Semaphore).
组合逻辑电路 ——中规模组合逻辑集成电路.
中等职业学校教学用书(电子技术专业) 《电工与电子技术基础》 任课教师:李凤琴 李鹏.
第五章 触发器 5.1 基本触发器 一、基本RS触发器 1.用与非门组成的基本RS触发器
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
第 13 章 触发器和时序逻辑电路 13.1 双稳态触发器 13.2 寄存器 13.3 计数器 定时器及其应用.
实验六 基本RS和D触发器的应用.
实验六 触发器逻辑功能测试 一、实验目的 二、实验仪器 1、熟悉并掌握RS、D、JK触发器的构成、工作原理和 功能测试方法。
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
MAX——PLUSⅡ 图形化程序设计 ——数字电子钟的设计 (二十四小时六十分钟六十秒)
《数字电子技术基础》(第五版)教学课件 清华大学 阎石 王红
实验五 MSI组合逻辑功 能部件的应用与测试
概 述 一、时序电路的特点 x1 y1 1. 逻辑功能特点 xi yj 任何时刻电路的 输出,不仅和该时刻 的输入信号有关,而
集成与非门在脉冲电路中的应用 实验目的 1. 了解集成与非门在脉冲电路中 的某些应用及其原理。 2. 学习用示波器观测波形参数与
第4章 触发器.
概述 一、基本要求 1. 有两个稳定的状态(0、1),以表示存储内容; 2. 能够接收、保存和输出信号。 二、现态和次态
时序运算模块的VHDL设计 时序电路的结构与特点 内部含有存储器件(触发器、锁存器); 信号变化受时钟控制; 通常采用状态变化进行描述;
FPGA组合逻辑 王安然.
按键处理部分 王安然.
第12章 555定时器及其应用 一. 555定时器的结构及工作原理 1. 分压器:由三个等值电阻构成
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
数字电子技术基础 信息科学与工程学院·基础电子教研室.
第八章 第二部分 PLC控制组态软件 综合仿真实验
数字电子技术 项目1 简单加法器电路设计与测试
Presentation transcript:

FPGA有限状态机设计 王安然

主要内容 有限状态机概述 有限状态机分类及异同 序列检测状态机实现 有限状态机编码方式 有限状态机设计一般步骤及实例 交通灯三段式设计案例

有限状态机描述 FSM:finite state machine,一种由寄存器组和组合逻辑构成硬件 时序电路,堪称FPGA硬件设计的灵魂。 在同一时钟跳变沿由当前状态(现态)转移到下一状态(次态) 究竟转向哪一状态不但取决于各个输入值,还取决于当前状态。 在时钟跳变沿时刻进行复杂组合逻辑控制 包含时序、组合逻辑电路 非常有用模型,可以模拟大部分事物。如按键命令、自动门控制、 通信时序等 1.状态总数state是有限的 2.任何一个时刻,只能处于一个状态 3.在条件满足时,由一个状态转变到另一个状态

有限状态机基本类型 moore型:输出逻辑只由当前状态决定 下一个状态 = F(当前状态,输入信号); 输出信号 = G(当前状态);

Mealy和Moore状态机结构图 mealy型:输出逻辑不但与当前状态有关还与当前输入值有关 下一个状态 = F(当前状态,输入信号); 输出信号 = G(当前状态,输入信号);

举例:序列检测器 将指定的二进制序列从数码流中检测出来 如:将“101”序列从码流“111010110”中检测,输出高代表检 测到序列,低电平代表没有发现 1 识别101序列 clk rst out 序列检测结果示意 IN 1 OUT

举例:序列检测器 mealy型 moore型 s0: begin state <= vin? s1:s0; vout <= 1'b0; end s1: begin state <= vin? s1:s2; s2: begin state <= vin? s1:s0; if(vin)vout <= 1'b1; else vout <= 1'b0; s0: begin state <= vin? s1:s0; vout <= 1'b0; end s1: begin state <= vin? s1:s2; s2: begin state <= vin? s3:s0; s3: begin state <= vin? s1:s2; vout <= 1'b1;

有限状态机要素 状态:当前状态、次态 输入:触发状态转移的输入条件 输出:输入所触发的动作 输入 / 输出 现态 次态

有限状态机的样式 一段式 整个状态机在一个always模块中,模块中既包含状态转移也含有 组合逻辑输入输出。 二段式 三段式 状态机使用三个always描述,一个采用同步时序实现状态转移, 一个采用组合逻辑判断转移条件,一个实现状态同步输出 通过例程了解

状态机三段式模板 //第一个进程,同步时序always模块,格式化描述次态寄存器迁移到现态寄存器 always @ (posedge clk or negedge rst_n) //异步复位 if(!rst_n) current_state <= IDLE; else current_state <= next_state; //注意,使用的是非阻塞赋值 //第二个进程,组合逻辑always模块,描述状态转移条件判断 always @ (current_state) //电平触发 begin next_state = x; //要初始化,使得系统复位后能进入正确的状态 case(current_state) S1: if(...) next_state = S2; //阻塞赋值 ... endcase end //输出逻辑部分 二 out1 = 1‘b1; 段 out2 = 1‘b1; 式

状态机三段式模板 三 段 式 //第三个进程,同步时序always模块,格式化描述次态寄存器输出 always @ (posedge clk or negedge rst_n) ...//初始化 case(next_state) S1: out1 <= 1'b1; //注意是非阻塞逻辑 S2: out2 <= 1'b1; default:... //default的作用是免除综合工具综合出锁存器 endcase end 三 段 式

序列检测器一段式 具体工程及源码在附带资料中,仿真结果如下:

序列检测器二段式 具体工程及源码在附带资料中,仿真结果如下:

序列检测器三段式 具体工程及源码在附带资料中,仿真结果如下:

不同样式的比较 有

状态编码 二进制码 格雷码 独热码 二进制 格雷码 独热码 000 00000001 001 00000010 010 011 00000100 00001000 100 110 00010000 101 111 00100000 01000000 10000000 二进制码 格雷码 独热码 二进制编码、格雷码编码使用最少的触发器,消耗较多的组合逻辑,而独热码编码反之。 在CPLD中,由于器件拥有较多的地提供组合逻辑资源,所以CPLD多使用二进制编码或格雷码,而FPGA更多地提供触发器资源,所以在FPGA中多使用独热码编码,并非绝对,以实际应用而定。

状态机的设计的一般步骤 逻辑抽象,得出状态转移图 状态化简 如果在状态转换图中出现这样两个状态,它们在相同 的输入下转换到同一状态去,并得到一样的输出,则 称它们为等价状态 ,可合并成一个,可以由电脑完成 状态分配:又称状态编码 描述状态机 (选定触发器的类型并求出状态方程、驱动方程和输出方程 按照方程得出逻辑图)

交通灯 交通灯 由红黄绿三种颜色组成用来指挥交通的信号灯; 伴随着红绿灯的指示,有数码管的计时;

交通灯逻辑 交通灯主路上绿灯持续22秒时间,黄灯4秒时间,红灯16秒时间; 交通灯支路上绿灯持续12秒时间,黄灯4秒时间,红灯26秒时间;

程序设计框图 首先将系统时钟进行分配产生1Hz信号 通过1Hz信号倒计时进行状态机状态转换 S1:主路绿灯点亮,支路红灯点亮,持续22S时间; S2:主路黄灯点亮,支路红灯点亮,持续4S时间; S3:主路红灯点亮,支路绿灯点亮,持续12S时间; S4:主路红灯点亮,支路黄灯点亮,持续4S时间;

交通灯实现 reg [1:0] c_state,n_state; //同步状态转移 always @(posedge clk_1Hz or negedge rst_n_in) if(!rst_n_in) c_state <= S1; else c_state <= n_state;   //判断转移条件 always @(c_state or timecnt) //组合逻辑 if(!rst_n_in) n_state = S1; else begin case(c_state) S1: if(!timecnt) n_state = S2; else n_state = S1; S2: if(!timecnt) n_state = S3; else n_state = S2; S3: if(!timecnt) n_state = S4; else n_state = S3; S4: if(!timecnt) n_state = S1; else n_state = S4; default:n_state = S1; endcase end

交通灯实现 localparam RED = 3'b011, GREEN = 3'b101, YELLOW = 3'b110; S1: begin led_master <= GREEN; //主路绿灯 led_slave <= RED; //支路红灯 if(timecnt==0) begin timecnt <= 8‘h21; //计数初值 end else begin if(timecnt[3:0]==0) begin //十进制减法 timecnt[7:4] <= timecnt[7:4] - 1'b1; timecnt[3:0] <= 4'd9; end else timecnt[3:0] <= timecnt[3:0] - 1'b1; end

交通灯仿真结果