LSIシステム設計...C/C++/SystemC) アーキテクチャ設計...

13
LSIシステム設計 第9回 設計の流れ(1) 電気電子工学専攻 大畠賢一

Transcript of LSIシステム設計...C/C++/SystemC) アーキテクチャ設計...

LSIシステム設計

第9回 設計の流れ(1)

電気電子工学専攻 大畠賢一

設計の流れ 抽

象度

高い

低い

システムの機能を規定 実現方法はまだ決めない

機能ごとにハードウェアで実現するかソフトウェアで実現するか決定

ハードウェアの機能をRTLで記述

RTLの機能を実現する論理回路図を合成

論理回路図に対応するレイアウトパタンを合成

要求仕様作成 機器設計者

市場調査 ユーザーの求めるものは何か?

製品仕様 機能、性能、デザイン、価格、環境負荷

要求定義書

システムの目的

解決すべき課題

システムと外部とのインターフェース

システムの機能と性能

システムの稼働環境

開発上の制約

要求仕様 構成部品に対する仕様(LSI設計者との調整)

システムLSI設計者にとっての神様 曖昧では設計できない → UML(Unified Modeling Language),

C言語(C/C++/SystemC)

アーキテクチャ設計 システムLSIはハードウェアとソフトウェアの有機的結合体 ハードウェア: 高速性に優れる 高コスト、製造後の修正不可 ソフトウェア: 修正容易 低速 ハードウェアとソフトウェアの分担の最適化

プラットホーム選択 どんな種類のプロセッサを使用するか? プロファイリング 演算量、データ伝送量、キャッシュミス確率 →CPUの性能、キャッシュメモリの量、バス幅

外部インターフェースの規格は?

IP(Intellectual Property)の活用 IPとは、再利用可能な機能ブロック CPU、AD/DA変換器、コントローラ、メモリなど

ハードウェア/ソフトウェア分割と協調設計 ハードウェアとソフトウェアの分担の最適化

何を最適にするのか? コスト? 性能? 製品企画のコンセプトで決まる

シミュレータを用いて最適な構成を模索

HW/SW インターフェース生成

HWからの情報、HWへの命令は、CPUのメモリ空間内に割り当てられる (メモリマップドI/O)

CPUは一定時間ごとにメモリを監視してHWとの通信を行う(ポーリング)

リアルタイム処理が必要な場合には、HWから割り込み信号を送る

HWとの通信、コントロールを

行うプログラムをデバイスドライバと呼ぶ

動作合成(1) ハードウェア仕様が決まった段階で、ビヘイビアモデルからRTLへ変換を行う これを動作合成と呼ぶ

CDFG: Control Data Flow Graph

データ処理順序を表すデータフローグラフと制御回路の制御機能を表すコントロールフローグラフの組み合わせに変換する

ビヘイビアモデルからCDFGへ変換

CDFGへ変換する際にデータ処理の最適化を行い、演算数の削減を行う

動作合成(2) ハードウェア量の削減 演算の順序を工夫し、同じ演算器やレジスタを何度も再利用する チップ面積が小さくなり、低コスト化できる

高速化 演算器やレジスタを多数配置し、並列に動作させる チップ面積は増加し、コスト上昇 高速化(性能)とコストはトレードオフ、製品コンセプトに沿って選択が必要

ハードウェアの割り当て データフローグラフに具体的な部品(演算器、レジスタなど)を割り当てる コントロールフローグラフに制御回路を割り当てる

検証 ハードウェア割り当てにより変換されたRTLをシミュレータで検証する HDL(Hardware Description Language)記述のハードウェア設計完了

下位設計(1) 下位設計では、RTLで表されたハードウェア情報を具体的な論理回路に合成し、製造に使用するフォトマスクのためのマスクデータを作成する

論理合成 C=1の場合

C=0の場合

論理式をうまく変形することで、回路数削減

下位設計(2) テクノロジーマッピング

論理式を対象とする製造プロセスの実際のゲートに対応づける

面積、動作速度、消費電力が計算される

複合ゲートにマッピング →面積削減

ファンアウト(FO) ある回路の出力が駆動している回路数 FOが大きいと、寄生容量が大きくなり、回路の動作速度が低下する 回路により最大FOを決めておき、動作速度の低下を防止する

下位設計(3) セルライブラリ

マッピングに使用する各種論理回路の設計データベース 論理回路セルの面積、消費電力、動作速度、レイアウト情報が納められている

論理回路セルの設計は回路シミュレータにより行われる ツール上で回路図を入力し、シミュレーションを実行すると、ノードの電圧や電流変化が計算される ここから、トランジスタサイズの最適化を行ったり、消費電力や動作速度を計算する

回路図

動作波形 入力信号

出力信号

下位設計(4) レイアウト設計

ネットリスト完成後、セルをチップ上に配置し、相互に配線する フロアプラン 機能ブロックごとに大まかな配置を決定する 配置配線 フロアプランに従ってセルを配置し、ネットリスト通りに配線を接続する タイミング解析 配線が終了した後に、配線の寄生容量を計算し、 各信号の遅延時間を求め、要求仕様通りの性能 が得られるか否かをチェックする (バックアノテーション) 性能が満足できない場合には、論理合成あるいは フロアプランに戻ってやり直す

マスクデータ作成

レイアウト設計完了後、レイアウトデータを基に、製造プロセスで使用するフォトマスク用データを作成する このフォトマスクを用いて、LSIが製造される

下位設計(5) ソフトウェア生成

ソフトウェアとして実装しなければならないビヘイビアとデバイスドライバをC/C++などで記述し、コンパイル後ROMへ格納する

機器制御などにはリアルタイム性が要求されるため、OSはRTOS(Real Time OS)が使用される

規格に従った処理(JPEG, MPEGなど)はミドルウェアとして整備され、共通利用が進んでいる

完成したソフトウェアは、システムLSIのCPUを除いたハードウェア部分をFPGAに書き込み、動作を検証する (システムLSIを製造する前の最終検証)