1

私はLinuxを使用してquestasim 2012.2bいます. VHDL で次のように記述しました。

dsp: entity work.dsp_c -- a*b+c, 12bit
port map 
(
    clk         => clk_i,
    a           => a_dsp,   
    b           => b_dsp,
    c           => c_dsp,
    p           => p_dsp  -- full precision 
);

上記を questasim でシミュレートしようとするたびに、コンパイル時に次のようなエラーがスローされます。

# Error in macro ./mkProject.tcl line 11
# /software/CAD/Mentor/2013_2014/Questa/HDS_2012.2b/questasim/linux_x86_64/vcom failed.
#     while executing
# "vcom hdl/calc.vhd"
#  quit

# ** Error: Library xbip_dsp48_macro_v3_0 not found.
# ** Error: Unknown identifier "xbip_dsp48_macro_v3_0".
# ** Error: VHDL Compiler exiting

失敗した行で上記のコードを参照します。

dsp_c.vhdいろいろ調べてみると、ファイルのシミュレーション ラッパーのように見える: というファイルが見つかりました.xci

次に、ライブラリを見つけようとしましたが、xbip_dsp48_macro_v3_0内部に 2 つのファイルがあるという名前のフォルダーを見つけました。xbip_dsp48_macro_v3_0.vhd xbip_dsp48_macro_v3_0_vh_rfs.vhd

だから私もプロジェクトにそれらを含めます、それは私にエラーを与えます:

xbip_dsp48_macro_v3_0.vhd(46)): in protected region

何がうまくいかないのか、何を含める必要があるのか​​ 考えていますか? 私のクエスタシムは古すぎるのでしょうか?

より詳しい情報

Tcl経由でこの方法でコンパイルされたファイルを取得しようとしました:

compile_simlib -simulator questa

対応するコンパイル済みブロックを含むすべての IP のフォルダーを生成します。今、私は最初に.depに追加することができました:

src ../cgn/dsp_c/dsp_c.vhd

make project を実行すると、次のようになります。

dsp_c/dsp_c.vhd(56): Library xbip_dsp48_macro_v3_0 not found.

だから私はライブラリを含めてみました:

src ../cgn/dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0_vh_rfs.vhd
src ../cgn/dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0.vhd

それは保護されていると言います:

dsp_c/xbip_dsp48_macro_v3_0/hdl/xbip_dsp48_macro_v3_0.vhd(46)): in protected region.

詳細情報

フォルダー dsp_c にあるライブラリを生成するために vivado を取得しました。

dsp_c.dcp   dsp_c_funcsim.vhdl  dsp_c_stub.v     dsp_c.xci  synth   xbip_dsp48_wrapper_v3_0  xbip_utils_v3_0
dsp_c_funcsim.v  dsp_c_ooc.xdc      dsp_c_stub.vhdl  dsp_c.xml  xbip_dsp48_macro_v3_0   xbip_pipe_v3_0

私の Tcl スクリプトは次のようになります。

source firmware/cfg/lib_mappings.tcl

vlib work
vcom firmware/hdl/mydsp_c.vhd

結果

これに変更:

vlib work
vlib dsp_c/xbip_dsp48_macro_v3_0
vmap dsp_c/xbip_dsp48_macro_v3_0

それからそれを実行しました...

# do mkProject.tcl 
# Modifying modelsim.ini
# ** Warning: (vlib-34) Library already exists at "work".
# ** Warning: (vlib-34) Library already exists at "dsp_c/xbip_dsp48_macro_v3_0".
# Reading modelsim.ini
# "dsp_c/xbip_dsp48_macro_v3_0" maps to directory ./dsp_c/xbip_dsp48_macro_v3_0. (Default mapping)

..........

# -- Loading package NUMERIC_STD
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(56): Library xbip_dsp48_macro_v3_0 not found.
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(57): (vcom-1136) Unknown identifier "xbip_dsp48_macro_v3_0".
# ** Error: firmware/cgn/dsp_c/dsp_c.vhd(59): VHDL Compiler exiting
# ** Error: vcom failed.
4

1 に答える 1

3

xci ファイルはザイリンクス固有の IP 記述ファイルであり、どのシミュレーターでも認識されません。xci ファイルで記述された IP のビヘイビアー シミュレーションを実行できるようにするには、最初にシミュレーション モデルを生成する必要があります。シミュレーション モデルは、特定のライブラリにコンパイルする必要がある多数の VHDL ファイルで構成されます。

ISE/Coregen では、IP に対して生成される VHDL ファイルは 1 つだけで、IP はコンパイル済みのザイリンクス CoreLib ライブラリにのみ依存していました。ただし、Vivado では XilinxCoreLib ライブラリがなくなり、特定の IP のシミュレーション モデルが生成されるたびに、すべての依存関係も同じフォルダーに生成されます。

Vivado TCL スクリプトを使用してコンパイルするシミュレーション モデルおよび関連するファイルとライブラリのリストを生成できます: https://github.com/LarsAsplund/vunit/blob/master/examples/vhdl/vivado/tcl/extract_compile_order.tcl

上記の TCL スクリプトは、 VUnit VHDL テスト ツールに同梱されているサンプルの一部であり、 Vivado IP のモデルを自動的に生成してシミュレートする方法を示しています。完全な例では Python を介してスクリプトを呼び出しますが、ハードコードされた値に置き換えることができるため、および変数はコマンド ラインからスクリプトに設定されます。出力は、コンパイルが必要な順序ですべてのファイルの LIBRARY、FILE_NAME を含むテキスト ファイルです。以前のプロジェクトでは、この方法を使用して、Vivado プロジェクト全体のビヘイビア モデルを生成およびコンパイルしました。projectoutput_file

于 2015-07-11T14:54:43.050 に答える