shaojianbuguai 发表于 2014-6-22 21:54:05

一个always块中同时处在两个状态机中

请教大家一个问题,我verilog写的fpga程序中一个always块中的状态机出现了程序同时处在两个状态机的情况,大家知道这是怎么回事吗?下面是signaltap截的波形
左边框是错误的情况,右边框是正确的情况

chenchaoting 发表于 2014-6-22 22:39:46

那可能是你的状态机进入了非法状态吧,看看转移图

wye11083 发表于 2014-6-22 23:20:39

chenchaoting 发表于 2014-6-22 22:39
那可能是你的状态机进入了非法状态吧,看看转移图

signaltap速度不够快,叠加了吧。

shaojianbuguai 发表于 2014-6-23 09:40:41

chenchaoting 发表于 2014-6-22 22:39
那可能是你的状态机进入了非法状态吧,看看转移图

程序里面状态转移图是正确的,也加了default,
这个程序整个工程一开始是正常工作的,后来我在其他模块加了几条语句,结果USB模块的(也就是上面图中的)返回的结果就不正常了
所以我用signeltap看了下波形发现usb模块中居然一个always块中一个时间点同时两个状态机

shaojianbuguai 发表于 2014-6-23 09:44:24

wye11083 发表于 2014-6-22 23:20
signaltap速度不够快,叠加了吧。

确实有人提到说 这个always块的时钟和signaltap触发时钟不是同一个时钟, 程序里的时钟是由总时钟分频1/2的到的    signaltap的触发时钟是总时钟

huabutterfly 发表于 2014-6-24 21:15:19

不懂,坐看大神分析
页: [1]
查看完整版本: 一个always块中同时处在两个状态机中