この投稿を読みましたが、私の質問に完全には答えていません。

マイクロコントローラーは、メモリとレジスターを備え、LOAD、STORE、ADDなどの一連の命令を処理できるものと考えています。それはその役割を果たすための論理ゲートなどを含んでいますが、その主なタスクはビットのユニバーサルプロセッサになることです。 Microntrollerは、命令を格納および処理する機能を作成するための相互接続されたASIC設計のシステムだと思います。

ASICデバイスは、論理的および電気的コンポーネントを使用して実行するために特別に構築された回路だと思います。他のタスクを念頭に置いておらず、追加のハードウェアも含まれていない1つのタスク。

FPGAデバイスはASICデバイス(低レベルデバイス)+残りの未使用のものの束と考えています。特定の真理値表を実装します。

その名前にもかかわらず、FGPAは、新しい別のタスクを実行するために再配線する必要があるため、非常に「特定用途向け」であると感じます。これはASICとの混乱につながります。ただし、FPGAを再配線する場合は、必要なすべてのハードウェアが存在する必要があります。また、FPGAはプログラム可能であることが意図されていますが、それはマイクロコントローラーの目的ではありませんか?

上記の投稿では、私が精通しているHDLについても言及しています。 「HDLをASICとFPGAの両方に使用したり、プロキシでマイクロコントローラー全体を設計したりすることはできませんか?

コメント

  • It ‘あなたの質問が何であるかはあまり明確ではありません。FPGAとASICの関連する質問を読んだことがありますか?HDLは実際にASICとFPGA実装の設計に使用され、HDLでマイクロコントローラーを設計できます。
  • Alteraは、 FPGA for Dummies と呼ばれる無料の電子ブックを提供しており、FPGA、ASIC、およびマイクロコントローラーの違いを詳しく説明しています。
  • @kkramboあなたは’ をダミーと呼んでいますか?:)申し訳ありませんが、’抵抗できませんでした…私
  • 質問のタイトルに’類似点’という単語を追加しました。 3つの異なるデバイスの関係を混乱させる可能性のある技術的な専門用語の詳細があります。たとえば、1つのデバイスに他の2つのデバイスの1つが含まれている場合があります。または、多くの同様のコンポーネントが含まれている可能性がありますが、いくつかの重要な側面が異なります。これは、既存の回答のいくつかによってすでに触れられています。ありがとうございます。

回答

ASICとFPGA

フィールドプログラマブルゲートアレイは、特定用途向け集積回路のプロトタイピング段階と見なすことができます。ASICは製造に非常に費用がかかり、一度製造されると(最も高価な固定コストはマスク[一種の製造「ステンシル」]とその開発であるため)FPGAは何度も再プログラム可能ですが、ゲートの汎用アレイが接続されて目標を達成するためです。 、ASICのように最適化されていません。また、FPGAは、電源を切ると現在の状態だけでなく構成も失われるという点で、ネイティブに動的なデバイスです。ボードは現在存在していますが、FLASHチップやマイクロプロセッサを追加します。起動時に構成をロードするため、これはそれほど重要ではない傾向があります。ASICとFPGAはどちらもハードウェア記述言語で構成でき、FPGAは最終製品に使用されます。しかし、一般的にASICは、設計が修正されたときに開始されます。

FPGAとマイクロコントローラー

マイクロコントローラーとFPGAの場合、マイクロコントローラーは基本的にFLASH / ROMのコードを順番に処理するASICと見なすことができます。最適化されていなくてもFPGAを使用してマイクロコントローラーを作成できますが、その逆はできません。FPGAは電子回路と同じように配線されているため、プロセッサーがコードから別のコードにジャンプするマイクロコントローラーのように、真の並列回路を作成できます。十分な並列処理をシミュレートします。ただし、FPGAは並列タスク用に設計されているため、マイクロコントローラーのようにシーケンシャルコードを作成するのは簡単ではありません。

たとえば、通常、擬似コード「let C be A XOR B」を記述した場合、FPGAは「レゴブロック(ルックアップテーブルとラッチ)を含むXORゲートを構築する」に変換されます。そして、A / Bを入力として、Cを出力として接続します。これは、Cが使用されているかどうかに関係なく、クロックサイクルごとに更新されます。 「読み取り命令-それ」に変換されるマイクロコントローラーでは、RAMのアドレスAとアドレスBの変数のXORであるのに対し、結果はアドレスCに格納されます。算術論理演算装置のレジスターをロードしてから、ALUにXORを実行するように依頼します。次に、出力レジスタをRAMのアドレスCにコピーします」。ただし、ユーザー側では、両方の命令は1行のコードでした。これを行う場合、次に何か別のことを行います。HDLでは、並列コードとは別に、シーケンスを人為的に実行するプロセスと呼ばれるものを定義する必要があります。一方、マイクロコントローラでは何もする必要はありません。一方、マイクロコントローラーから「並列処理」(実際にチューニングインおよびチューニングアウト)を行うには、簡単ではないスレッドを操作する必要があります。さまざまな作業方法、さまざまな目的。

要約:

ASICとFPGA:修正済み、少数の製品ではより高価(大量生産ではより安価)、ただしより最適化。

ASICとマイクロコントローラー:確かにツールとハンマーを比較するようなものです。

FPGAとマイクロコントローラー:シーケンシャルコード処理用に最適化されていませんが、真の並列タスクも非常に簡単に実行できます。 一般的に FPGAはHDLでプログラムされ、マイクロコントローラーはC /アセンブリでプログラムされます

並列タスクの速度が問題になる場合は常に、FPGAを採用し、設計を進化させ、最終的にASICにします。 「長期的には安価です(大量生産)。順次タスクに問題がない場合は、マイクロコントローラーを使用してください。長期的にも安価であれば、これからさらに特定用途向けICを実行できると思います。 。最善の解決策はおそらく両方のビットです。

これを書いた後のクイック検索で得られたもの:画像を入力ここに説明 ここに画像の説明を入力

FPGAとマイクロコントローラーの比較このフォーラム

回答

FPGAは再プログラミングによって「再配線」できます。 FPGAは、電源が投入されると、その構成を構成可能なロジックセルにロードします。これは、ハードウェアを変更せずに再プログラムできることを意味します。

ASICは、シリコンファウンドリでフォトリトグラフィックマスクを変更することによってのみ再配線できます。

マイクロコントローラーはASICのタイプ。プログラムを実行し、結果として一般的なことを実行できます。ただし、命令セットを変更する場合、または同様のことを行う場合は、実際のシリコンICレイアウトを変更する必要があります。


FPGAとMCUの違いはよりあいまいです。基本的に、FPGAとは、ハードウェアレベルでは、多数の小さなSRAMセルであり、すべてがマルチプレクサの高密度マトリックスに接続されています。基本的に、FPGAは、マルチプレクサとSRAMセルを再プログラミングするだけで電子的に「再配線」できるディスクリートロジックの山全体です。

そのため、次のことができます。 MCUはロジックセルの特定の構成にすぎないため、実際にはFPGA内にMCUを実装します。 実際、FPGAはMCUの設計プロセスで非常に一般的に使用されています。

マイクロコントローラーは、特定のロジック構成の実装です。それらを使用する理由は、MCUをシリコンに直接実装することにより、必要なシリコンダイスペースの全体量を大幅に最適化でき、FPGAの必要な「汎用性」では不可能な特定のパフォーマンス最適化を行うことができるためです。これにより、MCUの製造コストを大幅に削減でき、その結果、一般的なMCUは、同等のロジックを搭載できるFPGAよりもはるかに安価になります。


FPGA 特定のアプリケーションで役立ちます。MCUでは不可能な方法でロジック構造を実装できるためです。たとえば、X1 + Y1、X2 + Y2、X3 + Y3、およびX4 + Y4を追加する必要がある場合、 MCUは各操作を順番に実行する必要があります*。FPGAは単純に4つの個別の ALUを同時に持つことができます div id = “036e33f4ef”>

なので、4分の1の時間で同じ操作を実行できます(2つのデバイスが同じレートでクロックされると仮定します)。

ここでFPGA(または同じタスク用に設計されたASIC)は、単一のプロセスでしか実行できない多くのことを同時に実行できるという事実で本当に輝いています。

* (注:ここではSIMDのようなものを無視しています)

コメント

  • 私はしません’ FPGA / ASICの区別があいまいだとは思わない。 FPGAでは、”配線”を変更できる回路が同時に独立して動作します。 MCUには、配線を変更できない回路が大量にあり、その動作は、プログラム可能なメモリアレイから少しずつアクセスされる情報によって制御されます。 CPUは通常、数千から数十億の選択肢のリストから1つの操作しか実行できませんが、MCUは、そのような操作を順番に実行できるように設計されています。便利な仕事です。
  • ありがとうございます。答えになるのに非常に近い… 10ヶ月後ですが。 +1して償いをします。

回答

これは良い質問です

基本的にはマイクロコントローラーとASICには、石に固定されて変更できないハードウェア(シリコンと呼ばれることが多い)があります。FPGAは構成可能さまざまな種類のハードウェアを表す(これにはマイクロコントローラーを含めることができます)。

マイクロコントローラーはさまざまなことを実行できると思うかもしれませんが、これはすべて、さまざまなプログラム(技術的にはソフトウェア)を実行することによって行われます。ただし、ファームウェアと呼ばれることもあります。ハードウェア自体は基本的に変更されませんが、基本的に同じ操作を実行しますが、入力が異なると順序が異なります。

FPGAは通常、ASICにコミットされる設計を生成するために使用されます。それらの違いは、FPGAの内部動作を更新したり、機能ブロックを追加/削除したりする必要があるのは、FPGAのファームウェアを更新することだけである場合、内部の問題としてASICでは実行できないことです。キングはシリコンに取り組んでおり、再構成することはできません。

つまり、マイクロプロセッサでは、同じハードウェアを使用してさまざまなプログラムを実行します。FPGAでは、さまざまな機能を実行するようにハードウェアを再構成します。ASICは、ハードウェアができないという点でマイクロコントローラーのようなものです。変更されましたが、通常は単一の機能を非常に効率的に実行するように設計されています。

ASICとFPGAの両方にマイクロコントローラーを含めることができ、含まれている場合は、スタンドアロンのマイクロコントローラーと同じようにプログラムを作成できます。これはアルテラのNIOSIIエンベデッドプロセッサです。

それでも混乱する場合は、不明な点をお知らせください。回答を明確にするために最善を尽くします。

ジプシー

回答

特定のゲートのコレクションのように動作する場合、電気信号によってFPGAがプログラムされることはありません。一部のFPGAにはフラッシュが含まれていますこの構成を保存するためのメモリ。一部のメモリは、電源をリセットするたびに再プログラムする必要があります。

ASICはすでに生産ラインから外れていますc onfigured。

FPGAのバグはファームウェアのアップグレードで修正でき、ASICのバグは「経済的に修復できません。

回答

FGPAは、その名前にもかかわらず、新しい別のタスクを実行するために再配線する必要があるため、非常に「アプリケーション固有」であると感じます。

これは、「特定用途向け」の意味とは逆です。 FPGAを再配線することにより、複数のアプリケーションに使用できます。 ASICを変更することはできないため、1つのタスクにのみ適用できます(そのタスクはマイクロコントローラーを実装している可能性があります)。

ただし、 FPGAを再配線するには、必要なすべてのハードウェアが存在する必要があります。

これが何を意味するのかわかりません。通常、「FPGAを再プログラミングするためのソフトウェアインターフェイスがあります。これは、数百万の[通貨単位]のハードウェアを必要とするASICです。

FPGA」はプログラム可能であることが意図されていますが、それはマイクロコントローラーの目的ではありませんか?

マイクロコントローラーを使用すると、固定ハードウェア用のシーケンシャルソフトウェアをプログラムできます。通常のコンピュータと同じですが、非常に小さく、リソースが限られています。 FPGAを使用すると、HDLを使用して必要なハードウェアをプログラムできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です