2025.10.31 09:21
DE10-LITEケース
・さて、気づけば10月も終わり。
・そんなところで、DE10-LITEを収めておくのに良さそうなケースはないかと100均へ。見つけたのが、ダイソーさんにあるSIKIRIシリーズの仕切り無しタイプ。ボードとUSBケーブルにあとゴチャゴチャとあれこれ突っ込んで1パッケージにするのに良さげ。
・一応念の為に静電シールドなプチプチを切り取って内側に貼り付けておく。クッションにもなるし、ちょうどいい。
2025.10.30 07:16
PiZero2WとPCをUSBケーブル接続できるのか
・RaspberryPi Zero2Wを動かしてみようというところなのだけど、こいつのUSBポートはMicro-B。キーボードをつないでやるにしてもType-AからMicroB変換・・・というのは結構レアじゃないか?という感じだったのだけど、そういえば昔東芝さんのタブレットPC向けでMicroBのOTG対応なハブを持っていたなと思いだして発掘。
・ところで、PCとの間はWiFiでssh接続してやるのが一般的みたいなのだけど、WiFi環境がないところなどで実験するのは面倒くさいな。
・と思っていたら、
「USBケーブル1本でRaspberry Piとシリアルコンソール接続する」というのを見かける。なるほど、OTGなんだからUSBのスレーブにもなれるわけで、これをRaspberryPiOSもサポートしているということか。
・いったんこれで開通してしまえば片方のポートでPCと接続してsshなどで入り込んで使うのも簡単だ。やってみるか。
・と思って準備を始めたらムム・・・HDMIがMicroではなくMiniだったのか。Miniの変換アダプタは持ってない。検索していたら楽天で290円なりで送料無料というのを見つける。どうせ大した解像度でもないし、大丈夫かなということで楽天キャッシュを使ってポチッ。
2025.10.29 14:25
久々FreeCAD
・久しぶりに3Dプリンタを動かしてみようかとちょっと準備がてらFreeCADをインストール。
・パッケージマネージャを探したらsnapの方にあるのを見つけた。Version1.0.2。Stableでも今年の8月にアップデートされたものなのでそれなりに新しい。
・ちょっと起動してみたけど、忘れているなぁ。とりあえずスケッチで2Dで描いて押し出すという手が使えるんだっけ。ちょっとやってみるとそれなりに押し出しして出来たけど、ちょっと何かをやろうとするとわからなくなる。
・ちょっとチュートリアルしないとだめかな。
2025.10.28 21:22
DE-10LITE入手&動作確認
・ちょっと出先でDSimでシミュレーションしようとしたら動かない。前処理的な部分は良いのだけど、最後のシミュレーションのところで、ぐるぐる回り続ける。
・表示されているメッセージを見るとどうやら、オフラインだとライセンスチェックが出来ないから駄目ということになるらしい。
・仕方ないので、うるさいことを言わない
・DE10−LITEが来た。想像どおり、マニュアル類は一切同梱されていない。「詳しくはWebへ!」というところかな。
・ということで検索検索。とりあえずデバイスの型番とI/Oの接続関係がわからないとな。
・
Terasicさんのドキュメントだと、回路図がないな。
・検索すると
とりあえず見つかったけど。ご本家には無いのかな?
・まぁ、接続関係はわかった。クロックは50MHZが入力されているのだな。
・これでQuartusでプロジェクトを作ってSystemVerilogでLED点滅を書いてみる。結構書きなぐりができるようになってきたな。
・書き込みはそのままUSB Blaster扱いで良いのだな。
・と、何も問題なく動作。気を良くしてスイッチ入力で点滅速度が変わるようにしてみるとこれも予定通り動作。よしよし。
2025.10.27 08:18
暗号化解除&邪魔者削除
・そういえば、BitLockerって邪魔だよなと思っていたら割と簡単に解除できることを知って解除した。結構時間はかかったけどこれでちょっと安心。
・ついでにWindows11の左下隅のウィジェットで余計なものが表示されたり、下の「検索」欄で勝手にWebを眺めに行ってしまうのも邪魔だなと思って検索したらやりかた解説動画が上がっている。
・やはり「ありがた迷惑」と思っている人は多いのだろう。設定変更ですっきりした。
2025.10.26 23:24
20年前のノートPCもまだ動く
・お片付けの日。
・作業部屋を片付けていたらずっと使っていなかった東芝さんのノートPCが出てきたので、動くのかどうかちょっとお試し。
・ACアダプタはこの前あったなと発掘して電圧が15Vなことを確認して接続・起動。流石にバッテリー切れで日付が飛んでいるけど、再設定して起動したらちゃんと起き上がってきたWindowsXP。
・本体のシールを見ると2005年のモデルなのでかれこれ20年前のものか。バッテリーが切れた程度でちゃんと動いているのはなかなか偉いというべきだな。
・ざっと眺めると3Dプリンタ関連のアプリのアイコンなども目にとまった。
・そういえば、今メインになっているやつにも入れてたっけ?と確認したら、往年のProterfaceが鎮座していた。そういえばインストールしておいたんだっけ。
・たまには3Dプリンタも動かしてやるか。
2025.10.25 08:37
$monitorを使ってみる
・そういえば、Verilogでもprintfみたいなのはあったはずと、例によってお問い合わせすると、$display()、$writeに加えて$monitor()を教えてもらった。
・変化があったときに(たぶん代入があったとき?)にロギングしてくれるというもの。
・試しにinitial begin endの中に放り込んでVerilatorでシミュレーションさせてlog.txtなんかにリダイレクトしてvimでチェック。なかなか便利だ。
・で、これが合成の時に無視されるのか?と聞いたら「無視されます」ときっぱりとした返事。
・本当かな?とQuartusのLED点滅(FIFO付き)で試したら確かに無視された。ふむ。良いんじゃないか。
2025.10.24 08:31
とりあえず移動平均
・移動平均を実装してやるまえに少し整理してマジックナンバー部分をちゃんとparameter化してやろうということで書き換え。と、いじっていたら動きがおかしくなってきてなんだか収集ががつかない状態に。
・仕方ないので、git reset --hard HEAD@{0}して元に戻す。やはりgitしていると楽で良いな。
・改めてやり直してなんとなく少し良い感じになったけどまだおかしい。
・よくよく見たら平均値をだすための合計値算というのか、差分の積算のところでつまらないミス。やれやれ。とりあえず直してみたらそれなりの結果に。
・VSCodeの波形表示のプラグインをSurferからVaporViewに切り替え。どちらも.vcdファイルを開くと自動的に起動するし、使い勝手もあまり違わないけど、変化点の指定などは楽。ただ、波形の色などのセンスは・・・
2025.10.23 15:35
Nビットの0(や1)の表記法がわかった
・ご近所イオンで記帳して少し手元現金を補充。ついでにちょっとチャージ。
・イオンといえば、BYDの車の販売をするという話がいつしか「イオンがBYDの販売代理店になる」かのような話になったようだけど、実際にはセール期間中に展示と仲介をするよというだけだという公式メッセージ。
・この手のものは客観的に見て「それは変だな」と思いながらも複数目にすると騙されそうになる。気をつけないとな。
・Verilogで出力データ幅が16ビットで、センサのデータが12ビットのときに
parameter int OWIDTH=16;
parameter int SWIDTH=12;
logic [OWIDTH-1,0] outdata;
logic [SWIDTH-1,0] sensordata;
なんて具合にして上位4ビットを0にしたい時に
outdata = {4'h0,sensordata};
の4'h0を(OWIDTH-SWIDTH)'h0なんて書けるのかな?と思ったけど駄目。
どうやらビット数として判断してくれないらしくて、
{(OWIDTH-SWIDTH){1'h0}}
なんて具合に書けば良いらしい。要するに1ビットの0をN個並べたということか。
試しに1'h1にしてみたら確かに上位4ビットが"f"になったので、これで良いらしい。
2025.10.22 11:50
作業部屋はほぼ片付いたかな
・部屋から持ち出した棚の一つはリビングで書籍や小物の飾り棚にすることに。ニチニチソウを冬越しさせる場所にもできるかな。
・さて、作業部屋の方をどんどん片付けていく。もう要らないと思う基板類などは廃棄として、この際捨てるものは片っ端からゴミ袋に詰めて・・・ディスプレイを入手したときの大きな箱とかもう絶対いらないな・・などなど。
・床が見え始めると急に早くなった感じで、一気にすっきりした。
・ひとまず収めてみたら良い感じだ。今までゴチャついていたのがすっきり。
・さて、そんなところで、法人の方の記帳。どのみち入出金は全部預金経由だから通帳を入力すれば良いけど、その裏では厳然徴収があったり、社会保険料の預り金があったりするので、そのあたりもちゃんと再計算。ちょっと手間取ったけど、とりあえず9月半ばまでは入力終わり。
・そういえば、9月末近くの分はまだ記帳されていなかった。明日お残りをやっておこう。
2025.10.21 11:42
新しい棚がやってきた
・新しい棚を入手した。結構な大きさで、今作業部屋にしている部屋の整理に使ってやろうということで、レイアウトを考える。
・大きさからすると今棚2つを占領しているものがだいぶスッキリ収納できそうな感じ。
・とりあえず棚2つ分のものを全部部屋の外に追い出しやる。棚の裏や床の上にいろいろ落ちている「これ、ここにあったのか!」というものも。
・ある程度片付いたので掃除機をかけて床を拭いて・・・・空いたスペースで棚の組み立て。しかし、重い・・重い・・本当は二人でやるものだろうなと思いながら一人でなんとか組み立てていく。
・出来上がるとたいした存在感。とりあえず一番下は重たいクラシックなアマチュア無線機。TS-600/700とかFT-107とかの大物をはじめとして290、690、790、780、726、736・・・もう絶対使わないと思うようなものだらけだ・・・と思ってふと・・・これに変復調機つけたらFT-8とかできるのかな?
・部屋はまだ嵐の後のまま・・だけどさすがに限界。今日はここまで。
2025.10.20 15:34
Questaのライセンスが得られない
・とりあえず一般的なロジックはDSimなりVerilatorで良いのだけど、Altera独自のIPなどが含まれているとシミュレーションするのが厄介そうなので、ここはメーカーさんご推奨のシミュレータ(昔はModelSimだったけど、今はQuestaらしい)のほうが良いのかなということで、とりあえずダウンロードしてインストール。
・ここまでは良いのだけど、問題はライセンス。なぜかAzureなどと連携した模様でアプリで認証しろという。いつも使っているIntelアカウントと携帯用のメールアドレスは違うのが原因なのか、認証できない。
・散々四苦八苦したけど、諦めて携帯のメールアドレスでアカウントを作ってログインし直して改めてやったら携帯で認証して動かすということはできたけど、結局その先にまた進めない。
・流石にこんなことで何時間も・・・・となるとこちらも行き倒れ。諦めよう。
・
2025.10.19 07:40
FIFO記述:Geminiも間違えるのだ
・ヘッドポインタとテイルポインタを使ったFIFOがどう合成されるのかを想像するとポインタの値に応じて書き込み先や読み出し先を選択しなくてはいけないわけで、やっぱりうまくない気がする。
・ここはやはりハードウェアらしく普通にシフトレジスタにしたほうが良い。とはいえ、延々と<=を並べるのもfor文で回すのもあまり格好良くないな。
・というところで、
logic[2:0] fifo[8];
とかいうのを
logic[7:0][2:0] fifo;
みたいなアレイにしてやれば良いか。というところで、再びGemini君に聞くと
fifo = {fifo[7:1],newdata[2:0]};
と書けという。なんか違和感がありながら動かしてみるとやっぱり動かない。DSimでシミュレーションしてみてもやはり動かない。
・そりゃそうで、これじゃ最下位のものを書き換えているだけで全然シフトしないだろう。
fifo = {fifo[6:0],newdata[2:0]};
みたいにしないとシフトしないはずだし、実際にこう書けばちゃんと動く。
・ということで、Geminiに改めて聞いても「いえ、そうではありません」的な回答で、なかなか頑固。それならということで”fifo[7:1]はfifo[7],fifo[6]...fifo[1]だよね?”と聞いても最初のうちは頑固だったけど、回答の途中で気づいたらしい。”【訂正】: 前回の説明の一部が誤っていました。”が返ってきた。
・ちなみに、バッファのクリアは単純に
fifo=0;
で良い。
・使用したLEの数も減ったし、めでたしめでたし。
2025.10.18 13:34
移動平均フィルタでも入れてみるか
・移動平均フィルタでも入れてやろうかと思ってちょっと書き始めて、「そもそも初期値はどうするのだ?」となった。バッファの深さ分だけループで回すのはあまりに美しくないので例によってGeminiに聞けば
xxxbuf <= '{default:0};
と書けという。でも、これってMAX10でも合成できるのかな?一応確認しておくか。
・と思ったらverilatorがエラーだという。試しにQuartusでやってみてもやっぱりエラー。やはり駄目なのかなと思いながらふと”`”(バッククォート)じゃなくて”’”(アポストロフィー)じゃないのかと
xxxbuf <= ’{default:0};
と書いたらエラーが消えて合成も通った。
・これなら大丈夫かなというところで、作ってみたFIFOというのか、ヘッドポインタとテイルポインタを使った(いかにもソフトウェア的な)リングバッファを書いてみたらなんとなく動いた。
2025.10.17 18:06
デバッグ中
・とりあえず書いたものをボチボチとデバッグ。データ転送開始時の動作が変だったので修正したが、送信イネーブル信号を使った中断・再開動作がおかしい。このあたりハマりやすい場所だろうとは思っていたけど、ほら案の定というところ。
・そんなところである程度動き出したのでこのモジュールとテストベンチを分離前のディレクトリにコピー。
・これでもう一回VSCodeを立ち上げてDSimしてみたけどやっぱり以前と同じエラーメッセージ。これはおかしいだろう・・・ということで、いろいろつついてみる。
・結局LIBRARY CONFIGURATIONの中で2つのブロックを別々の名前にして分離していたのだけど、これをいつもと同じ場所(work)にまとめて登録したらエラーがでなくなった。なぜかわからないけどまぁそういうことなのだろう。結果良ければそれで良し。
2025.10.16 09:32
no title
・Windows11がアップデートしたらロック画面が変わったな。まぁやることは同じでPINコードを入れるだけだけども
・というところで、シミュレーションがボチボチ。よく見るとなんだか動きが変。1クロック分先走ってる。なんでこうなるかな。
・そんなところでDE10-Liteが手に入ることになりそうな感じ。とりあえずLEDやらスイッチ類などなどもありそうだし、これで下準備なテストをすれば良いかな。
・なんとなくブックマーク先を眺めていてそういえあったなと思ってクリックした先を見たら二ヶ月前にAct.1が完成していたらしい
【自主作成アニメ】東方想走夢 ACT 1「幻想の走り屋伝説」。
・Blenderなどを使った自主制作ということだけど、ここまでできてしまうのか。キャラをもう少し立たせてほしかったなというくらいで、もう・・・以下言葉なし。
2025.10.15 12:46
2つ目のシミュレーションを登録するとだめ?
・テストベンチを書き始めたけど、DSim上で意味不明なエラーが続出する。Verilatorではそれなりに動いているんだけど。
・色々やっていたけど、意味不明なエラーが消えない。ひょっとして・・・と思ったのは、今回、大きく分けると2つの処理ユニットが一つになっている。DSimではシミュレーションを複数設定できるので、同じディレクトリに全部のSystemVerilogのソースを置いておいて、それぞれのユニットごとにテストベンチを用意してみたのが敗因?
・よくわからないけど、とりあえず分けてみるかということで、ユニットごとに分離してシミュレーション。ようやくまともなエラーメッセージが出るようになったので、「そこか・・・」と修正したら、動き出した。
・修正済みのものを元に戻したらどうなるのかな。
2025.10.14 12:36
なんとなくある程度形に
・まぁ、なんとなく形になってきた。ただ、こいつのテストベンチを書くとなったら結構悩みそうな気がする。
2025.10.13 21:54
FT232インターフェースの記述
・というところで、FT232あたりとつないでみるかということで、検討する。
・相手の挙動を把握しきれていないので書いていて、こういうときはどうしようというのが結構悩みどころでもある。
2025.10.12 11:20
デュアルポートRAMインターフェース
・MAX10で内蔵RAMを使ってみるかと検索していてAlteraのブロックRAMのドキュメントらしきもの・・・
Internal Memory (RAM and ROM) User Guideを見つけたのだけど、開いてみると
を付けたのだけど、Max IIはあるけどMAX10はない。ドキュメントの日付が2014年か。古いな。
・こっちかなと見つけたのが
MAX 10 エンベデッド・メモリー・ユーザーガイド・なんだかよくわからないので、結局一番の近道はこれか・・・ということで、Quartusを起動してTool=>IPCatalogでRAM:2-PORTを選んでみる。なるほど、アドレスは同期化されていて、Read Enable(ren)の有無は選択可能、Q出力は同期するか否かも選択できるのか。インターフェースとしては単純だな。
2025.10.12 20:49
MAX10はどのくらい頑張れるのかな
・一息つきながらそういえばボチボチ帳簿入力しなくてはと思い出す。
・FPGAの中身やらテストベンチの記述をしていてだいぶこの環境にも慣れてきたな。さて、それじゃ今度は外部デバイスとの同期通信部分を書いてやろうかなと思ったのだけど、この部分はクロックを外部デバイスを生成する。どのくらいかなと思ってデータシートを見たら60MHz程度ある。
・当然FPGA側の内部クロックとは同期していないからセオリーとしてはダブルラッチでクロック同期化が必要だろうけど、4倍サンプリングでも240MHzか。
、そういえば内部クロックってどのくらいかなと思ったら400MHzくらいまでは頑張れそうだけど、実際にロジック組んだらどのくらい頑張れるのかな。
・とりあえず書くだけ書いて合成かけてみるしかないな。だめなら別の手を考えよう。
2025.10.11 01:04
勝手なキーリピートはやめてくれ
・過日のことになるけれど、佐賀県警でDNA鑑定で不正を繰り返していたということが明るみに出た。
・そういえば、米国のドラマCSI:でも証拠の捏造を疑われるという回があって、その中で捏造していることになったら、その担当者が関わったすべての事件で被告人が野に放たれるといったセリフがあったように記憶している。
・確かに、一件でもやっていれば過去にどの事件で関与していたかわからないのだし、捏造された証拠が操作や裁判における裁判員/陪審員や裁判官の判断に多かれすくなかれ影響を与えていることは疑いようがない。それがDNA鑑定という最も信頼されるものであればなおさらだろう。
・県警は「影響はなかった」などと妄言を吐いている。影響度が0%なのだとしたらそもそもDNA鑑定は何のために行うのか、税金の無駄遣いではないかということになってしまうだろう。
・この人間が関わった事件は全部リセット。有罪とされた方々について裁判のやり直しが必要ではないのだろうかな。そして、今後はなにかあればそのくらいの影響が及ぶということを頭にいれて常に襟を正して仕事をするのが圧倒的な権力を与えられている仕事の「プロ」というものではないのかな?
・話題休閑
・そんなところで、Ubuntuを使っていて突然のキーリピートで散々悩まされていたので、リピートOFFにできないものかと探したらちゃんとあった。
・コマンドライン上からは「xset r off」で良いし、gui上なら、「設定=>アクセシビリティ=>タイピング」の「タイピング支援」でON/OFFしたり開始までの時間や速度を調整できるのだな。
2025.10.10 09:23
interfaceのバス幅可変はverilatorでは未サポートか
・首相の記者会見前の雑談で「支持率おとすような写真を撮ってやる」的な発言をしたのが時事通信のカメラマンだったことを会社が白状していたけど、日頃の自分たちのオフレコ揚げ足取りをしつこくやっているのに、厳重注意くらいで済ませて良いのだろうかな。
・そしてそれ以外にもいくつか不適切な発言やそれを笑っていた連中がいたようだけど、それは時事通信の記者ではないという。それならば誰だったのか、それこそ徹底追求が必要ではないのだろうかな。
・たとえだんまりを決め込んでも音声入りの画像データが広がっているようだし発言者の特定も可能だろう。ひょっとしたら僅かな壁の反響などから、発言者のいた場所も特定可能かもしれないな。
・話題休閑
・interfaceで作ったバスのビット幅を#(parameter )で変更できそうなのでやってみたのだけど、どうも可変幅での接続がうまくいかない。
・お試しでGeminiにサンプルコードを作ってもらったけど、verilatorの構文チェックではだめ。
・ついでにChatGPTでも作ってもらったけどやっぱりだめで、copilotだとどうかなと思ったけどやっぱりだめ。
・どちらも
module my_module (
my_if #(WIDTH) in_if,
。。。
);
のようなコードを吐くのだけど、どうやらこういう可変長の表記がverilatorではサポートされていないということが原因らしい。
・ちなみにGeminiは「接続してくる親モジュールで決めた幅に自動的に調整されるから何もしなくて良い」ということだったけど、結局うまくいかなかった。
・まぁ、今回は固定長でも問題ないし、ビット幅が違うものは別のインターフェースにすれば良いだけの話だけどね。
2025.10.09 11:14
SystemVerilogフォーマッタ
・そんなところで、テストベンチを色々いじって動き出したので、同じパターンでデータを変えながら繰り返してやろうと全体をrepeat(8) begin 〜 endとかでくくってやるとかやっていたらだんだんインデントが・・・
・ということで、フォーマッタ位あるだろうということでVSCodeのプラグインを探すとVeribleというのがあるようで。
・ということで、インストールして範囲選択して右クリック=>ドキュメントのフォーマットしてみると、「規定のフォーマットを構成する」とあるので、Veribleを選んだらフォーマットされた・・・のは良いけどインデントが2か。ちょっと窮屈な感じもある。なにか変更できないものかと検索するとオプションで指定できるらしい。
・プラグインのギヤマークをクリックして設定を選び、Argumentsで--indentation_spaces=4とか設定して再度やってみたらインデントが4になった。
・ところで、Veribleにも文法チェック機能があるのだけど、既存のMasahiro Hiramoriさん作のVerilog-HDL/SystemVerilog/Bluespec SystemVerilogと重なるとどうなるのだろうと思ってちょっとやってみたら、エラー箇所に引かれた波線にマウスカーソルを合わせると両方のコメントが並んで表示されるんだな。
2025.10.08 08:03
ランサムウェア
・アサヒさんのトラブルはランサムウェアだったということで、ゴチャゴチャとしている。
・バックアップはとっていなかったのかなとか、全部芋づるでアクセスできるようになっていたのか、サーバー1台で管理されていたのかとか。まさかWindows Serverだったりはしないだろうしとかいろいろ思う。
・とりあえず攻撃を受けにくくすることは大事だけど、受けることを前提に短期間で復旧できるシステムを構築しておくことが大事なのだろうな。
・プログラムなりスクリプトが実行できなければ良い・・・とか考えると、スクリプトで使われやすいものをちょっとだけ変えておくとかほんの少しだけローダをいじるなどしておくだけでもなかなか入り込めなくなるだろうけどな。
・というところで、他にもゴチャゴチャ書いていたのだけど、なぜか消えてしまったので、以下省略。
2025.10.07 19:15
OpenVSX
・ちょこっとだけ運動らしきことをしたらなんとなく体が軽くなったような気持ち。これを継続できればもう少し変わるのだろうけど、そうもいかない世の常人の常。
・そんなこんなで、SystemVerilogな環境も割と良くなってきたな。VSCode上のエクスプローラで.vcdファイルをダブルクリックすればSurfer君が勝手に立ち上がって波形表示してくれる。
・ただ、この「マーケットプレイスで・・」というメッセージが気に入らないなぁなどと思いつつ検索していたらVSCodeをフォークして作られたエディタではマーケットプレイスのを使えなくしたりと、維持の悪いことをしていたようで。
・これに対抗して、
Open VSXとかいうのが用意されたようで、結構いろいろなものが揃っている。で、このOpenVSXで「Verilog」で検索してみたら、icarus+gtkwaveがプラグインになっていたりと以外と充実か?
2025.10.06 08:08
interfaceと未接続信号の始末
・そんなところで、いろいろなinterfaceをmyinterfaces.svなんてファイルに全部まとめておこうとしたら、DSimは良いけどVerilatorは気に入らないらしい。
・結局全部バラバラなファイルにしないとだめなのか。1ファイル1インターフェース/1モジュールという制約か。まぁ、gitで管理する上ではその方がマージしたりなんなりでトラブルを起こしにくいとも言えるか。
・Cとかだと#includeできっちり取り込まないと文句言われるからincludeだらけになりそうだけどVerilog/SystemVerilogだといちいち`includeしなくてもいいしな。
・仕方ないのでバラしてやるけど、今度は未使用な信号(まだ接続先がないんだよ!)が気に入らないらしい。前回はトップモジュールのポートに出したけど、毎回やるのも面倒臭い。
・なにか手はないの?とお尋ねしたら--Wno-UNUSEDオプションつければ良いよということなので、やってみると確かに大丈夫。しかし波形をみたら、未使用の信号がバッサリ切り取られてしまっている。いや、動きだけは見たいんだけど・・・
・ということで更にお尋ねすると、--Wno-UNUSEDPARAMとすれば良いらしいのでやってみたら、うん、確かに未接続信号の波形も見られるようになった。よしよし。
・そしてVerilatorで-Wallにしても「使ってないparameterがあるよ」ということを言われる程度無事にパス。いいぞいいぞ。
2025.10.05 07:36
SystemVerilogコーディングステップバイステップ
・そんなこんなでスマホで国勢調査に協力しておく。昔は年収とか聞かれたような気がするけど、今はなんだかなな感じ。
・とりあえず、あれこれ下調べはできたのでザーッとSystemVerilogなソースを書きなぐってみる。
・思っていたよりストレスはないけど、テストベンチでちょっと手間取る。
sck = 1;
repeat(5) @(posedge CLK);
sck = 0;
とやって5クロック分1にするつもりなのに1クロックで戻ってしまう。いろいろ試したけど、結局
repeat(5) @(posedge CLK) begin
end
という具合にbegin〜endでくくってやるとうまくいった。
あとはverilatorだけど、こちらは相変わらずエラーの嵐。verilatorは構文チェックが厳しいな。
2025.10.04 20:44
波形表示は一体どうしたら
・GTKWaveのカーソルの挙動がおかしいのはvcdファイルサイズが大きいためではないことがわかる。
・vcdファイルが十分小さくてもカーソルを最初にクリックしたときはちゃんと指定したところに現れるけど、その後画面上の別の場所をクリックしても延々と動いてくれなくて、再描画すると移動するという具合。
・とりあえずいったんアンインストールして再インストールしてもだめ。
・原因が全くもって不明。これはVSCode上で見るしかないのか。それだとSurferの方が便利かなぁ。
・などと眺めていたら、△に!マークの注意記号。何かと思ったら「この拡張機能は、拡張機能マーケットプレースでは使用できなくなりました。」とある。ちなみにDSimにもついているし、Vaporviewにもついているというのに今頃気がついた。
・探すととりあえずVSCodeの拡張機能でWaveTraceというのがあったけど、なんだか美しくないなぁ。
・一周してvim+verilator+gtkwaveでゴニョゴニョとするしかないのだろうかなぁ。
・などと思っていたら、今までついていなかったWaveTraceにもついてしまった。ひょっとして一回「無効にする」を選ぶと(いろいろ動作を見るために無効にしたりしていた)こんなふうになるのか?と、試しにアンインストールしてから再インストールするとマークが消えた。何だこれは。
・まぁいいや、とりあえずVSCode上で波形表示環境は動いているしな。surferをイネーブルした状態にしておいて、シェル(コマンドライン)でvcdファイルのあるディレクトリで”code ."とすれば、カレントディレクトリが開いて、vcdファイルをダブルクリックで波形表示されるしな。
・さて、そんなところで、3ステートバッファのテストをDSimとVerilatorでやってみる。文法チェックの厳しさは、さすがにVerilatorで、<=と=の違いなどについても結構厳しい。
・結果はというと、DSimはちゃんとハイインピーダンスの時に”Z"になるけど、Verilatorは"0"になってしまったりするのだな。
2025.10.03 09:17
消えたKiCADとGIMPをインストール
・Ubuntu 24.04にアップデートした環境下で、ちょっとaptした後でそういえばとsudo apt autoremoveしたらkicad8のファイルが帰されているメッセージ。
・え?と思ってkicadを探したら確かに無くなっている。なんでだろうと思いながらちょっと別の用でGIMPを使おうとしたらこちらも見当たらない・・・・消えてる・・・
・どういう理由化知らないけどアップデートのときに消されたのか。
・synapticとubuntu softwareで比較すると後者の方が新しそうなので、インストールしておいてみる。
・kicadは9.0.1、GIMPは3.0.4になった。kicadの最新が9.0.5、GIMPは3.0.4みたいだからまずまず新しいものが入ったみたいだな。
・Kicadのライブラリ設定も初期化されたので、自前シンボルと自前フットプリントを設定。これで以前作った回路図とアートワークをそれぞれ開いてみたけど特に問題なく開けた模様。とりあえずこれで良いか。
2025.10.02 23:28
やっぱりトップモジュールの外部インターフェースにinterfaceは可?
・やっぱりinterfaceはトップモジュールに置きたいよねということで、「代わりになるものはないのか?」とGeminiに問い合わせ。
・すると、「いや、普通に使うし・・・」的なこと。「この前IEEEでは・・・とか言ってなかった?」というと「ごめん」と。
・でVerilatorのVersion5以降なら対応しているという話。
・うーん、また騙されたのかな?とりあえず4.038では対応していないことはわかっているけど、5では大丈夫なのかな?ちょっと試してみることにしよう。