Systemverilog

スポンサーリンク
Systemverilog

SystemVerilog Interfaceを使用して回路を作成する modport

はじめに Interfaceのmodportの機能を使用して回路を作成してみます。 バスのプロトコルは、validがHighのとき、スレーブに設定したアドレスとaddrが等しいときのdataが有効になります。 サンプルコ...
Systemverilog

SystemVerilog randとrandcの違い クラスのランダム変数

rand/randcの違い rand 変数の範囲すべてを網羅する前に同じ値が返ることもある。(一様分布) randc 変数の範囲すべてを網羅するまで同じ値は返らない。(ランダム循環) サンプルコード m...
Systemverilog

SystemVerilog $left/$right/$low/$high/$size/$dimensions システムタスク

はじめに SystemVerilogのLRMを読んでいると配列に関する面白い?システムタスクがあったので紹介します。 $left 配列の左側 bit a; int b; initial begin b = $l...
Systemverilog

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

はじめに defineマクロが思ったよりいろんな使い方ができたので、試してみました。 サンプル1 値を置換 `define DEF_INIT 2 always_ff @(posedge clk, negedge rst...
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...
Systemverilog

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

サンプルコード sample_seq.svh(Sequence) 今回使用するSequenceです。 クラス変数として、din1とdin2を持ちます。 class sample_seq extends uvm_se...
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_score...
スポンサーリンク
タイトルとURLをコピーしました