AR# 8946

4.1i XC4000XLA MAP - 「FATAL_ERROR:OldMap:bastecmput.c:1363:1.10.2.2 Dest. pin ...」というエラー メッセージが表示される

説明

キーワード : Reed Solomon, decoder, デコーダ

重要度 : 標準

概要 :
ザイリンクス Reed Solomon コアとラップから構成されるデザインがマップされません。 コアの EDIF は、1 つの CLB で 2 つの RAM16X1S と 2 つの FDCE に不正に RLOC 制約を設定しようとしています。 この場合、SR/WE パスで競合があるため、パック エラーが発生します。 -ir オプションでマップして問題を回避しようとしても、MAP は実行されず、次のようなメッセージが表示されます。

FATAL_ERROR:OldMap:bastecmput.c:1363:1.1.2.2 - Dest. pin already occupied in copypin().

RAM16X1S に XBLKNM 属性を設定すると問題を回避できるため、この問題は RAM16X1S と FDCE の競合によるものと見られます。

ソリューション

1

この問題を回避するには、-ir オプションと一緒に MAP を実行します。このオプションは、無効な RLOC 制約を無視し、XBLKNM 属性を関連の RAM16X1S に設定するよう MAP に指示を与えます。

INST "decoder1/BU1951" XBLKNM = XILINX_WA1 ;
INST "decoder1/BU1952" XBLKNM = XILINX_WA1 ;

INST "decoder1/BU1955" XBLKNM = XILINX_WA2 ;
INST "decoder1/BU1956" XBLKNM = XILINX_WA2 ;



この問題が修正される予定はありません。

2

これは、Reed Solomon Decoder コアで既知の問題となっています。この問題は、Reed Solomon Decoder の非同期リセット入力ピンがスタートアップ ブロックの GSR ピンに接続されていない場合に発生します (合成ツールによっては、この接続を自動で行います)。

VHDL の例 (スタートアップ ブロックの GSR ピンに接続されたリセットを含む Reed Solomon Decoder のラップ ファイル)

--------------------------------------------------------------------------------
-- Reed-Solomon Decoder Wrapper Example
-- Copyright 1999 Xilinx, Inc. All rights reserved.
--------------------------------------------------------------------------------

このエンティティは、I/O パッドおよびクロック バッファを作成するため、合成ツールの最適化で使用されます。

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;

ENTITY rsdec_wrap IS
PORT (
data_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
sync : IN STD_LOGIC;
reset : IN STD_LOGIC;
clk : IN STD_LOGIC;
ce : IN STD_LOGIC;
data_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
blk_strt : OUT STD_LOGIC;
blk_end : OUT STD_LOGIC;
err_found : OUT STD_LOGIC;
err_cnt : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
fail : OUT STD_LOGIC;
ready : OUT STD_LOGIC);
END rsdec_wrap;


ARCHITECTURE example OF rsdec_wrap IS

COMPONENT xil_rsdecoder
PORT (
data_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
sync : IN STD_LOGIC;
reset : IN STD_LOGIC;
clk : IN STD_LOGIC;
ce : IN STD_LOGIC := '1';
data_out : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
blk_strt : OUT STD_LOGIC;
blk_end : OUT STD_LOGIC;
err_found : OUT STD_LOGIC;
err_cnt : OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
fail : OUT STD_LOGIC;
ready : OUT STD_LOGIC
);
END COMPONENT;

COMPONENT STARTUP
PORT (GSR : IN STD_LOGIC);
END COMPONENT;

COMPONENT BUFG
PORT (I : IN STD_LOGIC;
O : OUT STD_LOGIC);
END COMPONENT;

SIGNAL gclk : STD_LOGIC;
BEGIN

STARTUP1 : STARTUP
PORT MAP( GSR => reset);

BUFG1 : BUFG
PORT MAP (I => clk, O => gclk);

decoder1 : xil_rsdecoder
PORT MAP (data_in=>data_in, sync=>sync, reset=>reset, clk=>gclk, ce=>ce,
data_out=>data_out, blk_strt=>blk_strt, blk_end=>blk_end,
err_found=>err_found, err_cnt=>err_cnt, fail=>fail,
ready=>ready);

END example;

--------------------------------------------------------------------------------
合成についての注意

-- 正確なタイミング シミュレーションのためのバックアノテートされた VHDL インスタンシエーション

ザイリンクス NGD2VHDL ツールは、正確なタイミング シミュレーションを行うため、デザイン全体 (コアとコアをインスタンシエートするエンティティ) に対してバックアノテートされたネットリストを作成するのに使用されることがあります。

-- 高速シミュレーションのためのビヘイビア モデル インスタンシエーション

ネットリストではなく、ビヘイビア モデルをインスタンシエートするため、次のコンフィギュレーション文を解除します。 この例では、ビヘイビア モデルがワーク ライブラリにコンパイルされることを確認します。 rsdec_wrap をインスタンシエートする上位のエンティティでは、インスタンスを正しくバインドするため、このコンフィギュレーション文を使用する必要があります。

ビヘイビア モデルを使用しない場合は、コンフィギュレーション文をコメントとして記述します。

--CONFIGURATION rsdec_wrap_config OF rsdec_wrap IS
-- FOR example
-- FOR decoder1 : xil_rsdecoder USE ENTITY work.rs_decoder(behavioral)
-- GENERIC MAP (gen_start => 0,
-- k => 188,
-- n => 204,
-- polynomial => 0,
-- symbol_width => 8,
-- c_has_ce => 1,
-- c_has_erase => 0,
-- c_has_sr => 0,
-- sync_mode => 0,
-- clks_per_sym => 1);
-- END FOR; -- decoder1
-- END FOR; -- example
--END rsdec_wrap_config;
AR# 8946
日付 06/13/2002
ステータス アーカイブ
種類 一般