FPGAラーニングパスプランニング

1.開始するには、最初にHDLをマスターする必要があります(HDL = verilog + VHDL)。
最初の文は次のとおりです。数学と電気を学んでいない場合は、最初に数学と電気を学んでください。次に、VerilogまたはVHDLを選択できます。C言語の基盤がある場合は、VHDLを選択することをお勧めします。verilogはCに似すぎているため、混乱しがちです。最終的には、使用方法を学ぶのではなく、2つの言語を区別するために多くの時間を費やしていることに気付くでしょう。もちろん、気が向いたら、Verilogを選択することもできます。結局のところ、Verilogは中国でより多く使用されています。

次に、最初にこの例を見つけて、コードをコピーします。コードをコピーする意味は、文法規則とコンパイラー(シンセサイザーとも呼ばれます)に精通していることです。一般的に使用される統合開発環境は、IntelのQuartus、ザイリンクスのISEとVivado、デザインコンパイラー、SynopsysのVCS、Linuxのiverilog、LatticeのDiamond、MicrochipのLiberoです。 、Synplify Proを使用して、模倣して書き込むと、最終的に本を読まずに書き込むことができます。コードをコンパイルした後、RTLダイアグラムを開いて、どのような種類の回路が合成されているかを確認します。

HDLはハードウェア記述言語であり、ハードウェアの特性を強調しているため、C言語やその他の高級言語ではなくデジタル思考でHDLを考える必要があります。この文が理解できない場合は、「ハードウェアとはソフトウェアとは」。この段階で推奨される教科書は、「Verilog HDL AdvancedDigitalDesign」または「VHDLforLogicSynthesis」です。本を読まずに3段階のステートマシンを書くことができ、次の段階に入ることができます。

さらに、VerilogまたはVHDLの公式ドキュメント「verilog_IEEEOfficial Standard Manual-2005_IEEE_P1364」、「IEEE Standard VHDL Language_2008」を準備して、文法上の問題が発生したときに確認できるようにする必要があります。

2.中小規模のデジタル回路の設計を独立して完了します。
これで、信号機、電子オルガン、DDSなどのいくつかのデジタル回路を設計できます。推奨される教科書は「VerilogHDLアプリケーションプログラムの設計例」です。この段階で行う必要があるのは、インデックス要件またはタイミング図を提供することです。HDLを使用して、それを実装する回路を設計できます。ここでは、開発ボードが必要です。アルテラのサイクロンIVシリーズ、またはザイリンクスのSpantan6を選択できます。HDLをマスターする前に開発ボードを購入しないでください。買い戻すと役に立たないからです。ここでは、コンパイルして渡すたびにコードをダウンロードする必要はありません。シミュレーションが失敗した場合は、modelsimシミュレーション(QuestaSim、NC verilog、DiamondのActive-HDL、VCS、Debussy / Verdi、その他のシミュレーションツールに加えて)を使用します。 、ダウンロードする必要はありません。はい、絶対に機能しません。ここでは、最初に簡単なテストベンチをマスターできます。推奨される教科書は「WRITINGTESTBENCHESHDLモデルの機能検証」です。
3.設計方法と設計原則を習得します。
合成した回路が正しいことに気付くかもしれませんが、多くの警告があります。このとき、同期設計の原則、回路の最適化、速度と面積のどちらを優先するか、クロックツリーの設計方法、異なる周波数の2つのクロックを同期する方法などを学ぶ必要があります。推奨される教科書は、「FPGA Authority Guide」、「Altera FPGA / CPLD Design」、基本章と上級章の第2版です。税関を通過した場合でも、コンパイル(インクリメンタルコンパイル、LogicLock)、静的タイミング分析(timequest)、および組み込みロジックアナライザー(signaltap)を高速化する方法を学びます。わからないことがあったら、一時的に飛ばしてもかまいません。この部分は、理解を深めるにはまだ十分な練習が必要だからです。

4.開発効率の向上を学びます。
QuartusとISEのエディタ機能が弱すぎるため、開発効率に影響があります。したがって、繰り返しの作業を減らすために、Sublimeテキストエディターのコードスニペット関数を使用することをお勧めします。Modelsimも一般的に使用されるシミュレーションツールです。TCL/ TKを学習して、自分に適したDOファイルを作成し、シミュレーションを自動化します。推奨される教科書は「TCL / TKはじめにクラシック」です。コードを手動でバックアップすることもできますが、専門家はバージョン管理者のGitを使用するため、作業効率が向上します。比較を超えたファイルコンパレータも一般的に使用されるツールであり、Gitには比較機能もあります。さらに、テストベンチの代わりにSystem Verilogを使用することもできます。これにより、より効率的になります。IC検証を行う場合は、System Verilogおよび検証方法(UVM)を習得する必要があります。推奨される教科書は、「SystemVerilogを使用したテストベンチの作成」、「UVM入門書」、および「SystemVerilog1800-2012文法マニュアル」です。

TCL / TKをマスターした後、仮想Jtag(ISEにも同様のツールがあります)を学習して、独自のデバッグツールを作成できます。さらに、時間があれば、Pythonをもう一度学習することをお勧めします。スクリプティングとは、一度限りのことです。

5.理論的基盤を強化します。
現時点では、FPGAの使用方法はすでに知っていますが、理論が十分に研究されていないため、実行できないことがたくさんあります(たとえば、FIRフィルター、PIDアルゴリズム、OFDMなど)。参考までに、大まかにいくつかの方向に分けてから、理論的なレッスンを習得します。
1.信号処理-信号およびシステム、デジタル信号処理、マルチサンプリングレート信号処理、デジタル画像処理、最新のデジタル信号処理、ブラインド信号処理、適応フィルター原理、レーダー信号処理
2.インターフェイスアプリケーション-UART、 SPI、IIC、USB、CAN、PCIE、Rapid IO、DDR、TCP / IP、SPI4.2(10Gイーサネットインターフェイス)、SATA、光ファイバー、DisplayPort、HDMI
3、ワイヤレス通信-信号とシステム、デジタル信号処理、通信原理、移動体通信基盤、ランダムプロセス、情報理論およびコーディング
4. CPU設計-コンピュータ構成原理、シングルチップマイクロコンピュータ、コンピュータアーキテクチャ、コンパイル原理、RISC-V
5、計測器-アナログ電子技術、高周波電子回路、電子インテリジェント機器の測定技術、原理およびアプリケーション
6.制御システム-自動制御原理、最新の制御理論、プロセス制御エンジニアリング、ファジーコントローラー理論およびアプリケーション
7.圧縮、コーディング、暗号化数理論、抽象代数、最新のコーディングテクノロジー、情報理論とコーディング、データ圧縮の概要、応用暗号化、オーディオ情報処理技術、デジタルビデオコーディング技術の原則、H.265

FPGAには非常に多くの知識が含まれることがわかったので、関心のある方向を選択できますが、作業ではいくつかの方向で知識を使用する可能性が非常に高いため、理論を学ぶほど良いでしょう。それを次のレベルに引き上げたいのであれば、数学と英語は避けられません。

第六に、MATLABシミュレーションの使い方を学びます。
FPGAアルゴリズムを設計する場合、CRC係数行列、デジタルフィルター係数、さまざまなテーブル、テキスト処理など、MATLABが多かれ少なかれ使用されます。さらに、MATLABを使用してHDLをデバッグすることもできます(計算結果をMATLABおよびHDLと段階的に比較して、問題がどこにあるかを確認します)。推奨される教科書は、DuYongによる「TheCollectionofMATLAB」と「TheRealizationof Digital Filters inMATLABandFPGA」です。

7.十分な練習。
この時点で、チップのマニュアルを少なくとも数回読んだことがあり(公式Webサイトにあります)、その後、自分の方向である程度の練習を行うことができます(その間、適切なコードスタイルを維持する必要があります。コンポーネントのインスタンス化ステートメントの読みやすさを向上させ、フローチャート/タイミング図、ドキュメントを書く習慣を描きます)。たとえば、通信タイプは変調および復調アルゴリズムとして使用でき、機器タイプはバスアナライザとして使用できます。ただし、これらのアルゴリズムは、実際のアルゴリズムとはかけ離れた、本の公式とブロック図にすぎず、本の内容は非常に表面的なものであるとさえ思われるかもしれません。次に、HowNet、Baidu Library、EETOP Forum、opencores、ChinaAET、SCI-HUB、Qグループ共有、およびブログで関連情報を見つけることができます(学校外の友人はTaobaoでCNKIアカウントを購入できます)。実際、この段階に達すると、プロのレベルに到達します。時間があるときに最先端のテクノロジーについてさらに学ぶことができ、キャリアプランニングに役立ちます。

あなたの仕事では、多くの協定や業界標準に注意を払う必要があるかもしれません。協定はEETOPにあります。規格(国内規格GBおよびGB / T、国際規格ISOなど)は「規格ネット」および「規格共有ネット」を推奨しています。 "。

8.画像処理。(この部分は画像処理を学びたい友達だけのもので、浅いところから深いところへのルートでもあり
ます1.Photoshop。PSを学び、画像処理の一般的な理解を持ち、さまざまな画像形式、ヒストグラム、色相、チャネル、フィルター、ステッチングなどの基本概念を理解し、それを使用できるようにするために1〜2週間を費やします。この部分はゼロの基盤であり、目的は、最初からさまざまな式を導き出すのではなく、すべての人に画像処理の知覚的理解を与えることです。「PhotoshopCS6完全自習チュートリアル」をお勧めします。
2.MATLABまたはOpenCVに基づく画像処理。C / C ++の基礎を持っている人は、OpenCVを学ぶことができます。それ以外の場合は、MATLABを学ぶことをお勧めします。この段階では、単に関数を呼び出すことを学ぶ限り、当面は実装の詳細に立ち入る必要はありません。「デジタル画像処理matlabバージョン」、「LearningOpenCV」をお勧めします。
3.画像処理の基本理論。理論のこの部分では、多数、複素変数、線形代数、信号とシステム、デジタル信号処理などの基本が必要です。基本が適切でない場合は、最初に基本を補足することをお勧めします。あなたが理解していない理論も当分の間脇に置いておくことができます、そして多分あなたは後でそれらを学ぶでしょう。「デジタル画像処理」をお勧めします。
4.FPGAに基づく画像処理。前に学習した理論をFPGAに適用します。第7段階のレベルがある場合は、画像アルゴリズムの設計を独立して簡単に完了できます(画像処理はインターフェイスから切り離せません。上記の第5段階は約です)。開発ボードがない場合は、「Verilog ReadingBmpPictures」を参照してください。「FPGAに基づく組み込み画像処理システムの設計」、「FPGAに基づくデジタル画像処理の原理と応用」を推奨します。
5.数学をさらに勉強します。より高いレベルのアルゴリズムを取得するには、必然的により多くの数学が必要になるため、実際の分析、一般的な分析、ウェーブレット分析などを学ぶことをお勧めします。
次の2つの段階は、興味のある友人に紹介されています。

九、電気の数の終わりはアナログ電気です。
これで、FPGA内の処理は難しくありませんが、信号がFPGAから出力される場合、それを制御することはできません。このとき、私たちは電気をうまくモデル化することを学ぶ必要があります。例:回路解析、アナログ電子技術、高周波電子回路、PCB設計、EMC、SI、PIなど。税関に合格した場合でも、2つのDDR3チップを搭載したFPGA開発ボードを設計できます。具体的な学習ルートは、このブログの「ハードウェア設計の学習方法-理論」と「ハードウェア設計の学習方法-実践」を参照できます。

10.学習は無限大です。
このレベルに到達できるということは、すでに非常に優れていることを意味しますが、FPGAはCPUと頻繁に対話する必要があるため、つまり、ソフトウェアエンジニアと頻繁に通信する必要があるため、学ぶべきことがたくさんあります。ソフトウェアの知識を理解する。たとえば、ARM(ザイリンクスのZYNQおよびアルテラのSOCはARMのハードコアを使用します。このブログの「組み込みソフトウェアの学習方法」を参照してください)、DSP、Linux、Android、上位コンピュータ(QT、C#、JAVA)は次のことを学習できます。とにかく学習に終わりはありません。

転載元:https://blog.csdn.net/k331922164/article/details/44626989

おすすめ

転載: blog.csdn.net/u010451780/article/details/114636856