プログラマブルチップ設計プログラムaltera。 ハードウェア - ALTERA: プログラマブル ロジック チップ (入門資料)。 アルテラ製品。 最大の PLS 開発会社の 1 つである altera は、1983 年に設立されました。


(C) Research/VolgaSoft 現代のテクノロジー。 アルテラ。(紹介資料)導入 この記事では、現代の小さな奇跡、デジタル エレクトロニクスの世界における計算された画期的な進歩であるプログラマブル ロジック チップについて説明します。 これは最新のモデルに組み込まれているレンガです ZX-SPECTRUM - GMX および SPRINTER 、これは、Z80X (たとえば、30 MHz、マシンサイクル 1 クロック) からあらゆるものまで、ほぼすべてのことを実行できる同じマイクロ回路です。五角形 2D アクセラレータ、GS、マウス、IDE コントローラと組み合わせて使用​​できます。 おそらくすべてのアマチュア無線家は、デジタル機器を開発するとき、心の中で、すべての病気に効く薬がどこで見つかるか、すべてを置き換える超小型回路を夢見たでしょう。 エンジニアは、本格的な製品を開発する場合、「目的に合わせて」カスタム集積回路を設計する必要があるため、特にそのようなデバイスを必要としていました。 ロジックが策定されてから実用的な製品が登場するまでには、通常、数か月かかり、膨大なリソースが費やされます。 しかし、需要が供給を生み出します。セミカスタムの大規模集積回路 (LSI) やプログラマブル ロジック アレイ (PLA) が登場しました。 科学は留まらず、技術はどんどん進歩し、ある日「ソフト」+「ハード」+「石」のパッケージのリリースが発表されました。 アイデアは非常に単純でした。開発者はソフトウェアで図を描くか (紙から転送することもあります)、または二項方程式と単純な演算子を使用して将来の製品のロジックを記述します。その後、コンパイラーがその図を何らかのコードに変換し、コードがプログラマ (「ハードウェア」) によってステッチアップされ、プログラマブル ロジック チップ (「ストーン」) になり、すぐにボードにはんだ付けできます。 また、チップの開発やテストにコストはかかりません。 デジタル機器の開発者はこの新製品を大歓迎しました。 現在、市場には LSI プログラマブル ロジック (PL) のメーカーが数多くあります。 同社の製品は、容量とアーキテクチャの両方が異なるだけでなく、ソフトウェアとハ​​ードウェアのサポート、サービス、そして最終的にはコストの品質も異なります。 今日の明確なリーダーは企業ですアルテラ株式会社 。 幅広い製品だけでなく、その製品の適切な流通のおかげで市場を征服しました。 たとえば、教育目的でのソフトウェア製品 (学生版) の使用は無料です。 ロシアにとって、一般に、これは重要ではありません(著作権法を見たことのある人はほとんどいません)が、海外では、この問題は重要です。 さらに、同社の製品は文字通り国内市場に参入しました。その結果、現在ではほぼすべてが国内市場に参入しています。言葉から行動へ アルテラの VLSI PL 以下の基準に従って分類されます。 1) 集積度 (利用可能なゲート (2I-NOT 要素) とフリップフロップの数)。 2) 最も単純な機能コンバーター (セル) のアーキテクチャ。 3)VLSIの内部構造の整理と機能変換器の接続マトリックスの構造(セルの接続方法)。 4) 内部 RAM メモリの存在。 5) プログラマブル要素 (ヒューズ、EPROM、EEPROM、フラッシュ、SRAM) を製造するためのテクノロジー - 回路がどのように配線されているか。 BIS PL会社のほとんどと協力するためアルテラ MAX+plus II ハードウェア記述言語を提供します。 MAX+plus II 設計自動化システムは、6 ファミリの VLSI PL をサポートします。┌─────┬─────────┐ │ │ パラメータ │ │ §───── ┬─────┬─────┤ │ファミリー│ロジック│UPin │テクノロジー │ │ │ 容量 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ §── ─────┼───── ────┼──────┼──────┤ │クラシック │ 300-900 │22-64│EPROM│ │MAX5000 │ 600-3750 │24-84│EPRO M│ │MAX7000E │ 600-5000 │ 164 まで│EEP- │ │MAX9000 │ 6e3-12e3 │ 216 まで│ROM │ │FLEX8000A│ 2500-16e3 │ 208 まで│SRAM │ │FLEX10K │ 1e4-1e5 │ 406 まで │SRAM │ └── ──────┴─ ─────┴─────┴─────┘論理容量は利用可能な 2I-NOT 要素の数です。つまり、最大 25,000 個の LA3 を FLEX10K に適合させることができます。 UPin - ユーザーピンの数。 テクノロジー - テクノロジー。 テーブルの実践的な説明: 最も機能不全の FLEX8000A (SRAM テクノロジー - つまり、電源をオンにした後、デバイスの回路をオルタネーターに「注入」する必要がある) を取り上げ、ユーザーの足で Rodimigo バスに吊るしたとしましょう。スペックー (無料のものがいくつか残ります)、簡単なポート デコーダーを一括で作成し、alterina 入力に接続します。 何が得られるでしょうか? スーパーデバイスを手に入れました!!! 結局のところ、これで事実上あらゆるスキームを変更に注ぎ込むことができます。 外部マットなら何でも構いません。 プロセッサ (16 ビットの数値を 1 バイトずつ 1 つのポートに入力し、2 番目の数値を別のポートに入力し、オペレーション コードを別の場所に入力して結果を読み取るとしましょう)、心に理解できるすべてのものに (突き刺すといくつかのフリーレッグを「必要な場所」に追加 - セグメントのハードウェアフィルとハードウェア構築、マルチチャンネルプログラマブル割り込み(特にデジタルオーディオに関連)、新しいプロセッサコマンド(次のように)を行うことができます。"スプリンター" または追加のプロセッサ レジスタ....)。 頑固な「コーダー」が依然としてそうしているように、大掛かりな機能を発明しないようにハードウェア機能のライブラリを作成し、タスクに応じてそれらを読み取ることができます。 同じ FLEX8282A の回路の「ファームウェア」(「最も致命的」、上記を参照)の重さは、私の記憶が正しければ 6kB です。 構成中、すべてのユーザーレッグは Z 状態にあり、システムの動作には影響しません。 デバイスを「永久に使用できる」ようにする必要があり、電源を入れた後に毎回設定する必要がない場合は、MAX ファミリを使用できます。 また、MAX ファミリの一部の LSI には「回路リーク」に対する保護機能が備わっています。これは開発秘密のようなものですが、私の意見では、このファミリの使用は (少なくとも「家庭」環境では) ある程度制限されています。プログラマと限られた数のプログラミング サイクル。ここで、開発環境について少し説明します: ハードウェア説明言語 MAX + PLUS II。MAX + plus II システムは、次のプラットフォーム用に作成されています。 PC、MAC、SUN。 どちらもスペシーではない 、何らかの理由で、悪名高いガールフレンドでさえこのリストには載っていませんでした。 このシステムは非常に優れており、シンプルで、幅広い可能性を秘めています。 主なコンポーネントは、グラフィック エディターとテキスト エディター、コンパイラー、ダイアグラム エディター (「デバッガー」とも呼ばれる)、タイマー、レイアウトおよびレイアウト エディターです。 デバイスの図はグラフィック エディターで描画されます (グラフィック タスクが使用されている場合)。 計画の要素として、「ブルジョワゲストによると」ロジックを使用でき、74番目のシリーズ全体がそこにあり、敵の指定が気に入らない場合は、すべてを私たちの方法で描画して機能させることができます。 テキスト エディタを使用して、ハードウェアのテキスト説明を提供します。 言語はその間のどこかにあります dBase、C、パスカル 。 同期有限状態マシンを記述するためのほぼ既成のコマンドがあり、また、もしと場合 。 加算器は文字通り次のように記述されます。 C=A+B 。 電話用チップ カードの説明とテスト (以下を参照) は、負担をかけることなく 1 時間で完了します。 コンパイラは回路図 (またはテキスト) をチェックし、指定された「ブリック」のファームウェアを生成します。 速度と容量の最適化制限を幅広く調整できるため、デバイスまたはチップ上の最小占有領域から最大のパフォーマンスを引き出すことができます。 医師が考案した便利なものがあります。 レースや危険な場所がどこにあるのか、どのような条件で出現するのかを示し、電源を入れた後にリセットを押して初期化するよう求めることを忘れないようにします。 ダイアグラム エディタでは、将来のデバイスの動作をシミュレートできます。入力信号を設定し、対応する出力を確認するとします。レースも忘れずに表示されます。 したがって、回路を組み立てる前に「最大」で実行して確認することをお勧めします。 確かに、T トリガーにはバグもありました。 R.S. 、実際には耕しましたが、差によって同期しました。 図の表示が非常に便利になりました。図をグループに結合し、見やすい数値体系 (2 進数、10 進数、16 進数) で表示することで、図を表示できます。 入力データはコードで指定することも可能グレー 。 マシンの内部状態を表示することもできます。 タイマー (これはアフリカのタイマーでもあります) は、遅延とデバイスの最大動作周波数を示します。 レイアウトおよびレイアウト エディタは、レースの「ハードウェア」削除 (ロジック セルの再配置) とカスタム ピンの配置に使用されます。 代理店価格アルテラ 残念ながら紛失してしまったので、FLEX10K10 は 20 ドルから、FLEX8282A は 8 ドルから、MAX ファミリの要素は 3.3 ドルからと記憶だけで言えます。 情報を入手できる場所に興味がある場合は、記事の最後までスクロールしてください。さらに詳しい情報が続きます。家族についての詳細情報 Classic ファミリには 3 シリーズの VLSI が含まれています。 このファミリーの LSI は、10 ~ 20 個のマイクロ回路を含むデバイスを中程度の集積度で置き換えることを可能にし、次の機能を提供します。 * LSI の入力および出力からの信号伝播遅延が 10 ns 以下であること。 * 最大 100 MHz の周波数で安定した動作。 * 低消費電力モードで動作する機能; * 開発機密モードを設定する機能 (回路をミクルヒからマージして戻すことはできません)。 注:すでに販売中止になっているようです。 MAX5000 ファミリには 5 シリーズの VLSI が含まれています。 このファミリーの LSI は、平均的な集積度で最大数十個のマイクロ回路を含むデバイスを置き換えることを可能にし、次の機能を提供します。 * LSI の入力および出力からの信号伝播の遅延が 15 ns 以下であること。 * 最大 76 MHz の周波数で安定した動作。 * 開発機密モードを設定する機能; * 出力バッファの 3 つの動作モード (入力、出力、双方向) を使用する機能。 MAX7000 ファミリには 7 シリーズの VLSI が含まれています。 このファミリの LSI は、中程度の集積度で最大数百のマイクロ回路を含むデバイスを置き換えることを可能にし、次の機能を提供します。 * 任意の入力から LSI の出力までの信号伝播遅延が 5 ns 以下であること。 * 最大 178 MHz の周波数で安定した動作。 * 出力バッファのスイッチング速度を調整する機能。 * 出力バッファの 4 つの動作モードを使用可能: 入力、出力、双方向、オープンコレクタ。 ・VLSI全体と個々の信号の伝播回路の両方に対して低消費電力モードを設定できること。 * ボード上の配線後のプログラミングおよび再プログラミングの可能性。 * 開発機密モードを設定する機能; * 低い (3.3 V) 供給電圧で動作します。 注: 多くのシリーズは PCI バス規格に準拠しています。 FLEX8000A ファミリには 7 シリーズの VLSI が含まれています。 このファミリーの LSI は、中程度の集積度の超小型回路で作られた数十のボードを占有するデバイスを置き換えることを可能にし、次の機能を提供します。 * 最大 294 MHz の周波数で安定した動作。 * 3 つの状態を持つ内部バスのエミュレーション。 * 低い (3.3 V) 供給電圧で動作します。 * 混合(3.3 V、5 V)電源電圧のシステムで動作します。 * 「オンザフライ」を含む無制限の構成サイクルの実装。 VLSIの電源をオフにする必要はありません。 * 出力バッファのスイッチング速度の調整。 * 出力バッファの 3 つの動作モードを使用可能: 入力、出力、双方向。 注: このシリーズのすべての VLSI は PCI バス規格に準拠しています。 MAX9000 ファミリには 4 シリーズのチップが含まれています。 このファミリーの LSI は、中程度の集積度の超小型回路で作られた数十のボードを占有するデバイスを置き換えることを可能にし、次の機能を提供します。 * 最大 125 MHz の周波数での安定した動作。 * マクロセルの論理部分とトリガーを独立して使用; ・VLSI全体と個々の信号の伝播回路の両方に対して低消費電力モードを設定できること。 * ボード上の配線後のプログラミングおよび再プログラミングの可能性。 * 混合(3.3 V、5 V)電源電圧のシステムで動作します。 * 出力バッファのスイッチング速度の調整。 * 出力バッファの 3 つの動作モードの使用: 入力、出力、双方向。 注: 多くのシリーズは PCI バス規格に準拠しています。 FLEX10K ファミリには 7 シリーズの VLSI が含まれています。 このファミリーの LSI は、中程度の集積度の超小型回路で作られた何百ものボードを占有するデバイスを置き換えることを可能にし、次の機能を提供します。 * 最大 450 MHz の周波数で安定した動作。 * 最大 24 K ビットの容量を持つスタティック メモリと ROM のオンチップ実装。 * 論理部分と各論理要素のトリガーを独立して使用します。 * 3 つの状態を持つ内部バスのエミュレーション。 * 内部クロック周波数を逓倍します。 * 混合(3.3 V、5 V)電源電圧のシステムで動作します。 * 「オンザフライ」を含む無制限の構成サイクルの実装。 VLSIの電源をオフにする必要はありません。 * 出力バッファのスイッチング速度の調整。 * 出力バッファの 4 つの動作モードを使用可能: 入力、出力、双方向、オープンコレクタ。 注: このシリーズのすべての VLSI は PCI バス規格に準拠しています。 それでおしまい。 進歩は止まらず、各ファミリーにさらに多くのシリーズが追加されていることだけを付け加えておきます。出演 WWW.ALTERA.COM - そこでは、MAX + Plus II プログラムの詳細情報と電子キーを入手できます (学生または研究者のふりをします)。EFO社。 Eメール: [メールで保護されています]電話番号 (812) 247-5340 194021 サンクトペテルブルク、ポリテクニチェスカヤ通り、21(ここで対応する要素を購入できます)。文学 1. ALTERA 要素ベースのレビュー (Antonov A.P.、Melekhin V.F.、Fillipov A.S.、サンクトペテルブルク 1997) 2. 同じ本 (大きいように見えるだけ) がビデオの MAX + Plus II でコンパクトに掲載されています。PDF (どうやら45 MB)、ただし英語です。

ALTERA プログラマブル ロジック集積回路および MAX+PLUS II コンピュータ支援設計システム

プログラマブル ロジック集積回路 (FPGA)、または海外の文献では PLD (プログラマブル ロジック デバイス) と呼ばれるセミカスタム デジタル LSI は、そのアーキテクチャおよび技術的特徴のおかげで、特殊な技術機器なしで開発および製造できます。 FPGA は 80 年代半ばに世界市場に登場しました。 そしてそれらはすぐに普及し、特殊な LSI を作成するプロセスが工場から設計者の職場に移されました。 LSIの開発サイクルは数時間に短縮され、それに伴うコストも大幅に削減されました。

90年代の初めから。 最も大きな需要があるのは、次の機能を備えた FPGA です。

CMOSテクノロジーに基づく高度なロジック統合。

最大 80 ~ 100 MHz 以上の速度。

プログラマーなしでプログラミング (内部構成のロード) が可能。

これらすべての要件は、FPGA 分野の世界的リーダーである ALTERA (米国) の FPGA によって満たされます。 現在、ALTERA はさまざまなアーキテクチャの 7 ファミリの FPGA を製造しています [14]。

ロシアで最も有名な FPGA は、しばらくの間 INTEL によって製造されていた Classic ファミリです。 これらのマイクロ回路の主な利点は、シンプルさ、低コスト、取り付けが簡単な DIP パッケージ、静的モードでのマイクロエネルギー消費、国内手段 (CAD FORS+、Blitz、Sterkh、Forsys プログラマ) でサポートできる機能です。 FPGA EP220 は、1556 シリーズのマイクロ回路 (HP4、HP6、HP8、XL8) を置き換えます。

すべての FPGA は、紫外線消去可能な CMOS (EPROM) テクノロジを使用して製造されており、次の消費電力パラメータを提供します。

静的モードでは - 10-30 µA;

1 MHz - 2-8 mAの周波数で;

クロック周波数が増加すると - 1 mA/MHz。

製品の量産時に価格を 30 ~ 40% 削減するために、すべての FPGA は 1 回限りのプログラミングでプラスチック パッケージ (DIP および PLCC) で生産されます。

クラシック ファミリの FPGA の欠点は、統合度が比較的低いことと、いくつかのアーキテクチャ上の特徴です。トリガーを「1」 (SET) に設定するための入力がないこと、内部メモリ要素を実装する際の接点のブロックなどです。

MAX7000およびFLASHlogicファミリのFPGAは、マトリックスアーキテクチャを備えています。 論理ゲート「AND」、「OR」、およびフリップフロップのプログラム可能なマトリックスが含まれています。

MAX7000ファミリは、32個(EPM7032)から256個(EPM7256)のフリップフロップを含む、1,200個から10,000個の等価論理ゲートの集積レベルを持つ7つのチップで構成されています。

さらに、供給電圧 3.3 V の EPM7032 マイクロ回路の機能的類似品である FPGA EPM7032V も生産されています。

MAX7000 ファミリの FPGA は、電気的に消去可能な CMOS (EEPROM) テクノロジを使用して製造されています。 彼らが提供します:

入力から出力までの最小信号伝播遅延 5 ns。

最大クロック周波数 190 MHz。

最大 100 回のプログラミング/消去サイクル。

MAX7000 ファミリの FPGA は柔軟なアーキテクチャを備えています。 それらのマクロセルには 2 つの独立したフィードバック ラインが含まれています。 トリガーとコンタクトから。 これにより、フリップフロップを内部レジスタとして使用し、同時にピンを入力ポートとして使用することができます。 FPGA の追加リソースは拡張項、つまり結合子であり、その逆出力が「AND」要素の行列とのフィードバック接続を形成します。 条件を使用すると、マクロセルを消費せずに制御信号 (CLK、SET、RESET など) を生成できます。 マクロセル間で項を再配分した結果、「OR」要素の入力数を 32 に増やすことができます。

各マクロセルには個別のターボ ビットがあり、これをプログラミングすることで、パフォーマンスはわずかに低下しますが、消費電力を削減できます。 1996 年から、すべての MAX7000 ファミリ FPGA が ISP (システム プログラマブル) バージョンで利用可能になります。 これにより、コンピュータ ポートに接続された 4 番目の信号インターフェイスを介して、作業ボード上で回路を直接プログラムしたり消去したりすることができます。 プログラマの存在はオプションとなり、FPGA の使用が大幅に簡素化され、コストが削減されます。

MAX7000 ファミリの FPGA は低コストです。 たとえば、EPM7032 チップの価格は 7 未満、EPM7128 チップの価格は 25 未満です。

MAX7000 ファミリの登場により、以前に製造された MAX5000 ファミリの FPGA の実用的価値は大幅に減少しました。 すべてのマイクロ回路の類似品 (たとえば、EPM5128 ~ EPM7128) は、より優れた性能特性と低価格で消費電力を備えたものとして登場しています。

MAX+PLUS II は、FPGA 製造の世界的リーダーである Altera Corporation によって開発された自動プログラマブル ロジック集積回路 (FPGA) 設計システムです。

MAX+PLUS II は、設計者が FPGA 上に実装したい回路の入力から、プログラマによる FPGA 自体のプログラミングに至るまで、FPGA を完全に設計できる多機能ソフトウェア製品です。

MAX+PLUS II では、次のユーザー オプションが提供されます。

機能図のグラフィカル入力によるFPGAの内部構造の入力。

MAX+PLUS II シェルに完全に組み込まれている高級プログラミング言語アルテラ ハードウェア記述言語 (AHDL) を使用した FPGA の内部構造の入力。

タイミング図の形式での FPGA 動作のモデリング。

プログラマーがいる場合は、設計した構造をFPGAなどに書き込みます。

AHDL を使用して FPGA の内部構造を記述する場合、いくつかのオプションが可能です。

最初のオプションでは、構造をプリミティブで記述します。つまり、 RSトリガー、Dトリガー、Tトリガー、JKトリガーなどの簡単な機能を使用します。

2 番目のオプションでは、プリミティブとメガファンクションを使用して記述します。

メガ関数は、カウンタ、マルチプレクサ、デコーダ、レジスタなどの複雑な論理関数です。

最初のオプションの利点は、翻訳者が AHDL 言語の最も単純な関数をマシン コードに変換するのに費やす時間が短縮されることです。

このオプションの欠点は、プログラムのテキストが大量になることと、システム全体の詳細な説明が必要になることです。

2 番目のオプションでは、メガファンクションを使用する場合、プログラマが複雑な論理関数のパラメータのみを設定するという意味で、要素の詳細な説明は必要ありません。 たとえば、lpm_counter メガファンクションを使用すると、クロック入力とカウンター自体の幅のみを指定することでカウンターを記述することができます。 これにより、プログラムのテキストが占めるボリュームが大幅に削減され、プログラムの作成にかかる時間もわずかに短縮されます。

欠点は、最初のオプションと比べて、プログラムをマシンコードに変換するのに時間がかかることです。

しかし、最終的には同じ結果になるため、ソフトウェア製品の作成スタイルは完全に設計者に依存します。

作成されたソフトウェア製品をデバッグする場合、SIMULATOR MAX+PLUS II を使用すると、タイミング図の形式で FPGA 動作の結果を詳細に調べることができます。 設計者は、プログラムに記述されているさまざまな出力や中間状態を選択したり、さまざまな入力アクションを指定したりできます。

導入

通常、誰かが機能しているボードを見ると、常に同じ質問をします: - これは Arduino ですか? - Arduino なしではどのように動作しますか?

それはマイクロコントローラーでもなく、プロセッサーでもなく、FPGAです。 FPGAはプログラマブルロジック集積回路ですこのようなマイクロ回路は多くの同一のブロックまたはマクロセルで構成されており、メーカーごとに呼び方が異なるため、ザイリンクスではスライス(スライス)、アルテラではロジックエレメント(論理要素)となります。 これらのブロックは比較的単純で、いくつかの論理要素として機能し、小さなルックアップ テーブル (LUT) として機能し、既製の加算器、乗算器、デジタル信号処理 (DSP) ブロックが含まれており、一般にメーカーが念頭に置いているすべてのものを含みます。 。 ユーザーはこれらのブロックを自由に配置、構成することができるため、非常に複雑なデジタル回路を実装できます。 マイクロコントローラーさえも FPGA 上に実装できます。たとえば、同じ Arduino や独自のアーキテクチャのプロセッサ (たとえば、レジ​​スタ プロセッサではなくスタック プロセッサ) を実装したり、独自の FPGA を FPGA 上に実装したりすることもできます。

入手可能な低価格 FPGA の中には、Altera と Xilinx という 2 つの主要メーカーがあり、その製品を使用して、これらのテクノロジを習得する旅を始めることができます。 私の意見では、Altera チップを選択する方が良いと思います。設計環境は常に更新されており、人気のある Xilinx XC3S500E チップを 1 つ選択すると、時代遅れの ISE 14.7 環境に満足する必要があります (ただし、これには利点もあります)。 。

外国の文献では、FPGA の略語として FPGA や CPLD が見られます。 CPLD (Complex Programmable Logic Device) - 少数のマクロセル、特殊なブロック、低消費電力を備えたチップ。 このタイプのチップでは大規模なプロジェクトを合成できませんが、実際にも使用されており、たとえば、まれなマイクロコントローラーには 300 個のレッグがあります。 このようなチップは、インターフェイス システム、プリプロセッサ、および I/O エクスパンダとしてよく使用されます。 FPGA (フィールド プログラマブル ゲート アレイ) はフィールド プログラマブル ゲート アレイ (FPGA) であり、CPLD と比較してはるかに強力なチップですが、消費電力とコストが大幅に高くなります。 ダイ領域のコストを削減するために、FPGA チップにはデジタル信号処理ユニット (DSP ユニット)、組み込みプロセッサ、組み込みメモリなどの既製の機能を組み込むことができます。 FPGA は、いわゆるプレシリコン検証における設計のテストと検証に広く使用されており、それによって製品リリースまでのコストと時間を削減します。 FPGA チップは、ほぼいつでも再構成できます。たとえば、Intel では、従来のプロセッサと FPGA チップのアーキテクチャを組み合わせる開発が現在進行中です。 ザイリンクスはすでにそのようなソリューションである Zynq を提供していますが、ここではそれについては触れません。

特に私が開発キットを手に入れたので、より単純なことについて話します。Cyclone IV 4 FPGA コア ボードと Altera USB Blaster Downloader PLD 開発キット (35 ドル、AliExpress で購入)。

1 デモボード Cyclone IV 4 FPGA コアボード、簡単な説明

米。 1 - デモ支払い Cyclone IV 4 FPGA コアボード

ボード (図 1) には EP4CE6E22C8N チップが搭載されており、その特徴は次のとおりです。

リソースの種類 簡単な説明
論理要素 (Les) 論理ブロック - セルの数。チップの「パワー」を比較できる主な特性。合成されたロジックはすべてこれらのブロックを使用します。 6,272
内蔵メモリ (キロビット) 内蔵メモリはまだ私たちにとって重要な特性ではありません 270
組み込み 18x18 乗算器 デジタル信号処理において非常に重要なパラメータである内蔵ハードウェア乗算器は、複数の乗算器が並列動作するときに FPGA の能力を最大限に発揮します。 15
汎用PLL フェーズロックループノードはまだ重要な特性ではありませんが、異なる周波数で動作するデバイスの同期を簡素化します。 2
グローバルクロックネットワーク 周波数領域の数はまだ重要な特性ではありません 10
ユーザー I/O バンク 個別のユーザー I/O バンクの数はまだ重要な特性ではありません 8
最大ユーザー I/O カスタム I/O ピンの数により、Arduino などのあらゆるデバイスを接続できます 91

ボードには次のものがあります。

  1. フラッシュ メモリ – 電源が投入されると、FPGA はフラッシュ メモリに実装されるように構成されます。 プロジェクトを合成してこのフラッシュに書き込むことができます
  2. 25 MHz クォーツは基準クロック周波数発生器であり、すべてのプロジェクトがこの周波数で動作し、FPGA はそのようなチャネルを最大 10 個サポートできます。
  3. LED – 10、ボタン – 2。
  4. I/O ピン 61 + 2 グランド、1 つは未接続。 さまざまな機器を接続できます。 DAC-ADC、加速度計とジャイロスコープ、Arduino のような文字とグラフィックのディスプレイ。
  5. USBまたは外部5V経由で電源供給。

このキットには、JTAG プログラマ、Altera USB Blaster も含まれています。

2. Quartus II 環境と最初のプロジェクト

この FPGA を使用するには、公式の開発環境をダウンロードする必要があります - Quartus II Web エディション、 それは無料です。 公式ウェブサイト http://dl.altera.com/15.0/?edition=web にアクセスします。この記事の執筆時点では、バージョン 15.0 が最新です。新しい場合は、それをダウンロードします。

選ぶ:


米。 2 - 必要なアルテラ製品を選択します

そして、ダウンロードボタン(選択したファイルをダウンロード)をクリックします。 その後、登録、登録、ダウンロード、インストールを求められます。

最初のプロジェクトを作成しましょう。

Quartusを起動し、メインメニューから「File」→「New Project Wizard」を選択すると、導入ウィンドウが表示されます。「Next」をクリックします。 次に、プロジェクトのディレクトリとその名前を指定する必要があります。3 番目のフィールドは最上位モジュールの名前で、それが何であるかは後ほど説明します。 プロジェクトを保存するフォルダーを選択し、名前を付けます。ここでは test1 とします。


米。 3 - 新しいプロジェクトウィザードウィンドウ

「次へ」をクリックすると、空のプロジェクトかプロジェクト テンプレートかを尋ねられます。 次は空のままにしておきます。 次に、既存のファイルを追加するように求められますが、旅を始めたばかりなので何もありません。「次へ」をクリックします。

次に、チップを選択する必要があります。これはいつでも行うことができます。 図のように、ファミリー – Cyclone IV E、「利用可能なデバイス」で選択した特定のデバイスを選択し、最初に EP4CE6E22C8N チップを選択します。 他に持っている場合は、自分のものを見つけてください 大事です。 「次へ」をクリックします。


米。 4 -

ウィンドウが表示されます。デザイン ツールを選択し、デバッグします。今回はスキップし、「次へ」をクリックして終了します。


米。 5 - ウィンドウ「Assinments-Deice」

ウィンドウで、「未使用のピン」項目を選択します。 この設定は、接続されていないピンに何が起こるかを決定します。 これは重要かもしれません; プロジェクトではすべてのピンを使用する可能性は低く、未接続のピンは実際にはグランドまたは電源に接続されている可能性があります (まあ、誰がボードに配線したかはわかりません)。 接地されたピンに 1 を適用すると、焼損するため、これを注意深く監視する必要があります。

デフォルトでは、未使用のピンは「弱いプルアップ付き入力トライステートとして」 (入力ピンは、弱い電力プルアップを備えた高インピーダンスの第 3 状態になります) のままにするか、「入力としてトライステートとして」を選択することができます。 ”。 プルアップ抵抗については、ウィキペディア https://ru.wikipedia.org/wiki/Pull-up_resistor で読むことができます。 デジタル技術では 3 つの状態があり、論理 1 は電源電圧または高レベル、論理 0 はピンがグランドに接続されているとき、または低レベルで高インピーダンス状態です。 ハイインピーダンス状態- これは、ピンの抵抗が非常に高く、接続先のワイヤに実質的に影響を与えない場合です。この状態は、たとえば、バスを編成するとき、多くのデバイスが 1 つのワイヤに接続されており、非アクティブなデバイスが干渉しない場合に必要です。操作付き。


米。 6 - 「デバイスとピンのオプション」ウィンドウ、未使用のピン

「Assignment Editor」ですべてを接続します。


米。 7 - 「課題編集者」に電話します。 メニューまたはパネルから

表示されるウィンドウで、私と同じように実行するか、完全に正しい場合はボードの図に従って実行します。


米。 8 - 課題編集者

「To」列に入力または出力の名前を入力します。 「割り当て名」列で「場所」を選択します。 「値」列には、基板図に従って超小型回路のピン番号が表示されます (私は基板に直接ピン番号を書いています)。

また、一方の脚が地面に接続され、もう一方の脚がチップの入力に接続されているボタンをどうするかを指定する必要もあります。 脚を押すとレベルが低くなりますが、押さないとチップの脚が空中にぶら下がっているだけで、非常に悪いです。 ボード上の抵抗を使用するか、「Assignments Editor」でより洗練された方法で、チップ入力を電源に接続する必要があります。 「割り当て名」列で、キー*グループに「Weak Pull Up resistanceor」を選択します(グループはアスタリスクで示されます)。


米。 9 - 課題エディター

次に、チップ レッグと直接連携する最上位モジュールの記述を作成する必要があります。他のすべてのモジュールは、それとのみ連携します。 メインメニューで「新規」をクリックし、「デザインファイル -> ブロックダイアグラム/回路図ファイル」を選択します。


米。 10 - 新しいファイルダイアログ

開いたウィンドウで「ピンツール」を選択し、図上に入力と出力(入力ピンと出力ピン)を配置します。 入力の名前を key、出力の名前を LED に変更し、それらを導体で接続します。 保存して「コンパイル開始」をクリックします。


米。 11 - グラフィック説明ウィンドウ、ピンツールとコンパイルの開始が強調表示されています

コンパイル後、警告が表示されましたが、今は無視します。これらは、未接続のピン、クロック信号の欠落、および「Timing Analyzer」の説明に関連しています。

デモボードとプログラマを接続し、「プログラマ」ツールを選択します。 ウィンドウには「USB-Blaster」と表示されます。そうでない場合は、「ハードウェア セットアップ」をクリックして、ドライバーがインストールされていない可能性が高い理由を調べます。Windows デバイスを調べ、未確認のデバイスを探します。問題がある可能性があります。ケーブル付き。 すべて問題なければ、「自動検出」をクリックしてチップを選択します。


米。 12 - プログラマウィンドウ

「File」フィールドをダブルクリックしてFPGAに書き込むファイル(プロジェクトのoutput_filesフォルダーにあります)を選択し、「Program / Configure」フィールドをチェックして「Start」ボタンをクリックします。


米。 13 - プログラマ ウィンドウ、チップはすでに構成されています

初めての FPGA コンフィギュレーションが完了しました。おめでとうございます。 ダイオード D1 が点灯し、key1 を押すと消灯するはずです (ボタンにより脚がアースに接続されるため)、それについて何らかの処理を行います)

ほとんどのアマチュア無線家や独自の開発に携わる設計者にとって、デジタル超小型回路は長い間知られており、習得されてきました。 マイクロコントローラーを使用すると、デバイスの寸法が大幅に削減され、機能が向上するため、多くの人がかなり長い間マイクロコントローラーを使用して設計を行ってきました。 唯一の問題は、すべてをコントローラーに基づいて構築できるわけではないことです。 変化する入力信号に即座に応答する必要がある高速デバイスは、マイクロコントローラー上に構築することはできません。マイクロコントローラーはコマンドの段階的な (パイプライン) 処理を組織化し、その結果、特定の信号を発行する決定が行われるためです。 したがって、マイクロコントローラーとともに、場合によってはかなりの数のパッケージを使用して、従来のロジックを使用する必要があります。 この結果、外部接続の数が多くなり、設計の複雑さとプリント基板の寸法が大きくなり、接続導体が長くなり、クロック周波数の高いデバイスを構築することが困難になり、信頼性が低くなります。 この問題の解決策は、プログラマブル ロジック集積回路 (FPGA) を使用することです。FPGA は、相互にハードな電気接続を持たない一定数の機能的な基本要素の集合であり、これにより、ほぼ任意の構成を設定できます。特定の電子回路を作成するため。 最初の段階では、FPGA は K556RT4-RT5 などのヒューズジャンパを備えた超小型回路であり、いくつかの機能を作成することは可能でしたが、小さな回路にカウンタやトリガを詰め込むことはできませんでした。

単純なロジックに基づいてデバイスを設計する段階は自動化が不十分であり、エラーが発生した場合には、追加の要素を導入するためにボードを変更する必要があります。 アルテラの MAX+plus II BASELINE ソフトウェア パッケージと FPGA を研究すると、回路が簡素化されるだけでなく、多くの落とし穴も回避できます。 このソフトウェアは、155 シリーズおよびその類似品の回路設計時にも使用できます。 PLD でのプログラミング (接続の作成) (および

CPLD) EPROM、EEPROM、および FLASH テクノロジが使用されます。 アマチュア無線家にとって、FLASH マイクロ回路は、クリスタルを約 100 回再プログラムでき、電源電圧を除去した後もプログラミングの結果として確立された構造を保持できるため、最も興味深いものです。

この記事では、アルテラの FPGA (最も安価な EPM3064A) に基づく回路の段階的な開発の問題について説明します。 44ピンPLCCパッケージに収められています。 このマイクロ回路には、混合電源と複数電圧の入出力 (I/O) インターフェイスが備わっています。 論理コアの電源電圧は 3.3 ボルト、入出力要素 - 5 です。 3.3; そして2.5ボルト。 最大クロック周波数は変更に応じて 227.3 MHz。 構成ビットを設定することにより、エッジの傾きを制御することができます ( スルーレート) 入出力信号。 ビット ( 開けるドレイン)。 消費電力を50%以上削減する省エネモードの設定が可能です。 プライバシー ビット ( 安全少し) チップの内部構成をコピーすることはできません。 このマイクロ回路には、論理マトリックスの 4 ブロックと 64 個のマクロセルがあります。 プログラマブル マクロセル トリガーには個別のクロック入力があります ( 時計)、同期権限 ( 時計有効にする)、リセット( クリア)、およびプリセット ( プリセット)。 各マクロセルはプログラム可能なマトリックスとして考えることができます。 そしておよび固定マトリックス または。 マトリックス出力時 または設定可能な制御回路を備えたレジスタが含まれています。 レジスタ制御回路は、独立してプログラム可能なクロック、クロック イネーブル、リセット、およびプリセット信号を提供します。 著者によると、このマイクロ回路には 155 シリーズのケースを 10 ~ 15 個詰め込むことができます (16 個のロジック マトリックス ブロックと 158 ピンを備えた EPM3256 マイクロ回路が販売されています)。

EPM3064A アーキテクチャには次の要素が含まれています: ロジック ブロック ( ラボ)。 マクロセル ( マクロセル)。 ロジック エクスパンダ、共有 ( 共有可能) と平行 ( 平行)。 プログラム可能な接続マトリックス ( ぴあ)。 I/Oコントロールユニット( 私/コントロールブロック)。 チップには 4 つの特殊な入力 ( ひたむきなピン) 汎用入力または高速グローバル制御入力 (同期 - 時計、ゼロ調整 クリアおよび 2 つの出力許可信号 - 有効にする)、マクロセルおよび I/O ピンごとに。 ブロック図を図1に示します。

図1

EPM 3064A のコア アーキテクチャは次のとおりです。 論理ブロック、16 個のマクロセルで構成されます。 ロジック ブロックは、プログラム可能な接続マトリックス ( ぴあ)。 各論理ブロックには次の信号が供給されます。 ぴあ、ロジック入力として使用されます。 グローバル制御信号。 入力バッファからレジスタまでの回路を直接接続し、高いパフォーマンスを実現します。 マイクロ回路の機能構成と動作原理について詳しくは、こちらをご覧ください。

図2

チップをプログラムするには、特別なダウンロード ケーブルを作成する必要があります バイトブラスターMV 図2. これにより、プロジェクトのテスト段階と運用中の両方で、FPGA 構成を迅速かつ効率的に変更できます。 再プログラミングはシステム内で直接行うことができます。 プログラミングの進行中、マイクロ回路のピンはシステムとの競合を避けるために 3 番目の状態に転送されます。 内部プルアップ抵抗の抵抗は 50 kΩ です。

このダウンロード ケーブルは、MAX 3000A、MAX 7000、MAX 9000 シリーズなどのマイクロ回路のプログラミングに使用できます。詳細については、こちらをご覧ください。 ダウンロードケーブルの図を図 3 に示します。 コネクタ X1 はコンピュータのパラレル ポートに直接接続するか、延長ケーブルを介して接続します。その長さは 1.5 メートルを超えてはなりません。 プログラマの電力は、設計中のデバイスの回路から直接取得されます。 プログラマーを通常に動作させるには、ドライバーをインストールする必要があります バイトブラスターMV これについては後述します。 オリジナルの D 1 チップは 2.5 ~ 5 ボルトの供給電圧範囲で動作できるため、オリジナルの D 1 チップを使用することをお勧めします (極端な場合には、1564AP5 と置き換えることもできます)。 すべての抵抗は MLT 0.125 タイプです。 コンデンサ C1 はセラミックです。

図3

プリント基板 図4. 片面で作られた ホイルグラスファイバーは厚さ1.5mm、サイズは52x43mmです。

図4

ALTERA社のMAX+PLUS IIシステムの環境でプロジェクトを作成するには、インターネットからダウンロードし、図5をインストールする必要があります。 自由に再配布可能なファイル ベースライン10_1.exeサイトへのリンクは に記載されています。 すべての機能を利用するにはプログラムをインストールした後、アルテラの Web サイトにアクセスしてライセンス ファイルを取得する必要があります。 このページでリンクを選択します 学生および大学向けの MAX+PLUS II ソフトウェア。 次のページでリンクを選択します バージョン10.2、10.1、または9.23そしてボタンを押してください 続く。ウィンドウの次のページで、ハードドライブの登録番号を入力します。 Windows でこれを行うには、ボタンを押します。 それからスタート プログラム、アクセサリ、コマンドライン、コマンドをダイヤルします ディレクトリそして 入力.

図5

2 行目には 8 桁のディスクのシリアル番号が出力されます。 これを入力する必要があります。 次にボタンを押してください 続く次のページのフォームに記入してください。 フォームへの入力が完了したら、 ボタンをクリックしてください 続く。ライセンス ファイルはメールで送信されます。 フォルダーを作成する c:\mp2student\送られたファイルをそこに置きます ライセンス.dat。 ライセンス ファイルをインストールするには、次のコマンドを実行します。 MAX+プラスII 10.1 ベースライン次にタブをクリックします オプションそして ライセンス設定表示されるウィンドウで ボタンをクリックします ブラウズ、ライセンス ファイルへのパスを指定します。 ボタンをクリックしてください わかりました。 これ以降、すべてのアプリケーションが利用可能になります。 この後、プログラマ ドライバ ファイルをインストールする必要があります。 これを行うには、ボタンを押します 始めるそれから セットアップ、制御盤、機器の設置さらに遠くそれからボタン Dああ、デバイスはすでに接続されていますそしてボタン さらに遠く。 次のウィンドウで選択します 新しいデバイスの追加そして D路地。 ボタンを取り付けます リストから選択した機器を手動でインストールするそして D路地。 リストから選択 音、 ビデオおよびゲームデバイスそして D路地。 ボタンを押す Uディスクからインストールする、次に ボタン レビュー。 パスの設定 C:\maxplus2\ドライバー\win2000 WindowsXP がインストールされている場合は、 をクリックします。 わかりました。リストから選択 アルテラ バイトブラスター, ボタン さらに遠くそして 準備ができて.

MAX+PLUS II システムには、デバイスの直接プログラミングだけでなく、プロジェクトの入力、コンパイル、デバッグに便利なツールが備わっています。 MAX+PLUS II システム ソフトウェアには、11 個のアプリケーションとメイン制御プログラムが含まれています。 プロジェクト作成をサポートするさまざまなアプリケーションを瞬時に起動でき、マウスクリックやメニューコマンドでアプリケーションを切り替えることができます。 同時に、コンパイラ、シミュレータ、同期アナライザ、プログラマなどのバックグラウンド アプリケーションの 1 つを実行することができます。

表ではアプリケーションについて説明します。

テーブル

応用 実行された機能
階層画面 階層の概要— 現在の階層ファイル構造を、サブプロジェクトを表す枝を持つツリーの形式で表示します。
グラフィック編集者 グラフィックエディター— 画面上に実際に表示される形式で回路ロジック プロジェクトを開発できます。
シンボル編集者 キャラクターエディター— 既存のシンボルを編集し、新しいシンボルを作成できます。
文章編集者 テキストエディタ— AHDL、VHDL、Verilog HDL で記述された論理デザイン テキスト ファイルを作成および編集できます。
波形編集者 シグナルエディター— 設計開発用のツールとテストベクトルを入力してテスト結果を観察するためのツールという二重の機能を実行します。
フロアプラン編集者 レベルごとスケジューラー— グラフィカルな手段を使用して、デバイスの接点および論理要素リソースに割り当てを行うことができます。
コンパイラ コンパイラ— グラフィックプロジェクトを処理します。
シミュレータ シミュレータ— 設計された論理回路の論理演算と内部同期をテストできます。
タイミングアナライザ タイムアナライザー— コンパイラによって合成および最適化された後、設計された論理回路の動作を分析します。
プログラマー プログラマー— ALTERA FPGA のプログラミング、構成、検証、テストが可能になります。
メッセージプロセッサー メッセージジェネレーター— エラー、警告、および情報メッセージを画面に表示します。

プロジェクトを配置する作業ディレクトリを作成しましょう C:\ALTERA_WORK\schetic。 回路は、AHDL、VHDL、Verilog HDL (プログラミングを好む人向け) またはグラフィック (アマチュア無線家に適しています) で記述することができます。 プロジェクト ファイルは、MAX+PLUS II システムのグラフィック エディタまたは信号エディタを使用して作成されたグラフィック、テキスト、または信号ファイルです。 このファイルには MAX+PLUS II プロジェクトのロジックが含まれており、コンパイラによってコンパイルされます。 コンパイラは、次のプロジェクト ファイルを自動的に処理できます。 グラフィカル プロジェクト ファイル ( .gdf); AHDL 言語のプロジェクト テキスト ファイル ( .tdf); プロジェクト信号ファイル ( .wdf); VHDL 言語のプロジェクト ファイル ( .vhd); Verilog 言語のプロジェクト ファイル ( .v); OrCAD 回路図ファイル ( .sch); EDIF 入力ファイル ( エドフ); フォーマットファイル ザイリンクスネットリスト (.xnf); プロジェクトファイル アルテラ (.adf); デジタル マシン ファイル ( .smf)。 補助ファイルは、MAX+PLUS II プロジェクトに関連付けられているファイルですが、その階層ツリーの一部ではありません。 これらのファイルのほとんどにはプロジェクト ロジックが含まれていません。 それらの一部は MAX+PLUS II システム アプリケーションによって自動的に作成され、その他はユーザーによって作成されます。 サポート ファイルの例としては、割り当てファイルや構成ファイル ( .acf)、シンボル ファイル ( .sym)、レポート ファイル ( .rpt) およびテスト ベクター ファイル ( .vec).

メインメニューでクリックします ファイルそれから 新しいそして項目を選択してください グラフィック 編集者 ファイルそして わかりました図6。 グラフィックエディタウィンドウが開きます。 次に、プロジェクトを次の名前で保存しましょう 概略的な. gdfカタログへ C:\ALTERA_WORK\これを行うには、をクリックします ファイルそれから 保存 としてそして わかりました. ファイル名をプロジェクト ファイルにバインドしましょう。このために、メイン メニューで、 ファイルそれから プロジェクトそしてそれ以降 セット プロジェクト 現在 ファイルまたは、キーを同時に押すこともできます Ctrl+ シフト+ J。 プロジェクトで使用するマイクロサーキットのタイプを設定しましょう。 これを行うには、メインメニューのボタンを押します 割当それから デバイス.

表示されるウィンドウの行に デバイス 家族シリーズを選択する マックス3000 。 そして窓の中には デバイス EPM3064ALC44-4 および わかりました。 プロジェクトにどれくらいのスペースが必要になるかわからない場合は、 デバイスより良いインストール オート、コンパイラ自体がマイクロ回路のタイプを選択します。

図6

作業ライブラリには、さまざまなタイプの要素が含まれています。

1)。 次のような論理プリミティブ (c:\maxplus2\max2lib\prim\ フォルダーにあります) 要素 そして, または, またはなど、入力数が異なります。

2)。 74 番目のシリーズの離散ロジックの類似物は、155 番目のシリーズの類似物です (フォルダー c:\maxplus2\max2lib\mf\ にあります)。

3)。 任意の複雑さのデジタル デバイスのプロジェクトを作成できるパラメーター化された論理関数 (c:\maxplus2\max2lib\mega_lpm\ フォルダーにあります)。

独自のコンポーネント ライブラリを配置するディレクトリを作成しましょう C:\ALTERA_WORK\Altera_Libそしてそれをプロジェクトに接続します。 これを行うには、メインメニューのボタンを押します オプションそれから ユーザー図書館そして窓の外に ディレクトリ名前パスに入りましょう c:\altera_work\altera_libそれから わかりました。画面上にシンボルを配置するには、要素を配置したい場所で右クリックし、表示されるウィンドウ内のメニューを選択する 2 つの方法があります。 記号を入力してください窓の中で シンボル名前表示されるウィンドウに要素の名前を入力し、 わかりました。 またはウィンドウで必要なライブラリを選択します シンボル図書館ダイアログボックス 入力シンボルマウスの左ボタンをダブルクリックして開きます。 次に、同じ方法でウィンドウ内の必要な要素を選択します シンボルファイル。 プロジェクトが小さく、ライブラリ内のすべての要素に満足している場合は、この方法で必要な要素をすべてインストールし、導体を使用してそれらのピンを接続します。 これを行うには、左側のグラフィック エディタにアイコンがあり、それらをクリックすると、直線接続、直角に配置された線、扇形、円を取得できます。線が赤で強調表示されている場合は、次のことができます。接続アドレスをそれに設定し、接続自体を確立しません。 入出力回路は要素のライブラリから選択して描画されます 入力そして 出力(必要に応じて、名前を割り当てます)。 論理 1 と 0 をプロットするには、次のように入力します。 vccまたは グランド。 独自のシンボルが必要な場合は、新しいグラフィック エディタ ウィンドウを開いてコンポーネント Fig7 の図を描き、名前を付けてライブラリに保存する必要があります。 c:\altera_work\altera_lib。 プロジェクト ファイルにリンクし、クリックしてコンパイルします。 Ctrl+L。 エラーがなければ、シミュレータを使用して回路の動作を確認できます。

図7

これを行うには、次のように開きます。 波形 編集者、ファイルを同じ名前で保存します。 下の最初の行に 名前:右クリックしてメニューを選択します 入力ノードからSNF表示されるウィンドウで ボタンをクリックします リスト窓の中で 利用可能ノードとグループ回路のすべての入力と出力が表示されます。 必要なものを選択します(この場合、 そして ) そして ボタンを押す => 選択した文字がコピーされます右側のウィンドウで。 クリック わかりました。 エディターでは、図 8 のオシログラムが表示されます。 名前の下に 価値できる 入力信号の初期状態を設定するには、マウスの左ボタンをクリックします。左側の行には論理1と論理0のアイコンがエディタに表示され、アイコンをクリックすることで入力ステータスを割り当てます。 時間とともに変化する信号を入力したり、 Z州。 オシログラムの終了時間はメニューに移動して入力できます。 ファイルそれから 終わり時間。 タイムスタンプはメニューから設定します オプションそれから グリッグ サイズ.

オシログラムの状態を経時的に表示するには、次のコマンドを実行します。 シミュレータボタンを押す Ctrl+シフト+L。 オシログラムを図 9 に示します。 結果として得られたコンポーネント モデルに満足したら、シンボルのイメージを描画します。 これを行うには、シンボル エディターを開き、メイン メニューで ファイルそれから 新しいそして項目を選択してください シンボル編集者 ファイルそして わかりました図6。 マウスの左ボタンをクリックして、最初にアイコンの左側にある描画ツールを選択して、シンボルの輪郭を描画します。

マウスの左ボタンをダブルクリックします メニューを開く 入力ピン半券 ウィンドウの左側にある出力タイプ 入力または出力 / タイプ。 窓の中で 満杯ピン半券 名前出力名を指定します (この例では 入り口 出口)。 すべての線とラベルのサイズは、移動する要素を左クリックすることで変更および移動できます。 ファイルは、ライブラリ フォルダー内のグラフィック エディター ファイルと同じ名前で保存する必要があります。

すべての補助ウィンドウを閉じたら、プロジェクト ファイルにシンボルを入力できます。

図 10 にダイナミック表示を備えた 3 桁カウンタの実際的な回路を考えてみましょう。 電源はタイプ LM 317 の D 2 チップ上に組み込まれており、D 1 に必要な電圧を供給します。

図10

すべてのインジケータがオンの場合、インジケータ放電の出力電流は約 80 mA になる可能性があるため、インジケータ放電はトランジスタ VT 1 ~ VT 3 によって切り替えられます。実験モデルでは、内部発電機回路が選択され、その外部回路は次のとおりです。抵抗R 16、R 18、C 2ですが、実用的なスキームでは、ジェネレーターを外部に作成することをお勧めします。 著者によれば、FPGA は容量性負荷ではあまりうまく動作しません。 プログラマとの接続にはコネクタ X1 が必要です。

プロジェクトの内部構造を考えてみましょう図11。 すべてのコンポーネントは上記の方法を使用して新たに作成され、独自のコンポーネント ライブラリに保存されました。

図11

図上のコンポーネント 0_3r_コミュテーター– これはインジケーターの数字を順番に切り替え、マルチプレクサーに制御レベルを発行する 3 桁のスイッチです。 0_3 そして_ または。 マルチプレクサは、表示される桁に応じて 10 進カウンタを接続します 0_2 b_10 d_ カウンターバイナリ7セグメントデコーダ 0_ BCD _7 セグ 。 コンポーネントの名前には前置詞が含まれています 0 _ これは独自のライブラリの要素を示します。 MAX+PLUS II プロジェクトのダイアグラムで、コンポーネント上でマウスの左ボタンをダブルクリックすると、グラフィック エディタが開き、要素のダイアグラムが表示されます。 図 12 は、回路が標準ライブラリ プリミティブで構成されるスイッチを示しています。 名前 ないインバーターという意味ですが、 DFFD引き金、 そして2 - 要素 そして入口が2つある。 図 13 に内部図を示します バイナリ 10進数カウンター。 図 14 にマルチプレクサを示します。 そしてご飯15 バイナリ7セグメントデコーダ。 以下は、標準ライブラリのメガファンクションの一部のリストです。

図12

図13

図 14

論理ゲート (ゲイツ):

lpm_and – AND 要素

lpm_inv – NOT 要素 (インバーター)

lpm_bustri – トライステート バス

lpm_mux - マルチプレクサ

lpm_clshift - 論理シフト

lpm_or – OR 要素

lpm_constant - 定数

lpm_xor – 排他的 OR 要素

lpm_decode - デコーダー

マルチプレクサ – マルチプレクサ

Busmux - マルチプレクサ

図 15

算術コンポーネント:

除算* — 除数

lpm_compare - コンパレータ

lpm_abs – 絶対値

lpm_counter - カウンタ

lpm_add_sub – 加算器/減算器

lpm_divide — 除数

lpm_mult — 乗算器

メモリ要素:

altdpram* - デュアルポート RAM

lpm_latch – ラッチレジスタ

lpm_shiftreg – シフトレジスタ

dcfifo* — デュアルクロック FIFO

lpm_ram_dp - デュアルポート RAM

scfifo* — シングルクロック FIFO

lpm_ram_dq – 個別の入力ポートと出力ポートを備えた RAM

csdpram - サイクル共有デュアルポート

lpm_ram_io - 共通の入出力ポートを持つ RAM

lpm_ff — トリガー

lpm_rom - ROM

lpm_fifo — シングルクロック FIFO

lpm_dff* — D – フリップフロップおよびシフト レジスタ

lpm_fifo_dc — デュアルクロック FIFO

lpm_tff* – T トリガー

その他の機能:

clklock - PLL (位相同期ループ)

pll – パルスエッジ検出器

ntsc – NTSC ビデオ信号発生器

すべてのコンポーネントが作成され、プロジェクトの一般的な図が描画され、すべての接続が作成されたら、プロジェクトを保存してコンパイルする必要があります。 エラーがない場合は、次のことを行う必要があります。 に行く 波形 編集者そしてそれがどのように検討されたか上記で、プロジェクトが正しく動作していることを確認します。

図 16

コンパイラによってルーティングされた回路は、入力ピンと出力ピンを自動的に割り当てます。これは次のようになります。 フロアプランエディタボタンを押すことによって。 同じエディターで、脚の目的を必要に応じて変更できます。 これを行うには、ボタンをクリックし、ウィンドウに表示されているピンの名前をマウスでドラッグします。 未割り当てノードとピン、対応する FPGA ピン番号に変更して、プロジェクトを再コンパイルします。 この後、プロジェクトの内部構造に変更が加えられます。 ピンの追加または削除に関係しない場合、ピンの割り当ては変更されません。

この後、コネクタ X1 を介して Fig10 回路をプログラマに接続し、プログラマをコンピュータに接続し (これらの手順はすべてコンピュータの電源をオフにして行います)、回路に電力を供給します。 窓を開ける プログラマーそしてボタンを押してください プログラム。 プログラムがロードされると、回路は動作モードに切り替わります。 この方法を使用すると、プリント基板を変更することなく、タスクの変更に応じてデバイスの内部回路を変更できます。

MAX+PLUS II ソフトウェア環境の学習は明らかに複雑ですが、ブレッドボードで回路を作成し、オシロスコープを使用してさらに研究するよりも、コンピュータで設計およびデバッグする方が多くの情報が得られるため、プロジェクトをはるかに迅速に作成できます。 前述したように、得られた結果は、155-555 シリーズに基づく構造の製造にうまく使用できます。

サインを待っていましたか? ここに彼がいます!

私は何年もの間、FPGA のプログラミングを始めるのをためらっていました。なぜなら、FPGA のプログラミングは難しく、費用がかかり、苦痛を伴うからです (私にはそう見えました)。 しかし、最初の一歩を踏み出すのを手伝ってくれる友達がいるのは良いことです。 そして今、私には理解できないことが 1 つあります - なぜそんなに長く待ったのでしょうか?

あなたも最初の一歩を踏み出すお手伝いをさせていただきます!

なぜそれが必要なのでしょうか?

MK で常にドキュメントを読んだり、頭の中に大量の情報を保持したりすることにうんざりしていませんか。 asmですべて書き直しましたが、それでも速度が十分ではありません。 2 つの外部デバイスを MK に接続し、3 つ目を接続すると、割り込みがなくなり、すでに動作していたモジュールが動作を停止します。 同じラインのより強力な別の MK を使用しますが、やはりマニュアル、フラグ レジスタ、ビット…地獄です。 プラットフォームを変更すると、別の MK に切り替えて、以前のプラットフォームの知識を捨てます。 何をやっても大変です。 コンポーネントからプロジェクトを簡単に組み立てることができる人気のプラットフォームを見つけましたが、それでもこの MK のハードウェア制限を飛び越えることはできません...意識のどこかで、時々、FPGA ではこれが必要だという考えが浮かぶことがあります。これは間違いなく迅速かつ並行して機能します。「解決する必要がある問題は正確に教えてください」とは何ですか。しかし、私は年をとりすぎたり、愚かになったり、忙しすぎたりして、これを行うことができません/開始できません。

ついに自由に呼吸してみませんか? どうぞ!

FPGAで開発する楽しさ

仕事で大変な一日を過ごしました。 1つの仕事から2番目の仕事に来て、それからダーチャに行き、夕方には宿題、宿題、そして家族の映画を観て、午後11時にのみ完全に自由になりました。 疲れていたと言うのは何も言わないのと同じだ。 しかし、この状態でも、私は 440 Hz の方形波発生器を作るという確固たる目標を持ってラップトップの前に座っていました。 20分が経ち、すでにヘッドフォンでその音が聞こえていました。 自分の耳が信じられませんでした! PWMを作成して音量を変更するのにさらに15分かかりました。 その時までに私は FPGA ボードを手に入れてから 1 週間ほどしか経っておらず、それまでは Verilog に関する本を数冊読んだだけでした。

その夜、私は次のことに気づきました。 ここにあります!これは、自分の考えを実際に動作するハードウェアに素早く簡単に変えることができるプラットフォームです。

何故ですか?

誰もがすでに知っていますが、FPGA を研究して使用することの利点について説明します。
  • 知識の普遍性- MK モデルを変更する場合は、ドキュメントを読む必要があります。 MK の製造元を変更する場合は、ドキュメントを読む必要があります。 常にドキュメントを読み、常に多くの情報を頭の中に入れておく必要があります。 FPGA で開発する場合、Verilog または VHDL を知っていれば、あるメーカーの製品ラインの FPGA をプログラムできるだけでなく、必要に応じて別のメーカー (Altera、Xilinx) に切り替えることもできます。 異なる開発環境やハードウェアの微妙な問題を習得する瞬間はありますが、HDL でデバイスを設計するアプローチの本質は今後も変わりません。
  • アイデアからハードウェアまで- プロジェクトを開発するときに、1 つのマイクロコントローラーが不足している場合は、別のマイクロコントローラーを選択する必要があります。 原則として、この MK がプロジェクトに対応できるかどうかを推測できます。 または、特定の MK があり、プロジェクトをそれに適合させようとしています。 ほとんどの場合、これが当てはまります。 それは、物置にあるもので梯子を作る祖父のやり方を少し思い出させます。 階段をデザインすることはできますが、アイデアからハードウェアへ、そしてその逆ではなく、それに適合するボードを購入してください。
  • 他の人が開発したものの使いやすさ- 他の人のモジュールを取得して、自分のプロジェクトに適用できます。 コードからそれがどのように機能するかを理解できます。 たとえそれが xilinx 用で、altera の下で実行されていたとしてもです。 場合によってはこれがうまくいかないこともありますが、たとえば C++/Qt プロジェクトにバイナリ ライブラリを追加するよりも簡単です。
  • 独立性をブロックします。 HDL のブロックは、言語における純粋な関数のようなものです。 入力信号のみに依存します。 開発およびデバッグされたモジュールは、プロジェクトがどのように成長しても、引き続き正しく動作します。 外部からのものは、内部からの正しい動作に影響を与えることはありません。 そして一般に、それがどのように機能するかを忘れることもできます - それはブラックボックスです。 さらに、ブロックも機能します 平行.

選択の問題

Altera/Xilinx、Verilog/VHDL、どのデバッグボードを使用するかなど、何を選択するかについて多くの質問があります。 しかし、まず最初に。

メーカー

私が選んだ アルテラ。 なぜ? そうですね、これが友人と私が決めた方法ですが、私にとってはザイリンクスという名前の方が美しいと思います。 しかし。 今選択できない場合は、私が代わりに選択します。 アルテラが必要だ! なぜ? わからない。 今、より重要なことは、一歩を踏み出すこと、つまり選択をすることです。 私はAlteraを選択しましたが、今のところ後悔はありません。



言語

持っていきましょう ベリログ - なぜなら…まあ、わかります。

開発ボード

開発ボードの選択に最も時間がかかりました。 ボードに搭載されている FPGA チップが異なることは明らかです。 また、FPGAチップは素子数が異なります。 しかし、テスト プロジェクトにそのうちの何個が必要になるかはまったく明らかではありません。 そのため、私はほとんどの時間をあらゆる種類の FPGA プロジェクトを検索して、FPGA リソースをどれだけ消費しているかを調べることに費やしました。

アルテラ・ファミリーでは、240、570、1270 素子を備えた CPLD MAX II を搭載したボードや、最大 10,000 以上のセルを備えた Cyclone 1、2、3、4 などの古い FPGA チップを手頃な価格で購入できます。 選び方は?

240 個のセルに基づいても、火星探査機プロジェクトは膨大な数のプロジェクトを実行します。 240 個のセルに収まるプロジェクトの複雑さを大まかに理解するために、この本を読むことを強くお勧めします。 一方で、プロセッサとその周囲のすべてのロジックを含む、特定の PC のハードウェア コピー用に完全にプログラムされたプロジェクトもあります (NES、Speccy、Orion、YuT-88 など)。 これにはすでに 5、1 万、あるいはそれ以上のセルが必要です。 さらに、これらのボードには追加の外部デバイスが含まれています。

したがって、利用可能な資金に応じて、240 ~ 10,000 個のセルを使用することをお勧めします。 デバッグ ボードでは、余分なセルは大した問題ではありませんが、セルが十分にない場合はどうすることもできません。 その後、デバイスがデバッグされると、必要なセルの数が明らかになり、不必要な「ボディキット」を使用せずに必要な量を購入し、より安くなり、完成したデバイスに残しておくことができます。

MAX と Cyclones の本当の違いは、セルの数以外に次のとおりです。
1) MAX シリーズには PLL が内蔵されていません。 各開発ボードには、通常 50 MHz の発振器があります。 ほとんどのプロジェクトにはこれで十分です。 すべての同期は、50 MHz を何らかの値で除算することによって行われます。 または、外部ジェネレーターを使用して、それを別の FPGA 入力に供給することもできます。 50 MHz を超える周波数が必要な場合はどうすればよいでしょうか? 50 MHzを超える発振器はすぐには見つかりませんでした。 しかし、ここで Cyclones に組み込まれている PLL が役に立ちます。 たとえば、最大 100 MHz まで周波数を逓倍できます。
2) Cyclone シリーズにはハードウェア乗算ユニットが内蔵されています。 それらの数は特定のモデルによって異なります。ここでも「説明書を見て」その数を確認できます。 何らかの DSP を実行する予定がある場合、これは便利です。セルを節約し、速度を向上させることができます。 一方、乗算器がない場合は合成できますが、小型の FPGA にはこれに十分なリソースがない可能性があります。

他のすべての点において、私は「合うか合わないか」の基準を持っています。 明らかに必要以上に大きいボード上でデバッグし、その後、これに必要な最小限のものをボードに埋め込みます。

どれくらいのお金が必要ですか?


プログラマー
プログラマーをまとめてはんだ付けする時間はないと思います。

300ルーブル。 eBay で購入したものですが、次のような感じです。

開発ボード
金額に応じて選択肢は広がります。

最初のレベル 350〜550ルーブル。 これらは MAX II (またはセル) に基づいたボードです。 最初の慣れと、エンドデバイスへのさらなる統合に適している可能性があります。 ボードにはジェネレーター、いくつかのボタン、いくつかの LED があり、残りの 80 ピンは任意に使用できます。

パワーユニット
これは必須ですが、常に含まれているわけではありません。 5 ボルトの電源と 2A の電流が必要です。

平均レベル 900ルーブルから1500ルーブルまで。 これらは Cyclone 1、2、3、4 ボードであり、主にセルの数が異なります。
それらには次のようなマークが付いています。
E.P. 2 C 5 T144 - サイクロン 2 約 5,000 セル
E.P. 4 CE 6 E22C8N - Cyclone 4 約 6,000 セル
E.P. 2 C 8 Q208C8N - Cyclone 2 約 8,000 セル

Cyclone 3 には Cyclone 4 よりも多くのセルがあることに気づくかもしれません。

以下にいくつかのオプションがあります。

835ルーブル。
ALTERA FPGA CycloneII EP2C5T144 学習用の最小システムボード

880ルーブル
アルテラ CycloneII EP2C5T144 FPGA ミニ開発学習コアボード E081

1265ルーブル
EP2C8 EP2C8Q208C8N ALTERA Cyclone II FPGA 評価開発コアボード

先進的なボード 。 追加モジュール(UTP、USB、AUDIO)、コネクタ(SD、VGA)、ボタン、スイッチ、LED、7セグメントインジケータなどが取り付けられたボードです。 あるいは、ベースボードがあって、それに別途拡張ボードが取り付けられる場合もあります。

次のセットが動作しています - ボード + 拡張ボード:
Altrea EP4CE10E22 FPGA コアボード + デバイスボード USB/サウンド/イーサネット/SD カード/VGA
2760ルーブル

こちらがメイン基板です。 2 つの LED、2 つのボタン、4 つのスイッチ、7 セグメント インジケーター、および RAM チップが搭載されています。

拡張ボード。 SD、VGA、USB コントローラ (高速 USB2.0 チップ: CY7C68013A)、AUDIO (最大 96kHz/32 ビット ADC/DAC のサウンド カード: WM8731S)、UTP (100M イーサネット インターフェイス: DM9000A) が含まれています。

これらのボードは単純に差し込まれているだけですが、今でも引き出しの中に保管しています。 工作用にブレッドボードを持っており、キットに付属のケーブルで接続しています。 5ボルトの電源も付属しています。

トピックの続き:
りんご

ドニエプル・バグ運河 (旧王立運河) は、1775 年から 1783 年にかけて建設されたポレジーの輸送運河です。 ピナ川 (プリピャチ川の支流) を接続します。