Vivadoってどうやるの?

Xilinxさんの力を借りようとしたけど、どうもVivadoの使い方が分かっていないことが判明しました。 なんかそれらしく使っていたけど、テストベンチはどこでどうのように作れば良いのだろう? 勉強します。

Xilinxさんの助けを借りるのが良さそう

AXI-Liteのマスタ・スレーブのBFMを作るところまでやってみた。 しかしまあ大変、一人ではペースが上がらない。ということで巨人の肩をお借りすることにしました。Xilinxさんよろしく。 次の目標は、C言語でXilinxさんのAXI-VIPを呼び出すことにします。

バグを対策したよ。

リセット期間中の信号ドライブリクエストへの応答を待たせる。 リセット期間中に信号ドライブが無い。 信号ドライブのリクエスト要求信号の立ち下げ不足 まだありそうな気配。 連続して動作させるとどうなるのだろう。 危なそうです。修行します。

C言語側からBFMの設定変更可能(スレーブ側モデルだけだけど…)

スレーブBFMで応答信号をサイクル単位で遅らせることを可能にして、DPI-Cインタフェースから設定変更可能にしました。 何が良いかというと、テスト内容をすべてC言語側に記述できるのです。 テストデータの投入やテストの動作順序指定だけでなく、…

C言語のprintfをかっぱらってSimログに投げ入れる

systemVerilogがらみで、小ネタをもう一つ。 DPI-Cを使っている時に、C言語側でprintf関数を使ってデバッグすることがある。 この場合、printf関数の出力はSimログファイルに書き出される。 Sim側の$displayシステム関数の出力と混在することになるのだが、…

バグ発見ーリセット中の信号値

Awreadyはリセット中lowであるべきところ、hiになってます。 リセット中は、アドレス情報を受け取ることはできないはずなので、おかしな動作ですね。 同件でalreadyとbvalidも問題があるようです。 AXIの勉強もしなくてはと思ってます。 他にも問題が無いか…

AXI4-Liteの対向動作

AXI4-LiteのBFMを作成して、スレーブも動作し始めたようです。 と言っても、マスタBFMとスレーブBFMを対向接続しての動作であり、 タイミングも正常動作のデフォルト値のままだから、動作して当然です。 スレーブBFMの先は、C言語側で単純な256…

SystemVerilogの小ネターdebug_printf()マクロ

リクエストがあったので、公開します。 DEBUGマクロが定義されてたら、プリント出力します。小ネタとしての工夫は、このマクロは、フォーマット文字列と可変個の引数を渡すことができるのです。 可変個のリストとして渡して、$sformatf()が良きに計らってく…

対向モデル AXi4-Lite Slave BFMを作ろう

対向が無いと通信のバリエーションテストが出来ない。 まずは、AXI4-Lite Slave BFMを作ろうと思う。 マスタの逆だから何とかなるかな? マスタとスレーブを対向でテストベンチに置いて、 マスタはC言語から能動的にアクセスを起こす。 スレーブは、ドライバ…

AXI4-Liteでもいける?

AXI4でつながるなら 、十分にLiteでもつながるよね。 というわけで、今度は自分でbfmを記述してみます。 ハンドシェイク出来れば、送受信できると思ったけど、やっぱりそうなんだ。 出来たよ。AXI4-LiteのマスターBFMドライバ。 正常ケースのみの動作しかし…

DPI-CでAXIバスが動くぞ

へへ…とほくそ笑んでしまいます。 動いてる。スマートとは言い難いけど、 書き込んでどうなったと読み出すとC言語側に戻って来るやん。 当たり前のことですが 、なぜか自分の手で動かして見ると嬉しい。 これはやはり趣味の世界ですね。 @marsee101さんあり…

BFMをつなぐぞ

AXIのBFMをSim環境につなぐぞ。 縁あって利用させていただけるAXIのMatsreBFMは、module記述で内部が 複数のTaskで記述されている。interfaceでDPI-Cと接続して、Taskをキックすれば動作すると思われる。 とにかく動かしたい。Interfaceの接続部分を記述すれ…

DPI-Cをバスインタフェースのように見る

DPI-Cのところをバスインタフェースのように見せられたら、簡単になるのではないか。と言うのが始まりで、read/writeができて、割り込みぐらいできて、DMAのようなバースト転送が出来れば良さそうな感じです。あとはなにも付け足さず、インタフェースを使う…

シミュレータの設定

基本的なことを説明し忘れていました。 マシン LinuxOS搭載PCを前提としてます。環境はBashシェルスクリプトで作成されていますので、Cygwin環境でも動作はすると思います。私はLinuxOSとしてUbuntu16.04を使ってます…

何事も名前が大事

名前はアルファベット3文字が良い。なんかありそうで読みやすく覚えやすい。 「BeD」がこの環境の名前です。 「DPI-C利用の基本的な検証環境」で、「Basic Verification Environment using DPI-C」で、「BeD」です。ちょっと自信ない。 最初とし…

でっかいのも動かしたい

どんな論理をシミュレーションするかによっても、作り方や規模が変わってくる。 作りたいもの AXIバスの向こうに作成した論理がある 汎用的に論理でいろんな論理がつなげられて、CPU(ARM)から制御できる。 C言語記述でドライバやファームウエア…

シミュレータが欲しい

FPGAが私たちにも利用しやすくなって来たので、何か作りたい!機械学習は流行で改良や改造もできそうだ。と思っていたら、作成した論理回路を検証する環境が無かった。 FPGAのメーカ製ツールに付属するシミュレータならどうだろうと調査するとXilinx社のViva…