Systemverilog

スポンサーリンク
Systemverilog

SystemVerilog|パラレルシリアル変換回路

田中太郎 パラシリ変換回路を作ります サンプルコード initの立ち上がりで入力されたパラレルデータをシリアルデータに変換します sample.sv module sample #( parameter BW = 10 )( input c...
Systemverilog

SystemVerilog|カウンタ回路を作成する

田中太郎 3ビットカウンタを作成します 仕様 リセットで初期化して1クロックごとに1カウントアップします サンプルコード サンプルコードです sample.sv module sample #( parameter BW = 3 )( in...
Systemverilog

SystemVerilog|classでモニタを作成する

田中太郎 クラスを使ってモニタを作成します はじめに classでモニタを作成するとextendsで継承できるので流用性が高くなります 今回はベースとなるシンプルなモニタクラスを作成します 構成 インターフェース、モニタ、テストベンチから構...
Systemverilog

SystemVerilog|interfaceについて考える

田中太郎 interfaceの使い方について考えます サンプルコード interfaceを使用したサンプルコードです このあとに解説があります sample1.sv interface i_dut_t; // interfaceを定義 lo...
Systemverilog

SystemVerilog|parameterで型を上書きする

田中太郎 parameterでビット幅や定数を上位階層で変更するのは一般的ですが データ型も変更できます サンプルコード まずはparameterを上書きしないでみます module tb; bit clk = 0; always #5 c...
Systemverilog

SystemVerilog|bindのparameterについて考える

田中太郎 bindのparameterを使用します 使い方 bind <A> <B> #( .<Bのパラメータ>(値) ) <bind名> ( .<Bのポート>(<Aのポート>), ); サンプルコード 以下のコードは、リセット解除されると...
Systemverilog

SystemVerilog|bindについて考える

田中太郎 モニタやチェッカをテストベンチを接続するとき、しばしばbindを使用します bindの使い方について考えていきます サンプルコード テストベンチ、モニタ、DUTから構成されています DUTとモニタをテストベンチでバインドしています...
Systemverilog

SystemVerilog|taskでモニタを作成する

田中太郎 モニタを作成します 期待値は今回は省略して、値を標準出力するだけです 構成 DUTとテストベンチに分けて説明します カウンタ回路 今回モニタする回路です リセットで初期化(0)するカウンタ回路です 入力ポート ・clk:クロック ...
Systemverilog

SystemVerilog|fork/join, join_none, join_anyについて考える

田中太郎 fork-join/join_none/join_anyについて考えます forkでプロセスの並列実行 forkを使うことでプロセスを並列に実行できます 3種類あるのでそれぞれ紹介します fork/join fork/joinで囲...
Systemverilog

SystemVerilog|移動平均フィルタの実装

田中太郎 移動平均フィルタを実装しました 仕様 3x1の水平移動平均フィルタです(1/4-1/2-1/4) 画像の水平両端では注目画素を出力します top.sv main.svとctrl.svをインスタンスしている回路 module top...
スポンサーリンク