原创 【博客大赛】 2.6 从实例进入FSM初步

2013-11-25 01:02 1246 22 23 分类: MCU/ 嵌入式 文集: S1 VLSI到计算机架构系列

上一节的第一个小问题的答案:Q = CLK*D+~CLK*Qprev (根据D Latch的定义)可以很直观的看出这是一个D Latch的实现 真值表: 时序图:

问题2的答案 就是熟悉一下定义 是时序同步回路的是d e g 注意c那个CLK输入的地方缺了一个三角号,所以只能是一种Latch而不是寄存器。而h由于反向器延迟导致两个寄存器时钟不一致。

下面正式进入FSM。这里为了使大家能够深入的理解FSM,先从例子讲起,最后在说一说定义神马的。

好了,我们用最土的例子(最土就是最经典,虽然实际上没有用!!但是所有的理论都在其中)--交通指挥灯的设计需求为例子。

070614677.png就是国内某城市的一个交叉路口。图中黑圈内的是路灯感应器也就是感应是否有车通过,T代表Traffic,例如当人民大街有车通过时标记为Tb没有车的时候标记为~Tb,输出为True或者 false。而路灯(其实应该是交通灯)La,Lb,Lc,Ld均可以显示黄,红,绿(yellow red green)三种颜色,并且黄到红之间转变要等待5秒钟黄灯等待5秒必须转变到红灯,也就可以说上一个状态有黄灯下一个状态就必须有红灯。然后路灯们接受每5s感应器扫描一次传过来的信号来决定自己应该显示的颜色。(当然一定要有一个Reset,这样会让所有的灯进入就绪状态)

 

。。。出学者们看了这个需求有些慌张,这么多参数,怎么设计?!别慌,问题是要解决,难度还在那里。我们把需求整理一下,--画图!就如同之前一直在画的真值表一样。我们是菜鸟,所以用笨招,列举所有可能!

我来带大家走一遍:

首先为了打字方便 用 S+数字 表示State(例如 S0表示处于状态0),Reset=初始化。其次,我们来计算有几种状态。灯一共有3种颜色,什么都不考虑当然有9种状态。但是很明显两条路不能同时绿灯,红灯,黄灯(注意这里不是现实里的设计,现实是可以的),并且黄灯不能和绿灯同时出现!(想一想黄灯是慢行。。。)总状态就有 9 - 3 - 2 = 4.下面进行具体分析:

1.初始状态: 就假设大镜路可以通车吧。 即 La:绿灯(Green),~Lb:红灯(Red),处于 Reset 状态

S0 : La:绿灯(Green),~Lb:红灯(Red)

S1 : La:黄灯(Green),~Lb:红灯(Red)

S2 : La:红灯(Green),~Lb:绿灯(Red)

S3 : La:红灯(Green),~Lb:黄灯(Red)

2.上面1的5种状态就是我们需求分析的总状态咯。现在我们来看状态之间转移需要什么条件。比如我们现在处于S1,那么应该无条件的进入S2状态。而如果处于S2状态时,当Tb为真时仍然应该处于S2状态,反之应该进入S3状态。。。。好多转移。。。

感觉有些晕菜?画图列表!把所有的转移条件和状态标出来。

064311866.png。不懂得童鞋们认真仔细看。箭头自然就是表示状态之间的自然转移。话说这就是所谓的 状态转移图 估计在UML图里经常用到吧。

3.有了这个图,就不用废话了。进行之前讲的一些列机械操作,列真值表!把图翻译成二进制码。这里鉴于是初学者,分几步进行制表。第一,先考虑我们需要什么表。当然了,肯定要有一张状态转移的表,表明态和态之间的关系。第二,我们当然需要一个输出表,表明状态机运行的结果

先看第一张表:

070234392.pngCurrent State 就是当前状态,Next State 就是下一个状态,Inputs就是根据Sensor的输入作为State转移的依据。X的定义和以前一样,代表什么都行。下面当然要对S0之类的字母进行编码咯(人为地赋予二进制的意义)。为了方便直接采用2进制编码:S0状态 00, S1状态 01, S2状态10, S3状态11.(自己列表!)然后上面的表就可以变成:

071229324.png。下一步,制作输出表071335466.pngL就代表路灯。也就是相当于把路灯的State翻译成了二进制数!

 

 

 

有了这些,还等神马~~两张表两张图,画起!这里先留给大家想一想怎么用FF实现这两张表。锻炼脑力~~

文章评论1条评论)

登录后参与讨论

用户403664 2013-11-22 11:47

图片挂了
相关推荐阅读
用户440448 2013-12-14 06:59
1.2节 MOS基本构成
这里说明上一节的术语们~~。 1.MOS晶体管 硅(Silicon化学符号Si)是上节提到所有集成电路的老祖宗。硅,常以化合物的形式存在于地壳中(大沙漠的沙子什么的。。),很便宜就能到手的...
用户440448 2013-12-11 21:39
试写 量子统计系列 Chapter3 3.1晶格振动之爱恩斯坦模型part1
   注意,本篇博文是第一篇尝试写的学术博文,如果大家感到看不懂没有关系,因为我只是想看看大家都有什么响应,来决定以后是否写这个系列。还有本博文的公式原本出自于Latex,由于时间有限,所以大部分...
用户440448 2013-12-04 21:17
写给大家的反省文:数理于电子技术中的应用
首先,请大家都欣赏一篇博文http://www.elecfans.com/tongxin/119/20131203331450.html。这位朋友提出来的我们要大力弘扬。我在这个论坛上看到的,大多...
用户440448 2013-12-03 07:06
2.8 FSM之Moore和Mealy 时序 part4
让我们最后来看两种设计的的时序是什么样的。直接上图:     大家如果认真读过第一个小FSM的设计话,这个就能轻松加愉快的看懂了。这里我们假设有一串要识别的字符串A 111011...
用户440448 2013-12-01 08:56
2.8 FSM之Moore和Mealy part3
来看看我们的Mealy机的设计吧~~。Mealy机的想法起源于:这里我们有输入,并且根据相应的输入我们的字符识别机能做出相应的应答也就是输出。所以我们为何不把输入和输出同时表达出来呢?这样我们就能...
用户440448 2013-11-30 07:44
2.8 FSM之Moore和Mealy part2
设计这个FSM应该轻车熟路咯。直接上图: STT: 输出表: 进行FSM编码,这里用二进制编码,注意这里由于只有5个状态,而我们至少要用3bit(最多可以代表8个状态)来表...
我要评论
1
22
关闭 站长推荐上一条 /2 下一条