看板 Electronics 關於我們 聯絡資訊
大家好~最近寫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://www.ptt.cc/bbs/Electronics/M.1623436920.A.BB6.html ※ 編輯: td2100106 (1.200.177.46 臺灣), 06/12/2021 02:42:32
Vtkg: <=用在合成DFF上就好 然後case應該要加default?06/12 03:56
mmonkeyboyy: 你沒有"時間"06/12 04:44
mmonkeyboyy: 你這個寫法 某狀態一有變化就會跳到下一個狀態06/12 07:45
mmonkeyboyy: 結果你就在那裡一跳 當然直接跳到最後06/12 07:45
mmonkeyboyy: 你再回去看看狀態機怎麼寫 學moore就好了06/12 07:46
mmonkeyboyy: 沒看到你上面的code 但我猜那裡也有點問題06/12 07:47
mmonkeyboyy: 另外就是一樓說的 沒有會變latch/unknown06/12 07:47
td2100106: 但是如果我沒有使用<=寫的話會變成xo 狀態沒辦法更新06/12 09:59
mmonkeyboyy: 就你這段的* 去掉 改成 state06/12 11:01
mmonkeyboyy: state變化裡是comb logic 這裡跟timing 沒關06/12 11:02
mmonkeyboyy: 我一般都會建議state output clock三個部份分開寫06/12 11:03
mmonkeyboyy: 你要混寫是也可以啦 但就新手來說還是慢點來06/12 11:04
HenryLin123: 你的輸出要接在flip flop才對吧?06/12 11:48
hank821017: https://imgur.com/8rqG3by06/12 11:50
hank821017: 看不懂你的y是拿來幹麻的 不過x的部分可以給你當參考06/12 11:58
a86692472: 用加法器 感覺好浪費面積喔06/14 15:09
a86692472: 改用 counter 寫進去 low bond06/14 15:09
a86692472: 然後一直輸出 直到 數到 high bond 為止06/14 15:09
a86692472: 感覺會更好一點06/14 15:09
timtdsas: 這要用循序邏輯來弄06/14 17:57
以上謝謝各位的熱心回覆 我有嘗試用自己的方法解決了特別謝謝上面傳給我code的大大 ※ 編輯: td2100106 (180.217.58.124 臺灣), 06/16/2021 14:17:19