一昔前の設計は,ハードウェアとソフトウェアが分かれていた時代でした.ハードウェア技術者は仕様書を作成し,そこからTTLを組み,システムチップを選定し,回路図を作成し,基板が完成すれば,基本動作を確認して,ソフトウェア技術者(BIOS,ミドルウェア,アプリケーション)に渡していました. LSI設計者でいえば,カテゴリにもよりますが,仕様を決めて簡単なシミュレーションだけ実施した後,FPGAや試作チップにして,あとは実機の環境で評価するというスタイルです. しかし,現在は次世代携帯電話やディジタル画像処理など,開発規模は次第に大きくなり,1チップでもそれに関わる人間の数,費用はますます増えていきます.昨今,多くの企業がアライアンスや共同開発で提携しているのは,このような費用を圧縮し,開発効率を高めようという考え方からです. このような状況で,旧来の設計手法のように,ハードウェアの完成を待ってソフトウェアを作り,また,ハードウェアの修正を行うというような開発フローを取っていては,マーケットの要求にも企業の要求にもとうてい対応できません. ソフトウェアとハードウェアの協調設計が,開発期間の短縮や費用の圧縮,性能・仕様の問題の早期把握の面で重要となるのです.ボトムアップ設計では問題の抽出が最後になり,後工程で破綻してしまいます. LSI設計においても,前出したような設計スタイルではなく,アルゴリズムの策定段階やビヘイビアモデルの検証段階において,如何にバグや大きな問題を早期に発見できるかが求められています. システム設計の初期の段階では,システムの基本仕様に関わる大きなバグや問題を検証し,細かい問題は後の行程で解決していくのです.こうすることにより,開発の後戻りを少なくし,しいては開発期間の短縮,費用圧縮を実現できるのです(図3).
システム設計のアプローチとして,上記で述べてきたようなハードウェアで実現するか,ソフトウェアで実現するかという部分は,『設計初段において優先順位が高くない』のです. 今回,この考え方を学んでいただくために後の章で,ビヘイビアモデル(今回の場合,動作要求仕様)までは,まったく同じ考え方で設計していき,最後に実機で仕様をどう実現するかというところで別々のアプローチを取ります. つまり,インプリメンテーション部分だけが異なり,設計の前工程は同じ方法を取ることにより, ●インプリメンテーションの手法の違いを設計全体からみたときのポジション などについて考える良い機会になると思います. たとえば,あなたがPCでDVD映像を見たいとします.これが要求動作仕様だと仮定すると,DVDドライブとソフトウェア・デコードタイプのアプリケーションを組み合わせて実現する人もいれば,DVDドライブとハードウェア・デコードタイプのボードで実現する人もいるでしょう. それでは,これらの組み合わせの中で何が重要なのでしょうか? ある人にとっては,価格が安く実現できることが重要であるかもしれません.ある人にとっては,最初からハードウェア・エンコードにこだわっているかもしれません.この人は,現状のPCのCPUにパワーにおいては,ソフトウェア・エンコードでも十分仕様が満たされることも検証しないまま,インプリメンテーション手法にこだわって設計を進め,部品コストを押し上げ,企業に大きな損害を与える例です. 実際の製品においては,じつに多くの要求仕様が多数の部門から寄せられてきます.企画部門や営業部門からは,ユーザーからの使い勝手の改善要求や他社製品との性能比較などの要求があり,サービス部門からは,対保守性の要求,資材部や工場からは,部品の変更,上司からは開発期間の短縮などなど,列挙すればキリがないほどたくさんの要求があります. 実際に,これらの要求をすべて加味した上でインプリメンテーション手法を決めていくわけですが,アルゴリズムの決定やアーキテクチャ設計の段階で,インプリメンテーション手法の選択に重きを置く必要はないのです.過去の経験値だけを持ち出したり,妙なこだわりは禁物です.
11月号特集トップページへ戻る Copyright 2001 田原迫仁治 |