Systemverilog

スポンサーリンク
Systemverilog

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

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

uvm_config_dbについて考える

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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