計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 河西良介

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

Quartus Ⅱの簡単な使い方 Combinatorial Logic (組み合わせ論理回路)( P.19 ~ 23 ) ① Implementing Boolean Expressions&Equations (ブール表現とブール式の書き方) ② Declaring Nodes (ノードの宣言)
論理回路 第 12 回 TkGate 実習 - 順序回路 38 号館 4 階 N-411 内線 5459
計算機工学特論A 10/17  テキスト内容 1.1~1.4.
VLSI設計論第4回 アキュムレータマシンと 仮遅延シミュレーション
第12回 順序回路の解析方法 瀬戸 順序回路から,以下を導き、解析を行えるようにする タイムチャート 状態遷移関数・出力関数 状態遷移表
プログラミング言語としてのR 情報知能学科 白井 英俊.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
5.3 各種カウンタ 平木.
Handel-C基礎 および 7セグとマウスのハンドリング
第2回 真理値表,基本ゲート, 組合せ回路の設計
Verilog HDL 12月21日(月).
テープ(メモリ)と状態で何をするか決める
プログラミング基礎I(再) 山元進.
4. 順序回路 五島 正裕.
Quartus II 使用法 (ver 9 sp2, 一部ver. 5)
ロジック回路学習ボード MLCTB-BASE 説明書 NAND 7400 NOT 7404 AND 7408 OR 7432
VLSI設計論第2回 組み合わせ回路の記述と 論理シミュレーション
4.2.2 4to1セレクタ.
第10回 Dフリップフロップ ディジタル回路で特に重要な D-FF 仕組みを理解する タイミング図を読み書きできるようにする 瀬戸
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、 =747
デジタル回路(続き) コンピュータ(ハードウェアを中心に)
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
トキのカタチ2016 電子工作(Arduino)講習
基本情報技術概論(第3回) 埼玉大学 理工学研究科 堀山 貴史
7. 順序回路 五島 正裕.
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
2005年11月2日(木) 計算機工学論A 修士1年 No, 堀江準.
計算機工学特論A 第4回 論理合成 山越研究室 増山 知東 2007年11月7日 .
ハードウェア記述言語による 論理回路設計とFPGAへの実装 2
第7回 条件による繰り返し.
6. 順序回路の基礎 五島 正裕.
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
第6回 よく使われる組合せ回路 瀬戸 重要な組合せ回路を理解し、設計できるようにする 7セグディスプレイ用デコーダ 加算回路・減算回路
OpenMPハードウェア動作合成システムの検証(Ⅰ)
アルゴリズムとチューリングマシン 「もの」(商品)としてのコンピュータ 「こと」(思想)としてのコンピュータ アルゴリズム
計算機工学特論A   テキスト内容 5.6.
プログラムの制御構造 選択・繰り返し.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
第10回関数 Ⅱ (ローカル変数とスコープ).
ディジタル回路 6. 順序回路の実現 五島 正裕.
アルゴリズムとプログラミング (Algorithms and Programming)
第7回 条件による繰り返し.
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
第二部  回路記述編 第3章 文法概略と基本記述スタイル 3.1 文法を少々 3.1.1~3.1.3.
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
コンピュータアーキテクチャ 第 7 回.
コンピュータアーキテクチャ 第 7 回.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
計算機構成 第4回 アキュムレータマシン テキスト第3章
VLSI設計論第3回 順序回路の記述と論理合成
ディジタル回路 7. 機能的な組み合わせ回路 五島 正裕.
第11回 よく使われる順序回路 複数のFFを接続した回路を解析する際の考え方を学ぶ カウンタ回路の仕組みを理解し,設計できるようにする 瀬戸.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
  第3章 論理回路  コンピュータでは,データを2進数の0と1で表現している.この2つの値,すなわち,2値で扱われるデータを論理データという.論理データの計算・判断・記憶は論理回路により実現される.  コンピュータのハードウェアは,基本的に論理回路で作られている。              論理積回路.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 10 回.
8. 順序回路の実現 五島 正裕.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
計算機工学論A P46~P49 クロック、リセット、クロック・イネーブルのセット 状態の出力値の指定 ステート・トランジョンの指定
ディジタル回路 8. 機能的な順序回路 五島 正裕.
情報処理Ⅱ 小テスト 2005年2月1日(火).
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

計算機工学特論 スライド 電気電子工学専攻 修士1年 弓仲研究室 07801614 河西良介 回路記述早分かり 計算機工学特論 スライド 電気電子工学専攻  修士1年 弓仲研究室 07801614      河西良介

論理合成前提の主な回路記述 assign文による組み合わせ回路 functionによる組み合わせ回路 always文による順序回路 下位モジュール呼び出し *always組み合わせ、taskによる回路記述も可だが、一般的ではない。

assign文による組み合わせ回路 *assign→継続的代入 常駆動、値の保持ができない(保持できる例:DFF) よって、代入される左辺にはwire宣言したネット型のみ セレクタと加算回路ではビット数を明示していない。 信号をwire宣言部で定義しておけば一箇所変更するだけですむ。 Carryでは条件演算を用い、代入する値を明示してもよい。 また、assignはほかの回路とあわせて用いモジュールを構成するのが普通。 2入力NAND セレクタ 桁上がり信号 加算回路 carry d0 a dout =9 sum d1 b sel Cnt10 [3:0] assign na = ~( in1 & in2 ); assign dout = (sel==1) ? d1: d0; assign carry = (cnt10==4’h9); assign sum = a + b;

function文による組み合わせ回路 2 to 4 デコーダ function文:条件分岐を含むような「複雑」な回路の時に用いる *if,case文はfunction内で記述する。  モジュール宣言直後等は文法エラー din dout [0] [0] [1] [1] [2] [3]

always文による順序回路 例1 ラッチやフリップフロップ等の順序回路をalways文で表現する レジスタ型ビット数無し宣言 DFF レジスタ型ビット数無し宣言 D Q クロック立上がりで入力DにQを代入 CK

always文による順序回路2 resが1ならqは0を代入 例2 それ以外ならqへ+1 4bit binary counter 4 CK

2 to 4 デコーダ シミュ結果

3.2.4 下位モジュール呼び出し(P.72) ~ 4.1 基本ゲート回路(P.77) 計算機工学特論A 3.2.4 下位モジュール呼び出し(P.72) ~ 4.1 基本ゲート回路(P.77) 2007/11/21 弓仲研究室 修士1年 高橋 靖典 「パルス幅変調プリエンファシスを用いた高速信号伝送技術とその評価」について、弓仲研究室、学部4年の高橋が発表いたします。

下位モジュール呼び出し 回路の階層構造化 一つのモジュールですべてを記述せず、 複数の階層に分けて記述するのが一般的 理由 ・ 機能ごとの小ブロックに分割 → 設計・検証の効率が良い ・ ブロックの大きさの条件 → 論理合成ツールの実用範囲内 ・ 必要以上の大きさのブロックの論理合成 → メモリと時間の浪費

4ビットDフリップフロップ 1ビットのDフリップフロップを下位モジュールとして 呼びだし、4ビットのDフリップフロップを構成する。 トップ・モジュール  (4ビットDFF) 下位モジュール (1ビットDFF)

下位モジュールの呼び出し方法 「Quartus II 7.2 Web Edition」でのシミュレーション方法 プロジェクトウィザードで、あらかじめ用意した「Verilog HDL File」を追加することができる ① ② Verilog HDL Fileが追加された

Verilog HDLでの記述方法 モジュールの呼び出し モジュール名 インスタンス名 (ポート・リスト) ; モジュール名 インスタンス名 (ポート・リスト) ; 例)   DFF     DFF0   ( ck, d[0], q[0] ) ; 同一モジュールを複数呼び出す場合 DFF DFF0( ck, d[0], q[0] ), DFF1( ck, d[1], q[1] ), DFF2( ck, d[2], q[2] ), DFF3( ck, d[3], q[3] ); このように、コンマ(,)で区切って連続して記述する

Verilog HDLでの記述方法 ポートの記述方法 ① 順番によるポート接続 ② 名前によるポート接続 ① 順番によるポート接続 DFF DFF0 ( ck, d[0], q[0] ) ; 順番の変更不可 ② 名前によるポート接続 DFF DFF2 ( .CK(ck), .D(d[2]), .Q(q[2]) ); . 定義側ポート名 (接続信号) 順番の変更可能 DFF DFF2 ( .D(d[2]), .Q(q[2]) , .CK(ck) ); これでもOK

シミュレーション 1ビットDFF D Q CK クロックの立ち上がりで 入力信号Dの値を保持する

シミュレーション 4ビットDFF 両方可

シミュレーション(失敗例①) 4ビットDFF 順番によるポート接続 では、ポートの順番を 間違えるとエラーになる

シミュレーション(失敗例②) 4ビットDFF 接続信号の記述では 順番と名前を混在して 書くとエラーになる

第4章 組み合わせ回路のHDL記述 プリミティブ・ゲートを用いたゲート回路 記述方法 Verilog HDLには、あらかじめ基本的なゲート回路(プリミティブ・ゲート)が用意されている AND、NAND、OR、NOR、インバータ など 記述方法 ゲート・タイプ ゲート名 ( 出力信号名, 入力信号名1, 入力信号名2, ・・・ ) ; 例) or or2   ( out_or2 , in0 , in1 ) ; ※ ポートの記述では、「順番による接続」は使えるが、「名前による接続」は使えない ※ ゲート名を省略することができる

シミュレーション① プリミティブ・ゲートを用いたゲート回路 2入力OR回路 真理値表

シミュレーション② 論理式を用いたゲート回路 記述方法 真理値表 assign 出力信号 = 論理式 ; 例) assign or2_out = in0 | in1 ; 記述方法 真理値表 2入力OR回路

4.2.1 2to1セレクタ 図4.4 2to1セレクタ 2 in1 2 dout 2 in0 sel 2ビットの2本の信号から一本の選択するセレクタを記述します。 2 in1 2 dout ・仕様 2ビットの入力in0とin1をsel信号で選択し2ビットdoutに出力します。 sel=0でin0を、sel=1でin1を選択。 2 in0 sel

条件演算子による2to1セレクタ 条件演算子部分にビット幅の記述が含まれないため、ビット幅の変更を用意に行えます。 Module sel2to1_cond( in0 , in1 , sel , dout ); input [1:0] in0 , in1; input sel; output [1:0] dout; assign dout = (sel==1’b1) ? in1: in0; endmodule 条件演算子部分にビット幅の記述が含まれないため、ビット幅の変更を用意に行えます。

AND-ORによる2to1セレクタ 記述から動作を理解しにくく、ビットを分解して記述しているため、ビット幅変更による対応がよくありません。 Module sel2to1_andor( in0 , in1 , sel , dout ); input [1:0] in0 , in1; input sel; output [1:0] dout; assign dout [0] = (~sel & in0 [0] ) | (sel & in1 [0] ) ; assign dout [1] = (~sel & in0 [1] ) | (sel & in1 [1] ) ; endmodule 記述から動作を理解しにくく、ビットを分解して記述しているため、ビット幅変更による対応がよくありません。

if文による2to1セレクタ ・if文はモジュール構成要素ではないので、function内で用いる。 Module sel2to1_if( in0 , in1 , sel , dout ); input [1:0] in0 , in1; input sel; output [1:0] dout; function [1 : 0] select; input [1 : 0] in0, in1; input sel; if ( sel==1’b0 ) select = in0 ; else select = in1; endfunction assign dout = select (in0, in1, sel ); endmodule ・if文はモジュール構成要素ではないので、function内で用いる。 ・if文では条件式が’x’または’z’ならば偽とみなすため、selが’x’でもin1が選択される。 ・論理合成語のゲート回路では不定値が伝播するため、HDL記述と論理合成後のゲート回路で、シミュレーション結果が異なることがある。

case文による2to1セレクタ ・if文と同様にfunctionの中で用いる。 Module sel2to1_case( in0 , in1 , sel , dout ); input [1:0] in0 , in1; input sel; output [1:0] dout; function [1 : 0] select; input [1 : 0] in0, in1; input sel;    case ( sel ) 1’ b0 : select = in0 ; 1’ b1 : select = in1 ; default : select = 1’ bx ; endcase endfunction assign dout = select (in0, in1, sel ); endmodule ・if文と同様にfunctionの中で用いる。 ・selが指定した値以外を取る場合はdefault以降を実行し、戻り値selectは不定となる。