本文へジャンプ

CPUを作る

プロジェクトでまず最初にすることは、CPUの全体的な設計です。この段階では、まず命令セット――CPUが備える命令群や、演算機構の仕様といったアーキテクチャを決めます。複雑な仕様にすると完成させるのが難しくなるので、最初は既存のCPUアーキテクチャを参考に、シンプルな設計から始めることが多いようです。

性能のよいコンピュータを作ろうとするとき、CPUの実装のしやすさとコンパイラの開発のしやすさが、相容れないこともあります。うまくそのバランスをとることが大切です。

スピードコンテストでの記録更新を狙うようなチームは、何度か設計しなおし、シンプルで周波数が高いもの、独特な命令や複雑な機構を採用したもの、というふうに既存の設計にとらわれないアーキテクチャも登場します。

CPUの設計

<画面:HDLから回路を生成> HDLから回路を生成、HDLシミュレータで出力信号をチェックする

さてCPUは、実際にどうやって設計するのでしょうか。回路図で配線? いえいえ。

回路の規模が大きくなった現在、論理回路の実装には、HDL(ハードウェア記述言語)を用いるのが主流です。HDLはプログラミング言語に似ていて、回路の動作を詳細に記述できます。このHDLからCADが実際の回路を生成しますが、そこは機械のやること、人間ほどには機転がきかないこともたまにあります。そこで、思い通りの回路を得られるように、CADの動作を見越してHDLを書くのも腕の見せどころです。

通常、生成された回路は、CADがFPGA内の資源に自動配置・配線しますが、必ずしも最適とはいえないので、高速化のために手動で配置・配線するツワモノも現れます。

設計した論理回路は、HDLシミュレータで表示される波形図で検証します。シミュレーションには時間がかかりますが、この作業を丁寧に行うことが完成への近道です。

FPGA基板についてちょっと紹介

<図:FPGA基板> FPGA、SDRAM、SSRAM

実験では、CPUの実装にFPGAを使用します。写真は各チームに配られるFPGA基板で、基板の中央には、内部の回路を自由にデザインして書き換えられるFPGAという半導体チップが載っています。FPGAの周りには、メモリ(SSRAM、SDRAM)、入出力端子(DVI、USB)、回路書き込み用のケーブルなどの周辺装置が備えられ、FPGAに制御回路を用意してやると利用可能になります。拡張基板には、作業用コンピュータと通信するための追加の入出力端子(RS-232C)、電圧を変換するチップ、開発初期のFPGAの動作確認に使うLED、抵抗などを、必要に応じてハンダ付けしていきます。

写真中央のFPGAは100万ゲート規模の回路を実装可能です。最新のFPGAを搭載した新しい基板も準備中なので、今後はもっと多様な回路設計が可能になるでしょう。

ページトップへ戻る