原创 24.我与FPGA的恋爱之状态机爱上时序图

2016-4-28 17:23 3037 27 28 分类: FPGA/CPLD 文集: 我与FPGA的恋爱

状态机和时序图

 

第一部分:状态机

关于状态机笔记,详情查看博主的

http://bbs.ednchina.com/BLOG_ARTICLE_3033677.HTM

我与FPGA的恋爱之状态机的设计

这里是原文表述

1、认识状态机

对象:静态属性(Property)和动态行为(Event)(怎么感觉有点像程序里面面向对象的概念)。

状态:是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的条件(condition)或状况(situation)。

状态机 图 通过对类 对象的生存周期建立模型 来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,它是展示状态状态转换的图。

状态机 是一个对象所有可能生命历程的 模型。 描述对象的一种方式。

状态的一大特性就是转换,状态不是孤立的,换句话说,状态是变化的,是会互相转化的。

状态转换 是指两个状态之间、两个活动之间或者一个活动和一个状态之间的关系。

两个状态转换的原则:

(1)转换本身的逻辑性---并非所有的状态之间都可以任意转换

(2)转换的外界因素---转换时需要一个外因

举例:小人跑动(move)、小人站立静止(stand)、小人在空中坠落(falling)

第二部分:时序图

时序图 反映了模块的 输入输出信号随 时间变化 的情况。可以帮助理解模块的功能,直接反映信号的变化 及相互关系。

时序图的“先天缺陷”:

1、要将模块的所有功能描述出来,时序图要把输入信号和输出信号的所有可能状态都反映出来,这样需要时序图的周期个数尽可能多些,输入信号的变化尽可能多些。

2、时序图一般辅助理解模块的功能,模块一般需要文字性或状态机的功能描述(看来只是一张时序图还是不够的)。

3、时序图不便于HDL的实现 so >>>>>>>>>>>>>>>> 状态机(Medium) >>>>>>>>>>>>>>>>>> HDL

第三部分:关系(转换)

时序图 到状态机,一般要求时序图反映了所有输入和输出随时间变化的情况。

  

从上面两张时序图中可以分析出,静态RAM的读写时序都分成三个部分:Setup、Strobe、Hold。

读写接口信号:EM_CS、EM_A、EM_D、EM_OE、EM_WE、EM_RW,随时间也有不同的变化。 这样可以把读写时序分成 5 个状态:Setup、Read、Write、Hold 、Idle。

Idle状态:不读也不写,EM_CS为无效。

Setup状态:EM_CS有效,EM_RW分别为读、写,EM_WE和EM_OE无效。

Read状态:EM_OE有效,EM_WE无效。

Write状态:EM_WE有效,EM_OE无效。

Hold状态:EM_WE和EM_OE均为无效。

确定状态转移条件,这里用到计数器,Setup和Hold均为2个clk,而Read和Write均为3个clk,从Idle到Setup,需要使EM_CS有效。

经以上分析,静态RAM的读写时序状态机如下:

关于转载状态机和时序图笔记,博主正在做IIC的时序,参考用状态机读时序,,,,因为个人读时序能力太差,折腾了4天了,还是没能者却读取出来结果,目前正在折腾ing.......调试好了会及时更新笔记!

 

Augus是一只有梦想的汪~Augus是一只努力奋斗的汪~ 

转载来源http://www.cnblogs.com/spongebob123/p/3615656.html

文章评论1条评论)

登录后参与讨论

用户430616 2016-5-17 08:06

楼主加油!!

用户1125492 2011-2-11 16:03

这得感谢国家啊~~~

用户1275447 2008-3-24 13:26

中国老百姓可怜啊,辛辛苦苦工作,还得天天被官员们忽悠。
相关推荐阅读
用户1867798 2016-05-25 18:13
[我和FPGA第一次接触]+我喜欢的姑娘那么优秀
 想起自己第一次接触FPGA,我感觉我当时就是一脸懵圈的给自己挖了一个大坑,最后只能用自己填的坑!想到一句话形容...西湖的水都是我的泪(当然夸张了哈~~~) 说起我和FPGA...
用户1867798 2016-05-23 20:30
关于Testbench的使用和Quartus中的模板
在这里主要总结一下关于我对Testbench的应用和Quartus软件中自带的模板使用 1.Testbench         关于testbench,其实就是一种验证的手段。首先,任何设...
用户1867798 2016-05-19 15:28
我与FPGA求交集之简易秒表计数实现
关于时钟计数器模块, 实现功能时钟计数: 毫秒,秒,分钟.....计数满清零 使用BCD计数,进位加一 按键控制(消抖模块),分频(时钟基...
用户1867798 2016-05-12 20:11
我与FPGA求交集之状态机中各种"码"的选择使用
         了解一下状态机中"状态"的各种编码,我们都知道每一个状态需要一个二进制表示,但是状态之间的关系如何,到底该选用"原码""Gray码""独热码"还是好多好多别的码呢.....^^ ...
用户1867798 2016-05-07 21:53
【软件技巧】Quartus中使用notepad++的关联设置
       我们应该都遇到过这种情况"同一个工程由于在不同版本上的Quartus自带的文本编辑器打开时会遇到中文注释注释乱码现象",有时候自带的编辑器不如一些专业的文本编辑器好用,在这里介绍的是...
用户1867798 2016-04-30 10:31
2.深入理解fpga应用设计之验证if_else的不同使用方式
验证: if_else不同使用方式,出来避免不受欢迎的意外产生的锁存器,同时还可以有效的利用逻辑资源, 修改:关于case,default......         例程实现方式一: ...
我要评论
1
27
关闭 站长推荐上一条 /2 下一条