在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
123
返回列表 发新帖
楼主: jeamie

[讨论] 请求verilog高手指点程序问题!!!

[复制链接]
发表于 2011-11-4 14:17:49 | 显示全部楼层
太乱了。给个建议,改成三段式状态机,把边沿检测的部分放在其他alway里,糅在一起不好分析问题。
 楼主| 发表于 2011-11-7 14:26:05 | 显示全部楼层
多谢各位的指教,程序调好了。
发表于 2011-11-8 10:52:51 | 显示全部楼层
回复 1# jeamie
什么叫做跳出内部case。verilog是hdl,怎么会有跳出这种说法。。。
发表于 2011-11-9 17:10:37 | 显示全部楼层
状态机 写的太乱
推荐 三段式写法
 楼主| 发表于 2011-11-21 09:36:25 | 显示全部楼层
回复 23# syf1088


    我的意思是内部case如果执行完了,会给外部的state赋值,下一个时钟应该执行外部case的某个分支的意思。
    估计表示不严谨吧。谢谢质疑,以后记得改正!
发表于 2011-11-22 18:37:24 | 显示全部楼层
回复 25# jeamie
感觉你在用软件思维写硬件。
你想把state 这个信号综合成什么东西(DFF)。 按照你的写法是有问题的。你在同一个边沿对DFF赋“多个”值是硬件没有办法做到的
edgecount:   begin
                               if(ena)
         state<=achange;       //state changes form edgecount to achange
                             
         else begin
            if(enb)
发表于 2011-11-23 01:29:49 | 显示全部楼层
思维严重很乱啊,把硬件描述语言看成是c语言那种顺序执行了;以后建议你写状态机的时候把case(state)部分拿出来单独用组合逻辑块表示,不要和时序模块放在一起,并且把非阻塞改成阻塞赋值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 23:38 , Processed in 0.024552 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表