検証
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#norelated
* ご挨拶 [#r8c36bac]
我が社(有限会社赤葉ロジック→以下"RLL"と表示)の活動内容を...
/-------------------------------------------------------...
/ Copyright 2008 有限会社赤葉ロジック ...
/Apache License Version 2.0(「本ライセンス」)に基づい...
/あなたがこのファイルを使用するためには、本ライセンスに...
/なりません。本ライセンスのコピーは下記の場所から入手で...
/ http://www.apache.org/licenses/LICENSE-2.0 ...
/適用される法律または書面での同意によって命じられない限...
/基づいて頒布されるソフトウェアは、明示黙示を問わず、い...
/条件もなしに「現状のまま」頒布されます。本ライセンスで...
/規定した文言については、本ライセンスを参照してください...
/-------------------------------------------------------...
* 検証 [#jff39267]
主にVMMとsystemVerilogを中心に検証の技術メモを公開します。
&size(20){''目次''};
#contents
* systemVerilog [#w7e28c48]
** randomize()の威力をグラフにしてみる [#n3ce2598]
randomaize()てそんなに便利??と思ったので数値化しグ...
回路はお手軽にcase文で作成、順番による調停回路20bit(ラウ...
カバレッジ値の変化を見たいだけなのでアサーションはovlのas...
結果は冒頭のグラフにあるとおりrandomパターンを80個生成...
randomize()を使用した回路検証の雰囲気が何となくつかめた。
#ref(arbitr_cov.jpg)
* VMM [#qb647616]
** VMMとは [#q21c0f58]
米Synopsys(シノプシス)社提唱する機能検証手法「Verificat...
2008 5/末頃 apache2ライセンスの元、ソースコード&説明書...
> /// unixの世界でVMM(仮想マシンマネージャ)が有りますが...
-VMM Centralと言う公式HPが立ち上がっている。
http://www.vmmcentral.org/home.html
デジタルシステムを開発する時の機能検証の手法と、その時に...
- 近年、システムの開発過程において検証の比重が高くなって...
なっていると言われている。
- VMMは検証と検証を行うプログラムの開発期間短縮を目的とし...
- VMMとsystemVerilogを使用することを前提としており、ライ...
- 検証プログラム&手法の標準を目指している。
** 動作サンプルcvc_counter&VMMをmodelsim PEで動かしてみる...
cvc_counter&VMMがmodelsimPEで動作しない要因は、
- program文をmodelsimPEがサポートしていない。
- randomize()機能をmodelsimPEがサポートしていない。
- そもそのVMMを使用できるのはQuestaのみとメンターグラフィ...
の3点だ。
上記のどの項目も致命的であるが、動作サンプルを動かしてみ...
方針は、
-program文をmodule文に置き換える。
-randomize()の紛い物を作成する。
-とりあえずmodelsimPEを使用してみる。
とする。
*** cvc_counterとは [#tdf9f5ce]
cvc info TechのBagath氏がQuestaに対応するVMMコードと例題(...
- cvc info Tech
http://www.noveldv.com/
- cvc_counter sorce
http://www.vmmcentral.org/forums/viewtopic.php?f=2&t=28
- Verification Engineerの戯言氏のブログを参考にした。
http://blogs.yahoo.co.jp/verification_engineer/41968097.h...
*** program文をmodule文に置き換える。 [#h6bf3772]
機能的には、
> program文 |=> module文
つまりprogram文で記述できることはmodule文でも記述できる。
program文で不都合な点はスケジューリングにありmodule文より...
後ろに来るようスケジューリングされる(同時刻の場合だよ!...
と言うことで、module文に置き換えは、気をつけていれば問題...
- 変更場所は
> counter_pgm.sv
program counter....
....
endprogram
→
module counter...
....
endmodule
*** randomize()の紛い物randomize_ptm()を作成する。 [#pbc1...
- randomize() をvmm & cvc のソースより検索する。数カ所出...
- rand型の設定をcvcソースより検索する。counter_atomic_gen...
- ソースファイルのrandomize()をrandomize_ptm()に書き換え...
注)randomize_ptm()→名前は任意だ。_ptmは”ぱっ...
- counter_atomic_gen.sv, counter_xactn.sv内にあるrand型設...
function int randomize_ptm() ;
....
return 1 ;
endfunction
注)呼び出し側で戻り値を期待しているのでfunctionにして ...
例を1個示しておく。要はrandomizeにして欲しい事をプロ...
counter_atomic_gen.svならこれ。
function int randomize_ptm() ;
logic [31:0] rand_val ;
begin : rand_loop
while (1) begin
rand_val = $random() ;
if((rand_val[7:4] < 10) && (rand_val[7:4] > 0))
disable rand_loop ;
end
end : rand_loop
no_of_xactions = {28'h0000000, rand_val[7:4]} ;
return 1 ;
endfunction
class Test_cfg; を見ると制約で1〜9間での乱数を生成してい...
似たような物を作ればOK → if文で0, 10以上を捨てている...
*** とりあえずmodelsimPEを使用してみる。 [#a407af7d]
実はQuestaでもverで動作するしないがあり、6.3xでOK、 6.4だ...
modelsimPEはQuestaから機能をかなり削除した物なので基本的...
> modelSimPE 6.3gを使用する。
これでコンパイル(vlog)は通る。
以上で波形が出るようになる。
CENTER:[[FrontPage]]
終了行:
#norelated
* ご挨拶 [#r8c36bac]
我が社(有限会社赤葉ロジック→以下"RLL"と表示)の活動内容を...
/-------------------------------------------------------...
/ Copyright 2008 有限会社赤葉ロジック ...
/Apache License Version 2.0(「本ライセンス」)に基づい...
/あなたがこのファイルを使用するためには、本ライセンスに...
/なりません。本ライセンスのコピーは下記の場所から入手で...
/ http://www.apache.org/licenses/LICENSE-2.0 ...
/適用される法律または書面での同意によって命じられない限...
/基づいて頒布されるソフトウェアは、明示黙示を問わず、い...
/条件もなしに「現状のまま」頒布されます。本ライセンスで...
/規定した文言については、本ライセンスを参照してください...
/-------------------------------------------------------...
* 検証 [#jff39267]
主にVMMとsystemVerilogを中心に検証の技術メモを公開します。
&size(20){''目次''};
#contents
* systemVerilog [#w7e28c48]
** randomize()の威力をグラフにしてみる [#n3ce2598]
randomaize()てそんなに便利??と思ったので数値化しグ...
回路はお手軽にcase文で作成、順番による調停回路20bit(ラウ...
カバレッジ値の変化を見たいだけなのでアサーションはovlのas...
結果は冒頭のグラフにあるとおりrandomパターンを80個生成...
randomize()を使用した回路検証の雰囲気が何となくつかめた。
#ref(arbitr_cov.jpg)
* VMM [#qb647616]
** VMMとは [#q21c0f58]
米Synopsys(シノプシス)社提唱する機能検証手法「Verificat...
2008 5/末頃 apache2ライセンスの元、ソースコード&説明書...
> /// unixの世界でVMM(仮想マシンマネージャ)が有りますが...
-VMM Centralと言う公式HPが立ち上がっている。
http://www.vmmcentral.org/home.html
デジタルシステムを開発する時の機能検証の手法と、その時に...
- 近年、システムの開発過程において検証の比重が高くなって...
なっていると言われている。
- VMMは検証と検証を行うプログラムの開発期間短縮を目的とし...
- VMMとsystemVerilogを使用することを前提としており、ライ...
- 検証プログラム&手法の標準を目指している。
** 動作サンプルcvc_counter&VMMをmodelsim PEで動かしてみる...
cvc_counter&VMMがmodelsimPEで動作しない要因は、
- program文をmodelsimPEがサポートしていない。
- randomize()機能をmodelsimPEがサポートしていない。
- そもそのVMMを使用できるのはQuestaのみとメンターグラフィ...
の3点だ。
上記のどの項目も致命的であるが、動作サンプルを動かしてみ...
方針は、
-program文をmodule文に置き換える。
-randomize()の紛い物を作成する。
-とりあえずmodelsimPEを使用してみる。
とする。
*** cvc_counterとは [#tdf9f5ce]
cvc info TechのBagath氏がQuestaに対応するVMMコードと例題(...
- cvc info Tech
http://www.noveldv.com/
- cvc_counter sorce
http://www.vmmcentral.org/forums/viewtopic.php?f=2&t=28
- Verification Engineerの戯言氏のブログを参考にした。
http://blogs.yahoo.co.jp/verification_engineer/41968097.h...
*** program文をmodule文に置き換える。 [#h6bf3772]
機能的には、
> program文 |=> module文
つまりprogram文で記述できることはmodule文でも記述できる。
program文で不都合な点はスケジューリングにありmodule文より...
後ろに来るようスケジューリングされる(同時刻の場合だよ!...
と言うことで、module文に置き換えは、気をつけていれば問題...
- 変更場所は
> counter_pgm.sv
program counter....
....
endprogram
→
module counter...
....
endmodule
*** randomize()の紛い物randomize_ptm()を作成する。 [#pbc1...
- randomize() をvmm & cvc のソースより検索する。数カ所出...
- rand型の設定をcvcソースより検索する。counter_atomic_gen...
- ソースファイルのrandomize()をrandomize_ptm()に書き換え...
注)randomize_ptm()→名前は任意だ。_ptmは”ぱっ...
- counter_atomic_gen.sv, counter_xactn.sv内にあるrand型設...
function int randomize_ptm() ;
....
return 1 ;
endfunction
注)呼び出し側で戻り値を期待しているのでfunctionにして ...
例を1個示しておく。要はrandomizeにして欲しい事をプロ...
counter_atomic_gen.svならこれ。
function int randomize_ptm() ;
logic [31:0] rand_val ;
begin : rand_loop
while (1) begin
rand_val = $random() ;
if((rand_val[7:4] < 10) && (rand_val[7:4] > 0))
disable rand_loop ;
end
end : rand_loop
no_of_xactions = {28'h0000000, rand_val[7:4]} ;
return 1 ;
endfunction
class Test_cfg; を見ると制約で1〜9間での乱数を生成してい...
似たような物を作ればOK → if文で0, 10以上を捨てている...
*** とりあえずmodelsimPEを使用してみる。 [#a407af7d]
実はQuestaでもverで動作するしないがあり、6.3xでOK、 6.4だ...
modelsimPEはQuestaから機能をかなり削除した物なので基本的...
> modelSimPE 6.3gを使用する。
これでコンパイル(vlog)は通る。
以上で波形が出るようになる。
CENTER:[[FrontPage]]
ページ名: