AR# 6250

3.1i COREGen - CORE Generator VHDL および Verilog ビヘイビア モデル ライブラリの解析/コンパイルに必要な順序

説明

キーワード:coregen, vhdl, simulate, library, get_models, compile, analyze, modelsim, mti, CORE Generator, シミュレーション, ライブラリ, コンパイル, 解析

c_ip2, c_ip3, c_ip4, c_ip5

重要度 :重要

概要:
COREGen が提供する VHDL ビヘイビア モデル間には明確な階層関係があります。エラーなしにコンパイルするには、シミュレーション前の準備としてこれを考慮する必要があります。

VHDL では、階層構造の最下位モデルを先にコンパイル/解析する必要があります。つまりプリミティブ モデルは、マクロ モデル内でインスタンシエートされるため、マクロ モデルよりも先にコンパイルまたは解析します。

Verilog ではコンパイルの順序は重要ではありませんが、推奨されたコンパイルの順序に従うことにより、コンパイル実行中にエラーが発生する可能性が少なくなります。<0}

ソリューション

1

2.1i, C_IP4:

C_IP4 の場合は、必ず VHDL XilinxCoreLib ライブラリの前に VHDL UNISIM ライブラリをコンパイルしてください。

UNISIM ライブラリは $XILINX/vhdl/src にあります。以下のファイルをコンパイルしてください。

unisim_VPKG.vhd
unisim_VCOMP.vhd
unisim_VITAL.vhd
unisim_VCFG4K.vhd


ModelSIM 用 UNISIM ライブラリをコンパイルするためのサンプル コマンドは以下のとおりです。

vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VPKG.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VCOMP.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VITAL.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VCFG4K.vhd

----------------------------------------------
XILINXCORELIB Compilation
----------------------------------------------

C_IP3 に含まれる VHDL モデルのコンパイル/解析順序は以下のとおりです。

(メモ :必ず「*」記号を含めてください。)

prims_constants*.vhd
prims_comps*.vhd
prims_utils*.vhd
prims_sim_arch*.vhd
ul_utils.vhd
*pack.vhd
c_*comp.vhd
c_reg*.vhd
c_addsub*.vhd
c_mux_bus*..vhd
c_*.vhd
vfft_utils.vhd
*.vhd

お使いのシミュレータでモデルを個別にコンパイルする必要がある場合や、同じモデルを 1 度しかコンパイルできない場合は、以下の順序に従ってください。

prims_constants_v1_0.vhd
prims_constants.vhd
prims_comps_v1_0.vhd
prims_comps.vhd
prims_utils.vhd
prims_utils_v1_0.vhd
prims_sim_arch.vhd
prims_sim_arch_v1_0.vhd
ul_utils.vhd
vfft_utils.vhd
vfft1024.vhd
vfft1024_comp.vhd
vfft16.vhd
vfft16_comp.vhd
vfft256.vhd
vfft256_comp.vhd
vfft64.vhd
vfft64_comp.vhd
mulVHT.vhd
mulVHT_comp.vhd
acc2sVHT.vhd
acc2sVHT_comp.vhd
addsVHT.vhd
addsVHT_comp.vhd
adreVHT.vhd
adreVHT_comp.vhd
adrleVHT.vhd
adrleVHT_comp.vhd
cmpsVHT.vhd
cmpsVHT_comp.vhd
mux2VHT.vhd
mux2VHT_comp.vhd
mux3VHT.vhd
mux3VHT_comp.vhd
mux4VHT.vhd
mux4VHT_comp.vhd
pscVHT.vhd
pscVHT_comp.vhd
regceVHT.vhd
regceVHT_comp.vhd
saddceVHT.vhd
saddceVHT_comp.vhd
subreVHT.vhd
subreVHT_comp.vhd
subrleVHT.vhd
subrleVHT_comp.vhd
tsb16sVHT.vhd
tsb16sVHT_comp.vhd
tsb16xVHT.vhd
tsb16xVHT_comp.vhd
tsb32xVHT.vhd
tsb32xVHT_comp.vhd
sqrootVHT.vhd
sqrootVHT_comp.vhd
trigtabl_v1_0.vhd
trigtabl_v1_0_comp.vhd
dividervht.vhd
dividervht_comp.vhd
sdafirVHT.vhd
sdafirVHT_comp.vhd
pdafirVHT.vhd
pdafirVHT_comp.vhd
nco_v1_0.vhd
ncoiq_v1_0.vhd
c_reg_fd_v1_0.vhd
c_reg_fd_v1_0_comp.vhd
mult_vgen_v1_0.vhd
mult_vgen_v1_0_comp.vhd
dpramVHT.vhd
dpramVHT_comp.vhd
romrVHT.vhd
romrVHT_comp.vhd
syncramVHT.vhd
syncramVHT_comp.vhd
kdcm_v1_0.vhd
kdcm_v1_0_comp.vhd
kcmVHT.vhd
kcmVHT_comp.vhd
kcmpipeVHT.vhd
kcmpipeVHT_comp.vhd
integVHT.vhd
integVHT_comp.vhd
m12x12.vhd
m12x12_comp.vhd
m8x8.vhd
m8x8_comp.vhd
fifosyncVHT.vhd
fifosyncVHT_comp.vhd
delayVHT.vhd
delayVHT_comp.vhd
combfiltVHT.vhd
combfiltVHT_comp.vhd
mem_init_file_pack.vhd
c_mem_dp_block_v1_0.vhd
c_mem_sp_block_v1_0_comp.vhd
c_mem_sp_block_v1_0.vhd
c_addsub_v1_0.vhd
c_addsub_v1_0_comp.vhd
c_accum_v1_0.vhd
c_accum_v1_0_comp.vhd
c_compare_v1_0.vhd
c_compare_v1_0_comp.vhd
c_mux_bus_v1_0.vhd
c_mux_bus_v1_0_comp.vhd
c_counter_binary_v1_0.vhd
c_decode_binary_v1_0_comp.vhd
c_decode_binary_v1_0.vhd
c_gate_bit_bus_v1_0_comp.vhd
c_dist_mem_v1_0.vhd
c_gate_bit_bus_v1_0.vhd
c_mux_slice_bufe_v1_0_comp.vhd
c_gate_bit_v1_0.vhd
c_gate_bus_v1_0.vhd
c_mux_bit_v1_0.vhd
c_mux_slice_bufe_v1_0.vhd
c_mux_slice_buft_v1_0_comp.vhd
c_mux_slice_buft_v1_0.vhd
c_reg_ld_v1_0.vhd
c_reg_ld_v1_0_comp.vhd
c_mux_bit_v1_0_comp.vhd
c_shift_fd_v1_0.vhd
c_shift_fd_v1_0_comp.vhd
c_shift_ram_v1_0.vhd
c_shift_ram_v1_0_comp.vhd
c_twos_comp_v1_0.vhd
c_twos_comp_v1_0_comp.vhd
pipeline.vhd
c_dist_mem_v1_0_comp.vhd
c_mem_dp_block_v1_0_comp.vhd
c_counter_binary_v1_0_comp.vhd
c_gate_bus_v1_0_comp.vhd
c_gate_bit_v1_0_comp.vhd
async_fifo_pkg.vhd
async_fifo_v1_0.vhd
async_fifo_v1_0_comp.vhd

C_IP4 リリースに含まれる XilinxCoreLib Verilog ライブラリのコンパイル推奨順序は以下のとおりです。

C_REG_FD_V1_0.v
C_ADDSUB*.v
*.v

お使いのシミュレータでモデルを個別にコンパイルする必要がある場合は、以下の順序に従います。

C_ACCUM_V1_0.v
C_ADDSUB_V1_0.v
C_COMPARE_V1_0.v
C_COUNTER_BINARY_V1_0.v
C_DA_FIR_V2_0.v
C_DECODE_BINARY_V1_0.v
C_DIST_MEM_V1_0.v
C_GATE_BIT_BUS_V1_0.v
C_GATE_BIT_V1_0.v
C_GATE_BUS_V1_0.v
C_MEM_DP_BLOCK_V1_0.v
C_MEM_SP_BLOCK_V1_0.v
C_MUX_BIT_V1_0.v
C_MUX_BUS_V1_0.v
C_MUX_SLICE_BUFE_V1_0.v
C_MUX_SLICE_BUFT_V1_0.v
C_REG_FD_V1_0.v
C_REG_LD_V1_0.v
C_SHIFT_FD_V1_0.v
C_SHIFT_RAM_V1_0.v
C_TWOS_COMP_V1_0.v
DIVIDERVHT.v
MULT_VGEN_V1_0.v
PIPELINE.v
acc2sVHT.v
addsVHT.v
adreVHT.v
adrleVHT.v
async_fifo_v1_0.v
cmpsVHT.v
combfiltVHT.v
da_fir_v1_0.v
delayVHT.v
dpramVHT.v
fifosyncVHT.v
integVHT.v
kcmVHT.v
kcmpipeVHT.v
kdcm_v1_0.v
mulVHT.v
mux2VHT.v
mux3VHT.v
mux4VHT.v
nco_v1_0.v
ncoiq_v1_0.v
ncoiqvht.v
ncovht.v
pdafirVHT.v
pscVHT.v
regceVHT.v
romrVHT.v
saddceVHT.v
sdafirVHT.v
sincos_v2_0.v
sqrootVHT.v
subreVHT.v
subrleVHT.v
syncramVHT.v
trigtablVHT.v
trigtabl_v1_0.v
tsb16sVHT.v
tsb16xVHT.v
tsb32xVHT.v

2

2.1i, C_IP3:

C_IP3 に含まれる VHDL モデルのコンパイル/解析順序は以下のとおりです。

prims_constants*.vhd
prims_comps*.vhd
prims_utils*.vhd
prims_sim_arch*.vhd
ul_utils.vhd
*pack.vhd
c_*comp.vhd
c_reg*.vhd
c_addsub_v1_0.vhd
c_mux_bus_v1_0.vhd
c_*.vhd
*.vhd

C_IP3 に含まれる XilinxCoreLib Verilog ライブラリのコンパイル推奨順序は以下のとおりです。

C_REG_FD_V1_0.v
C_ADDSUB*.v
*.v

3

2.1i, C_IP5:

C_IP5 の場合は、必ず VHDL XilinxCoreLib ライブラリの前に VHDL UNISIM ライブラリをコンパイルしてください。(注:C_IP5 IP と互換性があるのはザイリンクス ソフトウェアの 2.1i のみです。)

UNISIM ライブラリは $XILINX/vhdl/src にあります。以下のファイルをコンパイルしてください。

unisim_VPKG.vhd
unisim_VCOMP.vhd

ModelSIM 用 UNISIM ライブラリをコンパイルするためのサンプル コマンドは以下のとおりです。

vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VPKG.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VCOMP.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VITAL.vhd
vcom -87 -work unisim $XILINX/vhdl/src/unisims/unisim_VCFG4K.vhd

----------------------------------------------
XILINXCORELIB Compilation
----------------------------------------------

C_IP5 に含まれる VHDL モデルのコンパイル/解析順序は以下のとおりです。

(メモ :必ず「*」記号を含めてください。)

prims_constants*.vhd
prims_comps*.vhd
prims_utils*.vhd
prims_sim_arch*.vhd
ul_utils.vhd
*pack.vhd
c_*comp.vhd
c_reg*.vhd
c_addsub*.vhd
c_mux_bus*..vhd
c_*.vhd
vfft_utils.vhd
v*_comp.vhd
*.vhd

お使いのシミュレータでモデルを個別にコンパイルする必要がある場合や、同じモデルを 1 度しかコンパイルできない場合は、以下の順序に従ってください。

ul_utils.vhd
nco_v1_0.vhd
ncoiq_v1_0.vhd
vfft_utils.vhd
vfft1024_comp.vhd
vfft1024.vhd
vfft16_comp.vhd
vfft16.vhd
vfft256_comp.vhd
vfft256.vhd
vfft64_comp.vhd
vfft64.vhd
trigtabl_v1_0.vhd
trigtabl_v1_0_comp.vhd
dafir_pack.vhd
da_fir_v1_0.vhd
da_fir_v1_0_comp.vhd
da_fir_v2_0.vhd
da_fir_v2_0_comp.vhd
prims_constants_v1_0.vhd
mem_init_file_pack.vhd
prims_utils_v1_0.vhd
c_reg_fd_v1_0.vhd
c_reg_fd_v1_0_comp.vhd
c_dist_mem_v1_0.vhd
c_dist_mem_v1_0_comp.vhd
c_mem_dp_block_v1_0.vhd
c_mem_dp_block_v1_0_comp.vhd
c_addsub_v1_0.vhd
c_addsub_v1_0_comp.vhd
c_compare_v1_0.vhd
c_compare_v1_0_comp.vhd
c_mux_bus_v1_0.vhd
c_mux_bus_v1_0_comp.vhd
c_counter_binary_v1_0.vhd
c_counter_binary_v1_0_comp.vhd
c_gate_bus_v1_0.vhd
c_gate_bus_v1_0_comp.vhd
c_gate_bit_v1_0.vhd
c_gate_bit_v1_0_comp.vhd
prims_comps_v1_0.vhd
async_fifo_pkg.vhd
async_fifo_v1_0.vhd
async_fifo_v1_0_comp.vhd
mult_vgen_v1_0.vhd
mult_vgen_v1_0_comp.vhd
c_mem_sp_block_v1_0.vhd
c_mem_sp_block_v1_0_comp.vhd
kdcm_v1_0.vhd
kdcm_v1_0_comp.vhd
dividervht.vhd
dividervht_comp.vhd
m12x12.vhd
m12x12_comp.vhd
m8x8.vhd
m8x8_comp.vhd
sdafirVHT.vhd
sdafirVHT_comp.vhd
fifosyncVHT.vhd
fifosyncVHT_comp.vhd
dpramVHT.vhd
dpramVHT_comp.vhd
romrVHT.vhd
romrVHT_comp.vhd
syncramVHT.vhd
syncramVHT_comp.vhd
sqrootVHT.vhd
sqrootVHT_comp.vhd
mulVHT.vhd
mulVHT_comp.vhd
kcmVHT.vhd
kcmVHT_comp.vhd
kcmpipeVHT.vhd
kcmpipeVHT_comp.vhd
integVHT.vhd
integVHT_comp.vhd
pdafirVHT.vhd
pdafirVHT_comp.vhd
delayVHT.vhd
delayVHT_comp.vhd
combfiltVHT.vhd
combfiltVHT_comp.vhd
acc2sVHT.vhd
acc2sVHT_comp.vhd
addsVHT.vhd
addsVHT_comp.vhd
adreVHT.vhd
adreVHT_comp.vhd
adrleVHT.vhd
adrleVHT_comp.vhd
cmpsVHT.vhd
cmpsVHT_comp.vhd
mux2VHT.vhd
mux2VHT_comp.vhd
mux3VHT.vhd
mux3VHT_comp.vhd
mux4VHT.vhd
mux4VHT_comp.vhd
pscVHT.vhd
pscVHT_comp.vhd
regceVHT.vhd
regceVHT_comp.vhd
saddceVHT.vhd
saddceVHT_comp.vhd
subreVHT.vhd
subreVHT_comp.vhd
subrleVHT.vhd
subrleVHT_comp.vhd
tsb16sVHT.vhd
tsb16sVHT_comp.vhd
tsb16xVHT.vhd
tsb16xVHT_comp.vhd
tsb32xVHT.vhd
tsb32xVHT_comp.vhd
c_accum_v1_0.vhd
c_accum_v1_0_comp.vhd
c_decode_binary_v1_0.vhd
c_decode_binary_v1_0_comp.vhd
c_gate_bit_bus_v1_0.vhd
c_gate_bit_bus_v1_0_comp.vhd
c_mux_slice_bufe_v1_0.vhd
c_mux_slice_bufe_v1_0_comp.vhd
c_mux_slice_buft_v1_0.vhd
c_mux_slice_buft_v1_0_comp.vhd
c_reg_ld_v1_0.vhd
c_reg_ld_v1_0_comp.vhd
c_mux_bit_v1_0.vhd
c_mux_bit_v1_0_comp.vhd
c_shift_fd_v1_0.vhd
c_shift_fd_v1_0_comp.vhd
c_shift_ram_v1_0.vhd
c_shift_ram_v1_0_comp.vhd
c_twos_comp_v1_0.vhd
c_twos_comp_v1_0_comp.vhd
pipeline.vhd
prims_constants.vhd
prims_comps.vhd
prims_utils.vhd
prims_sim_arch.vhd
prims_sim_arch_v1_0.vhd

C_IP5 の XilinxCoreLib Verilog ライブラリのコンパイル順序は以下をお勧めします。

C_REG_FD_V1_0.v
C_ADDSUB*.v
*.v

お使いのシミュレータでモデルを個別にコンパイルする必要がある場合は、以下の順序に従います。

C_REG_FD_V1_0.v
C_ADDSUB_V1_0.v
C_ACCUM_V1_0.v
C_COMPARE_V1_0.v
C_COUNTER_BINARY_V1_0.v
C_DA_FIR_V2_0.v
C_DECODE_BINARY_V1_0.v
C_DIST_MEM_V1_0.v
C_GATE_BIT_BUS_V1_0.v
C_GATE_BIT_V1_0.v
C_GATE_BUS_V1_0.v
C_MEM_DP_BLOCK_V1_0.v
C_MEM_SP_BLOCK_V1_0.v
C_MUX_BIT_V1_0.v
C_MUX_BUS_V1_0.v
C_MUX_SLICE_BUFE_V1_0.v
C_MUX_SLICE_BUFT_V1_0.v
C_REG_LD_V1_0.v
C_SHIFT_FD_V1_0.v
C_SHIFT_RAM_V1_0.v
C_TWOS_COMP_V1_0.v
DIVIDERVHT.v
MULT_VGEN_V1_0.v
PIPELINE.v
acc2sVHT.v
addsVHT.v
adreVHT.v
adrleVHT.v
async_fifo_v1_0.v
cmpsVHT.v
combfiltVHT.v
da_fir_v1_0.v
delayVHT.v
dpramVHT.v
fifosyncVHT.v
integVHT.v
kcmVHT.v
kcmpipeVHT.v
kdcm_v1_0.v
mulVHT.v
mux2VHT.v
mux3VHT.v
mux4VHT.v
nco_v1_0.v
ncoiq_v1_0.v
ncoiqvht.v
ncovht.v
pdafirVHT.v
pscVHT.v
regceVHT.v
romrVHT.v
saddceVHT.v
sdafirVHT.v
sincos_v1_0.v
sqrootVHT.v
subreVHT.v
subrleVHT.v
syncramVHT.v
trigtablVHT.v
trigtabl_v1_0.v
tsb16sVHT.v
tsb16xVHT.v
tsb32xVHT.v

4

2.1i VHDL:

C_IP2 に含まれるモデルのコンパイル/解析順序は以下のとおりです。

prims_constants*.vhd
prims_comps*.vhd
prims_utils*.vhd
prims_sim_arch*.vhd
ul_utils.vhd
*pack.vhd
c_*comp.vhd
c_reg*.vhd
c_*.vhd
*.vhd

リストの最終項目は再コンパイルされますが、これは問題ではありません。ModelSIM で再コンパイルされたモデルに関してエラーは発生しません。唯一の条件として、階層構造の上レベルを下レベルよりも優先してコンパイルする必要があります。

上記の順序はザイリンクスの IP アップデートによって多少異なる場合がありますが、コンパイル順序に関する最新情報は、このソリューション記録と共に各アップデートに含まれる予定です。

5

3.1i VHDL:

VHDL モデルの解析順序については、$XILINX/vhdl/src/XilinxCoreLib の the vhdl_analyze_order を参照してください。

3.1i Verilog:

推奨コンパイル順序については、$XILINX/verilog/src/XilinxCoreLib の verilog_analyze_order ファイルを参照してください。
AR# 6250
日付 10/12/2011
ステータス アーカイブ
種類 一般