2017-04-26 13 views

答えて

4

メカニズムがありますが、この目的のためには簡単ではありません。できることは、top_pkgをインポートするsubsystem_pkgを作成することです。次にexporttop_pkgからインポートされたすべてのシンボルをそのままsubsystem_pkgのように表示されるようにインポートできます。通常、パッケージ内で宣言されたシンボルのみが、パッケージがインポートしたものではありません。輸入)。 exportコマンドはインポートをチェーンします。

これは、インポートとエクスポートでワイルドカードを使用する方法です。あなたが連鎖したいすべてのシンボルは連鎖パッケージに明示的に現れなければなりません。例えば

package top_pkg; 
    int a,b,c,d; 
endpackage 
package subsystem; 
    import top_pkg::*; 
    import top_pkg::b; 
    export top_pkg::*; 
    export top_pkg::c; 
    int e = d; 
endpackage 

最初import文はtop_pkg内のすべてのシンボルを作ると言う候補輸入のため。実際には何もインポートされません。 2番目のimport文は、bを明示的にインポートします。最初のexportステートメントは、top_pkgからインポートされたシンボルをエクスポートするよう指示していますが、この時点ではbのみです。 2番目のexportステートメントは暗黙的にインポートし、次に明示的にcをエクスポートします。最後のステートメントは暗黙的にインポートdと暗黙のエクスポート 'd'をインポートします。

subsystem_pkgをインポートすると、top_pkgからシンボルb、c、dとローカルで宣言された `e。

+0

ありがとうございました。私は特に必要なファイルを含む個別のパッケージファイルを使用することにしました – noobuntu

+1

2人のパッケージをインポートする人がいない限り、2つのパッケージ間に通信がない限り動作します。 http://go.mentor.com/package-import-versus-includeを参照してください。 –

関連する問題