FPGA:これらのチップとそのプログラミングに関するすべて

FPGAチップ

たくさん FPGAはますます人気が高まっています 最後に。 専門的なアプリケーションでさえ、これらのチップはしばしば使用されますが、これが意味するすべての利点を備えたチップ内にディスクリート回路を実装したいDIYやメーカーにも使用されます。 レイアウトやパターンを送信し、カスタムチップを製造してもらうための工場を見つけるのは、安くも簡単でもありません。

一部のファウンドリが許可しているのは事実です ウェーハまたはマルチプロジェクトウェーハを作成する 個人や大学からチップを作ってテストします。 これらのタイプの工場は、私が言うように、見つけるのが難しく、通常は海外にあり、安くはありません。 しばらくすると、チップのサンプルが合意されたアドレスに送信されますが、これらのテストや動作の確認は担当していません。 それはすべてあなたのデザインに依存します...

A これに対する代替ソリューションは、FPGAを購入することです。 チップ内に実装する必要があるものは何でもプログラムします...

FPGAとは何ですか?

プログラム可能なセル

FPGAはFieldProgrammable GateArrayの略です。 それらは、実質的に何でも実装できるように構成できるデジタルデバイスまたはチップです。 つまり、「書く」ことができる空白のチップです。 つまり、CPU、メモリ、コントローラー、任意のロジックなどを実装して、非常に高速な操作を実現し、電子要素ではなくチップに統合することのすべての利点を実現できます。

ザイリンクスの共同創設者であるRossFreemanとBernardVonderschmittは、1984年にFPGAを発明した人物です。彼らは当時のCPLDチップへの進化としてそれを実現しました。 CPLDプログラマブルチップには、新しいFPGAデザインを解決するいくつかの欠点があり、それ以来、それらは今日まで進化してきました。

FPGA市場は非常に実り多いので、 Intel、ザイリンクス、アルテラ、Quick Logic、Latticeなど。、彼らはより良いFPGAと、それらのための組み込みプログラミング環境またはIDEを開発するために多くの投資を行ってきました。 したがって、開発者またはメーカーのタスクを容易にするための非常に優れたプラットフォームを提供します。

現在、これらのメーカーはプログラム可能なチップを提供するだけでなく、 多数の補助要素 開発者により多くの可能性をもたらすために。 たとえば、フラッシュメモリセル、SDRAMメモリセルなどが含まれます。

それらは何のために使用されますか?

FPGAをプログラムするIDE

したがって、FPGAはASICに似ていますが、 私たちは選ぶことができます 何になりますか。 たとえば、それをプログラムしてCPU、GPU、加算器、メモリコントローラー、またはシングルチップに実装されたその他の論理回路に変換するコードを作成できます。

可能性はかなり無限大です。 実際、私はあなたがウェブサイトを訪問することをお勧めします オープンコアズ.org、多数のプロジェクトを提供することに特化したサイト hardware libre。 VHDL、Verligo などのコードが見つかります。 RAM、CPU、GPU、コントローラー、ALU、FPU、デコーダー、およびロングなど。.

それはどのようにプログラムされていますか?

FPGAのプログラマー

FPGAをプログラムするには、GNU / Linux、Windows、MacOSなどのお気に入りのオペレーティングシステムからプログラムできますが、Windowsの開発環境は確かに多くあります。 一般的に、FPGAを製造しているのと同じ会社が 動作する非常に完全なIDE 同じソフトウェアスイートで必要なすべてのツールを見つける場所。

また、 FPGAチップまたはボードと必要なケーブルまたはプログラマー これを使用してFPGAをPCに接続し、記述されたコードをFPGAに渡してプログラムすることができます。 これは、Arduinoボードで行うことと似ており、ArduinoIDEプログラムをマイクロコントローラーのプログラム可能なメモリに書き込みます。

FPGAの場合にのみ、メモリセル、ANDゲート、OR、NOT、フリップフロップなどの基本コンポーネントのマトリックスまたは配列があります。 デジタル電子機器の基本的な要素またはブロック 使用できます。 記述されたプログラムで、私たちがやろうとしていることは、これらの重要なブロックをグループ化して、ALUなどの必要な小さな回路を形成する方法を課すことです。

つまり、IDEで加算器をプログラムする場合、この加算器を実装するために必要なブロック 彼らはリンクしようとしています チップが加算器として機能するように、FPGA内で正しい方法で。 簡単ですよね? 一般に、このプログラミングでは、メモリやヒューズなどのいくつかの方法が物理レベルで使用され、その場合は永続的なリンクが作成されます。

それらが動作する速度は、 クロック周波数 購入したFPGAが動作します。 たとえば、最も基本的なものは通常50 MHzで動作しますが、他の周波数でははるかに高い周波数で動作します。 50 MHz FPGAの場合、これは50.000.000秒間にXNUMX回の速度で動作することを意味します。 私が例として挙げた加算器を続けると、XNUMX秒でその量の合計を行うことができます...

のテーマを継続 プログラミングArduino IDEで行うようにコードを記述したり、他のプログラムを開発したりできることがわかったら、それがハードウェアレベルでどのように行われるかを見て、実際にはそのようなプログラミングではないと言います。 むしろ、それはハードウェアの説明です。 実際、VHDL、Verilogなどのハードウェア記述言語が使用されています。

とともに そのプログラムは論理レベルで記述されています 実装したい小さな回路は何をしますか。 そして、FPGAに送られます。 一部のプラットフォームでは、Cなどのプログラミング言語でのプログラミングがFPGAにCPUを実装し、プログラムを生成してメモリにロードし、そのプロセッサで処理できるようにすることは事実ですが。

Arduinoとの統合

Arduino-FPGA

FPGAは通常個別に使用されますが、市場には多くのツールやキットがあり、生活をより簡単に統合できるようになっています。 Arduinoプラットフォームを搭載したFPGA。 Arduinoを使用してプロジェクトにFPGAを導入するボードの例は、MKR Vidor 4000ですが、他にもあります。

MKR バイダー 4000 10チップのボードです。 それらのXNUMXつはFPGA、特にIntel CycloneXNUMXです。BluetoothLEまたは低消費接続用の他のチップやWiFi互換性もあります。 Arduinoに接続機能を提供し、FPGAに必要なものを実装できるようにするための優れた補完機能です。

それであなたは持っています カスタマイズ可能なハードウェア、必要な目的のために自分で構成します。 それは無限の可能性を提供します。


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。