(M)のドタバタ編集記 2004年1月号(?)


●1月1日
あけましておめでとぉ〜ございます!

 『寝正月の予定…(^^;)』なんて書いてましたが、寝てる暇ないです(^^;) さすがに元旦の今日は会社には行きませんが、その代わり私用のあいさつまわりが今日に集中!?

●1月2日
 さっそく今年の仕事始めです(?!)
 年末年始足掛けで作ってる例のブツですが… 不安材料?が2点。まず立ち上げの手順をもっと簡素化しないと。PCIバス側から、いつでもバックエンド全体にリセットかけて再起動/最初期化をかけられればいいんですが、向こうはROMモニタ型のデバッガを乗せたCPUボードなんで、ユーザーアプリダウンロード後はリセットかけられない(^^;)という状況なので、なんとか間のハードウェアで確実な初期化処理ができるようなしかけを作らないとならない点(例えばPCI側からリセットをかける場合、リセットレジスタをセットしてすぐにクリアしてしまっても、CPUボード側がリセットされたことを取りこぼさないようにする仕組みをFPGAの中に作りこんでおくとか)。
 もう1点は、受信バッファオーバーフロー時の処理。とりあえず、起動は手作業で定常状態にもっていったとして、安定してping応答している状態の時に、ホストであるWinマシンを再起動時すると、起動時にいろいろパケットを送りつけてるみたいで、そのタイミングでバッファオーバーフローが発生しているらしく、以降の動作がおかしくなる場合が…
 ん〜 DP8390奥深し…(去年は「楽勝ぉ〜とか言ってたくせに^^;) もう少し受信バッファ管理ルーチンを見直さねば…

●1月3日
 今日も昼過ぎから会社で作業。ドライバの筆者からの、レジスタ構成についてのアドバイスを受けて一部設計変更。 で、間をとりもつマイコンのプログラムに手を入れたら… さっきまで動いてたのにウンともスンとも言わなくなった(ありがちな状況だ^^;) ちと頭冷やしてから続きをやったほうがいいな…

●1月4日
 さっそく、今年初めての打ち合わせを某筆者と… お年賀の一つも持っていけばよかったな(すいません)
 まずは、今年の活動方針会議(なんだソレ^^;) 「作るオリジナルコンピュータ」およびそれに付随するさまざまなインターフェース技術とソフトウェア技術をね、いろいろと…(笑)
 それと、某SH-4 CPUボードの一部を改造してもらい、さらにこいつの内蔵メモリをかきあつめてリニアにつなげて何Kバイトまで行くかテスト。仕様上/計算上は112Kバイトくらい行きそうなんですが… あぁ〜なるほど、「M512」っていうのはシングルポートしか構成できないメモリなんですね。じゃ、デュアルポート構造なら最大94Kバイトまで行けるってことですね!(なんだよ94Kって!^^;)

●1月5日
 さて、2004年も今日から仕事はじめです。Interfaceは、とりあえず年末までに初稿は返しているので、あとは再校を片っ端から読んで返すのみ!
 ドライバ作成をお願いしている筆者さんから、レジスタの仕様が一部不明でドライバを記述できないというクレームが(^^;) すいません。まともなドキュメントを用意してないので、レジスタの挙動に関して勘違いがいくつか… えぇ〜と、受信完了はですね… 割り込みはですね… (^^;) メールで「あぁ〜だ、こぉ〜だ」書いてるなら、ちゃんとドキュメント化したほうが早い気も(汗)

 ATAPIはハタから見てる分には転送方向がわからない? ん〜 そうか? やりようはいろいろあると思うのだが… まぁ〜たしかに、ベンダ独自のパケットコマンドを発行されると、転送方向はわからんか…

●1月6日
 4日に改造してもらった某CPUボードの案件。う〜ん、状況に変化はないですな… あと考えられる問題は何だろ… 回路構成はコレとまったく同じなんですけどねぇ〜 なのにCFカードのタプルが見えないって、どゆこと?!?!
 夕方は町田の筆者のところへ打ち合わせに。うぉ〜 このメモリボード、いったい何Gバイト積んでるんだろ… 山のようなDIMMの数(^^;)
 さて、打ち合わせから会社に戻って作業開始。4日の初打ち合わせで伝授していただいた技を使って、本当に94Kバイトメモリが実装できるのかテスト… おぉ〜 ホントにアドレス00000h〜177FFhまできっかり94Kバイト、途中にイメージもなく読み書きできまっせぇ〜!(爆笑)

●1月7日
 とりあえず、今日中に返さないとならない章は読んでしまって… 午後から鶯谷で打ち合わせ。今日から来週頭まで、次の次の特集の件で打ち合わせが連続します。まぁ〜これを乗り切れば、あとは原稿を寝て待つだけ(をぃ)
 まずは、こちらの社長さんとお話。そうこうしているうちに、某デバイスの代理店の方も到着。この特集のときにいろいろとご迷惑(!?)をおかけいたしました。えぇ、その代り…というわけではありませんが、次の企画ではぜひ、積極的にアピールしていただければ…(汗)

 もう春モデルなの? で、興味深いのはHXシリーズ 「SD/MMCカード対応!」っとあったので、ナニぃ〜!?っと思ったら、こいつらはCF変換アダプタで対応ってことね…(^^;)

●1月8日
 今日は午前中に六本木方面で打ち合わせです。ん〜 ここなら三田線の駅からでも歩ける距離だが… 打ち合わせ前に迷って遅刻するのもナニなので、素直に最寄の駅から歩こう(^^;) 昨日に引き続き、次の次の特集の件で。この特集は第1部か要だと思っておりますので、ぜひ、本家のかたに書いていただかないと、特集全体が締まらないので… よろしくお願いいたします! 打ち合わせの帰りは、三田線の駅まで歩くことに… なんだ、こっち経由でも十分歩ける距離ぢゃん!
 ん〜だめだ。LVSDよくわからん(汗) そうなんですよ、コレのサンプルデータにはLVDSは入ってないんですよぉ〜 っということで、この週末に講習会の予定(ワラ)

 高密度MD規格キター! 毎年1月8日にオーディオビジュアル関連で重大な規格発表があるって話は、いまだ健在ってことか?(それはS-VHSやEDβの時代の話でわ?) さっそくこのあたりでも喧々諤々言われているようですが… たしかに、PC用ストレージとしてみると、最大10Mビット弱の転送レートは、はっきり言って遅いので使い物にならないと思うけど(USBで接続してマイコンピュータにドライブが見えるのはあくまでおまけ!)、やっぱりこいつは音楽用デバイスってことで理解すれば、けっこういい線いくと思うんだけど。実際の物は6月か… ま、物を見てからだな…

●1月9日
 おっと、次の特集の原稿、さっそく届きました。それも2章分も! 早め早めに頼んでおくもんだ!(^^;)
 駄菓子だがしかし、順調に行ってる章だけではありません…(涙) ドライバの筆者から緊急コール… PCIデバイスに割り込みリソースが割り当てられないそうな! そんなハズわ!

 なにぃ〜 なんてアホやなぁ〜 なんでこんなの気が付かなかったんだろ… リードアクセステストしかしてなかったんかな…

●1月10日
 ってことで、今日はFPGAに詳しい筆者さんのところで、FPGAで差動伝送の使い方の講習会(^^;) へぇ〜 HDLソース上は、1本しか信号名を書かないんですね。ふむふむ、なるほどなるほど… やってみます!
 ドライバの筆者さん、まだPCIボードがうまく動いていないらしい… う〜ん、今回のNICエミュレータが原因ぢゃなくて、他のところに原因があるとしか思えないんですが… 時間が無いってのに、こんなところでつまづくとわ…

●1月11日
 ドライバの筆者さんから、割り込みリソース問題が解決したとのこと。BIOS設定の「PnP OS」の設定が「Yes」になってると、マザーボードオンボードのPCIデバイスしか見ないで起動してしまうそうな… しょぉ〜もないところで2,3日ほどロスってしまいましたが、気を取り直してよろしくお願いいたします!!

 東洋閉店だそうで… その昔、1度だけ待ち合わせ場所に指定されて行ったことあるけど、上にあるソフ○プに隠れてしまって、場所がわからなかった覚えが…(あそこ、大音量でテープ流してるし^^;) もちろん当時は「ブロードバンド対応」ではなかったですが。

●1月12日
 今日は午後から筆者さんと作戦会議! 来ました来ました、RJ45実装のコネクタ基板が!(汗) さっそくこれにはんだ付けして、Stratixキットとつなげてみます!
 ってことで、打ち合わせ後いきなりはんだ付け作業開始。とりあえず、NE2000とつなげてパケット送信テスト! …ん〜 ロジアナの画面に何か波形が出てきました… んが… えぇ〜? これがプリアンブルぅ〜? ん〜 どのあたりが5MHzなんだろ… こんなもんなのかなぁ〜 こっちの10Mハブだとどうかな? …あんまし変わんないね… うむ… いまいち解せない波形だな…

 昨日、PCI問題が解決した筆者さんから、今度は、今度はMACアドレスが読めないという報告が… ん〜 そんなに面倒なアクセス手順ではないはずなんだけどなぁ〜

●1月13日
 ↑失礼しました… レジスタ仕様を書いたドキュメントが間違ってました… 陳謝! えぇ、シリアルROMアクセススタートビットはビット31ですが、もう一つ、ビット30に読み書き方向指定ビットがありました! こっちもビットを立てないと、シリアルROMの読み出しができませんです!
 さて、今日は午後1番と夕方に2件、次の次の特集企画の打ち合わせがあります。まず向河原駅まで(打ち合わせ先がどこだかバレバレやな^^;) とはいえ、私の場合はいつも武蔵小杉まで行って、あとは歩きます。渋谷で東横線に乗り換えると… ん? ホームの時刻表のところで、何か張替え作業してるな… ん? は! みなとみらい線!? そぉ〜か、そろそろ開業なんだっけ…
 武蔵小杉駅から向河原駅を目指して歩き。N社さん、またでっかい建物建ててますねぇ〜 以前行ったときは敷地の妙に奥まったところにポツンと建てたなぁ〜とか、玄関ホールが妙に広いなと思いましたが、こういうふうにもう1棟立てる&あのホールは二つの棟をつなぐために途中まで伸びてたんですね。
 んで、打ち合わせに指定された場所は… こ、ここ? てっきり喫茶店か何かだと思ったんですが… トントン「失礼しまぁ〜す」 おお! ここが噂の“秘密基地”ですか!!(^^;)
 で、次の打ち合わせは新宿です。えぇ、NSビルにオフィスを構える某A社です。NSビルって真ん中が吹き抜けで、ぐるっと一周できるわけですが、その某A社って、オフィスが西側で、受付や打ち合わせルームが東側にあるので、西側のエレベータで上がると、受付までぐるっと半周しなきゃならないんです(A社での打ち合わせはよくやっちまいます^^;) で、打ち合わせのほうはつつがなく… よろしくお願いいたします。

●1月14日
 午前10時に新横って、結構つらいっす(^^;) でもなんとか時間どうりに間に合いました。かくかくしかじかで、こういう切り口で原稿のほうお願いします。…ってことで、DWM編集部N編集長! ごめんなさい、その企画、こっちでもらっちゃいます(^^;)

 さて、今日は午後から編集会議です。えぇ〜次の特集ですが、ハードが順調に遅れております(汗) それと、増刊の編集作業も始めないとならないので、特集入稿がかなり遅れそうです。みなさん、一般記事や連載の入稿を早め早めにお願いしますぅ〜(^^;)

●1月15日
 今日は川崎方面に特集の件で打ち合わせ。これで次の次の特集は完璧だ!(^^;)
 ドライバの筆者さんより… なんかパケットが出てないという話が… え? またドキュメントの不備?(滝汗) いやぁ〜 動作確認用のサンプルプログラムは、ハード作った本人が書いてるから(^^;)、気づかないうちに仕様と違う動作をインプリメントしている可能性も(をぃをぃ) ってか、現状のバージョンはエラー処理をちゃんと実装してないので、いろいろ細かいところにほころびがあるのも事実なんですが(^^;) 安定動作版を早く用意しないとな…

 そうそう、次の増刊の編集作業、そろそろ始めないとな… 制作課の人から原稿の催促が(^^;) 来週から入稿できるようがんばりますぅ〜

●1月16日
 明日、次の特集の筆者さんと打ち合わせするので、その前にいろいろ下準備。抵抗やコンデンサなどいろいろとっかえひっかえしても、状況に変化は見られません。ん〜 そんな程度の問題ぢゃなくて、根本的に、どっか違う気がする…(汗)
 あとは、パケット送受信テストのために、NE2000用にテストプログラムを組まないとな…

 いやぁ〜 12.1インチでSXGA+は、かなりつらいと思うぞ…(14.1インチでSXGA+を常用する人間が言うんだから間違いないって^^;)

●1月17日
 今日は夕方に次の特集の筆者と打ち合わせ。こんな波形になるんですが、どうですかね? ここ、途中で“L”に落ちてるところ、ここが“H”のままだと、綺麗なプリアンブルになるんですけど… これは何が原因ですかね?
 次は送信側を確認するために、オシロを使って波形を見てみることに。手元にあるのは、250M帯域のアナログオシロしかないですが、これでも大丈夫っすかね? ケーブルの先の受信端子に負荷抵抗をつないで、その両端の電圧を見る… 電圧的にどうですか? 少し低め? まぁ〜ツイストペアケーブルを100m引っ張るとかしなけりゃ動きますって(^^;)

 コレってどういう利点があるんでしょ? モニタはちゃんと2つ独立してコネクタがあるのに、キーボードやマウスはこんな無理やりだし(^^;) 結局、片方でCTRL+ALT+DELキーを押したら、両方リセットかかるんでしょ?(^^;)

●1月18日
 昨日に引き続き、ロジアナの画面とにらめっこ… こんなんでプリアンブルの判定なんてできないよな… ロジアナでは差動ドライバを経由して通常の'H'/'L'に変換された部分しか見れないので、差動ドライバの入力に、実際にどんな波形が入力されてるかは不明。ん〜 どぉ〜も波形がいまいち気に入らない… FPGAの差動モードの使い方がおかしいのか…
 手元のオシロで見るって言ってもなぁ〜 数十ms周期に対して数百nsオーダーのクロックパルスが1発出るだけじゃ、普通のアナログオシロぢゃ見れません(涙) っということで、ディジタルストレージオシロをもってる筆者さんに、「そちらに行ってオシロで波形とらせてもらっていいですかぁ〜?」とメールを打つ。
 そうこうしているうちに、ドライバの筆者さんからも「安定版まだですかぁ〜」メールが… 今日は徹夜で作業して仕上げるか!

●1月19日
 ↑やっぱり送信バッファは2面にして、実際の送信処理と次の送信データの送信バッファへの書き込みは同時に行えるようにしないと、パフォーマンス上がらないよな… とはいえ、ここでこの改造作業に手をつけると、さっきまで動いてたものが動かなくなるので(笑) とりあえずそれは次の機会においといて…
 ってことで、約束どうり、お昼前には安定版をメールで送付。
 午後は、某プロジェクトの件で、某筆者さんにきていただき、編集長と3人で打ち合わせ。
 さて、そろそろEthernetパケットのCRCについて調べておかないとな… CRCをハードで計算するにはどうやるんだっけなぁ〜 っと思ってたら、こんなサイトがあるそうな… CRC16とか、USBのCRCとか、規格ものはそろってるってか…(^^;) でも、人の書いたソースぢゃ記事にならないので(汗)

 学生時代にコレがあれば、東京の知り合いん家にこれを置かせてもらって、東京でやってる番組を見られたのに…(その頃はインターネットはありません!) 実家は県境だったので隣の県の民放もみれたけど、基本的に私が学生の頃は民放が2局しかなかったんですよ!(涙) いまは4局そろってるけど(あんな田舎に4局あっても、CM出す企業がないと思うけど^^;)

●1月20日
 さて、今日は昼過ぎに筆者さんところでオシロ測定大会(笑) 今日は荷物が多いっす。なにせ、ノートパソコン2台と小型デスクトップパソコン1台(を!) こういうテストの場合、直接レジスタをたたいて任意パターンのパケットを送出したり、入ってきたパケットは誰宛でも&エラーがあっても受け取ってダンプ表示する必要がありますが、それが可能なのは年末に覚えたNE2000しか無いもんで(^^;)、手元にあるNE2000互換のPCカード型LANカードを、それもそのノートパソコンのCardBusブリッジを直接いじってイニシャライズ&コンフィグレーションして使ってます。そのためのノートパソコン1台と、もう1台はいつものロジアナ制御用の古い98ノート(まだ動いてるんかい!)
 さっそく機材をセッティングして、波形を見てみる… ん〜 やっぱりこんなモンですよね… う〜ん、こんなんでまともに受信できんのかなぁ〜 あと他に何かLAN機材あります? で、筆者のところにあった10Mのハブをテストに使う… おぉ〜 これは綺麗な波形が出てますね。これならテストできそう… すいません。このハブ、貸していただけません?(汗)

●1月21日
 お、特別価格キャンペーン の案内が公開されましたね… えぇ、みなさんお安くしますので買ってください(^^;)

 とりあえず、出せるところは出してしまえ! ってことで、増刊の入稿開始!? 前半はコレコレをベースに、月刊誌掲載時に泣く泣くカットした部分を復活させて収録します。えぇ〜と、落とした図面はどこいったっけな…
 夜、筆者さんに無理言って、例のディジタルオシロを貸していただくことに。ありがとうございます。これで戦闘準備(??)はバンタンです!!

●1月22日
 増刊担当と特集担当がモロ重なってるので、机の上が両方の原稿でごっちゃになってます(^^;)
 まずは特集。とりあえず、とっくの昔にいただいている特集2章分はさっさと編集してしまいましょう。明日には入稿できます。それと、Linuxドライバの章も来週早々には入れられるでしょう。問題は、ハードウェア編なんですが…(滝汗)
 次、増刊。今月中には原稿を送稿を終わらせないとまずいですよね? ん〜 特集次第かな…

 ドライバの筆者より… まだ動きませんとのこと。ん〜 …あと考えられる原因は…
 実は前々から思ってたんですが(^^;) Ethernetの最小パケットサイズって60バイトですよね?(FCS含まず) ARP応答のパケットって、60バイト未満ですんぢゃいますよね? 60バイト未満なら後ろにゼロなり何なり付けて、合計60バイトにせにゃならんですよね? この処理って、どこで誰がやってます? すくなくとも今回設計したハードは自動でそんな処理はやらないっすよ! プロトコルスタック? カーネルのソースみたけど、誰もやってないっぽい? ってことは… その処理はドライバがやらなきゃならないことなんでわ?!?!

 ずっとずぅ〜っと前に頼んでいた原稿がついに完成! 忙しい中、時間を割いてドライバの作成&原稿を執筆していただいいて、ありがとうございます!

●1月23日
 ↑じゃじゃぁ〜ん♪ 『祝! パケット送信動作確認』(笑) やっと動き始めたという報告が! 良かった良かった… え? でも、まだ安定して動作しないという報告も… すいません。安定性の件はこっちの問題だと思います(^^;) なんにせよ、ドライバのほうはなんとか動き出した模様です。
 そして、ハードのほうも問題解決! 波形がおかしいおかしい言ってた原因は…
  『ピン配置間違ってました(^^;)』
もっと他の資料もよく見ておくべきでした… ま、不具合の原因なんて、たいていはこんなもんですか(汗)
(しかし、あの接続でも、なんとなく波形が出ていたのが不思議だ…^^;)

●1月24日
 今日は朝から筆者さんがいらっしゃるので、はよ会社行かんとな。おはようございます。土曜日なのにすいません。えぇ〜と↑そういうわけで、なんとか動き出しました(笑) っということで、さっそく原稿のほうを… 第1章か第2章のところに、この用語の解説コラムが欲しいですね。それと、第5章の評価テストの章も大至急お願いします… で、時間もあまり無いので、筆者さんにはここで缶詰になって原稿を書いていただくことに…
 で、その間こちらは、なぜか増刊の原稿にアカ入れ中(^^;) すいません、何せ同時進行なもんで…

●1月25日
 今日は午後から出社してハードの動作確認。送信は自分のもってるクロックでそのままバイト→シリアル変換して順番に出していくだけなので、そんなに難しくありません。通信速度は10Mbpsですが、マンチェスタ符号で出力するので、20Mのクロックに同期してシーケンサをまわしていきます。よしよし、ちゃんとNE2000で受け取れてます。…もちろん、送信時のCRCはダミーなのでCRCエラーも出てますけど(汗)
 問題は受信ですね。内部5Mのクロックをプリアンブルで同期させて、それを4倍して20Mでシーケンサをまわして…なんて技は使えないで、結局内部100MのクロックでRxDをサンプリングし、クロックのエッジ変化点を見つけていくという方法を採るしかないですね。えぇ〜と、まずはプリアンブルの判定ロジックから… VHDLソースを見ると… こ、これで判定っすか? 見事な力技だ(^^;) これでクロックタイミングを合わせた後は、マンチェスタ符号のビット中央のエッジを判定して、'1'/'0'を出力していくってわけですね。をぉ〜 たしかに! ちゃんとマンチェスタ符号の信号が通常ロジック信号に変換されていきますよ。
 なんとなくパケットのやり取りはできたので、こっちからの送信データやNE2000からの送信データを変えてみたり… あれ? パケットサイズを長くすると、パケットの後ろが化けるな… やれやれ、先は長いな(涙)

●1月26日
 ↑昨日から、パケットが化ける原因を考えていたんですが… 実は評価ボードに実装されているのが33.333MHzだと硬く信じていたクロックが、実は違う周波数なんぢゃないか?という疑惑が… ってことで、子基板を外してその下に実装されているクロックを見ると… あ、あのぉ〜 『32.000』ってゆ〜数字が見えるんですが…?? 取説に「33.333MHz」って書いてるのにぃ〜(^^;)
 …っということで、そりゃHDLソースをいくら眺めても間違いは見つからないはずですわ。さて、半端なクロックが実装されている場合、どうしますかねぇ〜 20Mなりのクロックを実装するのが筋ってモンですが、そこはそれ、最新鋭の高性能FPGAですから、内部の逓倍回路でx倍して分周回路で1/yしてクロックを生成すれば、20Mでも100Mでも出力できます。クロックが生成できないFPGAをお使いの方は、お手数ですが、20Mクロックの載せてくださいってことで…
 これで最大サイズのパケットをやり取りしても、後ろが化けるなんてことはなくなりましたな。さて、そろそろCRC問題にケリをつけないと、まともなパケット送受信ができないんですが… さっきからいろいろやってるんですが、CRCが合わないんですよこれが…(涙)

 うむ、アップグレードは本当にやるらしい…(^^;) それでも当初予定の機能のすべてではなくて、3月くらいにまたあるとか… いつ完成するの?(^^;)

●1月27日
 ダメだぁ〜 CRC合わねぇ〜(泣)
 ねぇねぇ CRC演算の初期値(?)って、ゼロにするの?オール'1'にするの? HDL入門書のたぐいに出てくるCRC回路は、ゼロクリアになってるんだけど… 某カーネルのソースは、
   crc = -1;
ってなってるんで、オール'1'なんですけど…
 さらにですね、どうも送信時はCRCの計算結果をそのまま送り出すだけじゃなさそうなんですよ… 補数をとる? って、要はビット反転するってこと?
 ん〜 理論はどうでもいいから、実際に動いてるNE2000にあわせるのが正義!(をぃをぃ)

 おぉ〜 SXGA+搭載で1.5kgを切る2スピンドル機! いいかも! しかし、“Y”って型番はいまいちかっこ悪ぃ〜な(^^;)

●1月28日
 やっとCRCが合ったぁ〜(涙)
 あと残った問題は… 受信バッファの構成を大幅変更する作業は、VHDLソースをごりごり書き直せば済むのでたいした問題ではないにしろ、根本的原因が未だ不明なのは、100M対応ポートとまともに通信できないことか(をぃをぃ) 送信アイドル時の差動信号の処理が規格と合ってないのは認めるけど、そのせいなのか? 何枚かのLANカードやハブでテストした限りでは、100M対応ポートと接続しても、ちゃんと相手は10Mのモードでリンクしてるっぽいけどなぁ〜(まぁ〜リンクLEDはほとんどアテにならないそうだけど^^;)

 今日は本章2章分と、Appendixを2章分。ふぅ〜これで増刊は7割がた入ったかな?? で、次は特集か(T_T)
 第1章と第2章はとりあえず送稿できるとして、問題は第3章以降だなぁ〜 ハードの問題が解決しないと、いかんとも…(汗)
 そうそう、USBの企画の原稿も、デモ用プログラムといっしょに届いたんですが… すいません。いま特集が忙しくて、すぐには時間取れません… しばしお待ちを…

●1月29日
 やばひ… 一昨日、そして昨日と順調に入稿し、残り2章は今日と明日で送稿完了! …が理想パターンだったんですが… それは夢のまた夢となりそうな状況になりつつあります…(T_T)

 さて、CRCが合うようになったので、他のLANカードやスイッチングハブと、やっとまともにパケットのやり取りができます(^^;) で、いろんなLANカードをあつめてテストしてるのですが… やっぱり10Mと100Mに対応したLANカードとは通信ができないですね… スイッチングハブだと、何回かに1回だけパケットが通る感じ…(通ったパケットは向こうが100Mでもちゃんと受け取ってくれる) このスイッチングハブ、背中にモード固定のディップスイッチがあるので、オートネゴをやめて10Mbps/半二重固定にしてみましたが… あんまし状況変わらず… ん〜…

●1月30日
 特集もやらなあかんのですが…(↓後述) ちゅぅ〜ことで、増刊やってます(^^;) これで最後のエピローグの章以外は全部送稿しました! しかし、そろそろ頭の章の校正が出てきてもいいはずなんだが… う〜ん なんでも他の雑誌/書籍が遅れていて、増刊も遅れているそうな… じゃ、エピローグの送稿はまだ急がなくていいっすね?(←そういう問題でわなひ!)

 んで、その大問題な本誌特集ですが… もう月末でレッドゾーン突入状態なのですが… すいません、まだ原稿が…(滝汗) なにせ、まだハードが完全には完成してないから、原稿書くったってなぁ〜(泣)
 っつぅ〜ことで、筆者さんには明日も会社に来ていただく予定です。この週末にはなんとか…ってか、もうこの週末でできなかったらアウトなので、必ずセーフになるようにがんばりますぅ〜…

●1月31日
 この土日で解決できなかったら、非常にまずいことになりますよ! ってことで、休日出勤されている筆者さんに帰宅途中で巣鴨に寄っていただき、最終動作確認タイム(^^;)
 でですね、やっぱり10M/100M両対応のポートとはうまく通信できないんですよ… やっぱり、送信アイドル時に電圧差があるのが問題ですかね? ん〜 とはいえ、Stratixの差動はこうしかやりようが無いらしいんですよね… 無理やり'L'レベルの信号をワイヤードORして電流吸い込みで両方とも'L'に落としちゃう作戦(なんて強引!?)は、どうもうまい具合に動いてくれませんでしたし…
 ってことで、LVTTL出力による疑似差動でいきますか… ブリーダ抵抗かまして… あ、バッファはLV245でいいですか? LVならブリーダ抵抗いらない? じゃ、ダンピング100Ωだけ付けておきますね… で、FPGA中を書き換えて… で、リンクパルスの波形を見ると… 送信アイドル時は両方とも'L'なので電圧差が無い状態で、そこからいったん'L'/'H'を出して'H'/'L'を出してまた'L'/'H'を出して…って波形にしてみましたが… ん〜状況はあんまり変わりませんね… リンクパルス送信時は、'L'/'H'は不要でいきなり'H'/'L'にしていいんですか? じゃそうしてみます… HDLソース書き換えて合成してフィッティングしてダウンロードして… よしどうだ! …おお! なんかいい感じっすよ!? おぉ〜 やっと100Mスイッチングハブとまともに通信できた! じゃ〜クロスケーブルで100MのLANカードと直結… おぉ〜 ばっちり通信できますよ!! なるほど…やはり送信アイドル時に電圧差があると、オートネゴの判定でコケてるってことですかね…
 いやぁ〜 しかしまぁ〜、なんとかぎりぎりで10M/100Mのポートと通信できるようになりましたよ!(汗)
 さて、あとは受信バッファの構造をごりごりと書き直し… Linuxのドライバはすでにできあがってるので、それを修正しなくてもよいように、PCI側から見えるレジスタマップや挙動は、完全に同じになるようにしないとな… ってことで、明日までの宿題だ!


●2003年12月に戻るのだ

●2004年 2月を読むのだ


(M)のページにもどる

Interfaceのページへワープする!