FPGA を使った実践的システム設計の世界へようこそe こうして コンピュータ・システム技術
ugoloPr
学習キット は完成した！
● デバッグが完了したある夜…
コンピュータ・システム技術学習キット（写真 1）を見ながPCI バス側からバースト転送した場合と，CPU 内蔵 DMAコントローラを使ってローカル・バス側からバースト転送した場合で，どっちがパフォーマンスがいいでしょうね．

ら…
編集者（以下 編 ）：いやぁ〜，ついにここまで来ましたね！

筆：そういうときこそ，この学習キットを使って評価して欲し

筆者（以下 筆 ）：来ましたねぇ〜．

いね．FPGA は PCI バス側からもローカル・バス側からも編：絵も音も出るし，ストレージもネットワークもつながるし32 ビット・フルにつながってるから，このボードで実際に…．ちょっとやりすぎましたかね？

それぞれの構成でパフォーマンス比較ができるし．

筆：いやぁ〜それくらい機能が付いてないと， オリジナル仕編：そういえばその CPU はローカル・バスでも MPX モードが様パソコン にならないよ（笑）．まぁ〜パソコンを作るかありますよね．通常モードと MPX モードと PCI の三つどどうかは置いといて，今でも現役で使えるバスやインターフェースでないと，評価ボードとしてすぐに限界がきて，おもちゃ で終わっちゃうよ．

もえの比較はおもしろそうですね．
筆：しっ！

MPX モードをもつ CPU は数少ないから何の CPUかバレちゃうよ（笑）．

編：そうですね．

● FPGA 対応ソフト CPU コアいろいろ

筆：アナログ RGB 回路とか，過去に何度も設計してるけど，や編：オプション CPU カードを載せなくても，この学習キットだ

はり最初にあがってきた試作ボードに火を入れて，正常に画面が表示されたときはやっぱり感動するよね．
編：自分で設計した回路が，すぐに目の前で動かせるというのは，FPGA の大きなポイントですよね．その感動をすべての読者にも感じて欲しいと思います．

● バスの違いのよるパフォーマンスの比較

けで FPGA 内にソフト CPU コアを入れても動きますよね．
筆：もちろん．デバイスが Xilinx なんで，まずは順当にいってMicroBlaze だろうね．
編：ほかにも，ある筆者さんにオリジナル CPU の設計をお願いしていまして…．もちろん CPU だけでなく，C コンパイラやデバッガまで準備してもらうのが目標です．

編：さて，次は上に載るオプション CPU ボードの準備ですね．

筆：『オリジナルの CPU を作りました！』という記事はよく見

筆：編集部経由で手配してもらった○○（CPU 名称はまだ秘密）

るけど，ソフトウェア開発環境まで揃ったものはなかなかの試作は，来週から始めるからもうちょっと待っててよ．
編：よろしくお願いします．そういえばその CPU を使って，ないからね．期待してますよ．

● 振り返れば…
編：I さん（筆者）に最初に書いてもらった原稿って，1997 年 10 月
号特集の CPLD で PCI デバイスを設計する記事でしたよね．
筆：懐かしいねぇ〜．あの頃は数百マクロセルの CPLD で，ひぃ〜こら言いながら PCI を設計してたんだなぁ〜．
編：それが 10 年足らずで，100 万ゲートの FPGA がポンポン使えてしまう時代になった…．
筆：バースト対応バスマスタ入れても，PCI 部分の使用率が10 ％とかだもんね．笑っちゃうよな．
編：それから SDRAM コントローラだの，IDE コントローラだの，いろいろなバスやインターフェースの設計記事を書いていただきました．
筆：それらを特集 1 回でまとめたよね．
編：はい．2003 年 1 月号の『作りながら学ぶコンピュータシス
テム技術』（図 1）です．あれからもう 3 年ですよ．

写真 1

コンピュータ・システム技術学習キット

本学習キットの詳細は Appendix2 を参照

52

筆：早いねぇ〜．ついこないだのような気がするよ．あの特集の敗因は…．

Jan. 2006

こうして コンピュータ・システム技術
logue
学習キット は完成した！ Pro
編：ま，負けたんですか！？．あの特集は大好評でものすごく売れたんですよ（汗）．
筆：いやそういう意味じゃなくて（笑）
，あのシステム構成だと複数枚数の PCI 評価ボードを使わざるを得なかったから，トータルとしてコストが高くなっちゃう点が問題だったということで…．
編：その反省点を踏まえて，新たにこのボードを設計したということですね．
筆：設計したもなにも，このボードの仕様にバンバン注文出してきたの，そっちじゃん．
編：そ，それを言われると…（汗）
．次から次へと無理な注文に応えていただき，本当にありがとうございます．

P● オリジナル仕様パソコンを 創る ぞ！
筆：最近，昔の 8 ビット・パソコンを FPGA で復元（？）させて，Web で公開してる人がいるよね．
編：よく見ますね．実は編集部にもその手の投稿の話もあるん

図 1 2003 年 1 月号特集『作りながら学ぶコンピュータシステム技術』

ですが，BIOS やソフトウェアのライセンスに問題がある

CPU に SH-4 を使い，PCI バス上に各種インターフェースを実装してオリジナル・パソコンを構築するまでを解説ので，さすがにうちでは取り上げるのは難しいですね．

1
2

筆：そうなると，やはり新規にオリジナルな仕様で設計するの3が一番だね．このボードを使って PCI できました，HDD● 本特集の内容について読み書きできました，Ethernet がつながりました…だけ

編：じゃ次の特集は，シリアル・コントローラの作り方を，スじゃつまらないから，最終的にはオリジナル仕様パソコンテップ・バイ・ステップで徹底的に詳しく解説するというを 創る ところまでいかないとね！のはどうでしょうか．

● シリアル・コントローラくらいささっと作れるように！

筆：そうですねぇ〜．たとえば手動操作でクロックを与えて，筆：セミナとかの講師をしてて感じてるんだけど，組み合わせ8 ビット LED の表示が 1 ビットずれて表示されるのを目視

回路で LED を光らすぐらいはできるんだけど，何個かの状態をもったステート・マシンの設計ができない受講生がで確認するとか…．
編：それいいですね！

すごく短い HDL ソースをベースにそ多いよね．の動作を確認したら，次は一つ機能を追加してその動作を編：そうなんですか．

見て，さらに機能を追加して…，そして最終的に調歩同期

筆：あと，同期回路設計でクロックのエッジ検出とかがわから式シリアル・コントローラを作るという展開ですね．

ない人．直前のクロックでの状態をフラグにでも保存して筆：でも，そうすると，それだけでかなりページ取っちゃうおいて，現在の信号の状態と一致していれば変化なし，一よ．この学習キットはほかにもいっぱいコネクタ載ってる

致してなければ変化ありで，それがエッジを検出したことになるってことに，気がつかないみたい．
編：クロック・エッジで動作するというと，VHDL だと，if (CLOCK' event and CLOCK = '1' ) thenを使うことしか頭に思いつかないのかな？
筆：だから，バースト転送対応 PCI イニシエータとか，ウルト
ラ DMA 対応 IDE コントローラとかの解説より，もっともぉ〜っと基本的なコントローラの設計方法の解説から始めないとダメかなぁ〜と…．
編：シリアル・コントローラくらいにシンプルなやつからでのに…．
編：それはそうですが，1 回の特集ですべてのインターフェースを解説するのはハナっから無理です．なので，最初はもっとも基礎的で汎用的で一般的にどこでも使うシリアル・コントローラを解説しましょう．あともう一つ取り上げるとしたら，何がいいですかね？
筆：まぁ〜

読者が興味を引くとしたら，見た目にも派手？な

アナログ RGB 出力かな．
編：アナログ RGB だと…ディスプレイがちゃんと同期するかとか，赤だけ表示してみるとか…そういうレベルからの解説ですね．

すか？
筆：本当はシリアル・コントローラだって奥が深いんだけどねぇ〜．データ・ビットを真ん中の 1 回だけでサンプリングするんじゃなくて，複数ビットをサンプリングして多数決とるとか．

Jan. 2006

筆：そうそう．カラーバー表示は重要！（笑）．
編：では次の特集はそういう方向で…．で，締切りは○○日ですよ！
筆：何ぃ〜！？

53

App1
4
5
App26