null狀態機設計狀態機設計主講人:林佳慶
http://www.cis.nctu.edu.tw/~jacklin/
jacklin@cis.nctu.edu.twOutlineOutlineState Machine
莫爾機
Mealy機
範例解說State Machine(1/2)State Machine(1/2)狀態機使用一個或是多個正反器來儲存內部的狀態,利用一個組合邏輯的設計輸入目前狀態,並且計算出下一個狀態輸出。常見的計數器就是最好的例子。 狀態資訊組合邏輯CLKInputOutputCurrent StateNext StateState Machine(2/2)State Machine(2/2)有時組合邏輯會加上外部輸入的參數。例如做一個可載入式計數器,當外在強迫輸入某值後,使計數器從某設定的數值開始計數。 狀態資訊組合邏輯CLKInputOutputCurrent StateNext State外在輸入莫爾機莫爾機將Current State做一些處理當最後的輸出結果。例:計數器最後的輸出希望經過一個LED解碼器把結果
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
現在七段顯示器上,所以把目前狀態經過一個組合邏輯的處理後輸出。 狀態資訊組合邏輯CLKInputOutputCurrent StateNext State外在輸入組合邏輯外在輸出Mealy機Mealy機將外部輸入導至產生外部輸出的組合邏輯中,外部輸出會同時受到現在狀態與外部輸入的影響。 組合邏輯狀態資訊組合邏輯CLKInputCurrent StateOutputNext State外部輸入外部輸出設計程序設計程序在設計流程的第二個步驟中,除了電路的輸入與輸出外,狀態機所有可能的狀態也都被列出來
對每一個狀態指定一個Binary碼,並且這些Binary碼可以被儲存於一組正反器中
由現在狀態至下一個狀態所有可能的轉換皆會被列出來範例(1/20)範例(1/20)以一個製作擁有重置與上下輸入的三態計數器為例,示範狀態機的設計步驟。
取得規格
定義好輸入、輸出以及狀態 假設”/”表not,則/reset.up為
reset=1,up=1由State0->State1範例(2/20)範例(2/20)給定狀態一個二位元參數
定義狀態間的轉換條件Next
State範例(3/20)範例(3/20)建立真值表避免因電壓與電流短暫地擾亂電路而進入一錯誤的狀態,因此多設計一個狀態,可以從錯誤的狀態中回復。範例(4/20)範例(4/20)利用FSM來製作狀態機FSM Editor範例(5/20)範例(5/20)選擇HDL Design Wizard範例(6/20)範例(6/20)選擇語法(會影響條件設定)範例(7/20)範例(7/20)為你的狀態機命名 (別和Project的名字相同,不然之後無法從symbol中呼叫)範例(8/20)範例(8/20)定義輸入/輸出的埠
按New新增一個定義
在Name為定義命名
在Direction Frame選擇方向為Input or Output
Output可在Bus處設定所欲輸出的數量(狀態數)範例(9/20)範例(9/20)選擇所欲使用狀態機的數量範例(10/20)範例(10/20)狀態機設計器的面板State Machine中所有的
Input & OutputPort PropertiesPort Properties如果是設成Registered的形式,
可能會造成輸出Delay 1 Clock設定Port Name,
如果為Vector形式的話,
請設定Range範例(11/20)範例(11/20)新增狀態(內定從S1開始)範例(12/20)範例(12/20)畫上狀態轉換的方向範例(13/20)範例(13/20)設定狀態轉換之條件式Condition = True才和轉換範例(14/20)範例(14/20)定義狀態輸出值(多個輸出以分號分開)State Action
如果最後的結果
全部Delay一個Clock,
可使用State EntryQ=0範例(15/20)範例(15/20)設定Clock的Port
在Clokc的Rising or Falling時產生output範例(16/20)範例(16/20)在page按右鍵選擇properties,設定Reset的參數
選定對映的Port和State
確定Type
選非同步reset到範例(17/20)範例(17/20)設定Default State範例(18/20)範例(18/20)Synthesis範例(19/20)範例(19/20)Create Macro
Update Macro範例(20/20)範例(20/20)在schematic editor上完成電路設計BusBus Draw可以利用以前拉線的方式,
將Q0,Q1輸出。
(線上面按右鍵->Net Properties)Draw BusDraw Bus取Name和指定範圍指定Port Type如果不要有Pin的話,選此項
要有Pin的話,請選OK.結果結果模擬結果