2009-02-28 11 views
2

VHDLのスタックまたはキューの動作をどのようにシミュレートできますか?すべてのポインタ?どのようにVHDLのスタック/キューのようなデータ構造を実装するのですか?

私はビットの論理シフト演算のようなものを使用することを考えましたが、スタックの制約が空であるかどうか、またはスタックのオーバーフローの場合をチェックする方法はありますか?

+3

「行動をシミュレートする」方法を尋ねます。合成可能なコード(ハー​​ドウェアに書き込む)を書いてもらいたいのですか、シミュレーションのコードが必要ですか? VHDLのコンストラクトを使用すると大きな違いが生じます。 – Philippe

答えて

4

Peter Ashendenの書籍「The Designer's Guide to VHDL」を読むことで始めることができます。 19章では、キューイングネットワークを実装し、VHDLにキューを実装する方法について説明します。 その書籍のVHDLファイルは、http://www.csee.umbc.edu/help/VHDL/ashenden/ch_19/

3

で入手できます。VHDL/Verilogで作業している場合は、FIFOを実装することをお勧めします。これが実際のFPGAでインスタンス化される場合は、FPGAのブロックRAMへの読み書きポインタを使用してFIFOをモデル化します。 OpenCoresのでよく発達した実装をチェックアウト...

http://opencores.org/project,versatile_fifo

1

スタックを実装しないでください。 FPGAベンダーのコアを使用してください。

+3

私はベンダーのコアを使用することに反対します。推論されたロジックは、ベンダーコアと同じくらい効率的である可能性があります。また、設計テクノロジを独立させることで、FPGAベンダの切り替えや異なるASICテクノロジのターゲット選択が可能になります。 – Philippe

0

RAMコンポーネントを作成し、それをFIFO、LIFO、またはあらゆる種類のデータ構造として使用することができます。

スタックが必要な場合は、RAMコンポーネントでアドレスバスを使用しないで、Top Of Stackアドレスを含む変数を作成します。次にPOPを減らして(最初に出力をデータバスに送ります)、PUSHを押して(入力をTOS [top of stack] Variableに)保存します。

私はあなたにもっと話すことができますもっと...

関連する問題