#ソフトウェア

OVM2.0でinterrputハンドラーはfork...join_noneで走らせていいのかな。

ベリフィケーション・メソドロジ・マニュアルにinterrputが使用できると有り、OVM2.0ではどうかなと OVM_UserGuideを見るとp115~から記述が有るじゃん。。でもサンプルコード無いね!! サンプルが無いのでUserGuideに従い、割り込みハンドラー(dmac_interr…

ブロッキングのportにtlm_fifoをつなげちゃ駄目だよね。

driver<->sequencer間をfifoでつなげようと tlm_fifo #(dmac_data) fifo ...... fifo = new("dmac_fifo", null, 8) ; ...... // connect function void connect(); driver.seq_item_port.connect(fifo.get_export); sequencer.seq_item_port.connect(fifo.pu…

ランダム検証とモデル検証

ランダム検証はどこまで信用できる?? スカスカなのでは?? たとえば10年以上昔に回収騒ぎに発展したペンティアムCPUの割り算命令が特定範囲の数値で 有効桁が6~7桁減る(たしかこのぐらい)バグ。。 ランダム検証で見つけることが出来るか?? 厳密…

JSNUG出席する。誤記修正と補足

JSNUG出席する。誤記修正と補足です。 トピック その2 2年前にハギワラCF1Gb \10000でした。 2年で1/10へ。 C-3 FPGAを活用したASIC開発関連。 FPGAのフィッティングTOOLにはフォーマル検証用のネットリストを出力するオプション がある。conformal LECや…

JSNUG出席する。久々のVMMネタです。

JSNUG-synopsys users meeting 2008行ってきました。 VMM関連は人で一杯。。FPGA関連は割と空きありな感じだった。 A-1 TLM関連 今日は沢良宜東町の組事務所から新幹線で出撃。。遅刻しました。 A-2 VMMの解説 裏話をもう少し入れて欲しかった。 A-3 VMM-LP…

・トピック modelsimPE向け。。の補足

* req,rsp補足 ovm_sequence, ovm_driverのソースは virtual class ovm_sequence #(type REQ = ovm_sequence_item, type RSP = REQ) extends ovm_sequence_base; typedef ovm_sequencer_param_base #(REQ, RSP) sequencer_t; sequencer_t param_sequencer; …

OVM2.0を使用して自前のDMACの検証環境を作ってみるの続き。

前回動作しなかったのは、 エラボレーションerror→ インスタンス設定に間違いとbuild();の set_config_string(".............. で設定するsequences名のつまらん書き間違え。。。 と言うことでsequencer→driverへデータを渡すことが出来るようになった。 波…

OVM2.0を使用して自前のDMACの検証環境を作ってみる。中間報告

OVM2.0を使用して自前のDMACの検証環境を作ってみる。 →中間報告 とりあえず、コーディングしrun -allした。 パターンは +OVM_TESTNAME=で選択するようにした。 →最初のパターンはトリビアルが順当。 結果 OVM_ERROR... # ---------------------------------…

デザインパターンて能や歌舞伎で言う所の”型”なんだね。

OVM2.0を使用して自前のDMAC検証環境を作ろうと思いたち、 まずクラス図作成。。その前にデザインパターンの本をもう一度読み直した。 デザインパターンて能や歌舞伎で言う所の”型”なんだね。 「型をつけてやる、ただし魂を入れるのはお前だ」 といってくれ…

run_test()はovm_rootに。。

modelsimPEでrun -allが出来るようになったので、 早速 xbus_tb_top.sv内の run_test()にブレークポイントを張り 実行。。 → run_test() に来たときStep実行 ありました。 ovm_root.svh-line154 OVM_UserCuide.pdfには、 "in the top-level module to select…

examples/xbusをrun -allできるようにする。

前回のrandomize() with ....はどうしようのつづき。 とりあえず ovm_sequence_defines.svhにある。 assert(OVM_SEQUENCE_ITEM.randomize() with CONSTRAINTS ) else begin \ ovm_report_warning("RNDFLD", "Randomization failed in ovm_do_with action"); …

ovm_do_withの中身はrandomize() .... with ....ですか。

VMMと同様にmodelsim PEで動くようにしようと、とりあえずexsample/xbusをコンパイルしてみる。 vlogはwarningが数十出るが通った。 でもvsimはやっぱりだめ。。例によってQuestaを速く買えと叫んでいるようなError ----------- Error: Unable to checkout v…

OVM2.0はQuesta ver6.4に対応。

OVM2.0出ましたね。 http://www.ovmworld.org/downloads.php Questa 6.4に対応、README-Questa.txtに出てました。 と言うことはmodelsimPEもver6.4でOK?かな。 先日 VMMをMentorのサイトからダウンロードした時に、ついででAVM3をDLした。 AVM3をながめてい…

vmm_scenario_genはmentorのHPから持ってきたvmm-1でないと動かない??

トランザクションを記述子を介してrandomize()するには、手続き型のシナリオが入って来るので vmm_scenario_genを使apply()で拡張できるようにね、と言うことで ..\vmm-1.0.1\sv\examples\std_lib\scenarios に有ったサンプルscenariosを動かして見ることに…

randomize()の効果を試してみるの2回目→DMACで試す。

randomize()の効果を試してみるの2回目→DMACで試してみた。 DMAC回路 12bitのメモリ空間より32bitのメモリ空間へ転送で1チャネルのみ。 グラフにすると平行線になって100%に到達できず。。汗 詳細リザルトを見るとstatusのリード, fifoのfull flag, デ…

R 4-53 structではなくclassを使用せよ。

randomize()をもう少し実用的な回路で。。と言うことでDMAC回路。 まずDMACのレジスタを typedef struct { head_addr, .... } dmac_reg ; なんて書いてたらベリフィケーション・メソドロジ・マニュアル(CQ出版) のp144にstructは使うなと。。 理由は *メ…

new() ; になかなか馴染めないね

とりあえずvmmを使ったテスト環境を書き始めたが。。。エラー頻発。。 テストデータの生成をとりあえず100個に設定するclassを class main_cfg; int test_count; test_count = 100 ; endclass : main_cfg てな感じで作ったらError ...... expecting "new"…

VMMについて解説しておこう。

* VMMとは、 米Synopsys(シノプシス)社提唱する機能検証手法「Verification Methodology Manual(VMM) for SystemVerilog」です。 2008 5/末頃 apache2ライセンスの元、ソースコード&説明書が公開された。 > ここで説明しているのはunixの仮想マシンマネ…

randomaize()の威力をグラフにしてみる

randomaize()てそんなに便利??と思ったので数値化しグラフにしてみた。 回路はお手軽にcase文で作成、順番による調停回路20bit(ラウンドロビン)ただしクロック毎に調停する RTLは下記参照 // --- arbitr -> round robin --- always @(posedge clk, neged…

Garbage collection →systemverilogにはついてるよ。

オヤジにはオブジェクト指向はむり?? の続き。。 =new() ;が無いのに .get(cur_xactn)してデータを受け取っている。 modelsimのlistウインドウを見ると Counter_xactn cur_xactn行の色が黒い。。もしかしたら不要?? コメントアウトして make[RET]→Error …

オヤジにはオブジェクト指向はむり??

めでたくcvc_counter+vmmが動作したので中身を見てみる。 modelsimのInstanceウインドウへ - counter_dut ----> counter本体 - counter_if_0 ----> interface記述(clockingも入ってた) - utest_pgm -->検証プログラム本体 とりあえずutest_pgmをダブルクリ…

ぱっちもんの→randomize_ptm()を作る。

そういえば”Verification Engineerの戯言氏”のblogにmodelsim ver6.4では動かない... などと書かれていたような。確認するとQuestaの6.3xでOK、 6.4だめとの事。。Questaのことか~~。 とりあえず modelsim PE 6.4 → 6.3gに戻してみる。 早速 make[RET] vlo…

vmm_chanelを使用した例題が

vmm_channelを使用した例題があるとのことで早速ダウンロードし実行してみた。 *ネタ元はまたもやVerification Engineerの戯言氏の記事 http://blogs.yahoo.co.jp/verification_engineer/41968097.html ダウンロードした cvc_counter_vmm_questa.tgz vmm1.0…

いまさらブログを始める。

そろそろsystemVerilogを始めなければと思っているところへ MentorがVMMを正式サポート http://blogs.yahoo.co.jp/verification_engineer/41927023.html なる記事発見。 modelsimPEもあるしSV&VMMの勉強ついでにメモを公開しようと思います。 systemverilog …