日志档案

发表于 2008-1-29 14:19:58

3

标签: FSM  安全  捕弊束缚电路  

FSM的安全选项——“安全”意味着什么?

    Quartus II中的Safe State Machine编译选项对FSM在FPGA中的实现方式有很大影响。 riple

    这一影响在RTL视图中不可见。 riple

    这一选项是否引入了“Booby Trap”电路?观察Technology Map视图,可以发现一些原有的寄存器合并优化不执行了,实际的寄存器个数和HDL代码中描述的个数一样了,而且增加了一些组合逻辑。“Booby Trap”电路的恢复状态是哪一个?是不是default语句指定的状态? riple

    在StateCAD工具中的Options -> Machine Attribute -> Default State选项中可以指定恢复电路的缺省状态,在生成的HDL代码中可以很容易地找到对应的“Booby Trap”电路。在Quartus II中针对这一HDL代码编译后,可以在RTL视图中找到对应的电路。 riple

    在手工编写的HDL代码中,default语句并不能产生相应的恢复电路,综合工具通常忽略这一语句,为的是简化逻辑。只有像StateCAD生成的代码中描述的恢复电路才能被综合工具有效识别。 riple

    可以得出这样的结论:Quartus II对“Booby Trap”电路的插入是隐式的,StateCAD是显式的。 riple

    “安全”的FSM意味着:1. “Booby Trap”电路的插入;2. 寄存器合并优化失效了;3. 电路的时序性能下降了;4. 在正常使用环境下,无需过多考虑FSM“跑飞”的问题,也就不需要选择“安全”选项。 riple

系统分类: CPLD/FPGA   |   用户分类: FSM优化   |   来源: 原创   |   【推荐给朋友】

    阅读(1188)    回复(1)  

投一票您将和博主都有获奖机会!

  • 孟玉

    2008-3-18 11:32:11

    呵呵,明白你为什么把“安全”加引号了,这里的安全只是一个伪安全,把一些你漏掉的死逻辑转回来。但是,如你所说,这是你真正想要的吗^_^ 帮你转回来能拯救你状态机转移到错误的状态吗,显然不能。因此,还是要多依靠你自己,想好所有的状态,完善default语句,机器仍然是机器,尽管有智能,该你做好的还是要你自己做好。