原创 【博客大赛】 2.7 FSM状态编码(State Encoding)

2013-11-28 05:31 1410 20 21 分类: MCU/ 嵌入式 文集: S1 VLSI到计算机架构系列

  声明:以后便于打字 约定 状态转移表(State transition table)缩写为STT,状态转移图(State transition diagram)缩写为STD(这些缩写仅限于本系列,实际生活中不一定通用~)

  细心的童鞋们应该已经察觉到了,2.6的例子的实现根据编码的方式不同实现不是唯一的。我们在2.6中用的是二进制编码(Binary Encoding)。此外还有两种常用的编码根据实际情况不同也经常被用到。一个是One-Hot编码,另一个是One-Cold编码。那么什么是One-Hot和One-Cold呢?简单说,就是用每一个bit来代表一个状态。当该状态为True的时候,就把这个bit设为1的是One-hot,而One-Cold就是只有当此状态为False时设定该bit为1.

 不多说,工学就要多看例子~。下面举一个 分频计数器(divide-by-N counter)的例子。分频计数器干什么用的?我先不说,大家看时序图。看看是不是能够明白它是做神马的。

233933230.png。Y自然代表输出。(答案:不许偷看,一定要先想~~ 输出会在时钟的第3个周期开始上拉持续一个周期结束。--每到第三个周期就计一下数。这就是所谓的 divide-by-3 counter  也就是N=3)。那么下面大家尝试画一下状态转变图吧。(画图时重点是想好 这个系统什么在变,有几个状态)

234708387.png

有了图这个系统的状态关系就明确了。我们当然进入列表阶段咯。这里当然只需要两张表,一个状态转移表,和一个输出表。

 

235448958.png235523943.png  至此我们对系统需求的抽象部分搞定。接下来进入核心内容,这里我用两种编码方式实现这个系统。

snapscreen.jpg这张表右边的编码就是二进制编码,左边是One-Hot。

a。下表是以二进制形式翻译的STT。

235903899.png

b。下表是以One Hot形式翻译的STT。

235903705.png

看到不同了吧,One hot我们需要3个bit来表达,而Binary我们只需要2个bit。貌似One hot需要较多的内存(当然就是FF了)。是的!自己写表达式吧(估计大家都懒得写了,口算都知道~)。

我直接给出实现

a。001026125.png注意图里的S1`前的逻辑门,乍一看貌似是多余的。是的从逻辑表达式上看的确是,但是别忘了我们之前说的时序分析的结论,我们加这么一个冗余逻辑元件避免了时序不同步问题!

b。

001412671.png这里的和我们预想的一样,用了3块FF,Reset要把FF的初始状态设为001.

我们的One hot比较费内存。总结的说,我们如果有K个状态,One hot 编码要用K bits 而 Binary编码只需要 LogK(以2为底) bits,可以估算过如果某个系统总线宽是32位的话,One hot 要32bits,而Binary只要5bits。但是在需要高速度应答的时候,我们显而易见,Binary的时序相对比较难以控制,而One hot比较容易同步时序。不过根据具体设计情况,要灵活多变才能修炼成自己独到的见解~。大家继续努力~。

 

 

文章评论1条评论)

登录后参与讨论

用户403664 2013-11-26 09:53

呼应!http://bbs.ednchina.com/BLOG_ARTICLE_3016738.HTM
相关推荐阅读
用户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
20
关闭 站长推荐上一条 /2 下一条