作者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/m.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