1 / 6

計算機工学論A

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

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 M1 木暮 康人

  2. If 文 Case 文 条件判断ロジック 条件判断ロジックとはロジックへの入力値により異なる 動作を選択する。実装にはIf文かCase文が理想的である。  ひとつまたは複数のブール表現を評価し、 その表現と異なる時の動作を記述する。  ある表現における各値に適用できる選択肢を 挙げる。表現の評価し、表現の値により一連の 動作を選択する。

  3. If 文ロジック priority.tdfファイルは、アクティブで最も優先度が高い入力値の レベルを2進数に変換するPriority encoderである。Vccでドライブ される最も優先度が高い入力を示し2bitコードを生成する。 ・二つ以上の入力がVccに入力された場合 IF節やELSIF節の順番によって決定。 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; ・Vccに入力がドライブされてないときは ELSEがアクティブになる。 優先度:高 優先度:低 priority.tdf

  4. Case文ロジック Decoder.tdfファイルは2bitから4bitに変換するデコーダーである。 二桁のbinary codeを“out-hot”codeに変換する。 ・入力code[1..0]は0,1,2,3の値を持つ。 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; ・⇒によって後の式がアクティブになる。 ・左側の表現が全てことなるため一度に  一つのWHEN節しかアクティブにならない。 decoder.tdf

  5. If文 vs. Case文 If 文とCase文は似ており、ある場合にはどちらの文を使用しても 同じ結果を得ることができる。 Case statement If statement 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 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 = I ELSE y = GND; END IF;

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

More Related