UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 8946

4.1i XC4000XLA MAP -" FATAL_ERROR:OldMap:bastecmput.c:1363:1.1.2.2 - Dest. pin..."

Description

Keywords: Reed Solomon, decoder

Urgency: Standard

General Description:
My design, which consists of a Xilinx Reed Solomon core plus a wrapper, fails. The EDIF for the core appears to incorrectly try to RLOC two RAM16X1Ss and two FDCEs into a single CLB. This fails with pack errors due to contention over the SR/WE path. If mapped with the "-ir" switch to get around this problem, MAP still fails and issues the following message:

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

There appears to be a similar conflict between the RAM161S's and FDCEs, as attaching XBLKNM attributes on the RAM161Ss keeps the problem from occurring.

解决方案

1

To work around this problem, run MAP with the "-ir" switch; this tells MAP to ignore invalid RLOCs and to put XBLKNM attributes on the affected RAM16X1Ss:

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

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

etc.

This problem is not scheduled to be fixed.

2

This problem has been seen in the Reed Solomon Decoder core, and it occurs when the asynchronous "reset" input pin of the RS decoder core is not linked to the GSR pin of a Startup block (some synthesis tools will do this for you automatically).

Example VHDL RS Decoder wrapper file with reset connected to Startup block GSR pin:

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

This entity is intended to be used with synthesis tool optimization to produce the I/O pads and clock buffers:

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;

--------------------------------------------------------------------------------
Notes About Simulation

-- Back-annotated VHDL Instantiation for accurate timing simulation

The Xilinx NGD2VHDL tool may be used to create a back-annotated netlist for the entire design (core + entity that instantiates the core) for accurate timing simulation.

-- Behavioral Model Instantiation for fast simulation

Uncomment the following CONFIGURATION to instantiate the behavioral model instead of the netlist. This example assumes the behavioral model has been compiled into the "work" library. Any higher level ENTITY that instantiates rsdec_wrap should then USE this CONFIGURATION to bind the instance correctly:

(Comment out this CONFIGURATION if the behavioral model is not to be used.)

--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
创建日期 03/31/2000
Last Updated 06/13/2002
状态 Archive
Type 综合文章