FPGAとMCU-組み込み設計のもう1つの方法

ほとんどのエンジニアは、組み込みシステムのマイクロコントローラーから旅を始めます。マイクロコントローラを使用すると、1つの集積回路上に完全なマイクロコンピューティングシステムを構築できます。CPU、RAM、ROM、およびI / O周辺機器はすべて、単一のサムサイズのSoC上にあります。組み込み設計と開発を学ぶこの非常に人気のある方法は、実際には全体像のほんの一面にすぎません。マイクロコントローラ(およびマイクロプロセッサ)の使用は、完全にソフトウェアベースの組み込み設計です。マイクロコントローラには、サイズと動作が固定された独自の命令セットがあります。マイクロコントローラーで作業する場合、エンジニアはアセンブリ言語または組み込みCを介して同じ命令セットを使用して、実際のアプリケーションでいくつかのコンピューティングタスクを解決します。
マイクロコントローラーの使用はかなり簡単です。AVR、8051、PIC、ARMなどの人気のあるマイクロコントローラーは、組み込みシステムのソフトウェア開発側をエンジニアにうまく示しています。しかし、組み込み開発には別のアプローチがあります。それは、ハードウェアベースの組み込み設計です。残念ながら、マイクロコントローラーには、組み込み開発のこの側面についてエンジニアを教育する能力がありません。これがFPGAです。
フィールドプログラマブルゲートアレイ(FPGA)は、1984年にザイリンクスによって発明されました。これらの集積回路には、特定のタスクを実行するために電気的に構成できる(たとえば、ゲートがフィールドプログラマブルである)数百万の論理ゲートが含まれています。マイクロコントローラー、マイクロプロセッサー、グラフィックプロセッサー、特定用途向け集積回路(ASIC)などのコンピューターは、基本的に、一連の指示に従って特定のタスクを実行するデジタル電子回路です。命令セットには、レジスタまたはメモリチップに格納されている一部のデータでコンピュータのデジタル回路によって実装できるマシンコードが含まれています。FPGAは、設計をハードウェアレベルにまで高めます。エンジニアは、アーキテクチャレベルから(単純な)コンピューティングデバイスを設計できます。この単純なコンピューターは、特定のアプリケーションを実行するように設計および構築されています。
図1:組み込みシステム用のフィールドプログラマブルゲートアレイ(FPGA)

図1:組み込みシステム用のフィールドプログラマブルゲートアレイ(FPGA)
FPGAを使用して算術論理演算装置やその他のデジタル回路を設計し、単純な計算タスクを実行できますが、実際にはマイクロコントローラーやマイクロプロセッサーとの計算上の互換性はありません。マイクロプロセッサまたはマイクロコントローラは、複雑な構造を持つ実際のコンピューティングデバイスです。ただし、FPGAはかなり同等の特定用途向け集積回路であり、任意のASIC機能をFPGA上でカスタム設計および製造できます。
マイクロコントローラーを使用すると、エンジニアは高級言語またはアセンブリ言語を習得してコンピューターソフトウェアを設計できますが、FPGAを使用すると、エンジニアはコンピューター(単純なコンピューティングデバイス)を自分で設計できます。このハードウェアベースの組み込み設計には、デジタル回路設計とコンピュータアーキテクチャの詳細な理解が必要です。マイクロコントローラーがアセンブリ言語またはcなどの高級言語でプログラムされているように、FPGAチップはVerilogまたはVHDL言語でプログラムされています。CコードまたはアセンブリコードがそれぞれのCPUで実行するためにマシンコードに変換されるのと同じように、VHDL言語はデジタルロジックブロックに変換され、FPGAチップで処理されて特定のアプリケーション用のカスタムコンピューターを設計します。エンジニアはVHDLまたはVerilogを使用して、ルートレベルからデータパスとALUハードウェアを設計します。マイクロプロセッサまたはマイクロコントローラでさえ、そのような設計をサポートするのに十分なロジックブロックがあれば、FPGA上で設計できます。FPGA
の利点-FPGAは、デジタルデザインとコンピュータアーキテクチャを学習するための単なるツールではありません。
FPGAチップは、組み込みシステムエンジニアリングにおいて特定の実用的なアプリケーション価値を持っています。FPGAチップは、ASICの真の代替品を提供します。FPGAには次の利点があり、組み込みシステムでのアプリケーションについても説明しています。
マルチスレッドFPGAは、複数の命令を同時に処理できます。命令を並行して処理できます。これは、多くのアプリケーションでマイクロコントローラに勝る大きな利点です。マイクロコントローラは、一度に1つの命令のみを、順番に実行できます。マルチスレッドにより、FPGAは多くのアプリケーションでどのマイクロコントローラーよりも高速にタスクを処理できます。また、プロセスはハードウェアレベルで論理的にエンコードされるため、タスクを解決するために自由に使用できる共通のアーキテクチャと命令セットを備えたマイクロコントローラーとは異なり、FPGAは厳密に特殊化されたアプリケーションに適しています。FPGAは、さまざまな単純なロジック操作を高速で処理できるため、センサーデータの前処理、暗号化、ロジック回路設計、デジタルオーディオアプリケーション、ビデオストリーミングなどのタスクに最適です。
マイクロコントローラは、低速で標準インターフェイスを必要とする可能性のある複雑なコンピューティングタスクを解決するのに最適ですが、FPGAには、アプリケーションで処理する必要のあるデータの量が通常多い場合に利点があります。これはすべて、FPGAのマルチスレッドの性質によるものです。今日でも、多くのFPGAボードにはCPUが組み込まれています。したがって、必要なのは、アプリケーション固有の処理のための追加のロジックを設計することだけです。
デザインの柔軟性と範囲-チップにデザインをシミュレートするのに十分な数のロジックブロックが含まれている限り、FPGAチップ上で複雑なデジタル回路をデザインできます。これは、あらゆる周辺機器の設計やあらゆるコンピューティングタスクの実行に使用できます。マイクロコントローラにはそのような柔軟性はありません。マイクロコントローラーには、汎用コンピューティングユニットと、タイマー、GPIO、割り込み、シリアルインターフェイスなどの周辺機器が組み込まれています。マイクロコントローラの場合、特殊なアプリケーションに合わせてチップを変更する方法はありません。ただし、FPGAは、30個のタイマーまたは20チャネルのUART、50チャネルのPWMジェネレーターなどを使用してプログラムできます。独自の選択と要件のチップを設計する際のこの柔軟性は、組み込みエンジニアに多くの力を与えます。その場合、アプリケーションのコンピューティングチップは専用の設計を持つ必要があります。
アナログファクター-一般的に、組み込みシステムでは、コントローラーまたはプロセッサーは、コントローラーまたはプロセッサーからのアナログ出力を必要とするアナログ入力またはアクチュエーターを提供するセンサーと結合されます。アナログ値を伝送するようにプログラムできるフィールドプログラマブルアナログアレイ(FPAA)があります。多くのFPGAチップはFPGAとFPAAの組み合わせであり、チップはデジタル回路だけでなくアナログ信号の処理にもプログラムできます。これらのミックスドシグナルチップには、ADC(アナログ-デジタルコンバーター)またはDAC(デジタル-アナログコンバーター)ペリフェラルとアナログシグナルコンディショニングブロックが含まれています。この場合、出力ピンは、そのピンの負荷に必要な駆動強度とスルーレートを持つようにプログラムできます。したがって、FPGAチップは、アナログアプリケーション用にプログラムできるだけでなく、特殊なセンサーベースのアプリケーションに対応するための柔軟な設計も提供します。
再利用性-FPGAチップは、他のデジタル(およびアナログ)回路をエミュレートするように再プログラムできます。これは、回路がチップ上に組み立てられると、それが固定されたままになるということではありません。チップの電源を入れると、デジタルデザインが構成データとしてチップにロードされます。これは、チップが起動するたびに発生します。このデザインは、起動を続けるまでチップ上に残ります。これらの構成データは次回の起動時に変更できるため、次回はまったく新しいデジタル設計をチップ上でシミュレートできます。チップは再利用可能であるため、組み込みエンジニアは同じチップ上でさまざまなデジタル設計を何度も試すことができます。
シングルチップソリューション-このFPGAチップは、シングルチップソリューションのアプリケーションを提供します。マイクロコントローラを使用する場合、他の周辺機器(マイクロコントローラに組み込まれていない可能性があります)、FPGAのインターフェイス、またはASIC接続とのインターフェイスが必要になる場合があります。必要なすべての周辺機器、およびプロセッサまたはコントローラを1つのチップに配置できます。設計。
リアルタイム処理-FPGAチップは通常のコンピューティング集積回路ではありません。これらは、チップ上に専用のコンピューティングデバイスを作成するために使用されます。プログラム(マシンコード)を実行するマイクロコントローラーとは異なり、データパスとALUは、特定の計算タスクを解決するためにFPGA上に構築されます。そのため、プログラムを実行する代わりに、FPGA自体が特定のコンピューティングタスクを実行するようにプログラムされています。このハードウェアレベルのロジック実行により、データと情報のリアルタイム処理が可能になります。これが、FPGAが高速の重要なアプリケーションでよく使用される理由です。マイクロコントローラーは、共通のアーキテクチャーとコードの依存関係が原因で、固定アーキテクチャーと限られた命令セットで実行できなくなる可能性があります。
上記の利点により、FPGAは、大量のデータを処理するか、カスタムペリフェラル、構成可能なアナログ出力、または実行タイムクリティカルな特殊アプリケーション(平均して)を必要とする処理チップを使用する高速並列処理に最適です。 CPU)は不可能です)。FPGAを使用すると、組み込みエンジニアは、他の方法では高いエンジニアリングコストでしか利用できない複雑な統合設計にアクセスできます。FPGAは、クレジットカードサイズのボードにデジタルデザインを統合することで有利なスタートを切るミニ半導体ファウンドリのようなものです。
現実の世界では、FPGAは、生産量が多くない特定の分野でアプリケーションを見つけることができます。また、ASIC設計のプロトタイピングにも広く使用されており、市場投入までの時間が最短であるため、ASIC設計の長い製造方法の煩わしさを回避できます。FPGAの一般的なアプリケーションには、デジタル信号処理、画像処理、バイオインフォマティクス、暗号化、ソフトウェア設計の無線、医療画像、音声認識、電気通信、データセンター、航空宇宙電子機器、セキュリティシステムなどの分野が含まれます。一方、マイクロコントローラは、家庭用電化製品、自動車、産業用電子機器、通信システムなどの垂直分野の一般的な組み込みアプリケーションで広く使用されています。
FPGA-デメリット
FPGAにはすべてのメリットとアプリケーションがありますが、デメリットはほとんどありません。これらの不利な点は、経済、設計、開発などの要因によって引き起こされます。現在のFPGAテクノロジには、次の欠点があります。
コスト-FPGAボードは安くはありません。FPGAボードの価格は通常50ドル以上です。これは、どのマイクロコントローラーボードよりも何倍も高くなります。10ドル未満でも、多くのマイクロコントローラーボードが利用可能です。FPGAボードの高コストは、デジタルデザインとFPGAを使用した組み込みコースが人気がない理由の1つです。ただし、FPGAボードは再利用可能であり、何百回も使用できるため、その高コストは長期使用の象徴にすぎません。したがって、FPGAボードのコストは、研究開発目的またはプロトタイピング目的にとって価値があります。ただし、FPGAボードの製造を考えると、その高コストは手の届かない高価なプロジェクトであることが判明する可能性があります。この場合、マイクロコントローラーは、速度が遅く、汎用アーキテクチャーであり、マルチスレッドとリアルタイム処理がないにもかかわらず、メーカーにとって実行可能なオプションです。
図2:FPGA開発ボード

図2:FPGA開発ボード
の高電力要件-ほとんどのFPGAボードは、48vバックプレーンから電力を供給されます。FPGAボードの高消費電力と高消費電力により、多くの組み込みアプリケーションには適していません。一方、ほとんどのマイクロコントローラボードは、動作するために5vまたは3.3vの電源を必要とします。これにより、マイクロコントローラーは、バッテリー駆動のポータブル組み込みデバイスを設計するための明白な選択肢になります。
揮発性-デジタルデザインは、コンフィギュレーションデータとしてFPGAボードに渡されます。ボードの電源を入れると、ボードはそれに応じて構成され、機能を開始します。構成データは、マスターモードでフラッシュに保存されるか、バウンダリスキャン(JTAG)インターフェイスを介してスレーブモードでプロセッサによって渡されます。ボードの電源を切ると、構成データは失われます。ほとんどのFPGAボードでは、この不安定な性質により、ボードで停電や電力損失が発生する可能性のあるアプリケーションには適していません。
起動時間-FPGAボードは、電源を入れるたびにコンフィギュレーションデータをロードします。これにより、起動時間が大幅に長くなります。ただし、コンフィギュレーションデータがロードされると、FPGAボードはマイクロコントローラよりも高速に実行できます。ただし、FPGAボードの場合、起動時間により、組み込みデバイスの起動直後にタイムクリティカルな操作を実行する必要のあるアプリケーションで障害が発生する可能性があります。起動時間と構成データは変動するため、FPGAボードは組み込みデバイスのオンとオフが頻繁に切り替わるアプリケーションには適していません。さらに、消費電力要件が高いため、FPGAボードを組み込みデバイスの電源に常時接続することは不可能です。
ピン数が多い-FPGAチップには通常、ピン数が多くあります。そのため、FPGAは、コンピューティングプロセッサまたはコントローラを最小限のピン数で可能な限りコンパクトにする必要がある、サイズに制約のある組み込みアプリケーションには適していません。対照的に、8ピン以下のマイクロコントローラが多いため、ガジェットやデバイスで簡単に使用できます。
複雑さ-FPGAでの作業は、マイクロコントローラーでの作業ほど簡単ではありません。数年前、FPGAから始めて、エンジニアはデジタル設計とコンピュータアーキテクチャの詳細な知識を持っていなければなりませんでした。その場合、VHDLまたはVerilogは、ソフトウェア開発やアセンブリ言語でさえ使用される高級プログラミング言語よりもはるかに複雑です。FPGAでの開発に必要なツールのほとんどは無料で入手でき、リーズナブルな価格(〜$ 50)で入手できるFPGAボードが多数ありますが、これらのツールは使用が複雑で、入手可能なFPGAボードの中でまだかなり制限されています。選択が難しい。デジタルデザインには、実際の経験によってのみ習得できる多くの複雑さ、落とし穴、および警告もあります。
デザインの制限-FPGAでは、デジタルデザインのロジックブロックのみを相互接続できます。ただし、ゲートレベルでの制御はなく、通常の合成は非標準です。ただし、FPGAは、アーキテクチャまたはASIC設計のテストの初期段階で非常に役立ちます。
耐久性–マイクロコントローラーと比較して、FPGA集積回路の寿命は短くなります。マイクロコントローラはデバイスで数十年使用できますが、組み込みデバイスのFPGAチップは2〜5年以内に交換する必要がある場合があります。
FPGAの高コスト、変動性、長い起動時間、高消費電力、高ピン数、短寿命、および設計上の制限により、FPGAチップの使用はますます少なくなっています。これらは、特殊なアーキテクチャ、カスタム周辺機器、および並列処理による重要なマシンコードの実行を必要とするハイパワーデバイスにのみ表示されます。
結論
-FPGAチップには、マイクロコントローラーと比較して独自の長所と短所があります。FPGAは、一般的な組み込みアプリケーションや一般的な組み込みアプリケーションには適していない場合がありますが、FPGAは、マイクロコントローラーでは不可能な方法で、集積回路設計の世界にアクセスして探索することができます。組み込みエンジニアは、FPGAに取り組み、マイクロコントローラーとマイクロプロセッサーに関する豊富な経験を持っている必要があります。これにより、エンジニアはデジタルの世界を内外で探索できるようになります。マイクロコントローラーとプロセッサーを使用する前は、エンジニアはソフトウェアでしか考えることができませんでしたが、FPGAを使用した後は、ハードウェアでも考えることができます。FPGAに取り組むことで、エンジニアはソフトウェアがプロセッサとコントローラでどのように機能するかについての実践的な知識を得ることができます。
コードを最初から構築した後のように、ソフトウェア開発の観点から見たAPI(アプリケーションプログラミングインターフェイス)は、プログラミングの単純なハンドルのように感じ始めます。同じことがアセンブリ言語またはVHDLとVerilogの後に埋め込まれたcにも当てはまります。組み込み開発用のアセンブリ言語と高級言語は、VHDLとVerilogのAPIが使用されていたように感じ始めます。したがって、事実上、FPGAおよび同様のCPLDテクノロジは、組み込みエンジニアリング分野を補完および補完します。
Bai Jilong氏は、電子産業に15年間携わっており、
これまでに100を超える製品を開発し、そのほとんどが大量生産されて発売されました。
2018年から
数千のエピソードを記録するのに5年かかりました。A
コンポーネントからコアモジュール、完成品まで、一連の実用レベルの電子エンジニアコース

  • Lao Baiの当初の意図は、「世界のエンジニアが迂回しないようにする」ことでした。その中には、MOSトランジスタとIGBTを詳細に説明するコースがあります。BaiJilong氏は、15年間電子産業に携わっています。

  • これまでに100以上の製品が開発され、そのほとんどが量産・発売されており、2018年から5年を要しました。

  • 私は一連の実用レベルの電子技術者コースの何千ものエピソードを記録しました。このコースの本来の目的は、コンポーネントからコアモジュール、完成品までです。ラオバイの本来の目的は、「世界中のエンジニアがそうしないことを願っています。その中に
    は、MOSチューブとIGBTの詳細なコースがあります。

おすすめ

転載: blog.csdn.net/m0_49011926/article/details/124216007