CPLDまたはFPGAの回路図設計よりもVerilogまたはVHDLを選択する理由は何ですか?


13

プログラマブルロジックのバックグラウンドはまったくなく、ほとんどのプロジェクトでマイクロコントローラーを使用していますが、最近はビデオを操作する必要があり、マイクロコントローラーが必要なものに対して遅すぎるため、CPLDでプレイを開始しました。

回路図デザインのみを使用してCPLDで良好な結果を得ることができましたが、CPLDの情報を検索すると、VHDLおよびVerilogを使用した多くの例が見つかりました。これらの言語の1つでデバイスを定義したいと思うのはなぜなのか興味があります。回路図設計でできないことは何ですか?主に機能に使用されていますか?

これまでCPLDのみを使用していましたが、FPGAデザインはこれらの言語を使用することでCPLDよりも多くの利点がありますか?


1
おそらく、メインストリームパーツ用のVerilogとVHDLの両方にベンダーが提供する合成ツールを見つけるでしょう。したがって、選択は純粋に意見です。両方を見て、どちらを好むかを決めることをお勧めします。ザイリンクスは両方の言語で良い例を提供しているが、他のベンダーもそうだと思う。
デビッド14年

3
ロジック設計の回路図キャプチャから確実に離れるべきです。最初簡単に感じますが、それ幻想です。言語に関する私の0.02ドル:VHDLは憎悪です。Verilogを使用してください。
マルクト14年

@markt、なぜVHDLがそんなに悪いと思うのですか?
stanri 14年

2
同様に、Verilogは嫌悪感があると言えます。VHDLを使用してください。VHDLでは、Verilogが推測するように、あなたが望むものを正確に言うことを期待しています。しかし、それはちょうど私の£0.02です。
ブライアンドラモンド14年

1
@markt、私はVHDLで始めたので、ある時点で強く型付けされていることを高く評価しました。それは私が何を望んでいたかを考え、私が始めたときに良い習慣を作成することを余儀なくされました。正直に言って、SystemVerilogキャンプにはあまりにも深く入りすぎているので、どちらにせよあまり気にしません。
stanri 14年

回答:


14

回路図設計は、いくつかの既製のモジュール(カウンター、加算器、メモリなど)を結び付ける場合にのみ役立ちます。しかし、実際のアルゴリズム(暗号化ハッシュアルゴリズムなど)を実装することは、回路図シンボルを使用して動作レベルでシステムを記述する方法がないため、HDL(VHDLやVerilogなど)なしではほとんど不可能です。

ほとんどのプロジェクトは、手作業で合成し、ロジックプリミティブを使用して概略的に描画するには複雑すぎるため、動作スタイルHDLで行われます。

CPLDは一般にグルーロジックに使用され、処理にはあまり使用されず、一般にロジックは概略的に簡単に実装できるため、FPGAベースのデザインがHDLを使用することでより多くのメリットがあることを提案するのは正しいと思います。


シンボリックスケマティックシステムでは、非常に複雑なことを行うことができます。HDLでできることは、保守性は犠牲になりますが、回路図ベースのシステムに実装できると言っているところまで行きます。ツールセットが単一のシンボルとして機能するシンボルのブロックを定義できる限り、ほとんど何でもできます。
コナーウルフ14

1
ここでの良い例は、labviewです。これは、人々が工場全体を自動化する非常に複雑なシステムを設計した象徴的なプログラミングインターフェイスです。最終結果はほとんど維持できませんが、それは可能です(注:良いアイデアかどうか、基本的な実行可能性かどうかについては話していません)。
コナーウルフ14

「ほとんどのプロジェクトはビヘイビアスタイルHDLで行われます...」はサポートできず、実際にはデザインフローの仕組みではありません。
プレースホルダー14年

@ConnorWolf Labviewのコードが保守できないことについて意見を異にする必要があります。私が大ファンであることではありません。本当に役立ついくつかのベストプラクティスがあります。私にとっては、通常、G言語に固有のものとは対照的に、メンテナンスの問題を引き起こす前方または後方互換性を期待して放棄されています;)
Scott Seidman 14年

4

ジェイの優れた答えに加えて、いくつかの実用的な側面:

  • バグ。回路図ツールは、他のツールセットよりもバグが多い傾向があります*。これはおそらく、業界の回路図よりもVerilog / VHDLが好まれているためであり、ソフトウェア開発者は回路図の入力にあまり注意を払っていません。
  • 速度。回路図は、合成ツールに渡す前に最初にHDLに変換する必要があります。これは、ビルド時間に悪影響を及ぼす可能性があります。生成されたHDLは、何らかの理由で検査する必要がある場合、非常に読みにくい場合があります。
  • 移植性。使用されるベンダー固有のプリミティブの量に応じて、VerilogとVHDLは、デバイス間で多かれ少なかれ移植可能です。回路図を移植するには、すべてを再描画するか、提供されたインポート/エクスポート機能(ある場合)に依存する必要があります。

*ザイリンクスISEで私のお気に入りのバグは、垂直線を選択できないことでした


2

HDLデザイン入力標準としてのHDL(ハードウェア記述言語)には多くの利点があります。

機能の説明はより高いレベルにでき、HDLベースのデザインは選択したテクノロジのゲートレベルの説明に合成できます。HDLデザインは、ゲートレベルのネットリストや回路図とHDLよりも簡単に理解できます。強力な型チェックによるエラーを減らします。

ハードウェア記述言語VHDLおよびVerilogは、同時実行性、タイミング、階層、コンポーネントの再利用、状態動作、同期動作、非同期動作、同期、固有の並列処理などの機能を含む、より高い抽象レベルでのモデリングを目的としたハードウェアのモデリング用に設計されました。

合成中に問題が発生し、設計記述を特定のプロセスとゲート実装にマッピングします。これには、HDLの高レベル機能を使用できないことが必要です。「合成可能なVerilog / VHDL」を作成する必要があります

したがって、合成用のHDLとシミュレーション用のHDLがあり、合成可能なサブセットはツール固有です。

ビヘイビアデザインの説明からネットリスト/レイアウトに移動することはできません。ただし、相互に比較できる合成可能な側面を備えた動作コンポーネントを持つように設計を構築できます。ビヘイビアから始めて、それが機能したら、合成(サブセット)に書き換えます。一般的なものから特定のものに進み、その途中でテストベンチを構築します。


1

もう1つの利点は、標準バージョン管理システムで使用したり、変更を検査するために差分を作成したりできるという点で、HDLが通常のプログラミング言語と同じ利点をすべて得ることです。


0

既に述べたことに加えて、特に大規模なプロジェクトでは、テキスト表現のほうがはるかに管理しやすいです。(非常に困難ではありますが)合成可能なHDLを回路図に変換できますが、数百行のプレーンテキストは、数百の回路図要素よりも簡単に作業できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.