2025.11.13 23:33

SystemVerilogのinterfaceがやっと腑に落ちた


・そんなこんなで現状in/outで別れているバスを双方向バスに作り変えようとしたのだけど、これがうまくいかない。interfaceを使っているとうまくいかないのかな。
・と思って改めてドキュメントを探していたら、Using SystemVerilog “Interfaces”
as Object-Oriented RTL Modules
というものを発見。どうやらinterfaceに関する自分の理解が間違っていたということがわかる。なるほどね。そりゃそうだし、今まで感じていた違和感も含めて納得。
・interface xxx #(type t=logic)という記述は初めて見たけど、こう書いてやればインスタンス化するときにxxx #(logic [7:0])なんてやって動的にバス幅などを変えられるという仕掛けか。
・仕方ない。行き詰まっていたソースは捨ててgit reset --hardしてやり直そう。

2025.11.12 07:29

双方向バスのテスト


・ロジックアナライザというのか、PicoScopeを収納しておくのに手頃なキャンバスバッグがったので、本体+プローブ4本+ロジックプローブを入れているのだけど、ロジックプローブは例によってクリップがたくさんあるので、袋だと出し入れがちょっと面倒・・・ということで、100均で手頃そうなケースを見つけたので使ってみたら空いていたスペースにジャストフィット。
・双方向バスの記述ってこんな感じでいけたっけ?と思って試し書き。当初
 assign data = (data_oe == 1) ? data_o : z;
なんて書いてしまったら「zなんて無いよ」と言われてしまった。「'z」としなくてはいけなかったのか。そりゃそうだよね。
・ならば、always_combの中に書いても良いのかなと思ったけどエラー。なんでと思いながらいじってたらエラーが無くなった。
always_comb begin
data = (data_oe == 1) ? data_o : 'z;
data_i = data;
end
・でも、この三項演算子をif文に書き換えたらエラー。なんだかややこしいヤツだな。


2025.11.11 18:10

ロジックアナライザの準備


・さて、ボチボチ実機を動かさなくてはというところで、まずは今の所FT_PROGで非同期FIFOモードになっているはずなので、このモードで動かしてやろうじゃないかというところ。FT_Writeしてやれば良いのかな?
・というところで、やっぱりロジックアナライザの準備もしておかねば。
・AcuteさんのTravelLogicのJDSさん(その後ELECOM)のOEM版・・・といってもすでに製造中止。そういえばサポートソフトウェアは?と思ったけど今の環境に見当たらない。
・なんとなく検索していたらLinux版のページを見つけたので試しにダウンロードしてみたけど、やっぱり対象外の機種のようで相手にしてもらえなかった。
・というところで、やっぱりPicoScopeだな。ちょっとサイズは大きいけど、Linux上で動かせるし、アナログデジタル連動でシミュレーションできるし。
・とりあえず久しぶりなので下準備ということで、以前インストールしていたアプリを起動。24.04になってからは初めての起動じゃないかなと思うけど、何も問題ない。
・起動したらとりあえずアナログチャンネルが動いている。デジタルチャンネルを増やしたらした半分に表示された。
・プローブをつけて、ついでにデジタルのコネクタもつけて、とりあえずアナログプローブでテスト信号端子をつまむ。
・レンジ切り替えも問題なし、トリガもこれでよしか。簡単だな。なるほど2Vの矩形波だな。
・2Vならそのままロジック側のプローブもいけるだろうということで、つまんでみる。うん、ちゃんとアナログデジタル連携。トリガ条件もポチッとクリックして、アナログからデジタルチャンネルに変更するだけ。
・これなら何も問題ないだろう。よしよし。
・これとAlteraのSignalTapのロジックアナライザ機能を併用すればまぁいろいろいけるだろう。
・あとは・・・DE10には個別LEDの他に7セグもついてるしな。

2025.11.09 21:44

少し体調復活


・この4週間ほど腰から臀部、太ももあたりまで痛みがあったのがだいぶ治ってきた。
・これといって過激なことをした記憶はないのだけど、酷い時は寝ていて寝返りを打つと太もも部分に走っている神経なのか何なのかわからない太い繊維状のものががゴリッと転がるような感触とともに鈍痛が走るという具合だったり、立っていても体をちょっとひねるとズキッとくるという感じで結構ひどかったのだけど、今日はだいぶマシ。
・歳を取ると話は病気自慢、痛み自慢になるというし、「歳です!痛いのは当たり前です!」なんて言いながらなんとかやり過ごしてきたけど、全治一ヶ月というと骨折並だな。
・そんなところでちょっと月額報酬を減額しようかなと思って検討。これがなかなか面倒くさい。

2025.11.08 18:18

Slic3r+Wineが異様に起動が遅い


・Slic3rをWine下で動かしてみると、Ubuntuの22.04LTSではそれなりの時間で起動されるのだけど、24.04LTSではどこかでハマってるのかと思うくらい時間がかかって、忘れた頃に起動するという具合。
・あれこれ眺めたけどよくわからない。何か原因があるのかな?

2025.11.07 19:11

ftdiのBitModeサンプルが動いた


・3Dプリンタのホルダを昔のリールと新しいリールの両方に対応するようにしようと少し設計変更。
・ついでに.iniファイルをいじって調整していたらまともに印刷できなくなってきた。
・この後しばらく時間がかかったのだけど、結局は
 .iniファイルのヒートベッドの温度設定が間違っている(50度なんかに・・)
 ヒートベッドに貼っていたマスキングテープの貼り直し
 Z軸の原点位置がベッドよりちょっと浮いているので(ノズルが衝突してはまずいので、必ず少し浮く)G92 Z0.4なんて具合に現在位置のZ座標を0.4にしていたりしたのをやめる
 というあたりでなんとなくうまく行くようにはなった。
・出来上がったものを使ってみると滑らかに回転してなかなか良い感じ。
・というところで、FT232H。D2XXドライバのBitModeサンプルを動かしてみるのだけど、素直に行かない。こちらはftdi_sioドライバが組み込まれてしまうため。
  sudo rmmod ftdi_sio
なんてしてからサンプルをsudo付けて実行したらあっさり動いた。
 毎回rmmodするのも面倒。これは /etc/modprobe.dの下。ここに
 blacklist ftdi_sio
 と書いた「なんちゃら.conf」なファイルを用意すると、Plug&Playで勝手にロードしなくなる。
 今回はftdi.confにしてみた。
 これで、ボード抜き差ししてlsmodで確認したけど確かにftdi_sioドライバは組み込まれていない。テスト用のアプリを動かしたらちゃんと動いた。

2025.11.06 09:13

3Dプリンタ再起動


・久しぶりに3Dプリンタを使うことになった。
・というのも、白いフィラメントをポチッとしたからなのだけど、到着してみたらリールの穴が大きい。
・これでは使えない・・・フィラメントを引っ張ってもうまく回らない。
・ということで、なにか無いかなと探しているときに「穴を埋めるようなもの・・ブラケットをその3Dプリンタで作ればいいじゃないか」という至極単純かつまっとうな手段に気づいた。古いフィラメントでとりあえず作って、そのあと本番にすれば良い。
・FreeCADを立ち上げて軽く設計。先日ひさしぶりに使った時は手間取ったけど、色々やっていたら別にチュートリアルを見なくても十分。まぁ、スケッチを書いて押し出した円盤を重ねるだけだしな。
・というところで、とりあえずSTLは出来た。スライサは・・・結局Curaは今一つまだわからないので、昔ながらでSlic3rを使うことにした。
・以前作ったSlic3rの.iniファイルがバックアップ用のHDDに残されていたので日付をを見ると2013年。干支が一周している。
・ところで今でも生きているのかとSlic3rで検索してみたら、slic3r.orgはご存命。ただ、2018年で更新は止まっている。
・一応Windows版とLinuxのAppImageはあったので、落としてきて動かしてみたらLinux版はなんだか「一応スライスできるよ」レベルで、なんともはや。
・で、Windows版を試しにWineで動かしてみたらちゃんと動いた。なんだかカラフルだな。これで昔の.iniファイルなんて読めるのかな?とやってみたらあっさり読み込んだ。なるほど。
・じゃあということでスライス・・・いいじゃないか。ちょっとエディタで開いてみたけど問題なさそう。
・これをこれまた昔懐かしいPrintrun(pronterface)で印刷してみる。
・おっ、ちゃんといける。
・ということで、無事に古いフィラメントでブラケットが完成。これを使って、新しいフィラメントをセット。そして、試しに同じものをプリント。
・うん・・・綺麗だ。仕上がりが全然違う。手元の3Dプリンタの仕上がりがいまどきのものに比べるといまひとつどころではないくらい見劣りするなと思っていたけど、フィラメントのせいだったかもしれないな。
・Printrunも新しいのがありそうだし、少し環境更新しておくか

2025.11.05 08:41

OpenShotでビデオ編集


・OpenShotを少し使っている。うん、これだこれだ。素材となるビデオファイルをドラッグ&ドロップして一覧にしたら、そこからタイムラインのトラックにドラッグ&ドロップ。
・タイムラインを左クリックしてフェードイン/アウトしたり、エフェクトかけたりという感じで、気楽にいける。
・自分が作る程度のものなら今のところはこれで十分かな。


2025.11.05 23:49

Kdenliveでもない、ShotCutでもない、OpenShotだ


・ちょっと動画編集が必要になったのだけど、さてどうしようというところ。
・コロナ騒動のときに動画教材を必死に作った時は何を使っていたんだっけな。すっかり忘れている。
・まぁ、Linux上だとこれかなぁというところでKdenliveとShotCutをインストール。何故かこの手のものは似たような画面レイアウトのものが多い気がする。左上が素材のビデオファイル。下にタイムライン、右上がタイムラインで編集した結果の表示という感じ。
・基本的な使い勝手は似たようなもので、あとはそれぞれの機能か。
・でも、使っていたのはこれじゃない。ということは・・・ということで、OpenShotをインストール。これだ、これだ。これが一番シンプルでわかりやすいんだな。
・そんなことをしながらなにげなくdf ーhしたらUsedが88%。もう少し開けておかないとなんとなく不安だなということで、とりあえず最近使っていないXilinxな環境を消去することに。
・さて、ところでどうやったんだっけと思って検索して、どうやら、/tools/Xilinxの下の"."付きディレクトリの下に降りるとxsetupがいるので、
 sudo なんちゃらかんちゃら/xsetup -Uninstall
してやれば良いらしい。やってみたらあっさり終了。df ーhでは55%ほど空きが出来た。

2025.11.04 21:01

FT245モードの切り替えは?


・FT-232Hの動作モード切り替えなどをするのにFT_PROGというユーティリティを使うわけだけど、これってWineを使ってLinux下でつかえないのかなと思ってちょっとお試し。結果はといえば、FT_PROG自体は難の問題もなくインストールできるし、起動もするけどデバイスが見つけられないというオチ。
仕方ないので、Windows10な仮想マシンを立ち上げて起動してみるとちゃんと動いた。デバイスも認識された。
・さて、モードを変えてみるかと思ったけど、FT245 FIFOとあるだけでSynchronousとAsynchronousはどこで選ぶのかな?と思ったら結局そこはソフトウェア設定するしかないらしい。デフォルトではAsyncでソフトでSyncに切り替えるということのようだ。しかもこの切り替えのためにD2XXドライバ必須・・・ということはVCP(Virtual COM Port)ドライバは使えない。
・じゃあASynchronousで行くかと思って改めて資料を読みなおししたらAsyncFIFOでは8MByte/secまでしか出ないらしい。さすがにこれでは寂しいな。
・仕方ないなということで、FT245 FIFOモードにして、ドライバをD2XXドライバを使うように指定してEEPROM書き込みを行った。残りはまたあとで。
・さて、テスト用に「メスーメス」のジャンパケーブルが欲しいなということで探していたらフラットケーブルの両端に1ピンごとのメスピンを付けたものが274円で送料無料ときた。フラットケーブルというのがなぁ・・・と思っていたのだけど、考えたら裂いてしまえばいいだけか。ということはこれ1個で40本分。まぁ十分だな。ポチッ