概述
1、系统复位
1.1、Recovery time:恢复时间
撤销复位时,恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来,才能保证有效地恢复到非复位状态,此段时间为 recovery time。类似于同步时钟的 setup time。
1.2、Removal time:去除时间
复位时,在时钟有效沿来临之后复位信号还需要保持的时间为去除时间 removal time。类似同步时钟 hold time。
1.3、复位电路设计时,总是建议使用异步复位。
(1)为了更有效地利用期间资源。
(2)异步复位设计使电路更加鲁棒。
2、状态机
2.1、摩尔型状态机和米利型状态机。
摩尔机的输出值只与当前状态状态有关。
米利机的输出值与当前状态和输入值有关。
优点: 相对于其他时序电路,状态机更加稳定,运行模式类似CPU,易于控制。
问题:
(1)两个状态转换时,会出现过渡状态。
(2)在运行过程中,会进入非法状态。
(3)状态机占用资源比较多。
(4)一个器件上综合出来的结果,在其他器件上不能得到相符的结果。
2.2、编码方式
(1)顺序码:状态编码遵循传统的状态二进制序列。
(2)格雷码:除了相邻状态编码之间只有一个位变化外,其他和顺序码类似。
(3)独热码:每一个状态分配一个触发器。
在实际设计当中,一般采用独热码,慎用格雷码,不用顺序码。
状态机分为:一段式、二段式和三段式。
在实际设计当中,输入端都会引入噪声。采用米利机的时候,尽量不要采用一段式。噪声很容易传递到输出端,致使系统设计失败。 建议采用二段式和三段式状态机设计
2.3、在设计状态机时,应注意以下原则:
(1)状态机的输出分配默认值,防止综合器产生不必要的锁存器。
(2)将状态机逻辑和所有的算术逻辑功能以及数据路径分离,包括与状态机输出值的分配分离。
(3)如果设计中包含一个在多个状态都要使用的运算,那么在状态机外面定义这个运算,然后让状态机的输出逻辑来使用该运算结果。
(4)使用简单的同步或异步复位来确保状态机定义了一个上电初始状态。
2.4、状态机程序编写时的指导原则:
(1)如果使用的是SystemVerilog,--定要使用枚举类型来描述状态机。
(2)使用参数(Parameters)来对状态机进行分配,因为参数会使得状态机易读以及减少编码过程中的错误。
(3)尽管Quartus II 能够识别出整数,笔者不建议大家直接使用整数来定义状态值。
(4)如果在状态转换逻辑中使用了下例所示的算术运算,那么Quartus II 将不会识别状态机。
本文为读书笔记
最后
以上就是热心季节为你收集整理的4、FPGA设计-复位与状态机的全部内容,希望文章能够帮你解决4、FPGA设计-复位与状态机所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复