作者td2100106 (中山废文最後希望)
看板Electronics
标题[问题] Verilog 状态机问题
时间Sat Jun 12 02:41:58 2021
大家好~最近写Verilog状态机遇到一些问题
我的问题是我希望我的module功能是输入x的上(xc)下限(xf )我就能够印出中间所有的
整数(xo)
例如下限是3上限是10
正确输出为3,4,5,6,7,8,9,10
但是我在写的时候发现结果只会输出3,10
检察程式发现在S1时他就已经跑完了所以直接输出最後结果
想问如果想要达成我的功能
该怎麽修改呢?
想了很久但都没有想法
https://i.imgur.com/0IywwK9.jpg
谢谢各位了
感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.200.177.46 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1623436920.A.BB6.html
※ 编辑: td2100106 (1.200.177.46 台湾), 06/12/2021 02:42:32
1F:推 Vtkg: <=用在合成DFF上就好 然後case应该要加default?06/12 03:56
2F:推 mmonkeyboyy: 你没有"时间"06/12 04:44
3F:推 mmonkeyboyy: 你这个写法 某状态一有变化就会跳到下一个状态06/12 07:45
4F:→ mmonkeyboyy: 结果你就在那里一跳 当然直接跳到最後06/12 07:45
5F:→ mmonkeyboyy: 你再回去看看状态机怎麽写 学moore就好了06/12 07:46
6F:→ mmonkeyboyy: 没看到你上面的code 但我猜那里也有点问题06/12 07:47
7F:→ mmonkeyboyy: 另外就是一楼说的 没有会变latch/unknown06/12 07:47
8F:→ td2100106: 但是如果我没有使用<=写的话会变成xo 状态没办法更新06/12 09:59
9F:推 mmonkeyboyy: 就你这段的* 去掉 改成 state06/12 11:01
10F:→ mmonkeyboyy: state变化里是comb logic 这里跟timing 没关06/12 11:02
11F:→ mmonkeyboyy: 我一般都会建议state output clock三个部份分开写06/12 11:03
12F:→ mmonkeyboyy: 你要混写是也可以啦 但就新手来说还是慢点来06/12 11:04
13F:推 HenryLin123: 你的输出要接在flip flop才对吧?06/12 11:48
15F:→ hank821017: 看不懂你的y是拿来干麻的 不过x的部分可以给你当参考06/12 11:58
16F:推 a86692472: 用加法器 感觉好浪费面积喔06/14 15:09
17F:→ a86692472: 改用 counter 写进去 low bond06/14 15:09
18F:→ a86692472: 然後一直输出 直到 数到 high bond 为止06/14 15:09
19F:→ a86692472: 感觉会更好一点06/14 15:09
20F:推 timtdsas: 这要用循序逻辑来弄06/14 17:57
以上谢谢各位的热心回覆
我有尝试用自己的方法解决了特别谢谢上面传给我code的大大
※ 编辑: td2100106 (180.217.58.124 台湾), 06/16/2021 14:17:19