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]して追加したソースコードを指定してやれば、入出力ポートがついたブロックが表示されるので配線してやればいいということ。
2024.10.22 17:57
トラブル
・消えたと思っていた話た消えていなかったという大きなトラブル。とにかくリカバリを考えるしかない。
・いろいろ反省しきりというところ。過去に戻ることができない以上仕方ない。これから気をつけよう。
2024.10.21 13:24
寒い
・このところ画像のレタッチにGIMPを使っているが、ほぼ迷路。なんとなくわかるところもあるけど、いじってみても何が変わったのかわからなかったりといろいろある。とりあえず使える範囲、使いたい事柄からぼちぼちというところ。
・ちょっと寒くなってきたのでカーディガンを出してくる。春先に買ってはみたものの、割と厚手で使わないうちに夏になってしまったというもの。
・とりあえずは良いが、なんか今日の冷え方は真面目な上着がほしいくらいだな。薄手のブルゾンくらい出しておくか。
2024.10.20 07:36
とりあえずFPGAリハビリ
・環境はFixした(と思う)ので、ぼちぼちとリスタート。
・回路作成してシミュレーションして、ILA入れて実機で動作確認して・・・と
・あとはCPUと組み合わせた状態でILAでデバッグするとか高位合成とか。まぁ、月曜日からはそんな感じかな。
・このところ鼻水。新バージョンの方を使い始めたけど、旧バージョンより効きが悪い感じ。今までなら1/4錠で効いていたくらいの感じなのに1/2〜1錠でないと効いてこない感じ。成分や含有量的には変わらなそうなんだけどな。
2024.10.19 08:51
2020.2に無事着地
・というところで、なんとか2020.2(よく見たら2と0が交互だな)で動作テスト。一応2021で起きた問題は無いようだ。つまり、2021でのエンバグということか。やめてほしいなぁ。こういうのは。
・かんたんなロジックをVerilogで書いてシミュレーションとILAをつけたロジック・アナライザも試してみる。当然だけど問題なく使えた。とりあえず大丈夫そうかな。これでいくことにしよう。
・ついでなので、icarus verilog+gtkwaveな環境もインストール。なんとなく良い感じになってきた。
2024.10.18 08:44
FPGA案件重なる
・昨日、ちょっと打ち合わせで久しぶりのZoomだったのだけど、なんだかうまくいかなくて慌ててしまった。
・まぁ、なんとか参加できたけど。
・話はだいぶ見えてきたけど、久しぶりのAlteraさんのFPGAになるのだろうか。なんだかFPGA案件が重なるな。
2024.10.17 08:42
2020.2インストール完了
・リトライ、リトライ。
・2020.2のダウンロードはとりあえず成功
・tar.gzされているので、tarで展開。これがまた時間がかかる。
・展開してから仮想ディスク容量を確認するとちょっと厳しそう。試しにsetupを動かして必要な容量を確認すると、必要最小限なデバイスに絞ってぎりぎり。
・まぁ、tarで解したあとはオリジナルはいらないよねということで、tar.gzファイルは削除してインストール開始。
・board_filesのコピーとか、.desktopファイルのコピーとかまぁ後始末をして、どうにか使える状態まで持っていけた。
・ディスク容量の空きもそれなりに確保できている。まぁ、tarしたディレクトリもまるごと削除していいわけだけど、動作確認するまでとりあえず置いておこうかな。
2024.10.16 08:37
2020.2にするか
・困ったものだ。とりあえず2021.1も削除。一体どうすれば良いのやらということで、2020.2まで戻ってみることに。
・ところが、こちらはWebインストーラがない。ないということは本体まるごと30Gbyte近いファイルを落としてこないとだめ。
・やり始めてしばらくしたら途中でエラー。何故かネットワークが切れてしまったらしい。もう遅いし、明日やりなおそう。
2024.10.15 08:04
Vivado2021.1はだめ
・結論。Vivado2021.1は使えない。CreateHDLwrapperしたら無限ホイール状態になって止まらない。
・特殊な作業をしたならともかく、こんな”基本のキ”のところで一体どうなってるんだ?ということでGoogle先生に「Vivado2021.1 HDL Wrapper」でお願いしたらぽろぽろと同じようなお悩み相談が
このあたりがビンゴなのかな?
・とりあえずこのバージョンは怪しすぎる。もう一つ進めるか戻すかしてみるかな。再び数時間コースか。やれやれ。
2024.10.14 07:35
Ubuntu+Vivado/Vivado環境構築うまくいった?
・インストールはとりあえずうまくいったようだ。
・Ubuntuは22.04を使う
・Vitis(Vivadoも勝手にインストールされる)は21.01を使う
・
AMDさんの説明にしたがって不足するファイルをインストールして、Vivadoをインストールして、ケーブルドライバをインストールという一連の作業をする。
・なお、インストールはシェルからsudoを付けて行う(付けないとインストール時にディレクトリが作れないとか言われたりとろくなことがない)
・インストール跡、アイコンが登録されていない。rootのデスクトップ(無いくせに)のつもりで登録されてしまっているからなので、
./root/Desktop
の下にあるVivadoなどの.desktopファイルを
~/.loca/share/applications
の下にコピー
・おっと、
DiligentさんのBoardFilesをインストールをインストールするのを忘れていた。インストールと言っても単に"
/data/boards/"の下にboard_filesディレクトリごとコピー(board_filesディレクトリができる)すればいいだけ。
・とりあえずここまでノートラブル。うまくできた気がする。明日動かしてみよう。
2024.10.13 19:06
Vivadoインストール再チャレンジ
・とりあえずUbuntu22.04LTSを用意してここにVivadoの2021.1を入れることにしてみる。
AR# 63794: インストール - Vivado を正常に実行するために必要な Ubuntu ファイルを見て事前準備。
sudo apt-get install libstdc++6:i386
sudo apt-get install libgtk2.0-0:i386
sudo apt-get install dpkg-dev:i386
で、gmakeでmakeが動くように
sudo ln -s /usr/bin/make /usr/bin/gmake
更にpipを入れる
apt install python3-pip
で不足しているパッケージを足して
apt install libtinfo5 libncurses5
で、Vivadoのディレクトリに移って
cd /opt/Xilinx/Vivado/2019.2
cd data/xicom/cable_drivers/lin64/
で、ケーブルドライバとやらをrootでインストール
./install_driversの下のinstall_drivers
を実行する感じ
・さて、どうだろう。
2024.10.12 17:50
Linux+Vivadoで難儀中
・この際LinuxでやってみるかとUbunt24.04LTSの上にインストールしようとしたけど、いくらやってもだめ。インストールは終わるけど起動しようとすると動かない。なんだかわからない。
・いろいろ見ていくと、どうもUbuntuも少し前のバージョンでないとだめなのか。なんだか面倒くさいことになってきてしまった。
2024.10.11 17:45
諸々
・ちょっと面白いというのか興味深い仕事の話。ちょっと自信のない領域もあるので、そこは助けてもらおう。
・そちらでもFPGAを使うことになりそうだな。というところで、試しているのだけど、簡易的なIPを作ってやるとなぜかxil_prinf()などが使えないというのが相変わらず。
・ギブアップしてちょっと古いバージョンに戻るほうがいいかな。
2024.10.10 14:22
独自IPが使えない
・どうもVivadoでAXI4を雛形にしたIPとZynqのコアだけを置いてビルド、それをExportしてVivadoで……とやったときにxil_printf()などが一切使えない。
・GPIOなどを配置してやるとxil_printfは使えるようになるけど、自分で作ったIP用のライブラリなどは一切取り込まれないということになっている感じがする。
・何か間違っているのか全くわからないというのが頭の痛いところ。こんな基本的なところで躓いていては先に進めないじゃないか。どうしたものかな。
2024.10.08 20:44
エラー頻発
・なんか、だんだん話がおかしくなってくるような感じ。昨日のエラーはもう一回やりなおしていったらうまくいったのだけど、作成した(つもり)なIPをVivadoで組み込んでビルドしてVitisに移してプログラムをビルドしていくとエラー。ヘッダファイルが無いと言い張るのだけど、原因がまるでわからない。以前はこれでうまく言っていたと思うのだけど、何が違うのだろう。もう一回やりなおすか。
2024.10.07 20:36
FPGAのIP作成で躓く
・FPGAでIPを作成する手立てはだいたいわかってきた。ただ、もう一歩うまくいかない。なんだろうなぁ。そんなに変わったことはやっていないはずなんだけど。
2024.10.06 21:17
FPGAのIP作成
・さて、VivadoでのIPの作り方を少し。とりあえずAXI4バスはつながっていないとCPUからいじりにくいのでVivadoに雛形を作らせる。
・VivadoのTool=>Create and package new IPしてやって、Create AXI4 Peripheralしてやると、雛形のVerilog(Verilogなプロジェクト扱いにしているので)ファイルができる。
・このファイルではレジスタを4個持っていて、AXI4バス経由でレジスタに書き込んだ値がそのまま読めるというプロジェクトができる。
・このレジスタの先にゴニョゴニョとつけてやれば良い。とりあえずZyboのLEDにつないでみる。
・これで「Package Steps」の項目を順番にクリックして勧めていって終わればユーザ定義のIPとして登録されて元のプロジェクトに戻る。
・あとはBlock DesignでCPUと自分で作ったIPをIP Catalogから引っ張り出してきてMake Externalして外部に引っ張り出して、信号名を.xdcと合わせておく。
・これで残りは「勝手につないで」しておけば、リセットだのAXI4のバススイッチだのが勝手に生成されて完了。
・あとはビルドしてExport HadwareすればVivadoでの作業は終わり。あとはVivadoだな。
2024.10.05 16:03
ドラッグストアオープン
・なんだか朝からドタバタと忙しい一日だった。
・車ですぐ行けるくらいのところに新しいドラッグストアがオープンしたので言ってみる。
・今まで利用していた店舗よりかなり広くていろいろなものが充実。店の半分くらいは食品コーナーというのもすごいな。そういえばこの近辺にスーパーらしいスーパーは無いのか(かつてあったけど、ちょっと大きなことがあって閉店し、今は駐車場になっている)。
・ぐるっと回っていたらオープンセールなのか結構お安いものが並んでいたり、あっちの店だとこれしか無いのに、こんなにバリエーションあったのかというものがあったりしてつい購入。
・ちなみに、このチェーン店の豆乳と牛乳とヨーグルトと卵が近隣スーパー含めた中で一番安いということを私は知っている。
2024.10.04 15:53
ACアダプタ入手
・65WクラスでノートPCに使えそうなACアダプタがあったので入手。ちょっと大きいけどまぁ使える。
・これで家はこれを使うことにして移動用のバッグには今まで使っていた方を忍ばせておけば、スタバのようなところでちょっと作業したいというときも電池の心配をしなくていい。
・今更ながら調べてみたけど、Type−Cの電源って65Wといいつつも基本的に流せるのは3A程度なんだな。5Vでも3Aだし、9Vでも3A。まぁ、考えてみればコネクタはそのまま使うわけで、5Vで10A以上流せるようなコネクタに変更するわけにもいかないので、電圧の方を引き上げるということで対処するのだな。
・ということで、TypeCに1.5kオームのプルダウン抵抗2本で5V-3A。まぁいいところだろうな。
2024.10.03 13:31
Linux環境復活へ
・なんとか以前の環境を書き戻して起動。なんだかやたらと遅くなった気がするのは裏でアップデートでもやっているのかな。まぁ、Windows Updateみたいにまるで使い物にならなくなるようなことはないけど。
・ついでにメニュー関係もMenu Editorで修正。先月ハマった経緯も思い出しながらxyzzyの方を削除してLTSpiceの方に作成。起動してみると、wineなので起動までの時間はかかるけどうまくいった。更に元からあったxyzzyの方を削除。これも問題なし。
・あとはこの8ヶ月近くの間に新規に入れたものを追加すれば良いのだな。Blenderはとりあえず良いとして、LibreCADくらいは入れておくか。
・そういえば、他にないのかな?と思って検索していると、
nano CAD freeというものがあることを知る。製品版が上位にあるフリーバージョンという感じ。体験版ではないので期間の限定とか、ファイル入出力ができないといったような制限はないようだ。DWG形式が読み書きできるのは(というか、DWGをネイティブとして使っているらしい)良いけど、DWG2018はサポートしていないようなので、結局ビューアとしてはやはりAutoCadさんのサイトでオンラインで見る形かな。
2024.10.02 16:56
Linux環境がぐちゃぐちゃに
・作業用のLinux環境がおかしくなった。原因はわかっている。24.04LTSにアップデートしますか?というのが出てきたので「OK」したのだけど、途中でコケたのだ。
・とりあえず起動するし、使えてはいたのだけどちょっと新規にインストールしようしたものがエラーだらけでしょうがない。
・これはaptでupdateやupgradeしないとだめかなとやったらこれが全くだめ。エラーメッセージを見るとやはり新旧バージョンが入り乱れるような状況になっているのが致命的であるということらしい。
・困ったけど、ファイルを調べて元に戻すのはまず不可能。となれば……バックアップから戻すしかない。さて、バックアップHDDに保存したのはいつだったかと思ったら今年の2月。10ヶ月前に逆戻りか。
・まぁ、新規にインストールしたものは限られているし、作成していたファイル類はほぼ全部共有ディスク上にあるのでローカルディスク上で新規作成されたファイル類をバックアップして、仮想マシンそのものを2月のもので上書きしてしまえば良いかな。
2024.10.01 08:10
ILAを試してみる
・FPGAでILAを使ってみる。以前Block DesignでやっていたときはILAモジュールを貼り付けた後にあちこちのファイルに検索をかけて中身をごちゃごちゃといじってやらないといけないという超のつくような面倒臭さだったのだけど、今度は簡単というか、当たり前になった。
・Flow navigatorのOpen Synthessis DesignのSetup Debugを選択。あとは眺めたい信号をピックアップしていけば良い。ただ、問題はソースコードの信号がどれなのかわかりにくくなるということ。たとえばcounterというのがあると、これはF/Fというのかラッチというのか……が生成されるわけだけど、こいつの入力、出力、リセットに全部counterのプリフィックスがついてくる。ここに「reset」とかわかりやすい名前が付けば良いのだけど、そうはいかない。
counter_reg_n_0_0_0[0]とかcounter_reg[8]_i_1_n_5とか、判じ物状態。
・入出力に関しては入出力バッファがあるおかげでわかりやすいのだけど中身はそんな感じ。まぁ、仕方ない。
・とりあえず信号をピックアップして、GenerateBitStream。ロジックアナライザの機能もまた論理回路としてターゲットに付加されることになるので、当然のように再ビルドが必要になる。
・xdcファイルの書き換えも必要になるらしくて、「新しく作るか、既存のものに上書きするか」と聞いてくるのでとりあえず「上書きして良いよ」としてみる。
・さて、その後ロジックアナライザ画面はどうやってだすのだろうと思っていたら、普通の場合と同じようにダウンロードしてやれば勝手にロジックアナライザ画面が起動する。なかなかサービスがいい。
・で、右下のペインでトリガ条件とかを設定してGoしてやれば普通にロジアナ
。簡単だな。
・ところでロジックアナライザ機能を外して元に戻すには、再びSetup Debugすれば良い……はずなのだけど、自動で書き換えられたxdcファイル(実際には後ろにロジアナ用の記述が足されるだけだけど)が元に戻っていない感じ。
・まぁ、このあたりは普通にエディタを使うなり、Vivado内蔵のエディタなりで開いて削ってしまえば良いだけの話だけど。
・そんなところで
UG-908の説明
を見ると、verilogの場合には
(* mark_debug = "true" *)reg [`CMIN+3:0] counter;のような感じで、(* mark_debug = "true" *)をつけてやるという手もあるらしいので、これをやってみると、信号名選択のところで、自動的にピックアップされた。
・ただ、この例みたいに配列の全信号がターゲットになると大きすぎるときもある。
(* mark_debug = "true" *)reg [`CMIN+3:`CMIN] counter; reg [`CMIN-1:0] counter;なんていう具合に分割すれば良いのかな?と思ってやってみたら良い感じ。
たぶんこれをつけておけば論理合成のときに最適化で無くなったりしないんだな。実用的にはこんなふうにソースコードをいじるほうが正解かな。