[管理者用]

イゼルローン日誌
宇宙・・・それは人類に残された最後の観光地である

         
戻る 
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年

2021年09月
9月30日 かのと み
・シミュレータでうまくいったようなので、実機に埋め込んでみる。ちょっと手間はかかったけど、なんとか放り込んだ。ソフトウェアは、シミュレーションでやった設定をそのままCPUで行わせれば良い。
・さて、いざ動作。おっ、予定通り四角い領域が現れた。ここがVide Mixerで埋め込んだところだな。でも、データが全部ゼロになっているのか、真っ黒だ。一応バッファに書き込みをやっているはずなんだけどな。

9月29日 かのえ たつ:武蔵御嶽神社流鏑馬祭
・自民党の総裁選はほぼ順送りという感じで、一番影の薄い方に決まったようだ。まぁそんなものだろう。
・昨日の続きでVDMAのテストモデルの中に放り込んでみる。なぜか動かなくなってしまってもう一回作り直してやり直しなんていうことを何度かやることになってしまったけど、なんとかうまくいったようだ。ちゃんとメモリアクセスしているからそれなりに動いているのだろう。メモリアドレスを一回出したまま変更しないので、ちょっと悩んだけど、AXI4バスにはバースト動作があるから、アドレスは自動インクリメントされるのだろうな。

9月28日 つちのと う:英彦山神宮祭
・「ひこさんじんぐう」と読むらしい。
・さて、ボヤいていても仕方がない。サンプルにはシミュレーション用のデザインも入っていたので試しにこちらを動かしてみる。とりあえずちゃんと波形が出てきた。1ms位動かしてみるとそれなりに動いて2ライン分ちょっとくらい動作しているのがわかる。ならばこちらのテストベンチの方が参考にしやすいだだろう。ということで読んでみたら、ほら、簡単じゃないか。なるほど、こうすればとりあえず動くのか。
・ならば、以前VDMAの動作チェックで作ったシミュレーション用のモデルに同じようにはめ込めば良いのではないだろうか。とりあえず、今日はこのシミュレーションで使っているレジスタをマニュアルと突き合わせて、明日VDMAシミュレーションへのはめ込みをやってみることにしよう。

9月27日 つちのえ とら:吉野神宮例祭
・Video Mixerのサンプルコードを読んでみるのだが、これがなかなかにして入り組んでいる感がある。しかもサンプルと言いながら、画面出力まではしてくれないので、結局どう動いているのかもよくわからない。
・でも、ビデオミキサーのドキュメントでレジスタ一覧を見る限りはそれほどややこしいものにも見えないのだけどな。どうもXilinxのサンプルは欲張りすぎた結果、結局「知っている人がより良く知るためのサンプル」になってしまって、とりあえず動かしてみたい初心者にとっては参考にしにくいという、残念なサンプルになっている感じがする。

9月26日 ひのと うし:世田谷菅原神社例祭
・Video Mixerの続き。ファンクション的にはわかったけど、具体的な使い方はまだまだよくわからない。直接レジスタを叩くべきか、あるいは生成されたAPIを呼ぶべきか。VDMAは前者で片付けてしまったけど、本筋は後者なのだろうな。それにしても、ドキュメントの不親切さときたらどうなのだろう。先日ちょっと眺めたRustもそうだけど、米国のドキュメントも昔のような親切さに欠けてきている気がするのはきのせいなのだろうか。

9月25日 ひのえ ね:谷保天満宮祭
・さて、Video Mixerを調べなくてはな。フレームバッファを上書きしても良いのだが、ここはスプライトのように使えたほうが便利だろう。

9月24日 きのと ゐ:帯広神社祭
・というところでFPGA+HDMI。フレームバッファからHDMIへの出力に加えて、HDMI側からフレームバッファへの読み込みも、ILAで確認した範囲ではできたようなので、いよいよ両者を合体である。といってもソースコードは完全分離状態なので、基本的には送信側に受信側のソースコードをはめ込んでいく程度でいい。
・とりあえず移していって、ビルドしたら珍しく一発でノーエラーで通った。これならそれなりに動くのかな?と、まずはHDMIの送信側。これはうまく行くに決まっている。TPGからVDMAモードに切り替えて、いよいよHDMIの受信を動かす。といっても、テスト用のPCの電源を入れるだけだが。
・電源を入れて起動してきて、さて、HDMIの受信側のupメッセージは出るのかなと期待しながら、ふと目をディスプレイにやると、PCと同じ画面が映っている。ハード的にHDMI_RXとHDMI_TXはつながっていない、これはVDMAによる転送にほかならない。ということは、動いたじゃないか。
・「よっしゃ!」という掛け声とともに、久しぶりに味わう快感。柴田翔さんの「ロクタル管の話」にも書かれていたような、自作のラジオが初めて鳴った時のような感覚が戻ってきた。
・できてしまえば単純だし、わかっていればどうということはないようなことなのだけど、すべて手探りで進まなければらなかったここまでの道のりが長かった。だいぶリハビリにはなったな。
・ただし、これで終わりではない。次は久しぶりのUSBが待ち構えている。USB2.0までだったら経験あるのだけど、当然それで済むはずはない。また勉強だな。

9月23日 <きのえ いぬ:桜ヶ池池宮神社例祭
・HDMI関係の見直しが終わったので、HDMIの受信送信の合体作業開始する。その前にGoogleドライブにバックアップをと思ったけど、うまくいかない。遅くて仕方ない。まぁ、夜は駄目だな。明日の朝にしよう。
・何か忘れているなと思ったら、お金をおろしておくのを忘れていた。ついでに記帳もしておかなくてはな。

9月22日 みつのと とり:井伊谷宮祭
・「いいのやぐう」と読むらしい。
・さて、そんなところでHDMIのストリームデータをフレームバッファに書き込むため、VDMAを追加。そういえば、ライト方向のVDMAは動かしたことがないなということで、VIPを使って、テストしてみる。とりあえずリード方向(メモリ=>ストリーム)をやったときのものは残っているので、これをちょいと拝借。
・ストリームをVIPで作ろうかとも思ったけど、考えたら既存のVDMAがストリームを作ってくれているのだから、これを受け取れば良い。ハンドシェークは行っているからオーバーフローとか面倒なこともないはずだ。ということで、VIPのスレーブで受信していたのを取っ払って、VDMAを追加。二個目のVDMAが書き込む先を担当するVIPを追加しておいてみる。
・追加に伴い、SystemVerilogのテストベンチも少し手を加える。コメント欄に当時悩んでいた時のことがいろいろ書いてあるので、それほど難しくはない。
・とりあえずテストしてみたら、1個めのVDMAだけが絶好調。2個めが全く動いてない。なんで1個めだけは動くのか…あぁ、そういうことか。AXI4Sなバスは1個ごとのハンドシェークではくて、RS-232Cで言うところのRTS/CTSみたいなもので、Ready状態なら、1クロックごとにどんどん送れるんだ。
・改めて眺めてみたら、コントロール/ステータス・レジスタのオフセットアドレスを修正し忘れていた。それじゃVDMAにスタートがかからないわけで、動くわけがない。修正したら、おお、やってるやってる。間断なくストリームデータがVDMA間で転送されて、メモリもどきVIPにどんどん書き込まれている。あとは、この初期化をプログラムの方に反映させれば動くのかな?

9月21日 みつのえ さる:飯香岡八幡宮祭
・本日は晴天なり・・とはいかなかったようだけど、十五夜である。だから別になんだということもない。十五夜である。
・というところでFPGAの方は三歩進んで一歩下がるな状態で、遅々として進まないが、なんとか、進歩はしている。FPGAといいながら、ほとんどソフトウェアの話というのがなんともはや。
・フレームバッファから出力するのに、フレームバッファにデータを書いているにもかかわらず、黒い縞上の抜けが出てくるので、クロックまわりを少しいじってみたけど変わらない。CPUのキャッシュの問題ならばライトしたあとにベリファイすれば良いということで、フレームバッファ全体に書き込んだあと、全体をリード&ベリファイしてターミナルに結果を表示させてみたらノーエラー。ふと画面の方を見ると、シマシマが現れていない。リードを入れたことでフラッシュされたか。

9月20日 かのと ひつし:寒川神社例祭
・もうちょいRustをいじってみる。Rustとお友達なCargoというツールがあって、まぁ一言で行ってしまえば、C言語のccドライバやmakeを更にサービス良くして、IDEがやっているようなことをコマンドラインでやってくれるよという感じ。プロジェクトの作成だの、レビジョンや作成者、使っているライブラリのバージョンなどの管理フィアルも一緒にこしらえてくれるし、ビルドもCargo buildやらCargo runなんかでできるという具合。まぁ、これはこれで便利ではある。
・言語の方はRustの変数の所有権があるということが特徴とされている。ポインタを受け渡すとそのポインタの所有権(利用権)も移るので、使えるポインタは一つだけということ。
--------------------
fn main() {
let x = String::from("Hello");
let y = x;
println!("{}{}",x,y);
}
--------------------
この場合、y=xのところで文字列の所有権がyに移るので、xを使うことはできない。にもかかわらず、println!でprintしようとしている。このあたりはコンパイラが追いかけてくれているので、コンパイル時に「だめよ」となるわけだ。これによって、「誰が今管理しているのか」が明確になるので、その管理者の消滅とともに確保したメモリ領域も開放してしまえば良いと、こういう理屈。どのみちコンパイル時に変数のライフタイムは管理しないといけないわけで、所有できるのを1つに限定してしまえば良いという、簡単だけど有効な手段ではある。関数の引数として渡してしまったときも同じことが起きる。これでは困るというなら、最後に戻り値として返却するなり、引数に&をつけて参照渡しにするとか細工する。
・ついでなので、GO言語(golang)の方もチラリと。こちらはGoogleさん謹製ということで。まぁいろいろあるものだ。
9月19日 かのえ うま:池尻稲荷神社例祭
・なんとなくRustというプログラミング言語に触れる。ブラウザのFirefoxを記述するために作ったとかいう話でC/C++を置き換えていくという意気込みらしい。裏にはLLVMが鎮座しているということで、要するにLLVMの上に被せる新しい皮(フロントエンド)ができましたっていうところか。
・売り文句ではどこでもかしこでも「メモリ安全性」を強調している。ガベージコレクションを行わずに、コンパイル時や実行時にアクセスチェック(ボローチェック)を入れ込んだらしい。
C言語を大規模なプロジェクトで使うときに神経を使うのはメモリ管理だというのは昔々のその昔から言われ続けていることではある。配列や構造体などの範囲外へのアクセスだの、newで確保したあとのdelete忘れなどなど。もっとも、それを逆手に取ってやり放題できるというのも便利なときもあるんだけどね。
・とりあえず本家はここで、検索すると、日本語版もあったけど、日本語版はちょっとバージョンが古い。
・コンパイラのインストールはおなじみのaptでもできるけど、いろいろやってみるとrustupというのから入れたほうが良いようなので、aptではなくsnapの方を使ってrustupをインストール・・・と思ったらエラーが出る。何かな?と思ったら古い方法でリリースされているからリスクがあるよ。どうしてもやりたいなら「--classic」をつけてねということ。まぁどうせテスト用Linux環境だしということで、
sudo snap install rustup --classic
としてインストール。とりあえずrustup updateしておく。
rustup update stable
・これで、rustc --versionとしたら、1.51.0と出た。まぁいいのだろう。


9月18日
・XilinxのサンプルのEDIDを読んでみたけど、どうしても途中から話の辻褄が合っていない感いっぱい。なぜだろう。Wikipediaの内容が古いのか。やはり原本を見なければ駄目かと、改めてCESを見ると、$0で購入(ってどうするんだろう?)もできるようだ。じゃあ・・と思って購入手続きをしかけてふともう一度トップページから降りて探していたら「Web Archiveで拾えるよ」と書いてあるのでクリックしてみたら2017年のVersionGが手に入った。多分これでも大丈夫だろう。
・突き合わせて読んでみたけど、やっぱりおかしい。後ろの方は18バイトごとの構造のはずなので、そちらからあたってみたけど、どうも話の辻褄が合わない。データのサイズ情報の解釈がおかしい。VESAの方の資料のAppendixにあるサンプルEDIDデータと食い違って、2バイトずれてしまっている感じ。CTA-861の説明が微妙で、こちらを読むとなんとなく見えてきた。多分、このサンプルコード中のEDIDのデータを作った人が勘違いしたのだろう。

9月17日
・というところで、相変わらず悩むHDMIの受信側。この前PCと接続したら、3840x2160などという、なかなかな高精細ディスプレイとして認識されてしまっているようだ。本体側をいじっても他の解像度にはなってくれない。HDMIの場合、最初にDDCを使ってEDIDデータをPCが読み取るわけで、この中で対応可能な解像度やリフレッシュレートなどの画面モード情報が入っている。PC側がこれを見て対応可能な解像度に設定してビデオ信号出力。PC側がどんな画面モードにしたのかはVSYNC期間中にコソッと送るので、それを受けてディスプレイ側が動作を切り替えるという具合になっているはず。
・ところのが、このEDIDが思ったより曲者(くせもの)。「VESA ENHANCED EXTENDED DISPLAY
IDENTIFICATION DATA STANDARD」にあるということだけど、ここを見ていくと、「CEA-861を見てね」とある。じゃあ、EIA/CEA-861はいずこに?というとCESにあるはず・・だけど、どうもいろいろと大人の事情があったようでフリーでダウンロードできるようになっていない。とりあえずWikipediaにそれっぽい説明があった。とりあえずこれで読んでみるか

9月16日
・「連絡先を交換したくない相手に写真などを送るのにはAirdrop」というのをふと耳にした。そういえば、スマホでPDFとかにして保存しようとしたときにAirdropが出てくるな。全然使ってないけど、ちょっとお試ししてみるかと試しにiPod側を設定して、写真を送ってみる。なるほど。それならWebサイトのURLも遅れるんだよなと思ってやってみると、当たり前のように送れる。なるほどね。

9月15日
・学校の追試の採点。これが結構大変。Excelで整理しながら配点も考え考え・・・とりあえず終わった。明日もう一回チェックしてから返送しておこう

9月14日
・いつもノートPCのキーボードの上には布を敷いているので全く気づかなかったが、キーボードの側面は光ってるんだな。
e-Gov法令検索なんていうサイトがあることを知った。試しにちょうど勉強していた「行政手続法」を開いてみたりしたけど、なかなかうまくできている。

9月13日 きのえ ね:東京乃木神社例祭
・そんなところで、値下げの交渉が来てしまった。前回のときにだいぶ安く引き受けてしまった感があったのだけど、やはりそれが基準になってしまったか。まぁ、全般的に苦しいみたいなので受け入れておく。

9月12日 みつのと ゐ:神道大成教秋季大祭
・さすがに行き詰まり感がある。改めてやり直してみる。既存のものには極力影響を与えずにということで、追加で使用するアドレス領域は上の方に持っていって、更にソフトもどうせRx側をTx側に戻す必要はないのだからバラバラに動いていて良いはず。ということで、とりあえず送信方向だけに限定。
・これで改めてビルドして動かしたら、デバッグビルドだとかなり遅いけどディスプレイが反応した。これはデバッガのせいか?と重い、リリースビルドして書き込んだから無事動作。ちゃんとVDMAの切り替えもできた。一度にまとめて手を入れてしまったけど、どれかがビンゴだったんだな。とりあえず、これで前に進める。

9月11日 みつのえ いぬ:空知神社祭
・「どこまで続くぬかるみぞ」の気分。改めて作り直したりしているけど、全くわけがわからない。ストリームスイッチなんて、やっていることは単純だろう。なぜ切り替えを入れただけでうごかなくなるのやら。悪戦苦闘で一日終わる。というのか、ビルドしなおして試して考えて変更してまたビルド・・なので、1サイクルが長いんだけどね。

9月10日 かのと とり:豊島区高田総鎮守氷川神社例大祭
・とりあえず、PassThroughをベースにだいたいのところはわかってきた感じなので、ここで送信側をVDMAにすべく、以前と同じようにAXI4SのストリームスイッチとVDMAを追加してみる。とりあえずVDMAは使わないし、ストリームスイッチをTPG側に固定しておけば良いかとやってみたら、全く何の絵もでなくなってしまった。No Signal。ターミナルにそもそもStreamUpのメッセージもでない。一体何が起きているのかさっぱりで、試しにILAを入れてみてもだんまり。何が起きているのだろう。

9月9日 かのえ さる:生國魂神社例祭
・「いくくにたまじんじゃ」と読むらしい。
・さて、とりあえずHDMIの送信側はそれなりに動いてきた感じなので、受信側も動かしてやろうととりかかる。とりあえず受信側の始末を読んでやらねばな。やはりここはPassThroughのサンプルを読むのが早いか。


9月8日 つちのと ひつし
・さて、ふたたびのFPGA。なんか、延々と格闘しているけど、再度ソースコードを読んでいたら以前よりは見通しが良くなっている。それにしても、Xilinxのライブラリのサービスの悪いことよ。いちいちアプリ側で面倒みないといけないんだな。

9月7日 つちのえ うま:永尾剣神社八朔祭・「えいのおつるぎ」神社の「はっさく祭り」というらしい。
・なんとなく、Node-REDのJSONパーサーを書き始めてみる。この手のものを書くことはほとんどないので、ちょっと要領を得ない。「なんとなくこういう方向かな?」というのは頭に浮かぶけど、いざコーディングしようとすると少し進んでは立ち止まりという感じ。まぁとりあえずリストというか、ツリー構造にいったん変換してしまえば良いのかな?

9月6日 ひのと み:保土ヶ谷杉山社祭
・鼻水が出る。アレルギー性鼻炎ってやつだな。とりあえず、手元の鼻炎薬を1/4に割って飲む。用量は1回2錠ということだけど、そんなに飲んだら効きすぎて酷いことになる。このくらいで丁度いい。

9月5日 ひのえ たつ
・久しぶりのVBである。ソースコードやらプロジェクトのありかもすっかり忘れている。探していてようやく見つけた。gitのログを見ると、昨年10月以来だな。さて、はじめようか。

9月4日 きのと う:気比神宮祭
・福井県の神社だったか。
・よく雨が降る。秋雨というより梅雨のようだ。ふと通販サイトを眺めてみたらセールをやっている。そういえば溜まっていたポイントも使わないと期限切れになってしまうなということで、ポイントだけで買えるものを探す。お金を払って買おうとはなかなか思わないけど、ちょっとあっても良いかという感じのもので、ポチッとしてみた。

9月3日 きのえ とら
・さて、大きな壁が破れたので、次に進む。素材となる部分は分かったし、ILAを使ったデバッグも慣れてきたので、もう一回元に戻して最初のスタート位置から書き換えにとりかかろう。まずはプロジェクトをもう一回作り直していかねばな。

9月2日 うし:羽黒山湯上神社祭
・Xilinxで散々悩んでいる。PLLへのレジスタの設定がおかしいのかとダンプしてみたけど、特別変なところはない。一応理屈はあっている。エラッタかな?とも思ったけど、そんなものもない。ピクセルクロックがある範囲を超えると駄目というのは・・・と思っていてふとケーブルのせいか?と疑ってみる。そういえばつながっているのは100均で買ったやつかもしれない・・とふと見るとあれ?
・そうだ、テスト用でHDMIの切替器をつないでいた。切替器を外して直結してもう一度・・・あっ、動いた。嘘だろう、何を今まで悩んでいたんだ。

9月1日 みつのえ ね:鹿島神宮雨祭
・テレビで割と近いエリアのローカルグルメを取り上げている。なるほど、行きたくもなる。まぁ、ワクチン接種は終わっているし、行動範囲も極小で、一日の殆どを自宅内で過ごし、移動はほぼマイカーという我が身としては感染リスクが低いグループの一員だろうなぁと思ってはいるけれど、それでも以前のように車で足を伸ばして息抜きをしにいく気にはなかなかなれないので、こういう番組も「見てるだけ」。さて、いつになったらこの状況が変わるのやら。

前月 次月
エース