連載
» 2007年03月29日 00時00分 UPDATE

SoC設計にモデリング手法を導入する(3):ハードウェア設計にUMLを取り入れるメリット (1/3)

ハードウェア設計の現場では、仕様書作成にUMLを利用することへの期待が高まっているが、その利点と課題は何だろうか

[濱尾仁志(UMTP SoC分科会 ハード設計グループ/NECマイクロシステム),@IT MONOist]

 前回「UMLでハード/ソフトの分割ポイントを見つける」では、UMTP(UMLモデリング推進協議会)のSoC分科会の活動から、「HW/SW分割グループ」の取り組みとその成果について紹介しました。今回は「ハード設計グループ」の活動を報告します

SoC開発におけるハードウェア設計の課題と活動目的

 組み込み(SoC)開発の中で、ハードウェア設計者が抱える現状の問題点の1つとして、仕様書の記述方法が挙げられます。通常、ハードウェアを設計する場合に、要求仕様から設計仕様書(SoCの機能を記述)を作成し、この仕様書からハードウェアを設計するための仕様書、テスト/検証を行うための仕様書、チップを動かすためのソフトウェアを設計する仕様書と、いくつもの仕様書を作成する必要があります。

 現状では、これらの仕様書の記述方法が統一されていないため、仕様書を読む人によって解釈が異なることがあります。これは、仕様の理解不足や検証の漏れにつながり、最終的にはハードウェアの不具合にも発展しかねません。そのため、設計者や検証者が容易に仕様を理解でき、なおかつ、あいまいさを排除した記述方法が求められています。

 この問題に対して、ハードウェア設計の現場でもUMLへの期待が高まっています。UMLは、図による表現を基本とし表記が共通化されており、このような問題の解決手段として、ハードウェア設計者に対しても利用するメリットが大きいものと考えられるためです。

 ハード設計グループでは、UMLを利用することで、要求仕様を漏らさず実現するための設計工程のフロー化、検証漏れを排除するための検証仕様/リストの抽出、設計物の保守・再利用性の向上などの可能性について検討し、日々、複雑化、大規模化するハードウェアの迅速な問題解決手段として、UMLの効果的な利用法を模索することにしました。

活動目的

  • ハードウェア設計におけるUML利用の利点と欠点の明確化

 →UMLによって仕様のあいまいさの排除が可能か確認

 →UMLの利用により、検証仕様/リストの抽出・保守・再利用性が向上するかの確認

  • UMLを使用した「要求仕様〜RTL設計」までの設計工程のフロー化


仕様書へのUML適用を検討する

 設計工程において、まず要求仕様を基に外部とのインターフェイスや設計物の機能について、外部仕様書をまとめる必要があります。この工程では、設計物がどのように使われるのか要求仕様に合わせて分析する必要があります。次にその設計物の詳細な仕様、ステートマシンや内部の構造などについて分析し、機能仕様書としてまとめます。また、この段階で設計物の検証項目を抽出します。最後に実装のための仕様をまとめる必要があり、ここではステートマシンや内部構造について分析を行い、実際のRTLが書けるレベルの設計仕様書となることが求められます。

 このような工程において、UMLを利用し共通化された図と機能の分析を行うことで、早期に問題点の洗い出しを行うことを狙います。しかしながら、ハードウェア特有の問題もあるため、ここではUMLによる分析/モデリングと切り離して進めなければならないと考えました。

ハードウェア特有の問題

  • 面積/配線(FFの数やバスの数)
  • 動作周波数やスループットなどの性能
  • 動作タイミング(同期/非同期など)や消費電力などの物理特性

ハードウェア設計では、上記のような要因から、ソフトウェアと同じように設計することが困難な部分があります。ハードウェア設計では論理設計段階から実際の回路を意識した設計をしなくてはなりません。



 以上のような考えから図1のように、各段階でUMLと非UML(UMLで表せない、あるいは表しにくいもの)に分けて仕様書への適用を検討していき、ハードウェアの要求仕様から外部仕様、機能仕様、実装仕様の流れの各工程で分析とモデリングを行うことにしました。また、各仕様の分析/モデリングの結果、UMLで記述する部分とUMLを適用しない部分に分け、それを各仕様の成果物として仕様書にまとめる方針としました。

UMLを使用した設計仕様の検討案 図1 UMLを使用した設計仕様の検討案

  • 外部仕様
     要求仕様を入力として、回路をブラックボックスとした場合の仕様を分析/モデリングする。その結果、UML部分と非UML部分に分け、外部仕様書としてまとめる。
  • 機能仕様
     外部仕様で分析したものを入力として、回路の機能を分析/モデリングする。その結果、UML部分と非UML部分に分け、機能仕様書と検証仕様書としてまとめる。
  • 実装仕様
     機能仕様で分析したものを入力として、回路の機能を分析/モデリングする。その結果、UML部分と非UML部分に分け、実装仕様書と検証項目を抽出する。また、このモデリング結果から、RTLへと実装していく。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

公式SNS