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# 2780

1.3 XC9500 Hitop - Logic erroneously trimmed away when using HDL macros in 9k schematic design

説明

Keywords: 9500, CPLD, trim, VHDL

Urgency: Standard

General Description:

This problem occurs when an HDL macro drives 2 or more of its
output pins from the same net. The problem has been confirmed
with Metamor and Exemplar netlists; Synopsys DC netlists avoid
this problem. Symptom is that all logic in the schematic
sourced by all but one of the duplicate macro pins is trimmed
from the design. That is, only one of the commonly-sourced
macro pins will remain connected; which one is arbitrary.

For example, the following problematic HDL macro produces 2
outputs driven by the same net (only one flop is inferred):

entity afd is
port (din: in STD_LOGIC;
clk : in STD_LOGIC;
dout1, dout2 : out STD_LOGIC);
end afd;
architecture afd_arch of afd is
begin
process (CLK)
begin
if CLK'event and CLK='1' then
DOUT1 <= DIN;
DOUT2 <= DIN;
end if;
end process;
end afd_arch;

ソリューション

This issue has been fixed for M1.4.

For M1.3, a possible workaround for Foundation XVHDL (Metamor)
is to create an internal intermediate signal for each
commonly-driven output port, and assign the Metamor "critical"
attribute to each signal, as follows:

library METAMOR;
use METAMOR.attributes.all;
entity afd is
port (din: in STD_LOGIC;
clk : in STD_LOGIC;
dout1, dout2 : out STD_LOGIC);
end afd;
architecture afd_arch of afd is
signal q1, q2 : STD_LOGIC;
attribute critical of q1 : signal is true;
attribute critical of q2 : signal is true;
begin
process (CLK)
begin
if CLK'event and CLK='1' then
q1 <= DIN;
q2 <= DIN;
end if;
end process;
DOUT1<=q1;
DOUT2<=q2;
end afd_arch;
AR# 2780
作成日 09/10/1997
最終更新日 04/06/2000
ステータス アーカイブ
タイプ 一般