2011-10-06

13-1有限狀態機


助教好:
想問的題目有三題 都是13-1有限狀態機後面的範例

題目一


p13-10範例3
題目看了很多遍,大概了解題意
可是就是不知道要怎麼下手

題目二
p13-11範例4
不太了解題目的敘述

題目三
p13-11範例5
想了解一下解題想法

謝謝助教: )

2 則留言:

線代離散助教(wynne) 提到...

1. 就順順的畫, 首先我們得先將input的前兩個bit記起來, 以便我們在看到第3個bit時可以output第1個bit, 在看到第4個bit時可以output第2個bit, 所以我們得用4個state來記錄input的開頭分別是00,01,10,11這四種的情形, 也就是書上畫的s3,s4,s5,s6, 至於這幾個state中間的線該怎麼連, 就參考s1,s2就可以了, 比方說假設我們現在在s4, 此時進來input的第三個bit為0, 這就代表目前我們所掃過的input結尾是10, 那此時去查當初input開頭為10時會走到哪個state, 發現是s5, 這樣我們就知道s4在看到0時要走到5, output要寫0這應該比較沒問題, 其它的用類似的方法都可以推出來

2. 題目請你設計出一個mod 3的counter, 就是說看到input有 1 那output就要加 1, 但加到 3 就要歸零

3. 當input一開始為 0 時, 根據題目的敘述, 不管我們再看到幾個0我們都不用理他, 所以就讓它停留在同一個state就好, 但當有出現1時你就要記錄起來, 並且得記錄他的個數, 直到出現3個1為止, 此時outpu要改成1, 並且在這一輪時因為input和output一樣了, 所以要重新記錄, 此時就要注意何時會出現3個連續0, 跟剛才一樣做對稱的設計即可

FSM的設計我覺得除非會錯題意, 否則通常順順的畫, 遇到想記錄的case就多加state, 同時記得要保持精簡, 這樣畫出來的應該都不會差太多, 若你在畫完後發現你畫的不如書上畫得來的那麼精簡且對稱, 你可以試著去體會一下書上對於input case的分析方式

yan 提到...

謝謝助教精闢解答 一下就通了:D
給個讚!