トップダウン設計手法の概念

【トップダウン設計とは】
 ・ボトムアップ設計  ・トップダウン設計
 各ブロックをきっちり設計して、組み合わせるときっちりしたシステムが設計できるという設計思想  各工程毎に上工程からきっちり設計して行くと全体がきっちりと設計できるという設計思想


【なぜトップダウン設計が必要か】

(1) システムレベルの検証が必要
 ボトムアップ設計は、全体の設計仕様を詳細に把握している人がいないので、設計段階でシステムの検証が困難である。把握している人がいたとしても詳細仕様のデバッグは困難である。
 トップダウン設計では、C_model を用いて詳細仕様設計を行えば、詳細仕様書 (C_model) でそのまま仕様がデバッグできる。
 システムが複雑になればなるほど、仕様段階でシステムレベルのデバッグが重要である。

(2) 回路の合理化設計
 ボトムアップ設計では、各ブロックの担当者が異なることが多く、そのため接続ポイントでインターフェース回路等の冗長な回路が発生しやすい。
 トップダウン設計は、工程毎の分担なので冗長な回路が発生せず、合理化設計できる。

(3) 効率のよい開発
 ボトムアップ設計はブロック毎にトップ設計のできるレベルの人材が必要である。
 トップダウン設計のほうがトップ設計の人数は少なくてよいため、少数精鋭で効率のよい設計ができる。
また、マイクロコードをハード設計と同時に開発できる。(ボトムアップ設計はソフトはハード設計が終了してからでないと困難)


【C_model を用いたトップダウン設計の手順】

 (詳細は Cプログラムによるハードウェアの設計 参照)

(1) アルゴリズムレベルの設計・検証
 方式をCプログラムを用いて検証・評価する。

(2) C_model による詳細仕様・アーキテクチャーの設計
 Cでシステム仕様を設計(アルゴリズムレベルからサイクル動作レベルに展開)し、そのままデバッグする。 CPUを持っているならば同時に C_model 上でソフト(マイクロコード)を開発する。
 その時、Visual C++ 等のCコンパイラーに付属のデバッガーがシステムおよび CPU のデバッガーとして使用できる。

(3) verilog HDL への変換
 サイクル動作レベルの C_model を、ハードが小さくなるような考えながら verilog HDL に変換する。
(自動変換ツールもいくつかあるが、まだあまり実用的ではない。)
 テーブル変換や、規則的な演算器は、Cでプログラムを組んで verilog リストを自動発生させる。
(手作業で設計すると、単純ミスが発生するからである。)

(4) RTL シミュレーション、ゲートレベル シミュレーション
 C_model からの出力を、RTL、ゲートレベル シミュレーションの期待値としてシミュレーションを行う。


【今後はすべてトップダウン設計か?】

 トップダウン設計の利点を述べましたが、今後はすべてトップダウン設計になると誤解 されるとまずいので補足します。
 ソフトウェアの世界では、今はオブジェクト指向型プログラミングが全盛でボトムアップ設計の 典型です。
 システムが小さくツールが整備されていなかった昔はボトムアップ設計が全盛で、近年では システム的な設計が重要になりトップダウン設計の重要性が言われるようになりました。そして、 最近ではシステムが巨大になってきており、IP化の重要性が言われるようになってきました。
 IP化とはまさにソフトウェアの世界で言うオブジェクト指向型設計に他なりません。
 時代において流行は繰り返すというか、最適設計が変化するというか、あまりそんなことに こだわる必要はありません。
 ただ古い設計手法にしがみつく、古い世代の人になってはいけません。トップダウン設計の時代も、 オブジェクト指向型の時代になっても、常に新しい設計手法を追い求めていくため一緒に 設計手法を勉強しましょう。


 半導体回路・電子回路・電子機器設計のご用命は 有限会社安田電子設計事務所へ!!
Home  技術紹介  サービス案内  会社概要  お問い合わせ  
Copyright(C) 2010 Yasuda Electronics Design Office All Rights Reserved.