Systemverilog

スポンサーリンク
Systemverilog

SystemVerilog defineマクロについて考える

はじめに defineマクロが思ったよりいろんな使い方ができたので、試してみました。 サンプル1 値を置換 `define DEF_INIT 2 always_ff @(posedge clk, negedge rst_n) if (!rs...
Systemverilog

uvm_config_dbについて考える

はじめに UVMを使っていると必ず出てくるuvm_config_db。 なんとなく、テストベンチでInterfaceをデータベースに登録して、クラスの中で呼び出すんだなぁと漠然と思っていました。 今回は様々な条件で使用してみて理解を深めます...
Systemverilog

UVM Sequenceを実行する方法まとめ

サンプルコード sample_sequence_item.svh Sequenceで使用するSequence_itemです。 class sample_sequence_item extends uvm_sequence_item; `uv...
Systemverilog

UVM Virtual SequenceでSequenceを実行する方法まとめ

サンプルコード sample_seq.svh(Sequence) 今回使用するSequenceです。 クラス変数として、din1とdin2を持ちます。 class sample_seq extends uvm_sequence #(samp...
Systemverilog

【UVM】ScoreBoardを作成する~期待値比較する~【#3】

はじめに 前回はuvm_tlm_analysis_fifoを使用してFIFOを実装しました。 今回はDUTの出力を取得してScoreBoardで期待値比較します。 サンプルコード dut.sv 入力データをそのまま出力するだけの回路です。 ...
Systemverilog

【UVM】ScoreBoardを作成する~uvm_tlm_analysis_fifoを使用する~【#2】

はじめに 前回はScoreBoardでAnalysis Exportを定義してMonitor階層のAnalysis Portと接続しました。 Analysis Exportはデータを受け取るだけなので、FIFOのようにデータを保持する仕組み...
Systemverilog

【UVM】ScoreBoardを作成する~Monitor階層からトランザクションを取得する~【#1】

はじめに ScoreBoardはDUTの出力と期待値を比較する階層です。 UVMモデルのMonitorとAnalysis Portを介してDUTの出力を取得します。 サンプルコード sample_scoreboard.svh uvm_sco...
Systemverilog

【UVM】Register階層を作成する~AdapterでAgentと接続する~【#2】

前回のおさらい Register階層を作成しました。 UVMモデルを介してDUTのレジスタにアクセスするためにAdapterを作成します。 サンプルコード sample_sequence_item.svh Register階層と接続するUV...
Systemverilog

【UVM】Register階層を作成する~uvm_regでレジスタを管理する~【#1】

はじめに Register階層(Register Layer)を作成します。 UVMではレジスタをuvm_regを継承したクラスで定義します。 1レジスタごとに1クラスを作成して、uvm_reg_blockを継承したクラスで1まとめにします...
Systemverilog

【UVM】クロック生成モデル

はじめに UVM環境でクロック生成モデルを作成します。 構成とサンプルコード UVMモデルの構成 Sequence_item clock_sequence_item.svh class clock_sequence_item extends...
スポンサーリンク