2004年12月
12月1日

そんなこんなで29466の紹介サンプルの仕上げと原稿書きスタート。たいしたものではないのだが、それなりに遊べるので、今も横で乾電池で動いている。今回改めて試してみてDELSIGは2ブロック使う方が確かにノイズは少ないのだなと関心した。ついでに「壺」ネタにしてやろうというものもできたし、一応の収穫か。

12月2日

英文メール書きで1時間半。大したことは書いてないつもりなのだけど、時間はしっかりかかってしまう。とりあえず翻訳サイト数カ所で放り込んでみたけれども、だいたい意図したような日本語が出てきたので大きく外していることはないだろうと信じて送信する。

12月3日

マウスが不調。使っているといきなり動かなくなる。コネクタ着脱で復旧するのだけども。ノートPCにつながっているのを外してつなぎかえてみたら少しは良いようだけどもやはり現象再現。ハブが悪さをしているのか。

12月4日

ちょっと出かけてバった。帰ってきてからそのまま行き倒れ状態で数時間。やっとこさ復帰して濃い目のコーヒーで一息。体力落ちたな。これで明日はきっと腕が痛くなるのだろう。気合い入れつつ原稿仕上げ。とりあえずこれで良しとしよう。
選挙で話題の某国。なんと投票率が100%を超えるという、さしもの北の国もかなわない動砲並のすごさだったらしい。ここまでくるとお茶目というのか、何も考えてないというのか。
どんな世界でもイカサマはあるとはいえ、最低限のつじつまを合わせておく位の美意識は必要だろう。

12月5日
5VトレラントになっていないFPGAと5V系の信号をつなぐべくバススイッチ工作。しかし、こんな汚くて長ったらしい配線をしてしまっても大丈夫だろうか。
半田付けをしているうちに体が段々だるくなってきた。どうも集中できない、と思っていたら夜になってからいよいよおかしい。メールのチェックをしているうちに悪寒。震えがとまらない。まずいなインフルエンザかなと思っている間に症状は加速度的に悪化。症状変化を時間で微分した値というと、Δ症状/Δtかなどと馬鹿な事を思うまもなく椅子に座っているのも辛くなり、トイレで数度嘔吐。
とりあえず布団直行して、一汗かいたらある程度落ち着いてきた模様。この調子なら明日は大丈夫だろう。
なにかと拝金主義がはびこっている世の中だけど、やっぱり一番大事なのは健康だよな。

12月6日
昨晩よりはるかに具合は好転しているものの、相変わらず少し動くとだるくなる。夕方になって体温を測ってみたら38℃。
確かにこれならだるいのも道理である。だいたい症状というのは深夜から明け方という一番眠い時間帯に悪くなりやすいものでもあるし、この調子で今夜一晩乗り越えるのは辛そうなので近所の病院へ。そういえば保険証使うのもずいぶん久しぶりだな。引っ越してきてから初めてじゃないだろうか。
あれこれと薬を受け取ったのだけど、一日一回、3日飲むと一週間効き続けるとかいう抗生物質が入っていた。こんなもの渡されたら処方された薬を飲みきらないといけないみたいだな。

12月7日
幾分回復方向とはいえ、立っていると辛いという状況はあまり変わらず。食欲もイマイチ。トイレに行くとどうしても鼻につくこの臭いはやっぱり薬のせいだろうな。そういえば個別浄化槽を使っている場合、抗生物質を飲むとトイレ経由で浄化槽の菌まで殺してしまって浄化機能が無くなるから使ってはならないとか聞いたけど、そういう時はどうするのだろう。だいたいそんな物を飲む時って具合の悪い時に決まっているのだろうに。

12月8日
どうにか復旧したようでもあるが、まだ本調子とまではいかず。午前中少し横になっていたら、誰かが布団の上を歩いたような感覚。家族かと思ったのだけども考えてみたらさっき出かけていったのだから私しかいないはず。え?と起きてみたけども誰もいない。
寝ぼけていただけか。こういうのが俗に言う「霊の仕業」とかいうことになるのかな。しかし、音も踏まれたような感触もなかなかリアリティがあったな。
午後からやりかけだった事の再開のための準備。さて、明日からボチボチとリスタートをかけることにしよう。

12月9日
届いたトラ技をパラパラと眺めていた。バラバラで書いたためもあってか、別の章で同じ事を繰り返し書いてしまったりしてちょっと格好わるかったかな。でも、通しで読まない人に「?」マークばかりになってしまっても困るので、これはこれでも良いのかとか、勝手に納得する。
久しぶりにALTERAな環境を立ち上げて、もう一回合成から、ピンアサイン、ダウンロードまでおさらい。少し前にやっていただけにエラーが出てもあぁ、これかとすぐ納得。とりあえずソースコードを書いてから一通り通すところまでいったから、明日基板にチェック端子でもつけておけば良いか。そういえば、DesignWave誌でX社のFPGAが付録なのだな。例によってブロック崩しでも移植してみるか。
夜になって、先日「○○日に発注したのにまだ届かないぞ!納期教えろ!」と言った積もりの英文メールの返事がきた。一応下手くそな英文でも理解してもらえたようだ。「I apologize for any inconvenience. this will ship today.」つまり、「すみませーん、今日出ます」か。直後にTracking#が入ったメールが届いたから大丈夫だろう。

12月10日
とにかくレガシーポートが無いと困るということでその大きさ、重さを我慢して使っているHP/Compaqのビジネスノートとかいうnx9005。液晶画面は1024x768なのだけども、やっぱりちょいと窮屈である。表示される領域は1024x768というのは仕方ないとして、せめて仮想スクリーンくらいできないものかと思って、何となく画面のプロパティの詳細設定でモニタのリフレッシュレートを指定範囲外の値にしてから画面モードを見たら、画面モードが増えて2048x1536ドットまで選択できるようになっている。物は試しと設定してみたら当然のように仮想スクリーンモードになった。もっと早く知っていればもっと広々と使えたのにな。

12月11日
そういえば、入出力バッファはどうやって記述したんだったけかなと、Handel-Cのマニュアルを検索。あぁ、bus_tsを使えば良いのか。とりあえず使ってみようということで、いろいろいじっていたが、何故かうまくいってない。出力が全然でないし、入力データを7セグのLEDに表示させたはずなのに、全然動かないとは何事だろう。ひょっとしてPLLが上手くいってない?と思ったけれども、考えてみたらLEDはダイナミック点灯させているのだから、クロックが上手くいっていなければ動くはずがないだろう。
頭を捻って気が付いたのはLED処理ってプロセスみたいになっていてCALLして起動したらずっと表示し続けるのだから戻ってくる筈がない。メインの処理とpar{}して並列実行かけなくては駄目に決まってるではないか。
修正して無事終了。それにしても、あたりまえとはいえ、やっぱりハードウェアは速いな。Cの1行が1クロックで処理されるわけで(par{}でくくれば複数行が一緒に1クロック)。たとえ10MHzという眠たいようなクロックでも1行が100nsで処理。仮にマイコンの10命令くらいに相当するとしたら100MHz、5行くらいパラに動かすと500MHzで動いているようなものだ。20MHz動作にすれば1GHz、40MHz動作にすれば2GHz相当か。

12月12日
Designer4.0でのバグフィックスを掲載しておく。4.1に引き上げれば済む話だけども、「上げればなおる」ということすらどこにも書いていないようだ。
服が段々散乱してきたので整理。それにしてもニット系が多いなぁ。歩き回っている時にお手頃そうなのを見つけると衝動買いのようにして買っているのが原因だと判ってはいるのだけども。いくつかもう着ないだろうという物を破棄しながら、春夏物や秋口向けっぽいのを衣装ケースへ。しかし、ざっくり目なニットはかさばるなぁ。シーズン終わったら圧縮パックしてみようかな。
そんなこんなで掲示板でも紹介されたPSoC Expressまだどんなものかは見てないけれども、能書きを読むともう少しシステムっぽいレベルでつなぐ相手を決めてゴニョゴニョするとPSoCの中身を作ってくれるというものらしい。明日にでもちょっと試してみるかな。

12月13日
PSoCの新しい開発ツールとかで、ダウンロードしてきたPSoCExpressなるものを動かしてみた。PSoCの存在そのものを意識せずにI/O仕様(入力はたとえば温度センサICのLM35を選ぶといった具合にして相互を結線してビルドするとプログラミングファイルができるという具合らしいのだけど、まだ相互結線のやりかたが良く分からない。あちこちいじったけどもそれらしいメニューも見つからないし。ひょっとして3ボタンマウスでないと駄目とか言うのか?
ちょっと横に置いておくことにしてHandel-Cで実験用の回路記述。楽々である。あたりまえのことだが、楽である。もっと安ければ自腹を切るのだが、定価1000万円ではいくらなんでも手が出ない。

12月14日
ぼんやりと書いていたら段々破綻してきた。これではつじつまが合わないな。とはいえとにもかくにもCであるおかげでこれが駄目ならこの部分を切り出して別関数にしてpar{}で並列実行かければ良いやと、まぁ実にお気楽である。
さて、とりあえずクロックをデータに同期させる部分は別出しにしておかなくては・・とか、やはり内部処理はパイプライン化すべきだなとか、あれこれ実験回路を組んではロジアナで波形を見る。
ある程度方向が決まったら一気に書き殴ることにして、今は実験jしながら良い方法が頭に浮かぶのを待つとしよう。

12月15日
都内某所(複数)に怪しいユニットを持参してあーだこーだと。来年の為の布石なのだけども、果たしてうまくいくのかどうか。まずはボチボチと回路を考えなくては。
とりあえずIVBが無くなったのと、PSOCEVAL1を扱える状態になったので、SHOPページ更新。

12月16日
またツケまわしな新幹線。公共事業が戦争だというどこかの国よりはまだましかとは思うけれどもね。これから少子高齢化ということを考えたら長期的には人の住むエリアを絞り込んでいく方向に進むしかないのだろうから、それぞれの拠点間の交通網に重点投資して低コストでメインテナンスしていけるような仕掛けを作っていく方向じゃないのかな。
というところで、データのサンプリングをサラッと書いてみる。考えたらUARTとそれほど大きく違うわけでもない。とりあえず単純にビット同期をかけたので、ノイズが入っても同期しようとしてしまうが、ご参考ソースならこれでもいいだろう。


12月17日
昨日パラッと書いた物でUSBデータのサンプリングをやってみる。動いているようなのだが、しばらく動かして様子を見ていたら突然ロックが外れたような動作をすることがある。全くデータが取れなくなってしまう。内部の変数の値などをピンに出しながら動きを見ていたら、サンプリングのタイミングとD+/D-の変化のタイミングによって片側の変化だけ取ってしまうことがあるようだ。
'10'->'01'の変化が'10'->'00'->'01'というように見えてしまって、'10'からEOPになったように見えてしまうという、基本中の基本をついうっかりというところ。寝ぼけ具合に苦笑しながら、ソースを修正して正常に取り込めた模様。
さて、USBを相手にするのだとビットスタッフィング対応は必須だな。

12月18日
何を今更!と言われそうなのだけども、CPLDならぬSPLDを使う気になってきた。山と積んだSPLDをちょっと使ってやろうかという程度のことなのだが。確か昔Vantisのツール、MACHXLで作っていたのだが、既にその環境も飛んでしまっているし、VantisはLatticeに吸収され、ライセンスを申請するところもどこなのかということすら怪しくなっている。
ウロウロとしていたらこんな所で、「MACHXL 2.1 software is now freeware,」なのだそうだ。そういえば、SPLDと言えばPALASMだよなと思ってこちらも探してみたらここではシェアウェアだとか言ってる。でも、このSoftwareDocumentを開いてみるといきなりタイトルが「MACHXL Software User's Guide」となっているということで、結局同じものなのか。とりあえずJEDECを吐けけるところまで行けば良いのだけどな。

12月19日
どうもマウスの具合がおかしい。オプティカルマウスなのだが、突然消えて無応答になったりする。試しにノート用でずっと使っていて快調なものを使ってみてもやはり突然動かなくなると言うことが頻発。
ケーブルがへたったのかと交換してみたけれども駄目。こうなるといよいよHUBの問題か。騙し騙し使っていたのだが耐えかねて買いに行った。今はUSB2.0のハイスピード対応ハブばかりなのだな。一番安いのを買ってきて使ってみたら今までやたらとコケていたのは何だったのかという位順調となった。ヘタったハブは後でバラしてみるかな。
というところで、とりあえずあれこれ考えてPALASMな環境を作ることに。回路図はどうやらOrCADのSDTIIIとかいうから、SDT+386になる前のバージョンでなくては駄目なようだ。持ってはいるけども、今更インストールする気にもなれないし、素直にPALASMで書くことにするか。どうせ大したロジックでもないし。手元の16V8か20V8あたりが焼けるところまでもっていけばいいだろう。

12月20日
PALASMをインストール。オリジナルはFD複数枚に分けてディスクを入れ替えるようになっているけど、実は1ディレクトリに納めておいて、このディレクトリをSUBST E: C:\hogehogeというように、仮想ドライブに割り当ててINSTALL.EXEを動かせば良いようだ。
OrCADインターフェースが昔のOrCADでないと駄目というのはどうやらOrCADのスケマティックエディタなどを直接呼び出しているというところにある模様。同じ名前のプログラムをこしらえて、ここから改めてSDTを呼ぶようにするとか、手はあるかもしれないな。

12月21日
米国はすっかりクリスマスらしい。メールへの応答も悪い。こればかりはどうにもならないのだな。
というところで、PALASMをちょっといじってみる。とりあえずPALASMとしたら画面が消えて真っ黒。これはたぶん英語モード用なのだろう。タスクマネージャで殺してから、再びDOS窓で、USモードに切り替えてから再度挑戦状である。どうにかそれらしい画面。1991年のCopyrightが懐かしい。あらかじめコピーしておいたサンプルソース(TUTOR5.PDSとなっていた)を読み込ませるにはディレクトリを変更するのか。Retrieve existing designでいちいちファイル名指定がいるのかと思ったらワイルドカードを使えば良いようだ。
とりあえず読み込んでRUN->Compilationでコンパイル完了。何となくJEDECもできたし、波形もでてきたけども動くのかどうか。手元のユニバーサルプログラマでは22V10は対応できないという、ユニバーサルというには少々頼りない。そろそろもう少しまともなプログラマの一つも買っておくべきか。明日、20V8あたりで何か作って確認しよう。

12月22日 PALASMを少し勉強。TUTORIALという名称のつくファイルがいくつも入っているのだが、TUTORIALそのものが見あたらないという、ちょっと意外な展開だが、こういうものは中身を見れば何か分かるだろう。後ろの数字の番号順に開いて、何故かMACHXLの中にあるリファレンスを眺めていたらだいたい様子がつかめてきた。
試しに手元の半ユニバーサルプログラマでも書ける20V8を使って一つ作ってみる。簡単な組み合わせ論理と、クロック同期の回路である。何度かエラーメッセージと対面しながらも何とかやってみて、コンパイルは通るようになった。続いてシミュレーション用のテストパターン作成である。こちらも見よう見まねしながら、Language Referenceを頼りに記述。シミュレータを動かして波形を見る。なかなかDOS時代らしい、チープであるが、わかりやすい画面である。
シミュレーションはうまくいったようなので、生成されたJEDECファイルを半ユニバーサルプログラマで焼いてブレッドボードに実装。テスト信号はPSoCで簡単に作成して接続してやる。こういうときにも電源だけつなげば動いてくれるPSoCは便利である。LEDを付けて電源を入れたら予定通りの動作。これで一応パスはとおったわけだ。
それにしても探すと出てくる出てくる22V10ファミリ。数百個という単位であるのではないかというその数と手元のプログラマが非対応というのがやはり悔しい。本格的なユニバーサルプログラマというものも一つ持っておればいろいろ使えるのだし、この際買ってしまおくとするか。この1年頑張った自分へのクリスマスプレゼントだよなというのはクリスチャンでもないくせに勝手な理屈だから、時期をはずしたお歳暮か。
ずっと前から何となく気に入っていたし、Cypressが出しているいろいろなデバイス毎の専用プログラマの製造元でもあるハイローシステムのALL-11C2。USB対応でないのがちょっと惜しいけど、これなら大抵のものには対応できる。アダプタを付ければPSoCも書けるのだな。

12月23日 PSoC専用サイトのpsoc.jpなるものがとれたら面白いなと思い、試しにhttp://www.psoc.jpとしてみる。と、既に使われていた。「パソック(Personal computer School Owners Club)」。パソコン教室オーナーのネットワークなんだそうだ。
再びUSBのバストレース。いろいろ考えていたけれどもやはりそれぞれのフィールド毎に受信するルーチンをこしらえてプロトコルのシーケンスに従ってそれらを順次キックしていくほうが簡単そう。
問題は、一つ前の処理が終わったことを通知、それを検出して次の処理のキックをかけて、その指示が受け取られるというところでしっかり1クロックずつかかってしまうということ。ちょっと小細工が必要かもしれないな。

12月24日 世間ではクリスマスイブということだが、こちらは相変わらずである。ちょっと商社の方と打ち合わせ。こちらの話しも上手くまとまって転がり出すと良いのだけどな。発注しておいたものが届いたので中身を確認して発送しておく。もう米国側が動いていないので物品の動きはストップ状態。年明けまでのんびりしろということだな。

12月25日 先日注文しておいたALL-11C2が届く。代金を早速オンラインで送金。月曜日には相手の口座に入るだろう。思ったより大きいな。まずは期待の22V10だよなということで、ちょっと発掘したPAL22V10-15PCを焼いてみることにする。ソフトは例によってバッテリ切れの古いノートPC(この厚さはラップトップか・・)にインストール。
簡単に結果が分かるようにと単純にクロックごとに出力が反転するだけのものを作ってコンパイルしてJEDECファイルを作成。PSoCで500ms周期位のパルスを作ってLED点滅で実験することにしてみる。JEDECは無事にできた模様なのでマニュアルも読まずにあれこれいじって焼いてみたら一回書き込まれたかのような表示が出た。が、その後改めてやってみるとベリファイエラー。妙だな。消してやり直すかと思ったらイレースメニューが選べない。
そうか、PALってワンタイムだったな。それなら、こっちはどうだとガサガサして出てきたのがPALCE22V10Q-25である。こちらを選び直したらイレースメニューが出た。念のためPALASMのソースでデバイス名を入れ直して再度コンパイル。できたJEDECを指定して焼いてみようとしたら今度はIDエラー。電源を入れ直したり、ソフトを再起動しても変わらず。これまたいじっていて分かったのがデバイス名の選択が違うということだった。/5とか書かれた方を選ばなくては駄目だったらしい。これで再度やってみたら無事書込終了。PSoCと接続してみたらまじめに分周動作である。
最初のエラーは何だったのか。たぶんあれこれいじっていたからうっかりセキュリティをかけてしまったのか、あるいは全然関係の無いデータで焼いてしまったかのどっちかだろう。
とりあえず動いたというところで一安心である。

12月26日 何気なく検索してみつけたその名も「Kanda.shop」秋葉原と言わず、神田というあたりが渋いではないか。
というところで、また思い出してUSBをちょっといじる。それぞれのフィールド毎に判定処理回路ををこしらえて、メインのところから順次シーケンスに従ってキックするように書いたら全然動かない。あぁ、オーバーサンプリングレートがたかだか4倍なのに、フラグセットして、チェックして、新しくセットしてそれを拾って・・なんていうのを1クロックずつ進めるんじゃ次のラッチタイミングに間に合う筈がないじゃないか。サンプリングの都合で1クロックはばらつくことを考えると次のデータ取得までは3クロックになってしまうこともあるわけだから、2クロックで処理しなくてはならないか。やはりシリパラ変換して8ビット単位にまとめて始末をつけさせるほうがずっと楽ができるな。と思って仕様書を眺めてみたら、あぁ、やっぱりうまく考えられているじゃないか。それにしても久しぶりにやるとずいぶんレベルが落ちてるものだな。こんなものすぐ気付よなぁと独り言。

12月27日 ALL-11C2で昔手に入れておいたFLASHメモリを使ってみる。MOSEL製とSYNCMOS製。とりあえずうまく行っているようだ。
さて、そんなところでとあるところで教えてもらった「Weather Toaster」なんと、今日の天気を予測してトーストの焦げ目で教えてくれるというスグレ物らしい。発想が島国だな。

12月28日 毎度恒例の小田原詣で。ついでに一夜城、下りてきてから今度は箱根を回って、いくつか見たかった場所を回って帰宅する。
帰ってきてしばらくメールチェックなどをしていたら突然アクセス不可に。モデムやルータの電源を入れ直しても駄目。試しにルータに向けてpingを打ってみるけれども全く応答なし。ハブが壊れたかとルータに直接ノートPCをつないでpingを打っても駄目。ルータが死んだか。それにしても変だな。とりあえず、リセットを押しながら電源を入れて初期化。設定画面を出してIPアドレスの設定などを行って再起動したら無事に復旧。そろそろルータの予備機の用意も考えた方が良いのだろうか。

12月29日 動かなくなったという大きなビジネス用電卓をもらった。叩いてみたら何となく動いていたのだが、突然キーを受け付けなくなる。裏にリセットボタン用の穴があったので、つついてリセットしてみたけれども表示が0になったまま動かない。ところがしばらくあちこちみているとまた突然動き出す。これは断線か、ショートか。
とりあえず裏蓋をあけて見ると堂々としたやたら太いパターンの基板。スルーホールがメッキではなくてハトメの小さいようなものが打ち込んである。これで断線というのはちょっと考えにくそうだ。さらに基板をはずしてキートップ側。シリコンゴムシートに凹凸が作ってあって、これがキーの接点兼バネ代わりというありがちなパターン。剥がしてみると何かがポロッと落ちた。ゴミか。
どうもこれが悪さをしていたようだ。ざっと拭いて再組立してみたら調子よくなった感じがする。もうしばらく使ってみるとするか。

12月30日 気合いが入らない。だらけてしまっている。灯油が一缶なくなったので、在庫を出してこようとしたらなにやら漏っている気配。よく見たら蓋が割れて隙間ができている。とりあえず水は入っていないようなので、新しいポリタンクを買ってきて詰め替えて一缶買い出しに。
セルフのスタンドで灯油を入れるというのもなんだか妙な感じだな。いつみてもみんな18リットルぴったりを狙っているのが何かおかしい。18ぴったりしか入らないということは無い筈なのだけどもね。と言いつつ自分の18ぴったりを狙ってインチングしていたりするわけなのだが。

12月31日 というところで、一応誰が決めたか年末大晦日となり、今年もTHE-ENDである。(太陰暦だとまだ11月20日なんだけどね)
珍しく結構な量の雪が降っていて、このままではまずいなと軽く雪かきしておく。雪国に比べたらまったくもってたいした体積ではないはずの量なのだがそれでも体に結構きつい。
気温が思ったより低くないためか、手袋無しでも大丈夫なのだが、とにかく重く、べったりとスコップに張り付く雪を、Δv/Δtを大きくして振り払わなくてはならないので余計Fが必要になるのだな。

というところで、今年最初の抱負どおり無事リフトオフできた一年であった。