状态机性能考察.pdf

状态机性能考察.pdf

ID:57400551

大小:388.43 KB

页数:26页

时间:2020-08-18

状态机性能考察.pdf_第1页
状态机性能考察.pdf_第2页
状态机性能考察.pdf_第3页
状态机性能考察.pdf_第4页
状态机性能考察.pdf_第5页
资源描述:

《状态机性能考察.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、[技术笔记]状态机性能考察(1)最近对状态机产生了兴趣。看了老外的文章才知道这个领域真是旷阔无边,他们做学问的态度实在是扎实。所以先做个读书笔记。状态机的性能指标太多,我能力有限,目前在考察范围内的只有所需的逻辑资源和简单的时序特性两项指标。影响一个状态机的性能有多个因素,包括状态集合的编码、状态机的HDL编写方式、所采用的器件结构,以及其他应用相关的因素。•状态编码常见的状态编码包括顺序二进制编码、one-hot及改进的one-hot编码、Gray码等。顺序二进制编码,即将状态依次编码为顺序的二进制数。顺序二进制编码是最紧密的编码,优点

2、在于它使用状态向量的位数最少。例如对于6个状态,只需要3位二进制数来进行编码,因此只需要3个触发器来实现,节约了逻辑资源。(在实际应用中,往往需要较多组合逻辑对状态向量进行解码以产生输出,因此实际节约资源的效果并不明显。)在上面的例子中,3位二进制数总共有8种可能的编码模式,其中6种用来表示有效状态,剩下的2种是无效编码。有人认为顺序二进制编码还有一个好处。当芯片受到粒子辐射或者由于异步输入等问题可能会造成状态跳转失常。如果失常中状态机跳转到无效的编码状态则可能会出现死机,除非复位否则永远无法回到Idle状态。因为顺序二进制编码最紧密,所

3、以无效编码最少。失常时有更大的概率跳转到的有效状态,并最终回到Idle状态。这种预想的好处并不会发生在实际中。首先,失常的跳转到有效状态并不意味着能够最终回到Idle状态。例如在某个有效状态,状态机循环等待某输入信号,并作出应答。如果状态机失常的跳转到该状态,同样会陷入死等,因为输入信号并不会到来。其次,失常的跳转到有效状态,意味着可能在不正确的时机产生输出,这样会将故障传播到其他模块。在很多应用中人们宁愿死机不输出任何信号也不愿意输出错误的信号。可见使用顺序二进制编码并不能使得状态机具有所想象的容错能力。[技术笔记]状态机性能考察(2)

4、在上面提高的失常跳转情况下,one-hot编码往往工作得更好。有趣的是,它恰恰是最不紧密的编码。在one-hot编码中,对于任何给定状态,状态向量只有1位置1,所有其它的状态位都为0。one-hot编码最长,因为n个状态就需要n位的状态向量。one-hot编码的状态机最大的优势是它的速度。one-hot状态机的速度与状态的数量无关,仅仅取决于到某特定状态的跳转的数量。而相对的,状态增加时使用顺序二进制编码的状态机速度会急剧下降。one-hot编码其他的优点还有易于综合、易于寻找关键路径、易于进行静态时序分析等。具体来说,要判断当前是否在某

5、一状态,只需要判断状态向量的对应位是1还是0即可。考虑一个典型的输出,它在某些状态输出1,剩下的状态输出0。只需要将状态向量中的对应位OR起来即可产生该输出。也就说输出很容易产生,并且从状态稳定到输出稳定的延时很确定(一个OR门的延时),因此易于综合以及进行静态时序分析。应当注意的是one-hot编码有很多无效状态,因此在编写状态机时应该确保一旦进入无效状态可以立即跳转到确定的已知状态(通常是Idle)。(简单的说就是生成下一状态的case语句要加default;或者在case之前先赋上默认值,到case里再覆盖。)当发生失常跳转时one

6、-hot编码有很大的概率跳转到无效状态,而它的无效状态现象很明显(比如将状态向量都接到灯上,一旦同时亮多个灯就表明工作失常),即使不加处理也很容易被外部逻辑检测到,从而可以说是易于调试的。one-hot状态机有很多变体。比如将Idle状态编码为0,其他状态按照正常的one-hot编码。即对于除Idle外的每个给定状态,对应的状态向量中有1位置1,其他位为0。这种变体的好处是在复位时可简单的将状态向量的各个触发器清0。另一种常见的变体称为"almostone-hot"编码。假设状态机有功能几乎相同的两组状态(例如,处理对某设备的读访问和写访

7、问),可以使用1个状态位来指示状态机当前正处在两组状态中的哪一组,而剩下的状态位采用普通的one-hot编码。(例如一组状态为4'b0001,4'b0010,4'b0100,另一组为4'b1001,4'b1010,4'b1100。)因此要对给定状态进行完整的解码需要考察两个状态位。这种机制具有使用纯one-hot编码的大多数好处,但逻辑更小。one-hot状态机有一个缺点,它的状态每次发生跳转,所有的状态位都会发生变化。首先,状态机的输出往往是由状态位组合生成的。同时变化的状态位越多,组合输出稳定前所需的时间就越长,产生的毛刺就越多。如果

8、该输出不经同步就直接连接到寄存器的时钟、使能、或锁存器的使能等控制端口,将很容易导致数据的破坏。(正统解决方案是加一级寄存器来同步状态机的输出,该方案可能会产生一个周期的延迟,而且如果该输出稳

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。