私は独学の組み込み開発者です。私は主にCとASMでプログラムされたAVRを使用していますが、他のシステムに手を出しています。CPLDやFPGAなどのより複雑なデバイスに移行したいと考えていますが、どこから始めればよいのかわかりません。だから私の1.5の質問は次のとおりです。
- VHDLとVerilogのどちらが好きですか。その理由は何ですか。
- HDLの経験がない人にとって、そのような獣の学習を始めるための良い方法は何ですか?
ザイリンクスまたはアルテラ(2つの大きなFPGAプレーヤー)から安価なスターターキットを購入します。ザイリンクスSpartan3スターターキットは200ドルです。
個人的にはVHDLが好きです。強く型付けされており、Verilogよりも高度な機能を備えています。VHDLはヨーロッパでより人気があり、Verilogは米国で支配的です。
本(Peter Ashendens The Designers Guide to VHDLなど)を購入し、無料のシミュレーターでデザインのシミュレーションを開始します。Mentor GraphisのModelSimは優れたものであり、無料バージョンが利用可能です(シミュレーション速度が低下しています)。
いくつかの興味深いプロジェクト(ミニCPU、vgaグラフィック、シンセサイザー)を作成し、設計を開始します。デザインをハードウェアに組み込む前に、常にシミュレーションを行い、デザインが機能することを確認してください...
デジタル電子機器のバックグラウンドがない場合は、その主題の本も購入してください。
私が ASIC 設計に取り組んでいた当時、それは Verilog でした。多くの場合、設計者として選択することはできません。HDL 用の ASIC 合成ツールにはかなりの費用がかかり、企業は 1 つの「祝福された」言語用の完全なツールチェーンのみを購入します。私の雇用主は Verilog で標準化していたので、それを使用しました。
FPGA合成ツールは大幅に安価であるため、FPGA設計者として好みの言語とツールを自由に選択できます.
また、verilog.netで無料の verilog シミュレーターを入手できます。
@kris が述べたように、FPGA スターター ボードも良い方法です。Verilog コードでボード上の LED を点灯させることは、画面上のシミュレータ波形よりもはるかに満足のいくものです。
このサイトをチェックしてください: http://www.fpga4fun.com/
シンプルなツールを使用した素敵なシンプルなプロジェクト。私は数年前にこれらのボードの 1 つを使用して、掲示板として使用する小さな VGA ディスプレイ システムを構築しました。
サイトをもう一度見てみると、SDRAM と Xilinx Spartan 3e だけでなく ARM プロセッサも搭載されている Xylo-LM ボードを入手することを考えています。
以前使用した別のボードは、Charmed Labs の XPort 2 でした。これは、オープン ソース開発ツールで十分にサポートされているゲームボーイ アドバンスにプラグインします。
チェックアウト: http://www.charmedlabs.com/index.php?option=com_virtuemart&page=shop.browse&category_id=6&Itemid=43
また、 opencores.orgもチェックしてください。Verilogと VHDL の両方で、学ぶことができる記事と多くのオープン ソース コードがあります。
私の知る限り、VHDL 対 Verilog は、Ruby 対 Python または Java 対 C# と同じくらい宗教的になります。人にはそれぞれの好みがあります。
私はあなたが今学期前にいるのと同じ船に乗っていました。私の好きな本はこれでした。デジタルロジックをレビューしてFPGAについて説明していたからです。また、VHDLコードとVerilogコードを並べて比較しているので、人々があなたをプッシュする可能性のあるものを選択する代わりに、あなたがスタイリスト的に好きなものを学ぶことができます。
FPGA自体については、ザイリンクスのISE Webpackを使用してプログラミングを行い(無料)、Basys2FPGAボードなどのFPGAから始めます。これは非常に小さなFPGAであり、低価格で始めることができますが、リソースとメモリの管理を非常に早く習得できるという利点もあります。DigilentのAdept(これも無料)を使用して、「コンパイルされた」コードをボードに簡単にアップロードできます。
幸運を!
アルテラとザイリンクスは、無料のツール セットにシミュレータを組み込んでいます。これらは、非常に人気のある Mentor ModelSim ツールの限定バージョンです。彼らは、500 ドル (US) 未満のボードに収まる可能性が高いデザインのサイズを処理します。
HDL の選択では、VHDL が ADA に対応しているため、Verilog は C に対応しています。そのため、Verilog は使い始めるのが簡単ですが、間違いを犯しやすくなります。これらの問題を回避するには、シミュレーションとコンパイルの警告を確認してください。
もう 1 つ考慮すべきことは、HDL を学習することから始めるべきか、それともブール論理、カルノー マップ、ドモルガンの定理、ゲート、ゲートでの演算の実装などを学習することから始めるべきかということです。基礎となるハードウェアがどのように見えるかについての正確なメンタル モデルを持っています。
この本は、私が学部で使用したものの Verilog バージョンであり、私の意見では、かなりうまく機能しました。上記の資料と、ゲートのトランジスタレベルの実装に関する基本的な基本情報から始めて、HDL を紹介し、徐々に複雑な構造および動作ハードウェア ブロックを構築します。はい、ほとんどの大学の教科書と同様に、信じられないほど高価であることは知っていますが、これは、少なくとも私がオンラインで見つけることができた情報がひどく不十分であるものの1つです.
HDL を選択する準備ができたら、Verilog を強くお勧めします (最初に VHDL を学習しました)。はい、VHDL はかつて Verilog よりもはるかに機能が豊富でしたが、言語のその後のリビジョン (Verilog 2001、Verilog 2005、SystemVerilog など) では、興味深い機能のほとんどが厳選されており、はるかに堅牢なツールチェーン サポートがあります。 Verilog とその変種については、米国で使用されている主要な言語であることに加えて (私の経験では、VHDL はここで極端なレガシー ブロックを処理する場合にのみ使用されます。以前)。最後に、HDL を学習すると、厳密なスーパーセット構文を使用した SystemVerilog のハードウェア検証言語 (HVL) を使用できるため、学習曲線を大幅に節約できます。私の知る限り、VHDLの場合はそうではありません。
Verilog は習得がはるかに簡単で、構文も単純です。また、新しい言語です。次に、ほとんどの人が Verilog を使用しています。VHDL には学習曲線を与える多くのデータ型があります。Verilog を理解すれば、VHDL とのギャップを埋めるのがより簡単になります。ああ、verilog には非常にきちんとしたマクロもあります。私はそれを使って言語を発明しました。最後に、混合言語のハードウェア設計を最終的に行うことができます。私は VHDL から始めて、その後 verilog を学び、現在は verilog のプロです。
HTH
Verilog/VHDL に飛び込むか、FPGA 開発キットを購入する前に、デジタル デザインの入門クラスを受講することをお勧めします。優れたオンラインOpenCourseWare MITクラスがあります。
幸運を。