3

あるモジュールを使用する必要があります。以前に別のモジュールで vhdl を使用して作成しましたが、これを行う方法に関する情報が見つかりません。私は maxplus2 を使用することを余儀なくされており、そこで見つけた唯一のことは、そこにインクルード ファイルを作成できることです (拡張子は .inc です) が、2 番目のモジュールに含めることができません。午前中ずっとこの情報を探しましたが、何も見つかりませんでした。誰でもそれを手伝ってもらえますか?

4

2 に答える 2

8

あなたはそうしない。

VHDL にはインクルード ファイルがなく、恐ろしく悲惨で信頼性の低い混乱を回避できます。

VHDL は個別のコンパイルを使用し、優れた VHDL ツール (すべてではありません!) は、インクルードや Makefile なしですべての依存関係を正しく追跡します。

したがって、他のモジュールをライブラリにコンパイルします-おそらく「my_modules」-または、ライブラリを指定しない場合は、コンパイルするだけで、「work」と呼ばれるデフォルトのライブラリに移動します。

次に、メインモジュールでライブラリに名前を付けます(常に存在する「work」を除く)

library ieee;
library my_modules;

それらから必要なもの(モジュール、パッケージ)に名前を付けます(「作業」を除く...)

use ieee.numeric_std.all;
use my_modules.all;

これらのライブラリから必要なものを何でも使用できるようになりました。モジュールを使用する最も簡単な方法は、「エンティティの直接インスタンス化」です。これと「VHDL」を検索すると、その方法がわかります。または、他のモジュールと同じポートを使用してメイン モジュール内のコンポーネントを宣言することもできます。これにより、作成時に正しいモジュールがコンポーネントを置き換えます (VHDL 用語でリンクを表す)。コンポーネントが必要になるのは、ライブラリ モジュールをまだ作成していない場合です。つまり、トップダウン設計です。それ以外の場合は、エンティティを直接インスタンス化する方が簡単です。

今のところ、"my_modules" を無視して "work" だけを使用してください。大規模な設計に到達した場合は、ライブラリを使用してそれを整理します。たとえば、ハードウェアとテストベンチを分けてください。

于 2012-11-16T11:32:11.547 に答える
4

ブライアンがあなたにぴったりの答えを持っています。私が追加したいのは、人々が使用する他のものであるという点で、あなたの質問に関連するインクルードファイルです。

packages は、データ型、定数、関数、およびプロシージャを共有する VHDL の方法です。

于 2012-11-16T13:31:55.067 に答える