找回密码
 注册
搜索
查看: 836|回复: 1

[讨论] 关于quartusII综合的问题,向高手求援

[复制链接]
发表于 2006-6-15 09:54:00 | 显示全部楼层 |阅读模式
我是个FPGA方面的新手,遇到一些逻辑上讲不通的问题,还请高手指教。
我使用的是Verilog语言:
在我某段程序里设计了一个状态机,有13个状态

首先:我给状态机使用one-hot码
            即parameter         FSM0  = 13'b0000000000001,
                                          FSM1  = 13'b0000000000010,
                                          FSM2  = 13'b0000000000100,
                                          ......
                                          FSM12 =13'b1000000000000;      
我给该状态机设置了default跳转到FSM0,并且每个状态都严格指定了下一个跳转方向。综合之后,状态机经常跳到一个未知状态,即不属于我设置的13个状态中的任何一个,并且跳不回来,停留在该位置状态(用Sigtap观察的),也就是说default里设置的跳转根本没有生效。

然后:我给状态机使用4位二进制编码,并且扩充全4位二进制所能表达的状态,即增加FSM13、FSM14、           FSM15三个状态,新增加的3个状态什么都不干,就是往FSM0跳,其余丝毫不改。
            即parameter        FSM0  = 4'b0000,
                                         FSM1  = 4'b0001,
                                         FSM2  = 4'b0010,
                                         ......
                                         FSM12 = 4'b1100,
                                         FSM13 = 4'b1101,
                                         FSM14 = 4'b1110,
                                         FSM15 = 4'b1111;
由于状态罗列全了,所以不再使用default了,此时状态机就正常运转,丝毫不错了。

请问为什么我使用one-hot码就不行呢,是不是状态太多了,不宜使用one-hot码了?
为什么明明使用了default跳转,但是状态机偏偏会停留在一个未知状态?
由于one-hot码使用了13位寄存器,未知状态比较多,Quartus是怎么综合该one-hot码的default的?
发表于 2006-7-1 23:07:00 | 显示全部楼层
<P>是不是quartus对状态机编码方式做了调整?</P>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-29 12:19 , Processed in 0.097082 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表