MCUでの単純な自動化設計の実装とFPGA / CPLDの比較


8

私は90年代からMCUを扱ってきましたが、最近ザイリンクスのSpartan6シリーズチップを使用してFPGAシーンに挑戦しました。センサーとモーターを備えた単純なファクトリオートメーション設計と、すべてをリンクするためのいくつかのインテリジェンスを想定すると、どのタイプのデバイスで、MCUまたはFPGAの設計をより速く簡単に仕上げることができますか?私がFGPAを一般に初めて使用するので、小さなまたは「明白な」点も高く評価されます。


FPGAソリューションでさえ、ほぼ間違いなく、FPGAの隣にあるか、FPGAの内部に実装されているか、または接続されているより大きなコンピューターにプロセッサが含まれています。ストアドプログラムの構造は、特殊なロジックやステートマシンよりもアルゴリズムの複雑な部分の実装をはるかに容易に対象としているため、高速(または大規模な並列)でシンプルでなければならないものについてのみ、後者を保存します。
クリスストラットン

以下のリチャードとマーティンからの素晴らしい答え。新しく学んだスキルや技術を次の問題に適用しようとするのは魅力的ですが、この場合(上記の紳士が説明した理由により)、MCUが適していると思います。
ラジアン、

回答:


11

必要がない限り、FPGAを使用する理由はありません。MCUおよびFPGA分野の同様に才能のある2人のエンジニアでさえ、比較的単純な自動化タスクにMCUを使用します。

プロMCU:

  • MCUは通常、外界へのすべての周辺機器を準備します
  • コンパイルには数秒かかります(FPGAには数分から数時間かかります)
  • 1桁(または2桁)多い数のエンジニアが助けたり、中断したところから再開したりできます。(楽しい、必ずしも統計的に有効ではない、比較のために-CVHDLまたはFPGAのスタックオーバーフローに関するQ&Aの数を比較してください)

必要な場合はFPGAを使用してください。

  • 必要な数を処理することは、マイクロプロセッサでは、電力、重量、サイズ、またはコストバジェットで満たすことができません。
  • ソフトウェアでは保証できないハードリアルタイムの期限があります(たとえば、マイクロ秒の領域での応答時間)
  • FPGAロジックを使用すると、応答時間に関する堅牢なアサーションを簡単に作成できる場合があります
  • カスタムデータ型(12ビット浮動小数点など)を使用すると、コスト、電力などを大幅に節約できます。

または:

  • あなたの割り当てはあなたにあなたがしなければならないことを伝えます:)

+1「1桁(または2桁)以上多くの助けとなるエンジニア」を含む3番目の弾丸。前回この基準を使用したのは、プログラミング言語を選択するためでした。
Nick Alexeev

5

マイクロコントローラー(MCU)を使用する方が簡単だと思ういくつかの理由:

  • MCUの経験がある。新しいチップの詳細を学ぶには時間がかかります。
  • MCUには、FPGAに自分で実装(または購入)する必要がある周辺機器が組み込まれています。たとえば、ほとんどのMCUにはI2Cポートがあり、I2Cセンサーから読み取る場合に役立ちます。また、ほとんどのMCUには、ある種のアナログデジタルコンバーターとパルス幅変調器があります。これらは両方とも、適切なモーター制御に必要となる可能性が高いです。
  • 複雑なアルゴリズムは、VHDLよりもCで表現する方が簡単です(私はVerilogの経験がありません)。
  • 人間規模の遅延はMCUでは簡単ですが、FPGAではかなりのリソースを必要とします。
  • 単純なファクトリオートメーションでは、MCUの短い標準ビット幅と低速で十分です。

どちらの場合も、作成したコードに注意を払い、すべての状況、特に危険な状況で正しく機能するようにする必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.