忍者ブログ

雑記

【verilog】simv実行時の引数指定

雑記 > > [PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

【verilog】simv実行時の引数指定

雑記 > codeのメモ > 【verilog】simv実行時の引数指定

verilog $value$plusargsと$test$plusargsの使用例

VCSでvcsとsimvの分割でverilog simを実行するとき、simv実行時に変数や実行タスクを変更するときに$value$plusargs、$test$plusargsを使用する。

$value$plusargsでTIMEOUT値を変更する例

$value$plusargsはverilogコード内の変数値を変更できる。以下はi_timeoutという変数値をsimv実行時に変更する例。

*.svコード例

// ============================================
// simv時にTIMEOUTを設定
//   引数でtimeoutを設定されたらi_timeoutにそれを入力する
//   引数が無い場合はi_tiemoutは4000のまま
// --------------------------------------------
int i_timeout=4000
if($value$plusargs("timeout=%d",i_timeout));

実行例

simv +timeout=5000

ランダムシナリオのSeed値を変更する場合も$value$plusargsを使用した気がする。

$test$plusargsでTESTシナリオを変更する例

1回のvcsで全テストシナリオをコンパイルし、simv実行時にTESTシナリオを選んで実行する例。

$test$plusargsのカッコ内にある文字列が引数が一致した場合if分が有効になる。

*.svコード例

// ============================================
// simv時にTESTを設定
//   "test_xxx"という引数を指定されたらtest_xxx()のタスクを実行する
// --------------------------------------------
if($test$plusargs("test_xxx" )) test_xxx (); 
if($test$plusargs("test_xxx1")) test_xxx1();  //TESTシナリオ分この行の追加が必要

実行例

simv +test_xxx

有効な引数が指定されなかった場合TESTがError(or NG)となるようにする必要がある。

Code memo home

コメント

ただいまコメントを受けつけておりません。

カレンダー

11 2024/12 01
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31