設計抽象化レイヤー:チップアーキテクチャを理解するための明確なガイド
Verilog言語の詳細を見る前に、チップ設計における抽象化レイヤーを理解しておくと良いでしょう。
最上位はシステムレベルアーキテクチャで、様々なサブブロックを定義し、機能別にグループ化します。例えば、プロセッサクラスタは複数のコア、キャッシュブロック、キャッシュコヒーレンスロジックを持ち、これらは入出力信号を持つ単一ブロックとしてカプセル化・表現されます。
次のレベルでは、各サブブロックがハードウェア記述言語で記述され、個々のブロックの機能が正確に記述されます。この段階では、回路図やテクノロジライブラリといった低レベル実装詳細は無視されます。例えば、コントローラブロックは、その機能のより小さなコンポーネントを記述する複数のVerilogファイルを持つことになります。
HDLはゲートレベル回路図に変換され、フリップフロップなどのデジタル要素を特性づけるテクノロジライブラリも関与します。例えば、Dラッチのデジタル回路は、DとEの全入力組み合わせに対して真理値表で与えられる出力Qを生成するよう、NANDゲートを特定の方式で配置したものです。
真理値表は全入力信号レベルの順列と結果の出力レベルを示し、以下はイネーブルピン付きDラッチのものです。ハードウェア回路図は、ブール論理とKマップを用いて真理値表から導出できます。しかし、プロセッサやコントローラのようなより複雑なデジタルブロックでは、この方法は非現実的です。
NANDゲートの実装は、CMOSトランジスタを特定の形式で接続することで行われます。このレベルでは、トランジスタのチャネル幅、Vdd、出力容量性負荷を駆動する能力が設計プロセスで考慮されます。
最終ステップは、EDAツールを用いてこれらのトランジスタをシリコン上にレイアウトし、製造可能にすることです。このレベルでは、異なるレイアウトが抵抗・容量など異なる物理特性を持つため、デバイスとテクノロジの知識が必要になります。
設計スタイル
デジタルブロックの設計には主に2つのスタイル、トップダウンとボトムアップがあります。
トップダウン
まずトップレベルブロックを定義し、トップブロック構築に必要なサブモジュールを特定します。同様に各サブブロックをより小さなコンポーネントに分割し、リーフセルまたはそれ以上分割できない段階まで続けます。
ボトムアップ
最初に利用可能なビルディングブロックを特定し、それらを組み立て・接続してより大きなセルを作り、トップレベルブロックを構成します。
通常、両方のフローを組み合わせて使用します。アーキテクトがシステムレベルビューを定義し、デザイナが各機能ブロックのロジックを実装してゲートに合成します。ここまではトップダウンスタイルです。しかし、これらのゲートはボトムアップフローで構築されており、最小ブロックの物理レイアウトから始めて最適な面積・性能・電力で作られます。これらの標準セルにはハードウェア回路図もあり、立ち上がり/立ち下がり時間、電力、その他の遅延情報を取得できます。これらのセルは合成ツールで利用可能となり、必要な箇所でピックアップ・インスタンス化されます。
Verilog
- プロダクトデザインの達人になる:よくある課題を克服する実証済み戦略
- コンクリートブロック(CMU):歴史、材料、設計、現代の革新
- 信頼性の高いスイッチ接点の設計:材料、タイプ、保護戦略
- 建築設計の原理と実践:歴史・専門分化・現代建築家に求められる力
- 精密な旋盤レベリング:プロフェッショナルガイド
- C# 変数のスコープを理解する:クラス、メソッド、ブロックレベル
- Verilogマスター:デジタル回路設計のための完全チュートリアル
- Verilog制御フローのマスター:if-else、case、ループ
- ゲートレベルモデリング:ハードウェア回路図からVerilogコードへ
- 実践Verilogゲートレベル設計:AND/OR/NOTゲートと2×1マルチプレクサ
- Verilogスイッチレベルモデリングの高度な活用