2012-01-01から1年間の記事一覧

ModelSimの実行スクリプト

ModelSimの実行スクリプトのサンプルです。プロジェクト名:sample シミュレーショントップのモジュール名:sample_tb ModelSimの作業ディレクトリ名(ModelSimが生成したファイルを格納):work とします。・ディレクトリ構成 sample/ |- sample_tb.sv |- sam…

FIFO(キュー)のビヘイビアモデル

SystemVerilogを使ったビヘイビアレベルのFIFOの実装方法です。詳細は、SystemVerilog 3.1a LRMの4.14を参照してください。 FIFOの宣言 int fifo0[$]; // 深さを指定しないFIFO int fifo1[$:255]; // 深さ256のFIFO データの格納方法 FIFOの一番後ろにデータ…

動的配列の使い方

Verilogでは配列の要素数は宣言時に指定する必要があったので何かと不便でしたが、SystemVerilogでは、要素数を自由に変更できる動的配列が使えます。動的配列は下記のように『型 配列名[]』で宣言します。 int dynamic_array[]; 動的配列はクラスのため、ne…

シミュレーション終了時に実行されるfinal文

最近知ったのですが、SystemVerilogでは、シミュレーション終了時に実行されるfinal文というものが追加されています。使い方は簡単で、シミュレーション終了時にfinal文内の記述が1回だけ実行されます。なお手続き的処理(#遅延とか)は記述できません。 modue…