FPGAやSoCデバイスの設計において、RTLコードの品質を確保することは極めて重要です。設計の初期段階で潜在的な問題を検出し迅速に対応することが、開発の成功を左右する決定的なポイントとなります。
OKIアイディエスでは、FPGA設計における長年の豊富な開発経験を活かし、LINT検証、Formal検証、CDC検証を活用したRTLコード検証サービス「RTL Valid™」をご提供しています。
これらの検証により、RTLコードの高品質化を実現し、お客様の設計課題の解決に貢献します。
最近のFPGAやSoCデバイスの開発においては、RTLコード設計の複雑化に伴い、問題解決の難易度がさらに高まっています。このような状況下で、検出できるはずのコード不良が見落とされると、以下のような課題に直面する可能性があります。
これらの課題を見過ごしたまま開発を進めてしまうと、後々大きな追加コストや開発遅延につながる可能性があります!
これらのリスクを未然に防ぐためには、開発の初期段階で問題にアプローチすることが極めて重要です!
「RTL Valid™」はRTLコード設計を分析・検証するための静的解析ソリューションです。
以下の特長をいかし、設計プロセスにおける品質を確保します。
LINT検証
Formal検証
CDC検証
設計品質を確保し、課題解決を成功に導くためには、以下の2つのステップが必要です。
RTLコードの品質を確保するためには、静的解析ツールの活用が鍵となります。
特に、LINT検証ツール、Formal検証ツール、CDC検証ツールは、潜在的な問題の検出や品質確保に不可欠です。
ヒューマンチェックやレビューでは見つけにくい問題の実例 ○の問題検出が可能
各単体検証では、下記の問題全てを検出することはできません。
LINT検証、Formal検証、CDC検証を全て実施することで、これらの問題を網羅的に検出することが可能になります。
No | 問題 | LINT 検証 |
Formal 検証 |
CDC 検証 |
備考 |
---|---|---|---|---|---|
1 | コーディング規約違反 | ○ | × | × | コーディングスタイルや慣習の違反を特定 |
2 | 異クロックドメイン間の信号遷移 | × | × | ○ | クロックドメイン境界を越える信号の問題を検出 |
3 | 未使用信号の検出 | ○ | ○ | × | 使用しない信号をリソース節約の観点から指摘 |
4 | メタステーブル状態のリスク | × | × | ○ | シンクロナイザを利用していない箇所でメタステーブルの可能性を検出 |
5 | ポート接続ミス | ○ | ○ | × | 信号の接続が誤っていることや欠落をチェック |
6 | リセットやイネーブル信号の同期性 | ○ | × | ○ | コードスタイル、同期性自体を検証 |
7 | ビット幅の不整合 | ○ | ○ | × | ポートや内部信号のビット幅の一致を確認 |
8 | デッドコード | × | ○ | × | 実行されることがない不要なコードを検出 |
9 | トグルしない信号 | × | ○ | × | 値が変化しない信号や未使用の信号を特定 |
10 | ステートマシンのデッドロック | × | ○ | × | 状態遷移が進行不能となる箇所や未定義の状態を特定 |
11 | 不定値の伝播 | × | ○ | × | 初期化不良や未定義値により発生した不定値(X値)が回路内で伝播する問題を特定 |
静的解析を開発フローの2つの工程で実施することで、RTLコードの品質を効果的に向上させ、設計プロセス全体の効率化を実現します。当社のFPGA開発フローでは、以下の2段階で静的解析を行います。
当社のFPGA開発フローをご紹介します。
・第1段階:RTLコード設計後の静的解析1
上記FPGA開発フローにおける開発フロー2 「RTLコード設計」の後に、「静的解析1」を実施します。
この段階では、LINT検証、Formal検証、CDC検証を通じて、以下のような重要な指摘事項や潜在的な問題を洗い出し、解決します。
この段階で問題を早期に解決することで、設計の基盤を強化し、後工程での手戻りリスクを大幅に低減します。
・第2段階:論理合成前の静的解析2
上記FPGA開発フローにおける開発フロー8 「論理合成」の前に、「静的解析2」を実施します。
設計が意図する通りに機能することをSIM検証で確認しますが、そこで不具合を検出した場合は、RTLコードの修正が必要になります。このとき、修正したコードにも問題が含まれる可能性があるため、論理合成に進む前に必ず静的解析を実施します。
静的解析2を実施したコードのみを「論理合成」へ進めることで、最終的なRTLコードの品質を確保します。
「RTL Valid™」は、LINT検証、Formal検証、CDC検証を、お客様の必要性に応じた組み合わせでご提供します。
ここでは、各検証の実施する内容やOUTPUT(成果物)をご紹介します。
・LINT検証
LINT検証では、RTLコードの設計規則やスタイルに基づく静的解析を行い、コード品質の向上を目指します。
以下の手順により実施します。
検証STEP | 実施内容 | OUTPUT | 備考 |
---|---|---|---|
1 | LINTチェックを掛けて、 Rule/Recommendation1/2/3抽出 |
ツール診断 レポート |
検証ツールを使用 |
2 | Rule/Recom内容の解析と整理 | 解析レポート | 診断レポートの結果を基に実施 |
Rule/Recom箇所の特定と指定 | |||
各Rule/Recom内容の説明 | |||
3 | 各Rule/Recom内容に 対しての修正方法の立案 |
修正案レポート | 解析レポートの結果を基に実施 |
4 (Option) |
各Rule内/Recom内容に対して修正を実施 LINTチェックで、指摘事項に問題が無いことを確認 |
修正後RTL 解析レポート |
修正案レポートの結果を基に実施 |
使用検証ツール:ALDEC社製ALINT-PRO™
・Formal検証
Formal検証では、RTLコードに潜む機能的な誤りや不安定要素をチェックします。
以下の手順により実施します。
検証STEP | 実施内容 | OUTPUT | 備考 |
---|---|---|---|
1 | AutoCheckを実行し、 Violations/Cautions/Information抽出 |
ツール診断 レポート |
検証ツールを使用 |
2 | V/C/I内容の解析と整理 | 解析レポート | 診断レポートの結果を基に実施 |
V/C/I箇所の特定と指定 | |||
V/C/I内容の説明 | |||
3 | 各V/C内容に対しての修正方法の立案 | 修正案レポート | 解析レポートの結果を基に実施 |
4 (Option) |
各V/C内容に対して修正を実施 AutoCheckで、指摘事項に問題が無いことを確認 |
修正後RTL 解析レポート |
修正案レポートの結果を基に実施 |
使用検証ツール:シーメンスEDA社製Questa®-AutoCheck
・CDC検証
CDC検証では、クロック領域間の信号転送に特化した静的解析を行い、リスクの早期発見を目指します。
以下の手順により実施されます。
検証STEP | 実施内容 | OUTPUT | 備考 |
---|---|---|---|
1 | CDCチェックを掛けて、 Violations/Cautions/Evaluations抽出 |
ツール診断 レポート |
検証ツールを使用 |
2 | V/C/E内容の解析と整理 | 解析レポート | 診断レポートの結果を基に実施 |
V/C/E箇所の特定と指定 | |||
V/C/E内容の説明 | |||
3 | 各V/C/E内容に対しての修正方法の立案 | 修正案レポート | 解析レポートの結果を基に実施 |
4 (Option) |
各V/C/E内容に対して修正を実施 CDCチェックで、指摘事項に問題無き事を確認 |
修正後RTL 解析レポート |
修正案レポートの結果を基に実施 |
使用検証ツール:シーメンスEDA社製Questa®-CDC
「RTL Valid™」は、単なるツールの利用にとどまらず、経験と専門知識を活かした実効性の高いプロセスを通じて、お客様の設計品質を向上させます。その特長をご紹介します。
設計品質への不安や、品質不良にお困りの方、また静的解析の導入を検討されている方
↓↓↓↓↓
RTLコードの設計品質を向上させるために、ぜひ私たちにお任せください!
当社のエキスパートが、的確な修正方法をご提案いたします。
お気軽にお問い合わせください。
本ページ記載のサービスに関するご質問、ご相談がございましたら、お気軽にお問い合わせください。
メルマガで最新情報、当社主催のWebセミナー情報を配信しております。お役に立てるよう配信してまいりますので、是非ご登録お願いいたします。