バックナンバーはこちら

today&tomorrow

Technology Update

2017 Aug Summer vol.107

自動車機能安全検証の課題

シノプシス ベリフィケーション・グループ、自動車機能安全ソリューション・テクノロジ担当スタッフ・エンジニア Brian Davenport

シノプシス ベリフィケーション・ソリューション担当シニア・プロダクト・マーケティング・マネージャー Prapanna Tiwari

シノプシス ベリフィケーション・グループ シミュレーション/カバレッジ/自動車機能安全検証製品担当プロダクト・マーケティング・ディレクター David Hsu

故障のモデリング、注入、シミュレーション

故障注入機能(図4)を利用すると、検証チームはデザインの安全要件に関するテストに必要な時間と労力を軽減できます。

画像(仮)

図4:故障のモデリングと注入

伝統的な機能検証フローでは、RTLの機能動作が仕様の要件に一致しているかどうか、そして故障が発生しないという前提でデザインが正しく動作するかどうかを確認します。

これに加えて、車載半導体ではリアルタイムでエラーが発生してもICが正しく機能することを機能安全検証プロセスで確認する必要があります。冒頭で挙げた車線逸脱防止支援システムの例でいえば、アルファ粒子によるランダム故障が原因でレジスタの値が反転しても、ステアリングが決して予測不能かつ危険な動作をしないことが欠かせない要件となります。故障モデリングは、危険事象からシステムがどのように回復するのかを含め、リアルタイム・エラーの影響を設計チームが理解するのに役立ちます。

デザインでモデル化できる故障にはさまざまな種類があります。ISO 26262規格にも、ランダム故障、シングルポイント、マルチポイント、0/1縮退、固定オープン、オープンまたはハイインピーダンス出力、短絡、過渡および遷移といったタイプの故障が挙げられています。ただしこの規格では、どのタイプの故障を注入するかは大部分が機能安全エンジニアの裁量に任されており、テスト対象のデザイン要素の安全要件とアプリケーションによって決めることになります。このため、エンジニアはデザインの機能および安全要件を詳細に理解しておく必要があります。これら2つの要素を組み合わせることにより、デザインの特定のブロックまたはノードに最適な故障を決めることができます。

車載半導体の設計チームは、経験を重ねるにつれてデザインのどの部分がシステムにとって最もクリティカルなのかを判断できるようになります。現在、この作業は主に人手による発見的問題解決の手法で行われており、これがチームの「安全文化」の一部となっています。安全なデザインを達成するには、すべてのコンポーネント、IC、および変更要求が全体的な設計目標および安全規格をサポートしていることを確認する必要があります。デザインの安全要件を正しく認識して故障を挿入するようなソリューションを使用すると、よりターゲットを絞り込んで理解しやすい結果が得られ、チームは機能安全検証フローを短時間で完了できるようになります。

安全配慮設計

ISO 26262の重要な側面の1つに、単にチェックリストの確認に終始するのではなく全体的な視点に立って安全を確保するという考え方があります。このアプローチを採用するには、たとえば設計プロセス全体にわたって安全をサポートするコーディング・スタイルやガイドラインのトレーニングを実施するなど、企業文化の変革が必要となることがあります。また、そのためには新しい役割および依存関係を組織全体で明確に定義して、検証プロセスの全体的な管理のあり方も変えていく必要があります。ISO 26262では、車載半導体に採用する必要のある検証管理プロセスの期待事項について1章を割いて取り上げています。

また、設計/検証チームはそもそも設計の最初から安全上の問題が混入しないように、あらゆる技術を活用していく必要があります。「安全を考慮した設計」とも呼ばれるこの思想は、チーム全体で採用することが重要です。たとえば初期段階から適切なコーディング・ガイドラインと関連するチェック項目を採用することにより大きな間違いを防ぎ、トレース可能な安全検証フローで扱いやすいRTLを作成することができます。

同様に、検証フローの早期段階から故障モデリングを適用して潜在的なバグを検出することが重要です。バグの検出が設計プロセスの終盤になればなるほどバグの影響がデザイン全体に広がってしまい、既に検証済みの部分まで再検証が必要となるなど、修正にかかる時間とコストが膨らむ傾向にあるためです。

カテゴリートップ