|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
FSM的安全选项——“安全”意味着什么?
% ]. w/ [$ L! z4 S Quartus II中的Safe State Machine编译选项对FSM在FPGA中的实现方式有很大影响。( V/ y, G% v/ E$ T, ?+ ^+ ~7 p
这一影响在RTL视图中不可见。 5 ^. t: X% W' h; }; Y$ M) W
这一选项是否引入了“Booby Trap”电路?观察Technology Map视图,可以发现一些原有的寄存器合并优化不执行了,实际的寄存器个数和HDL代码中描述的个数一样了,而且增加了一些组合逻辑。“Booby Trap”电路的恢复状态是哪一个?是不是default语句指定的状态?
d! V. s' ]8 q) Y# T' Y0 v3 Y: p 在StateCAD工具中的Options -> Machine Attribute -> Default State选项中可以指定恢复电路的缺省状态,在生成的HDL代码中可以很容易地找到对应的“Booby Trap”电路。在Quartus II中针对这一HDL代码编译后,可以在RTL视图中找到对应的电路。 ! Z" W- R: U# z+ g8 ?5 Y# X$ h5 @
在手工编写的HDL代码中,default语句并不能产生相应的恢复电路,综合工具通常忽略这一语句,为的是简化逻辑。只有像StateCAD生成的代码中描述的恢复电路才能被综合工具有效识别。 u; e" k1 _9 h8 F. v/ d j+ O
可以得出这样的结论:Quartus II对“Booby Trap”电路的插入是隐式的,StateCAD是显式的。" G. L9 `$ S' B4 ?% i0 h
“安全”的FSM意味着:1. “Booby Trap”电路的插入;2. 寄存器合并优化失效了;3. 电路的时序性能下降了;4. 在正常使用环境下,无需过多考虑FSM“跑飞”的问题,也就不需要选择“安全”选项。
, q5 i, Y) Z- N( V
- F3 q: |: d* C! Y, N |
|