您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 第六讲--基于Verilog的状态机设计
第六讲基于Verilog的状态机设计2020/2/24有限状态机概述FSM:finitestatemachine,一种重要的时序电路,在数字系统设计中有着非常重要的地位和作用,使用它可以较容易设计出复杂的数字系统,包含时序、组合逻辑电路有异步和同步之分,广泛使用的是同步有限状态机有限状态机的两种基本类型:mealy型和moor型2020/2/24状态机的结构图下一状态取决于当前状态和当前输入,输出取决于当前状态2020/2/24状态机相比,由于其状态输出与输入无关,而只与当前状态有关,所以它可以避免由输入信号引起的毛刺,因此建议使用Moor状态机实际上只要对mealy状态机的输出逻辑加上输出寄存器进行同步,也可以有效防止毛刺产生,因此应根据实际需要选择结构2020/2/24状态机的设计的一般步骤逻辑抽象,得出状态转换图状态化简如果在状态转换图中出现这样两个状态,它们在相同的输入下转换到同一状态去,并得到一样的输出,则称它们为等价状态,可合并成一个,可以由电脑完成状态分配:又称状态编码用VerilogHDL来描述有限状态机,使用always块语句和case(if)等条件语句及赋值语句即可方便实现2020/2/24举例:fsmIdleStartStopClearA/k1=0!AA/k2=1!Reset/k2=0k1=0!Reset/k2=0k1=0!Reset|!A/k2=0k1=1状态转移图!Reset/k2=0k1=0源代码见fsm.v2020/2/24状态机的设计风格状态机编程的重要依据是状态转移图,画出状态图可以使有限状态机的结构变得清晰编写代码有三种风格:一段式、两段式、三段式一段式将状态转移寄存、状态译码和输出放在一个always块中二段式有两个always块,一个完成状态转移寄存、另一个完成状态译码和输出三段式中两个always块,一个完成状态转移、另一个完成状态译码和输出,还对状态输出进行了寄存,有可能使用三个always,也有可能是两个(本身已经对状态输出进行了寄存)2020/2/24一段式描述可读性差,更重要的是这种风格不能被综合工具很好的识别,因而比较难被优化二段式把组合逻辑和时序逻辑分开,有较好的可读写,能被优化,但可能出现毛刺三段式在保留二段式有点的基础上,可以有效滤除毛刺,提高工作频率,只是资源占用略多,建议使用三段式写法详见见例子程序mealyfsm(3always).v;moorefsm(2always).v;one_always_fsm.v2020/2/24-hot自定义码2020/2/24编码Binary二进制码,编码效率高,n位可表示2n种状态这种方式在译码过程中需要所有的二进位参与,导致很大的组合逻辑电路,降低模块工作频率,消耗大量的FPGA资源更适合CPLD这种组合逻辑资源较多的器件•见例子mealyfsm(3always).v•moorefsm(2always).v2020/2/24码顺序跳变时因只有一位跳变而对毛刺不敏感,在某些高可靠设计或者异步状态机中有所使用如果每一个状态都有很多调转分支,那么效果和binary一样,不会起到消除毛刺的作用。见one_always_fsm.v2020/2/24-hot独热码任何时候寄存器中有且仅有1bit为1,其他n-1个寄存器均为0,这种编码方式比binary多用D触发器,但译码需要的逻辑较少有两种方式:index编码、非index编码见例程index_fsm.v和not_index_fsm.v2020/2/24自定义码用得比较少,最常见的是有输出指定的编码,把状态的直接作为输出,可以提高输出的速度,用在高速状态机中,有时需要增加状态2020/2/24状态机的复位和无效状态恢复复位为状态寄存器置初置,使电路进入正常工作状态并非所有状态都是有效状态(不可到达和不可返回状态)ABCEFDGH2020/2/24异步或同步复位Default的使用,可默认进入任何有效状态2020/2/24状态机设计举例序列检测器(检测串行输入的10011)Din为串行输入数据Resetb为复位信号Clk为时钟Out输出,检测到一个序列输出一个高电平脉冲上一个序列的最后一个1可作为下一个序列的第一个12020/2/24IdleOne_bitTwo_bitFour_bitThree_bit!resetb/out=0!resetb/out=0!resetb/out=0!resetb/out=0Din=0/out=0Din=1/out=0Din=1/out=0Din=0/out=0Din=1/out=0Din=0/out=0Din=1/out=0Din=1/out=1Din=0/out=02020/2/24小节
本文标题:第六讲--基于Verilog的状态机设计
链接地址:https://www.777doc.com/doc-3980151 .html