2024.11.01 06:44
高位合成を試す
・もう11月か。
・というところでVitisHLS(どうしても「論理合成」のイメージがあってVivadoHLSと書いてしまうクセがあるな)を試す。
・まずは単純に2項演算して返すだけのものと、それをテストするテストベンチからというところかな。書き方はといってもほぼ何も考えることはなくて普通にC/C++なプログラム。
・これを合成してみるというのだけどこれまた何も考えることはなくて単純に合成された。シミュレーションしてみる・・・といっても普通にgccなどでやるときと変わらない。
・そこから先で波形ビューアで動作波形を眺められるのがいかにもハードっぽいい。ただ、これがVivadoを起動する形なので時間がかかる。最初動かないのかな?と思って3回ほど起動してしまったらVivadoが3つ立ち上がってしまってあわてて消す。
・最適化の指定なども選択してプルダウンメニューからという感じで記述自体をそれ用に書き換える必要はない。
・で、2項演算の入出力をAXIバス経由でできるようにといってもごく単純でディレクティブをプルダウンメニューから選ぶだけ。
・更に合成したものをVivadoで使えるようにIP化するのもクリックだけのおまかせで、ドキュメント含めて必要なあれこれが全部自動生成。
・なんだか随分とサービスが良いな。
2024.10.31 18:32
眠い
・とりあえず環境だけはできたか。
・というところで、別件でゴタゴタとしていたらいつの間にか寝てしまい、気がついたら午前3:00。もう何をしているのやら。
2024.10.30 08:01
2020.2でHLS起動した
・だめだな・・・・・・ということで2020.1に下げてみる。
・これまた時間がかかる。
・そういえば、Windows版でのtar.gz解凍がコマンドライン上からtarでできること、Linuxはリモートなファイルシステム上に置いたものを展開しようとすると変なエラーが出ることなどをこの騒動のさなかに知った。
・以前はオンラインでインストールだったけど、今は全部まとめてダウンロードしてインストールするしかない模様。おかげでオフラインで何度でも再インストールできる。
・さてと、とりあえずWindows上で2020.1まで戻してみる。HLSは無事に起動した。が、Linux上でと思ったら何かごちゃごちゃ言われてうまくいかない。
・調べる気力もなくて、2020.2に戻す。HLSはやっぱり立ち上がらない。もう、これだけおかしければ絶対同じ人がいるだろうと検索。
・と、悩んでいたら
フォーラムの回答が見つかった。なんと、スクリプトが間違っているぞということ。それも末尾の1文字。試してみると、見事に起動。
・よくこんなところを見つけたものだと関心するやら呆れるやらだけど、とにかく助かった。感謝感謝。
2024.10.29 13:02
Windows下でもだめ。一体どうなっているのだろう
・とりあえず、2020.1にする前にWindows下ならどうなのだということで、2020.2を入れてみる。さてトライ!としたらやっぱり立ち上がらない。
・LinuxでもWindowsでもだめということはそもそも動かないソースコードをそのまま平然と新バージョンとして提供しているということか。
・Xilinx(AMD)が公式に提供している開発環境なのに起動すらできないというのは一体どういう品質管理をしているのだろう。
・だんだんイライラしてきた。頭冷やそう
2024.10.28 12:58
なんで開発環境でこんなに悩まされるのだろう(HLS立ち上がらない)
・というところでVivadoのブロックデザインのシミュレーションはとりあえず諦めて、自分で組んだ部分についてはIcarusVerilogでシミュレーションすれば良いかという結論。
・ILAを使ったロジアナでの検証は行えるので、最低限のデバッグはできないということはないか。
・そんなところで、今度はHLSを試そうとする・・・が、これがまた躓いた。なんと立ち上がらない。最初のタイトル画面が出たまま終わってしまっていて、ps -exしてみてもプロセスがいない。つまり落ちている。何か間違ったかと思って延々と時間をかけて再インストールしてみてもだめ。
・試しに2020.2から2020.1にしてトライ(これまた延々と時間がかかるけど)してみるか。
2024.10.27 01:42
ブロックデザインはシミュレーションできない?
・ブロックデザインのトラブルは続くのだった。とにかく色々やってみる・・・・・・が全部Vivadoが落ちて終わってしまう。
・いろいろやっているうちに突然うまくいったように見えることがあるのだけど、これは記述のミスで信号が全く動いていない時。
・ちゃんと動くようにソースを変更すると、見事に落ちる。つまり、シミュレーションしているときに信号に変化があると落ちてしまうという謎現象。原因不明。どうにもならんな。
・それならばと、論理合成後のシミュレーションを試してみる。これもうまく行ったかなと思えたのは記述ミスがあったときだけでちゃんと修正すると落ちてしまう。
・ちなみに、このソースをちょっといじってIcarus Verilogにかけると何も問題なく動作波形が得られた。うん、この波形は予定どおりだ。
2024.10.26 01:36
ブロックデザインのシミュレーション
・うまくいかない。ブロックデザインでVerilogなブロックを作る。これは問題なくいけたし、ちゃんと動いた。しかし、それをシミュレーションするのがうまくいかない。
・とりあえず、Verilogのみでやっていたときと同様にSimulation Sourceを追加する。これは問題ない。そして、ここからシミュレーションしたいわけだ。となるとVerilogで書かれたWrapperをテストベンチの中でインスタンス化して利用すれば良いのだろう。
・ということでやってみると見事に落ちてVivadoの画面が消えてしまう。何度やっても落ちる。何をやっても落ちる。
・ふと気がつけばホームディレクトリの下になにやら残骸のようなファイルが積もり積もっている。さて、どうしたら良いのだろう。
2024.10.25 01:21
世間では給料日か
・やけにATMが混んでるなと思ったら今日は世間では給料日だったのだな。
2024.10.24 15:41
ブロックデザインなPLでシミュレーション
・ブロックデザインにVerilogのIPモジュールを入れ込んでシミュレーションしてみる。
・簡単なカウンタだけ入れ込んで動かしてみる。とりあえず、テストベンチのソースを追加してやれば良いのだろうかな。
2024.10.23 18:11
ブロックデザインとVerilogでPLのみの動作をさせる
・というところで、単純なブロックデザインでVerilogなモジュールを放り込む方法があるはずだけど・・・・・・とやってみる。
・VivadoでTool=>Create Peripheral,Package IP......なメニューから行けるのかな?と思ったら見事に外れ。AXI4 Interfaceを持つものならいいのだけど。
・じゃあどうするのかと思ったら、どうやらAdd SourcesでVerilogのソースコードを追加する。これがModuleということになるらしい。
・で、Block Design画面上で右クリックで「Add Module]して追加したソースコードを指定してやれば、入出力ポートがついたブロックが表示されるので配線してやればいいということ。