完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我对状态机有疑问。
我写了一个状态机来实现一些功能,设备是virtex-ii。 机器中有26个状态,其中4个是A,B,C,D,E; 输入信号为rdy_i和smp_rdy_i,输出信号为p_o和q_o。输入和输出信号之间存在因果关系。如果p_o为1,某些时钟周期后,smp_rdy_i从0变为1,持续1个时钟周期。如果 q_o为1,有些时钟周期后,rdy_i从0变为1并持续1个时钟周期.smp_rdy_i和rdy_i是来自其他模块的信号,它与状态机处于同一时钟域,但是从寄存器输出后,两个 信号传递了一些组合逻辑。 通常,关于A,B,C,D的跳跃码如下:来自A-B-C-D的状态,我认为在状态D中,p_o应该是0并且q_o应该是1。 但是,有时,状态机会跳错。 频率是几十,或几百,或几千。通过chipcope,我发现状态机在状态D停止,但是p_o是1而q_o是0.在状态D,q_o是0,所以我认为这是合理的 rdy_i永远不会是1,这就是状态机停止的原因。但是,为什么状态D q_o为0且p_o为1? 只有状态机跳转错误才给出原因。 为什么状态机跳转错误??? 我该怎么做才能避免状态机跳转错误??? 我很抱歉打扰你,但我需要你的帮助,感谢你的回答。 ------ codes ------------ case(state)... A:begin if(smp_rdy_i)next = B; else next = A; endB:begin if(rdy_i)next = C; else next = B; endC:begin if(rdy_i)next = D; else next = C; endD:begin if(rdy_i)next = E; else next = D; end ...默认值:begin next ='bx; endendcase ... case(next)... A:开始p_o q_oendB:开始p_o q_oendC:开始//其他信号assignmentsendD:开始//其他信号assignmentsend ... endcase |
|
相关推荐
1个回答
|
|
非常感谢您的回复,我仔细阅读,并考虑我的设计。
我已经模拟了RTL代码,效果很好。 从这个角度来看,功能没有问题; 2。 我的设计符合静态时序分析报告的时间安排。 在ucf文件中,已经定义了所有使用的时钟。 我仔细检查了我的代码,发现一些输入信号是来自其他设备的输出。 换句话说,它们与状态机异步。 我认为这就是我的状态机跳转错误的原因,所以我修改了我的代码,并使用状态机中使用的时钟同步异步信号。 状态机已经过数千次测试,状态机运行良好,更多的测试需要证明我的想法。 再次感谢您的帮助,祝您今天愉快! |
|
|
|
只有小组成员才能发言,加入小组>>
2416 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2459 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1141浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
581浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
447浏览 1评论
2002浏览 0评论
726浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:14 , Processed in 1.297739 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号