1 / 9

計算機工学論 A

計算機工学論 A. P46 ~ P49. クロック、リセット、クロック・イネーブルのセット 状態の出力値の指定 ステート・トランジョンの指定 ステート・マシンのビットと値の割り当て. 05801623 照井 義隆. クロック、リセット、クロック・イネーブルのセット. ロジック・セクションでブール制御式によって指定. クロック、リセット、クロック・イネーブル信号. ステートマシンの状態レジスタの フリップフロップを制御. 状態の出力値指定. Simple1.tdf では出力q. ステートマシンssの状態: s 0 のとき q=GND;.

zizi
Download Presentation

計算機工学論 A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機工学論A P46~P49 • クロック、リセット、クロック・イネーブルのセット • 状態の出力値の指定 • ステート・トランジョンの指定 • ステート・マシンのビットと値の割り当て 05801623照井 義隆

  2. クロック、リセット、クロック・イネーブルのセットクロック、リセット、クロック・イネーブルのセット ロジック・セクションでブール制御式によって指定 クロック、リセット、クロック・イネーブル信号 ステートマシンの状態レジスタの フリップフロップを制御

  3. 状態の出力値指定 Simple1.tdfでは出力q ステートマシンssの状態:s0のときq=GND; :s1のときq=VCC; 出力値:If文やCase文を使って出力値を決定 なお、出力値は真理値表で定義することも出来る

  4. ステート・トランジョンの指定 ステート・マシン・トランジョンを指定するには・・・ 単一動作の範囲で状態を条件付で割り当てなくてならない ステート・マシン・トランジョン ステート・マシンが新しい状態にトランジョン(遷移)するための条件を決定 このためCase文や真理値表文を推奨 Simple1.tdfでは各状態からのトランジョンはCase文のWHEN節で定義

  5. SUBDESIGN simple ( clk :INPUT; reset :INPUT; d :INPUT; ena :INPUT; q :OUTPUT; ) VARIABLE ss: MACHINE WITH STATES (s0, s1); BEGIN ss.clk = clk; ss.reset = reset; ss.ena = ena; CASE ss IS WHEN s0 => q = GND; IF d THEN ss = s1; END IF; WHEN s1 => q = VCC; IF !d THEN ss = s0; END IF; END CASE; END; Simple1.tdf %入、出力の宣言% %ステート・マシンの状態s0,s1の遷移% %ステート・マシン宣言% %クロック、リセット、クロック・イネーブルのセット%

  6. Simple1.tdfのシュミレーション結果

  7. ステート・マシンのビットと値の割り当て 状態ビット: ステート・マシン値の1ビットを保持するために、ステート・マシンで使われたフリップフロップの出力 多くの場合、必要なリソースを最小限に抑えるために、状態ビットと 値の割り当てはMAX+PLUSⅡのコンパイラに任せたほうが良い 明示的な状態ビットを指定したい時 割り振りはステート・マシン宣言で記述可

  8. stepper.tdf:ステッッピング・モーターの    コントローラーを示しているstepper.tdf:ステッッピング・モーターの    コントローラーを示している TABLE ss, ccw, cw => ss; s0, 1, x => s3; s0, x, 1 => s1; s1, 1, x => s0; s1, x, 1 => s2; s2, 1, x => s1; s2, x, 1 => s3; s3, 1, x => s2; s3, x, 1 => s0; END TABLE; END; %入、出力の宣言% %ステート・マシンの状態  の遷移の指定% %ステート・マシン宣言% SUBDESIGN stepper ( clk, reset :INPUT; ccw, cw :INPUT; phase[3..0] :OUTPUT; ) VARIABLE ss: MACHINE OF BITS (phase[3..0]) WITH STATES ( s0 = B"0001", s1 = B"0010", s2 = B"0100", s3 = B"1000"); BEGIN ss.clk = clk; ss.reset = reset; ccw=x,cw=1 S0= B”0001” S3= B”1000” S1= B”0010” ccw=1,cw=x S2= B”0100” ステート・マシンの状態s0,s1,s2,s3の遷移

  9. stepper.tdfのシュミレーション結果

More Related