微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于FSM的综合

关于FSM的综合

时间:10-02 整理:3721RD 点击:
我看到一篇讲FSM编码风格的文章说可以用DC的FSM工具来改变状态机的编码,即set_fsm_encoding_style。
我把里面的例子放在DC里面综合发现,无论set_fsm_encoding_style one_hot或者是set_fsm_encoding_style gray,综合结果都不变,RTL里面的二进制状态机综合出来仍然是二进制。
set_fsm_encoding_style到底有什么用处?

没实际用过这个命令,但它仅对没编码的状态有效,如果你的设计中,已经对状态进行了编码,那DC是不会给它们重新赋值的。小编可以再试一试,并把结果贴上来。

你要参考你用的综合工具推荐的Coding style,以便优化FSM。
例如Quartus建议Verilog状态机的每个状态都要这样定义:
parameter STATE_3 = 3'b011;
在设计中就用定义的值表示状态,不要用常数值:
next_state <= STATE_3;
并且不能用运算式为次状态赋值:
next_state <= state + 2; //never do this

依赖工具 不如靠自己
工具是面向所有用户的情况,
一个人的实际状况,可以自己考虑

你要参考你用的综合工具推荐的Coding style,以便优化FSM



    谢谢,请问如何不对状态机进行编码呢?



    我理解,我只是怀着更深一层学习工具的目的而进行了尝试。



    VHDL可以不编码,verilog不可以。

上一篇:逻辑锁定
下一篇:ASIC的前途

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top