重大なバグは修正されます。通常、製品が生産に入る前に修正されます。初期のサンプルを使用しているのでない限り、最悪のバグは見られないかもしれません。
バグの修正は難しく、費用がかかります。RTLコードの1行を変更するだけではありません。その場合は、再合成、物理レイアウトのやり直し、タイミングの問題を修正するためのレイアウトの調整、新しいマスクセットの購入、新しいウェーハの作成、ウェーハのテスト(通常)、新しい修正の検証、おそらく製品を再度特性評価または修飾する。これには数か月かかり、悲惨な金額がかかります。そのため、レイアウト内のバグを直接修正することを試みます(単一の金属層上で行うことが望ましい)。これは、RTL合成からやり直すよりも高速で安価ですが、まだ良くありません。
とにかく重大なバグを修正している場合、他のすべてのバグも修正してみませんか?繰り返しますが、これには時間がかかります。修正を見つけて実装する時間、設計検証テストを再実行する時間です。その時間は、次の製品を市場に出すのに時間がかかることを意味します。それまでの間、あなたが十分に一生懸命見れば、あなたは現在の製品でより確実に多くのバグを見つけるでしょう。負けの戦いです。人々は何が起こっているのかを理解するために古いデザインに飛び込む必要があるため、長い間使用されていない製品ではバグの修正はさらに困難です。Nullが言うように、顧客はシステム内の製品を再認定する必要があるかもしれません。製品がまだ開発中の場合、製品リリースを遅らせると、顧客のスケジュールがずれて、顧客が非常に不満になる可能性があります。
通常、残されるバグは、奇妙な構成でのみ発生し、非常に小さな問題を引き起こし、簡単な回避策、または上記のすべてを実行します。トラブルに見合うだけの悪いものではありません。また、次の製品でハードウェアモジュールを再利用する場合、既存の顧客はソフトウェアの回避策を既に持っています。
ソフトウェアツールチェーンも別の要因です。モジュールが十分に長く使用されている場合、ツールチェーンが十分に変更され、古い検証テストをやり直すこと自体が主要なプロジェクトになる可能性があります。また、サイトライセンスの支払いをもう行っていないため、古いツールをロードすることはおそらくできないでしょう。ただし、モジュールを変更しない限り、新しいMCUにコピーして貼り付けることができます。
ソフトウェアも顧客側の問題です。バグ修正が何らかの方法で後方互換性を破った場合、すべての顧客はコードを更新する必要があり、それはもはやツールを持っていないかもしれません。
マイクロコントローラの開発に携わっている人として、すべてのバグを修正したいと思っています。しかし、そうしようとすると、予測できないほど開発が遅れ、顧客に迷惑をかけ、莫大な費用がかかり、結局、おそらく失敗するでしょう。