ほとんどのチップは製造された時に組み込まれた1つのことしかできません — 配線は工場でシリコンに焼き付けられ、変えることができません。FPGAはその規則を打ち破ります。それは「フィールドプログラマブル」チップです:製造後に設計をロードすることで構成できる、同一の小さな論理ブロックと配線の空白の海。一つの設計をロードすると電卓になり、別のものをロードすると全く同じチップが信号機コントローラーになります。この展示では、数行のコードから動作するチップへの全行程をたどり、内部で何が起きているかのあらゆる細部を観察できます。
本物のVerilog — チップ設計者が実際に書く言語 — から始まり、本物のツールチェーンを経由するのを見ます:合成は各入力について各方程式を評価し、答えをルックアップテーブル(16ビットの「答えテーブル」)に書き込み、配置配線がそれらのLUTを論理ブロックに落とし込みスイッチボックスを設定し、ビットストリームが生成されます — 正確に順序付けられたビット列。そのビットストリームはFlashチップに保存され、電源投入時にビットごとにFPGAの構成SRAMセルにロードされ、シリコンが生きます。電源をオフにするとSRAMはすべてを忘れます — FPGAは電源投入するたびに設計を毎回リロードします。(2つの正直な注記:ここでの配置とルーティングは明確さのために事前選択されており、これは論理レベルの見方です — 実際の信号にも時間がかかり、グリッチが発生することがあります。)次にズームインしてください。一つの論理ブロックを開くとそのLUTが物理的な実体として明らかになります — 16個のメモリセルを読む16対1マルチプレクサで、入力が1つずつビットを選択し、16から8から4から2から1へ、ライブで勝つパスが点灯します。さらに深く進むと1つの答えビットが6トランジスタSRAMセルです;スイッチボックスを開くとルーティングはパストランジスタのグリッドで、各々が1つの設定ビットでオン/オフに保たれます。スイッチを切り替え、クロックを駆動すると、ライブ信号がすべてのレベルのすべての配線を点灯させます。
最初のFPGA、XilinxのXC2064はロス・フリーマンが1985年にわずか64個の論理ブロックで発明しました;今日のものは数百万個を持ち、電話網や宇宙船から新しいコンピューターチップをテストする機械まであらゆるものを動かしています — ニーズが変わるにつれてソフトウェアで同じハードウェアを書き換えられるため重宝されます。DigiSim自体の最も直接的な親戚です:FPGAはプログラマブルロジックであり、DigiSim の Logic Lab でゲートごとに組み立てるもの、そのものが持てるチップになったものです。
仕様
- コードから
- 本物のVerilog → 合成 → 配置・配線 → ビットストリーム → 書込 → 実行
- 書き込み
- 設定ビットがチップのSRAMセルにシフトイン — ダイが埋まっていくのを観察
- 原子までズーム
- 論理ブロック → ライブ16:1マルチプレクサとしてのLUT → 6トランジスタSRAMセル
- 設計
- 論理ゲート、半加算器、ブリンカー、カウンター→7セグメント、信号機FSM
コンピューティングの他の展示