コンピュータ ウィンドウズ インターネット

マイクロエレクトロニクス設計およびトレーニングセンター: 樹木。 ハードウェア - ALTERA: プログラマブル ロジック チップ (入門資料) PLS で開発する楽しさ

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

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

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

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

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

ついに自由に呼吸したいですか? どうぞ!

FPGAで開発する楽しさ

仕事で大変な一日を過ごしました。 一つの仕事から二つ目の仕事に移り、それからダーチャに行き、宿題をし、夕方には宿題をし、それから家族で映画を観て、午後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ボルトの電源も付属しています。

導入

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

それはマイクロコントローラーでもなく、プロセッサーでもなく、FPGAです。 FPGAはプログラマブルロジック集積回路ですこのようなマイクロ回路は多くの同一のブロックまたはマクロセルで構成されており、メーカーごとに呼び方が異なるため、ザイリンクスではスライス(スライス)、アルテラではロジックエレメント(論理要素)となります。 これらのブロックは比較的単純で、いくつかの論理要素として機能し、小さなルックアップ テーブル (LUT) として機能し、既製の加算器、乗算器、デジタル信号処理 (DSP) ブロックが含まれており、一般にメーカーが念頭に置いているすべてのものを含みます。 。 ユーザーはこれらのブロックを自由に配置、構成することができるため、非常に複雑なデジタル回路を実装できます。 FPGA 上にマイクロコントローラーを実装することもできます。たとえば、同じ Arduino や独自のアーキテクチャのプロセッサを実装することもできます。たとえば、レジ​​スタ プロセッサではなくスタック プロセッサを 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」を選択すると、導入ウィンドウが表示されます。「次へ」をクリックします。 次に、プロジェクトのディレクトリとその名前を指定する必要があります。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または グランド。 独自のシンボルが必要な場合は、グラフィック エディタの新しいウィンドウを開いてコンポーネント図 7 を描き、名前を付けてライブラリに保存する必要があります。 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 シリーズに基づく構造の製造にうまく使用できます。

1 ピン割り当て Quartus II プロジェクト内

メニューにある 割り当てデバイス…プロジェクトを「アップロード」する FPGA を選択します。 グループで デバイスファミリー FPGA が属するファミリーを選択する必要があります。 フィールド内 利用可能なデバイス FPGA モデルを選択します。 たとえば、私はこの Cyclone II、モデル EP2C5T144C8 を持っています。

グループで 「利用可能なデバイス」リストに表示ケースの種類ごとにデバイスを並べ替えることができます ( パッケージ) またはピンの数 ( ピン数) を使用して、FPGA モデルをすばやく見つけます。

接続されていない FPGA レッグの状態を指定すると便利です。 ボタンをクリックしてください デバイスとピンのオプション…、ポイントに移動します 未使用のピン、ピンの状態を示します。


FPGA モデルを指定したら、ウィンドウを閉じます。 デバイスボタンを押すことで わかりました.

シンセサイザーでピン自体に機能を割り当てたい場合は、他に何もする必要はありません。 FPGA ピンを手動で割り当てるには、メニューに移動します。 アサインメントピンプランナーまたは、Ctrl+Shift+N キーの組み合わせを押します。


ピン マッピング ツールの実行 ピンプランナー

ピン割り当てツールが起動します。 ピンプランナー。 以下は、プロジェクトで使用される I/O ピンと対応する名前のリストです。 ノード名.


ただいまコラム中 位置ピン番号を指定する必要があります。 対応するセルをダブルクリックして出力番号を選択するか、キーボードから番号を入力します。 ピン番号はブレッドボードによって異なります。 たとえば、私のボードでは、マニュアルによれば CLK クロック パルスはピン 17 にあり、空いているピン 94、97、100、103、93 を OUT1...OUT5 出力に割り当てます。


すべてのピンが定義されると、[Pin Planner] ウィンドウが表示されます。 ピンプランナー閉じることができます。 次にプロジェクトをコンパイルします。 処理開始コンパイルまたは Ctrl+L 。


2 ドライバーのインストール USBブラスタープログラマー用

USB Blaster プログラマをコンピュータに接続しましょう (お持ちでない場合は、Ali Express で購入できます)。 初めて接続するときは、ドライバーをインストールする必要があります。 これは標準的な方法でインストールされ、Quartus ディレクトリの次のフォルダーにあります。 運転手: C:\altera\13.0sp1\quartus\drivers


ドライバーをインストールすると、プログラマーはデバイス マネージャーに Altera USB-Blaster として表示されます。

JTAGインターフェース経由

アルテラ FPGA は、いくつかのプログラミング モードをサポートしています。 まず、ファームウェアを FPGA にロードする方法を見てみましょう。 JTAGインターフェース。 プログラマをFPGAボードのJTAGコネクタに接続します。

プログラミング ツールを起動しましょう。 ツールプログラマー.

プログラマーを追加しましょう。 これを行うには、ボタンを押します ハードウェアのセットアップ…をクリックし、接続されている USB Blaster をドロップダウン リストから選択します。 窓を閉めましょう ハードウェアのセットアップ.


プログラマウィンドウで プログラマーボタンをクリックしてください 自動検出 Quartus に接続された FPGA と *.sof ファームウェア ファイルを自動的に検出させます。

ファームウェア ファイルは、コンパイル中にデフォルトで Quartus によって作成され、ディレクトリに保存されます。 出力ファイル、 特に指定しない限り。

窓の中で プログラマー選択モード JTAG、ボックスにチェックを入れます プログラム/設定そしてボタンを押してください 始める。 ファームウェアは FPGA メモリに書き込まれます。


アクティブシリアルモードの場合

ファームウェアをROMに保存するには、ファームウェアを書き込みます。 アクティブシリアルモードの場合.

プログラマケーブルをコネクタに接続します としてまたは アクティブなシリアル。 ファームウェア プログラムを実行します。 ツールプログラマー.

モード選択 モード アクティブ シリアル。 明確な質問に答えるときは同意します。

ボタンをクリックしてファームウェアファイルを追加します ファイルを追加...プロジェクトのサブディレクトリ内 出力ファイル拡張子が付いているファイルを見つけます .pof.


ファームウェアファイルを開いたら、チェックボックスをオンにします プログラム/設定そして必要に応じて残りも。


列のコンフィギュレーション メモリ タイプに注意してください。 デバイス: ボードに取り付けられているメモリのタイプと一致する必要があります。

ボタンをクリックしてください 始めるファームウェアを FPGA コンフィギュレーション メモリにロードします。


ファームウェア ファイルを変換して構成するには、メニューからアクセスできるツールがあります。 ファイル変換プログラミング ファイル….


(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│EP ROM│ │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)、ただし英語です。