有限状态机模型

第4种风格的Verilog HDL模型来表示同一个有限状态。在这个模型中,我们分别用沿触发的always语句和电平敏感的always语句把状态机的触发器部分和组合逻辑部分分成两部分来描述。

注意:沿触发的always语句中采用并发(非阻塞)赋值的方式;电平敏感的always语句中采用阻塞赋值的方式;
例4.4:有限状态机模型4。

module  fsm (Clock, Reset, A,  F, G);           //模块声明
      input Clock, Reset, A;
      output F,G;
      reg [1:0] state, Nextstate;

parameter                                      //状态声明
           Idle  = 2’b00,  Start = 2’b01, 
           Stop = 2’b10, Clear = 2’b11;

always @(posedge Clock)
           if (!Reset) begin
                 state <= Idle;                   //默认状态
           end
           else
                 state <= Nextstate;             //状态转换

always @( state or A ) begin
           F=0;
           G=0;
           if (state == Idle) begin             //处于Idel状态时,对A判断
                 if (A)
                      Nextstate  =  Start;        //Start状态
                 else
                      Nextstate  =  Idle;         //保持Idel状态
                 G=1;
           end
           else if (state == Start)             //处于Start状态时,对!A判断
                 if (!A)
                      Nextstate  =  Stop;         //Stop状态
                 else
                      Nextstate  =  Start;        //保持Start状态
           else if (state == Stop)               //处于Stop状态时,对A判断
                 if (A)
                      Nextstate  =  Clear;        //Clear状态
                 else
                      Nextstate  =  Stop;         //保持Stop状态
           else if (state == Clear) begin      //处于Clear状态时,对!A判断
                 if (!A)
                      Nextstate  =  Idle;         //Idel状态
                 else
                      Nextstate  =  Clear;        //保持Clear状态
                 F=1;
                 end
           else
                 Nextstate= Idle;                 //默认状态
      End
endmodule

时间: 2024-10-12 22:05:00

有限状态机模型的相关文章

试试用有限状态机的思路来定义javascript组件

本文是一篇学习性的文章,学习利用有限状态机的思想来定义javascript组件的方法,欢迎阅读,后续计划会写几篇专门介绍自己利用有限状态机帮助自己编写组件的博客,证明这种思路对于编程实现的价值,目前正在积极构思中.本文代码下载 1. 有限状态机概述 简单说,有限状态机是一种模型,模型都用来模拟事物,能够被有限状态机这种模型模拟的事物,一般都有以下特点: 1)可以用状态来描述事物,并且任一时刻,事物总是处于一种状态: 2)事物拥有的状态总数是有限的: 3)通过触发事物的某些行为,可以导致事物从一种

Verilog HDL设计进阶:有限状态机的设计原理及其代码风格_zt

http://www.21ic.com/app/eda/201308/189781_1.htm 由于Verilog HDL和 VHDL 行为描述用于综合的历史还只有短短的几年,可综合风格的Verilog HDL 和VHDL的语法只是它们各自语言的一个子集.又由于HDL的可综合性研究近年来非常活跃,可综合子集的国际标准目前尚未最后形成,因此各厂商的综合器所支持的HDL子集也略有所不同. 本书中有关可综合风格的Verilog HDL的内容,我们只着重介绍RTL级.算法级和门级逻辑结构的描述,而系统级

03软件构架实践阅读笔记之三

在上一次的阅读笔记当中,提到了很多关于软件构架的东西,例如:软件构架的周期性等,但是大部分的都是系统的说明,现在,下面看的都是详细的介绍. 在刚开始是构架的产生:在刚开始的第一句话就说:"构架也是若干商业和技术决策的结果",从这句话就可以看出构架对于软件技术的重要性,而正如我们所知道的不管什么事情都会受很多因素的干扰,同样的,架构会受系统涉众的影响,在上一学期,老师就提到了什么是涉众.但是每一种的涉众对于软件的要求就会不相同例如 客户涉众:要求成本低.及时交互.不要改动的太平凡等等:

chrome书签导出

Bookmarks 书签栏 工具手册 IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!) - 洋哥的空间 - 开源中国社区 Tutorials for Web2Py, ReactJS, MS Project, Silverlight, Foundation, Django, Apache Storm, ETL Testing, Pure.CSS, Entity Framework, Cordova, Materialize, Windows 10, Less, Statisti

Unity 内的敌人AI

孙广东  2015.8.15 一.Enemy Aim Ai           目的: 这篇文章的主要目的是为了让您了解有关如何使用 Enemy Aim Ai .你会得到结果: Enemy aim AI是非常有用的,当你想要敌人一直监视player.适当争取对象在真实世界的场景,需要时间,所以敌人会采取一些之前它锁在目标系统上的时间量. 这种效应可以创建的 Lerping 旋转角度对玩家的敌人.这种情况是在动作游戏,敌人跟随,目的是何地然后射球员的情况下非常有用.对敌人遵循概念是在早些时候发布的

Paxos Made Simple

Paxos一致性算法——分布式系统中的经典算法,论文本身也有一段有趣的故事.一致性问题是分布式系统的根本问题之一,在论文中,作者一步步的加强最初一致性问题(2.1节提出的问题)的约束条件,最终导出了一个可实现的一致性模型.当前Paxos算法的研究越来越多,相关实现也不少,而原论文依然是最不可少的资料.论文通篇没有一个数学公式,这是大牛的坚持![]中的是我个人的注释.先解释文中几个关键词的翻译:Proposal译为“议案”,由proposer提出,被aceeptor批准或否决Value译为“决议”

机器人控制入门

对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此.如果去问一个程序员怎么学习一块技术,他必然让你去多编程.机器人领域也是.如果想把基本功打扎实,那么实践更是必不可少了. 机器人控制有三个元素:控制器(算法),执行器(电机),传感器: 控制的本质就是将规划系统的指令作为输入信息,将传感器探测得到的状态信息和导航系统的定位信息作为反馈,计算得到执行器的控制信号,完成运动控制的闭环. 控制的原则就是稳定.准确.快速. 知识构架分为两部分:理论环节.实践环节.1)理论环节即

语音识别概述

后验概率最大,即为判别结果 HTK Hvite解码器   Sphinx解码器 TODE解码器,生硬,修改繁琐. WFST 扩充,简单高效. 有限状态机模型被用于大词汇量连续中文语音识别系统中. 其操作思路是将传统语音识别系统中的数学模型,分别转换成有限状态机模型,再将转换后的模型进行有效地整合及优化,得到搜索空间. 有限状态自动机(Finite-state Automata,FSA) 用点表示状态,带箭头的方向线段表示转移,转移上的字符为输入字元:用加粗圆圈表示初始状态,双线圆圈表示终止状态 节

竞价广告系统-ZooKeeper介绍

ZooKeeper介绍 为了讲述的完整性,介绍一下ZooKeeper.ZooKeeper在Index和Ad Server里使用比较多,虽然它可能没有google的Chubby好,但它是开源的工具.举一个使用场景,比如我们有很多台Index,或者有很多台Ad Server,其中有一些机器崩溃了,或是有一些机器新添加进了集群,如何用一个分布式的管理系统通知其它相关模块,哪些机器是可以用的.ZooKeeper就是解这种问题的,ZooKeeper是在基于消息传递通信模型的分布式环境下解决一致性问题的基础