AR# 8552

Modelsim (MTI) VHDL Coregen: 生成ステートメントを使用すると、シミュレーションでコンフィギュレーションが実行できない。

説明

キーワード: configuration, generate, macro, multiple instances, functional simulation, コンフィギュレーション, 生成する, マクロ, 複数のインスタンス, ファンクション シミュレーション

重要度 : 標準

概要:

同じマクロの複数のインスタンスを作成するのに VHDL の生成ステートメントを使用し、そのコンポーネント名にコンパイルしたビヘイビア モデルを追加するためにコンフィギュレーション ステートメントを使用しています。デザインをシミュレーションすると、CORE Generator マクロで値がすべて X として読み込まれ、元に戻りません。

ソリューション

コンフィギュレーション ステートメントを定義する際、生成ステートメントを使用すると、階層レベルが一つ増えます。コンパイルしたビヘイビア モデルをまったく同じコンポーネントに正しく追加するには、「for all」ステートメントを次の手順で使用します (top.vhd top_cfg.vhd)。

注 :この例にはテストベンチが含まれていません。

-------------------------------------------------
-- Top Level VHDL file top.vhd
-------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;

entity top is
port (
in1: in STD_LOGIC_VECTOR (1 DOWNTO 0);
S: in STD_LOGIC_vector (0 downto 0);
outp: out STD_LOGIC_VECTOR (7 DOWNTO 0)
);
end top;

architecture top_arch of top is

component mymux
port (M: IN std_logic_VECTOR(1 downto 0);
S: IN std_logic_VECTOR(0 downto 0);
O: OUT std_logic);
end component;

begin

mygenerate: for i in 0 to 7 generate
multiple_mux: mymux
port map (M => in1, S => S, O => outp(i));
end generate;

end top_arch;

CONFIGURATION cfg_top OF top IS
FOR top_arch
end for;
end cfg_top;

--------------------------------------------------
-- Configuration file top_cfg.vhd
--------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
library xilinxcorelib;

CONFIGURATION cfg_top OF top IS
FOR top_arch
for mygenerate
for all : mymux use entity
XilinxCoreLib.C_MUX_BIT_V1_0(behavioral)
generic map(c_sinit_val => "0",
c_sync_enable => 0,
c_has_ainit => 0,
c_sync_priority => 1,
c_has_sinit => 0,
c_ainit_val => "0",
c_inputs => 2,
c_has_sset => 0,
c_sel_width => 1,
c_has_q => 0,
c_has_o => 1,
c_has_aset => 0,
c_has_sclr => 0,
c_has_ce => 0,
c_has_aclr => 0,
c_enable_rlocs => 1);
end for;
end for;
end for;
end cfg_top;
AR# 8552
日付 10/01/2008
ステータス アーカイブ
種類 一般