Changes between Version 9 and Version 10 of Ex04課題2015


Ignore:
Timestamp:
May 7, 2015 9:58:54 AM (11 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex04課題2015

    v9 v10  
    106106下位31ビットが数をあらわし、最上位ビットが符号を表します。 
    107107 
     108== インスタンス化について == 
     109VerilogHDLでモジュールを利用するには、その定義をするだけでなく、その実体を作り出す必要があります。 
     110これをインスタンス化といいます。 
     111 
     112参考書では、18ページ「3.1.2 全加算器のHDL記述」に説明があります。 
     113図3.4がその例となっていて、ここではfull_adder回路の定義の中で、half_adder回路を2つインスタンス化しています。 
     114"i0"と"i1"はインスタンスの名前で、他のインスタンスと重ならない任意の名前をつけることができます。 
     115 
     116図3.4では、明示的に信号の接続を記述していますが、以下のように省略して記述できます。 
     117この場合には、並んでいる順番に信号が接続されます。 
     118{{{ 
     119module full_adder(a, b, ci, s, co); 
     120   input a, b, ci; 
     121   output s, co; 
     122   wire   w0, w1, w2; 
     123 
     124   assign co = w1 | w2; 
     125   half_adder i0 (w1, w0, a, b);  // half_adder i0 (.co(w1), .s(w0), .a(a), .b(b)); 
     126   half_adder i1 (w2, s, w0, ci); // half_adder i1 (.co(w2), .s(s), .a(w0), .b(ci)); 
     127endmodule 
     128}}} 
     129 
    108130== テストベンチの作成 == 
    109131作成したALUが正しく動作するかどうかシミュレーションによって確認します。 
     
    161183同時に$dumpfileと$dumpvars文によりVCD形式でファイル「ALUtestbench.vcd」に保存されます。 
    162184 
     185{{{ 
     186ALU     alu(inA,inB,inALUop,outALUresult,outZero); // Instance definition  
     187}}} 
     188の行で、ALUモジュールをインスタンス化しています。接続は省略記法でおこなっていることに注意してください。 
     189 
    163190== テストベンチの実行 == 
    164191シミュレータは「nverilog」コマンドを使います。