タグ付けされた質問 「vhdl」

VHDL(VHSIC(超高速集積回路)ハードウェア記述言語)は、フィールドプログラマブルゲートアレイや集積回路などのデジタルシステムを記述および設計するための電子設計自動化で使用されるハードウェア記述言語です。

8
VHDLを学ぶプロジェクト
私はEEの学生であり、指を持っているよりも多くの言語で(少なくとも単純な)プログラムを書くことができます。VHDLの学習を始めたばかりですが、言語と関連ツールを実際に理解するのに良いプロジェクトは何だろうと思いました。それは私にとって本当に異なるスタイルのプログラミングだからです。 加算器のような単純なものを作成しましたが、より長期(1か月程度)のプロジェクトを探しています。 関連する場合は、Xilinx WebpackとDigilent Spartan3ボードがあります。
16 fpga  xilinx  vhdl 

6
テストと検証の違いは何ですか?
私が見たすべての教科書は、テストと検証が2つの異なる概念であるという事実を大きく作ります。しかし、それらのどれも明確な(または、最後に私にとって十分に明確な)区別を提供しません。 コンテキストを提供するために、ハードウェア設計言語(HDL)を使用したデジタルハードウェア設計の検証に興味があります。 「物理的」または「有形」の違いに頼る説明を見てきました。製造されたデバイスに関するものであれば、それはテストです。これが全体の話ですか?そうだとすれば、なぜ「テスト」という言葉が検証で頻繁に出てくるのか(特に機能検証では、テストケース、テストベンチ、DUT(テスト対象デバイス)、ディレクテッドテスト、ランダムテストなどについて話します)

3
VHDL:アーキテクチャの命名と解釈
注:ザイリンクスのISEを使用しており、(スイッチやライトなどを使用して)動作するFPGAボードを使用しており、これまでにいくつかの簡単なプロジェクトをハッキングしました。同時に、私がやっていることの基礎を築くためのいくつかのチュートリアルを読んでいます。 私はこれまでに行ってきた参考資料で言及されているさまざまなエンティティとそのアーキテクチャを見てきましたが、ネーミングはしばしば混乱を招きます。多くの場合、「architecture rtl of ..」または「architecture Structural of ...」の代わりに、「architecture foo of ...」または「architecture arch of ...」も表示されます。 この問題を回避するために、より一貫性のある命名規則を使用できることを示唆するスタイルガイドがありますが、アーキテクチャ名はエンティティの命名と同じようにarbitrary意的であることを(偶然に)認識します。これはいくつかの質問に私を導きます: エンティティを見て、アーキテクチャ名からのヒントなしで、使用されている実際のアーキテクチャモデルをどのように判断できますか?RTL、行動、構造...これらは私の学習者の目に非常に似ているように見えます(私が見た例が実際に正しく命名されていると仮定して)。ここでは、シンプルだが明らかな例が役立ちます(または、1つのポインター)。 単一のエンティティに複数のアーキテクチャを指定する場合(これは可能です)、同じファイル内で異なる名前をアーキテクチャに付けるだけですか? アーキテクチャ名は特定のエンティティに限定されていますか(つまり、複数のエンティティで同じアーキテクチャ名を使用することで「名前空間」に問題がありますか)。 編集:およびもう1つ: RTLとビヘイビアの間に違いがあるように見えますが、上記のように、私が見た例では実際には見ていません(多くの場合、定義されているアーキテクチャは1つだけです)。あるアーキテクチャは他のアーキテクチャよりも一般的ですか? 私が探していたのは、ベストプラクティス(適切な命名、すべてが1つのファイルに詰め込まれているわけではないなど)を使用して記述された、包括的でシンプルなマルチコンポーネントプロジェクト(小さなコンポーネント)です。適切に作成されたサンプルプロジェクトは、基本原則とベストプラクティスを明らかにするのに非常に役立ちます。このようなサンプルプロジェクトをご存知の場合は、それへのポインタにも感謝します。(他に何もなければ、おそらく私がこれを理解したら、私は自分のものを共有することができます...)

4
BJTトランジスタは飽和状態でどのように機能しますか?
これは、NPN BJT(バイポーラジャンクショントランジスタ)について私が知っていることです。 ベースエミッタ電流はコレクタエミッタでHFE倍に増幅されるため、 Ice = Ibe * HFE Vbeはベースエミッタ間の電圧であり、他のダイオードと同様に、通常は約0.65 Vです。Vecしかし、私は覚えていません。 Vbeが最小しきい値よりも低い場合、トランジスタは開いており、どの接点にも電流は流れません。(大丈夫、たぶん数μAのリーク電流ですが、それは関係ありません) しかし、まだいくつか質問があります。 トランジスタが飽和しているときの動作は? Vbeしきい値より低い以外の条件の下で、トランジスタをオープン状態にすることは可能ですか? さらに、この質問で私が犯した間違いを(回答で)遠慮なく指摘してください。 関連する質問: トランジスタがどのように機能するかは気にしませんが、どのように動作させることができますか?

5
CPLDまたはFPGAの回路図設計よりもVerilogまたはVHDLを選択する理由は何ですか?
プログラマブルロジックのバックグラウンドはまったくなく、ほとんどのプロジェクトでマイクロコントローラーを使用していますが、最近はビデオを操作する必要があり、マイクロコントローラーが必要なものに対して遅すぎるため、CPLDでプレイを開始しました。 回路図デザインのみを使用してCPLDで良好な結果を得ることができましたが、CPLDの情報を検索すると、VHDLおよびVerilogを使用した多くの例が見つかりました。これらの言語の1つでデバイスを定義したいと思うのはなぜなのか興味があります。回路図設計でできないことは何ですか?主に機能に使用されていますか? これまでCPLDのみを使用していましたが、FPGAデザインはこれらの言語を使用することでCPLDよりも多くの利点がありますか?


4
FPGAファームウェア設計:大きすぎますか?
matlabからVHDLに移植する必要のある特に大きな信号処理トランスフォームがあります。間違いなく何らかのリソース共有が必要です。少し計算すると、次のことがわかりました。 512 fftの64ポイント 41210積和演算 最大のVirtex 6 FPGAには最大2000個のDSP48Eブロックがあることを考えると、リソースを複数回再利用するためにリソースを共有できることがわかります。実行時間は実際には問題ではなく、FPGAの観点からすると処理時間は比較的長くかかる場合があります。 リソースの使用状況を見ると、radix-2 liteアーキテクチャを使用すると、4dspブロック/ FFT操作= 2048 DSPブロック、合計で約43kになります。最大のVirtex FPGAには2kブロック、つまり20オペレーション/ muxがあります。 明らかに、このような大きなマルチプレクサをファブリックに含めると、スライスが占有されます。この制限の上限はどこにありますか?FPGAリソースを無限に共有することはできません。41210乗数は大きすぎますか?大きすぎるものを計算するにはどうすればよいですか? 他のリソース(スライス、Bramsなど)も調べました。Radix-2 Liteは、4 x 18kブラム/ fft = 2048ブラムも提供します。最大のザイリンクスFPGAには2128ブラムが含まれます。非常に境​​界線。デザインが大きすぎるのではないかと心配しています。 更新: デザイン自体に関する詳細情報。詳細に説明することはできませんが、ここで説明します。 Initial conditions -> 512 ffts -> 40k multipliers ---------|----> output data to host ^------re-calculate initial conditions----| 出力データレートの仕様:「MATLABシミュレーションよりも高速」 賢明な計算、これは私がいる場所です: FFTステージ:簡単。1/2/4/8 FFTを実装し、結果をSDRAMに保存して後でアクセスできます。比較的小さく、時間がかかっても問題ありません。radix-2 liteを使用すると、2つのDSP48Eと2つの18k BRAMS / FFTを取得できます。ストリーミングでは、6個のDSP48Eに0BRAMS / FFTが与えられます。どちらの場合も、64ポイントFFTはFPGAリソースの観点からは小さいです。 …
12 fpga  vhdl  xilinx 

7
安価なFPGA開発ボード[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Electric Engineering Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 FPGAから始めたいと思っていますが、一度も作業したことがありません。 安いキットが欲しいのですが、どこから始めればいいのかわかりません。安いボードを見つけることはできますが、プログラマーやコンパイラーに関する情報を得ることができません。 WinCUPLやVHDLなどのいくつかの言語を使用してプログラミングできる、独自の方法ではないプログラミングとデバッグ(おそらくJTAG?)を備えた、本当に安価なもの(最大$ 30〜$ 40)が必要です。 別のスレッドでザイリンクスCPLDを搭載したDiligent Cmodボードを見つけましたが、プログラム/デバッグ(ソフトウェアおよび追加のハードウェアが含まれる)の方法がわかりません。
12 fpga  vhdl  jtag 

6
FPGAに関する書籍の推奨事項[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Electric Engineering Stack Exchangeで話題になるようにします。 閉じた2年前。 FPGAとVHDLの使用を開始するには、どの本のタイトルをお勧めしますか? edit 推奨されている書籍のいくつかは1996年に遡ることに気付きました。言及されたデバイスは非常に古くなっていると想像できますが、それ以来VHDLも大きく進化しましたか。
12 fpga  books  vhdl 

1
ModelSIMで赤信号をデバッグするにはどうすればよいですか?
コンビナトリアルパーツにはNANDゲート、シーケンシャルロジックにはDフリップフロップのみを使用してステートマシンを設計する必要があります。すべては1ghz / 53のクロックで実行する必要があります。 さて、「私たちはあなたのために宿題をやらない」と私に暴行する前に、私は仕事の日々を投資した後、私はすべてを廃棄し、より厳格にすべてを再び始めたと言ってみましょう。私は自分でこれをやりたいのですが、プロジェクトの最も単純な部分でランダムな未定義の信号を絶えず受け取り、イライラさせられます。 さて、まず最初に、ステートマシンとそれに対して行った真理値表を次の図に示します。 次はkmapsです。 DフリップフロップD = Q +の場合、組み合わせロジックの配線(単純化したブロックに構築した後)はそれほど難しくないはずです。 しかし、私の最初の問題はQ3 +のテストベンチで発生します。情報を簡素化するために、Q3 +で作成した高速なダイアグラムをここに配置します。 ポストの後半では、VHDLで実際に入力をin1Q3plusからin11Q3plus(11入力)と名付けました。これは最終ブロックではないためです(最終組み合わせロジックブロックは4つのQ3 +、Q2 +、Q1 +、Q0 +信号に)。 そのため、NANDゲートを使用してすべてを作成する必要がありました。つまり、構造的なアプローチをとる必要がありました。すべてのゲートは基本的にNANDゲートに基づいており、複雑になります(ただし、NANDゲートから構造的に記述されるのはAND、OR、NOTゲートのみです)。次に、3つの入力を持つORゲート、3つの入力を持つANDゲート、5つの入力を持つORゲート(論理図の例のように)があり、それぞれ前の2つの入力AND&ORゲートに基づいています。 Q3plus 1(上記の図)が機能するまでのすべてのテストベンチ。テストの手順は、各入力に対して信号を作成することです。これにより、シミュレーションウィンドウで信号を簡単に見ることができます。たとえば、3入力ANDゲートには次の信号があります。 process begin a1 <= '0' ; wait for 4ns; a1 <= '1' ; wait for 4ns; end process; process begin b1 <= '0' ; wait for 8ns; b1 <= …

2
VHDLで「ドントケア」信号を指定するにはどうすればよいですか。
ロジックデザインコースでは、たとえば、カルノーマップまたはQuine–McCluskeyアルゴリズムを使用することにより、ロジック関数を最小化することが可能であることを学びました。また、それを学んだ「Do n't Care」値が最小化の可能性を高める。 たとえば、レジ​​スタファイルを取得します。するときの信号は本当に重要ではありません信号です。したがって、「Do n't Care」値を割り当てて、次のようなロジックでより最適化できるようにする必要があります。write_addresswrite_datawrite_enable'0'これらの信号を駆動(レジスタファイル自体ではない)でます。 合成ツールで可能な最適化の余地を増やすために、VHDLでこのような「Do n't Care」値を指定する正しい方法は何ですか? これまでのところ、次のような適切なものを見つけました。しかし、私はそれぞれのアプローチの長所と短所が何であるか本当にわかりません: 単に信号を割り当てない。これはうまくいくようです。ただしrecord、レコード定数を完全に指定する必要があるため(少なくともModelsimでそう指示されているため)、何らかのタイプの「何もしない定数」を定義する場合は機能しないことがわかりました。 std_logic_1164パッケージには、値定義'-' -- Don't careのためにstd_ulogic。これは、明示的な「ドントケア」に対する意味的に正しい選択のように見えますが、どこでも使用されたことはありません(無関係なVHDL-2008 case?コンストラクトを除く)。 Modelsimはこの値'X'を使用して未定義の信号を表示します。しかし、合成ツールが明示的なものを理解しているかどうかはわかりません'X'割り当てを「ドントケア」としてません。 わかりやすくするために過度に簡略化したコードスニペットを示します。ここでは、ドントケア信号を初期化しました。 '-'ます。 ご覧のとおり、信号にcontrol.reg_write_addressは3つの異なる値を設定できます:"----"、instruction(11 downto 8);およびinstruction(3 downto 0);。これ'-'は、「ドントケア」と解釈される場合、2入力マルチプレクサに合成されると予想されます。の(others => '0')代わりにを使用して信号を初期化した'-'場合、ツールは代わりに3入力マルチプレクサーを生成する必要があります。 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package mytypes is type control_signals_t is record write_enable : std_logic; write_address : std_ulogic_vector(3 downto 0); read_address : std_ulogic_vector(3 …

3
最も多くのリソースと領域を使用するFPGAデザインの領域を識別する方法
私は大規模なFPGAデザインに取り組んでおり、現在使用しているFPGAのリソース制限であるCSG225パッケージのザイリンクスLX16に非常に近づいています。 設計もほぼ完了していますが、現時点ではFPGAに収まりません。部品をオフにしてフィットさせることはできますが、デザインを完了し、タイミングとサイズの要件を満たすために、リソースの使用量を減らす必要があります。 設計のどの部分が最もリソースを消費しているかを特定するのに役立つレポートがツールにあるかどうかを知りたいです。私のデザインはパーティション分割されておらず、約12個以上のVHDLモジュールに分割されています。 ザイリンクスのタイミングレポートは素晴らしいものですが、スペース節約の観点から見れば、最高の価値をどこで得ることができるかを知る必要があります。 また、どのタイプのリソースが不足しているか、またはそれらのリソースにどのような影響があるのか​​を判断するのも困難です。 もう1つの面倒な点は、デザインが大きくなると、タイミングを満たすために使用されていたコンポーネントが配置が理想的ではなくなったために失敗し始めていることです。 現在、配置配線後のスタティックタイミングレポートを使用し、SmartXplorerを使用しています。タイミングを最適化するために設計戦略を使用しています。 デザインの一部をオフにしてフィットさせると、次のような結果が得られます。 スライスレジスタ使用率:42%スライスLUT使用率:96%完全に使用されたLUT-FFペアの数:38%これは、レジスターは軽いが、ゲート使用率が高いということですか? 開発者がエリアを最適化するのに役立つツールはありますか、少なくともコードについてより多くの洞察を与えることができますか? 更新: モジュールレベルの使用率を確認したところ、LUT全体の約30%を占める小さな接着剤非同期fifoがいたるところにあることがわかりました。高速バスのクロスクロックドメインの接着剤として使用しています。クロックは密接に関連しているため、これらを削除できるはずです。(120 MHz入力、DCMで100 MHzおよび200 MHzを生成)

2
VHDLのIf-elseとCaseステートメントの違い
RTLでVHDLコードのさまざまなコンストラクトがどのように合成されるかを理解したいと思います。 合成ツールによってRTL回路にコードがどのように推論されるかという点で、VHDLのプロセスのIf-Elseコンストラクトと Caseステートメントコンストラクトの違いを教えてください。 複数のネストされたif-elseの場合と、プロセス内でif-elseコンストラクトとケース文を混合する場合を検討してください。 また、どの構成を使用するのですか? PS:「vhdlで処理中の複数のifステートメント」という関連する質問を見たことがありますが、それでも私の質問には答えられません。
11 vhdl  code-design  rtl 

4
VECTOR表現とINTEGERを使用するのが適切なのはいつですか?
この質問への回答に関するコメントスレッド:VHDLエンティティでの誤った出力 「整数では、FPGAの内部ロジック表現を制御またはアクセスできませんが、SLVを使用すると、キャリーチェーンを効率的に利用するようなトリックを実行できます。」 では、内部表現にアクセスするために、整数のs を使用するよりもビット表現のベクトルを使用してコーディングする方が、どのような状況で適切であると思いましたか?そして、どのような利点を測定しましたか(チップ領域、クロック周波数、遅延などに関して)?
11 fpga  vhdl 

12
最近VHDLを使用していますか?
私は電気工学の学生で、VHDLと呼ばれるハードウェア記述言語を勉強しています。IDEを探してGoogleで検索しました(Macを使用しています)が、この言語はかなり死んでいるようです。 ここに私の質問があります:電気エンジニアとしての私の将来の仕事では、VHDLは私にとって有用でしょうか?使っていますか? 更新:回答ありがとうございます、私は第一印象で明らかに間違っていました。
11 vhdl 

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