計算機工学論A

6
計計計計計計計計 計計 M1

description

計算機工学論A. M1 木暮 康人. If 文. Case 文. 条件判断ロジック. 条件判断ロジックとはロジックへの入力値により異なる 動作を選択する。実装には If 文か Case 文が理想的である。.  ひとつまたは複数のブール表現を評価し、 その表現と異なる時の動作を記述する。.  ある表現における各値に適用できる選択肢を 挙げる。表現の評価し、表現の値により一連の 動作を選択する。. If 文ロジック. priority.tdf ファイルは、アクティブで最も優先度が高い入力値の - PowerPoint PPT Presentation

Transcript of 計算機工学論A

Page 1: 計算機工学論A

計算機工学論A

M1 木暮 康人

Page 2: 計算機工学論A

条件判断ロジック条件判断ロジック

 条件判断ロジックとはロジックへの入力値により異なる動作を選択する。実装には If 文か Case 文が理想的である。

If 文  ひとつまたは複数のブール表現を評価し、その表現と異なる時の動作を記述する。

Case 文 ある表現における各値に適用できる選択肢を挙げる。表現の評価し、表現の値により一連の動作を選択する。

Page 3: 計算機工学論A

If 文ロジックIf 文ロジック

SUBDESIGN priority( low, middle, high : INPUT; highest_level[1..0] :OUTPUT)BEGIN IF high THEN highest_level[] = 3; ELSIF middle THEN highest_level[] = 2; ELSIF low THEN highest_level[] = 1; ELSE highest_level[] = 0; END IF;END;

  priority.tdfファイルは、アクティブで最も優先度が高い入力値のレベルを 2進数に変換する Priority encoderである。 Vccでドライブされる最も優先度が高い入力を示し 2bitコードを生成する。

priority.tdf

・二つ以上の入力が Vccに入力された場合  IF節や ELSIF節の順番によって決定。

優先度:高

優先度:低

・ Vccに入力がドライブされてないときは  ELSEがアクティブになる。

Page 4: 計算機工学論A

Case 文ロジックCase 文ロジック

SUBDESIGN priority( code[1..0] : INPUT; out[3..0] :OUTPUT)BEGIN CASE code[] ISD WHEN 0 out[] = B”0001”;⇒ WHEN 1 out[] = B”0010”; ⇒ WHEN 2 out[] = B”0100”;⇒ WHEN 3 out[] = B”1000”;⇒ END CASE;END;

・入力 code[1..0] は 0,1,2,3 の値を持つ。・⇒によって後の式がアクティブになる。・左側の表現が全てことなるため一度に 一つの WHEN 節しかアクティブにならない。

 Decoder.tdfファイルは 2bitから 4bitに変換するデコーダーである。二桁の binary codeを“ out-hot”codeに変換する。

decoder.tdf

Page 5: 計算機工学論A

If 文 vs. Case 文If 文 vs. Case 文

IF a[] == 0 THEN y = c & d;ELSIF a[] == 1 THEN y = e & f;ELSIF a[] == 2 THEN y = g & h;ELSIF a[] == 3 THEN y = IELSE y = GND;END IF;

CASE a[] IS WHEN 0 ⇒ y = c & d ; WHEN 1 ⇒ y = e & f; WHEN 2 ⇒ y = g & h; WHEN 3 ⇒ y = i ; WHEN OTHERS ⇒         y = GND;END CASE

  If 文と Case 文は似ており、ある場合にはどちらの文を使用しても同じ結果を得ることができる。

If statement Case statement

Page 6: 計算機工学論A

IF a THEN IF a THEN c = d; c = d; END IF;

ELSIF b THEN IF !a & b THEN c = e; c = e; END IF;

ELSE IF !a & !b THEN c = f; c = f;END IF END IF

If 文 vs. Case 文If 文 vs. Case 文If 文と Case 文の相違点

●If 文では様々な種類のブール表現を使用することができる  If 節や ELSIF 節の各表現は、その文の他の表現と関係ない  かもしれないが、 Case 文では一つのブール表現がそれぞれの  WHEN 節で定数と比較される。●MAX+PLUSⅡ コンパイラの If 文の解釈によって。複雑すぎる ロジックが生成される可能性がある。

コンパイラの If 文解釈

If statement Compiler interpertation