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

EDIF2XNF: LOC or other I/O properties lost (ENWrite net bundles)

Description

General Description:

ENWrite in some instances (generally with bussed I/O) implements a group of

inputs or outputs within a single net bundle. Although all the data for

the LOC properties is in the net bundle, EDIF2XNF expects a seperate cell

for each input and output instance. Therefore, when EDIF2XNF translates

the net bundles from the EDIF file, it leaves off the pin-location

constraints that were placed on the input and output pads. Typically, this

problem occurs when separate input signals are merged into a single bus

BEFORE they pass through an IBUFx, or when an output bus is bus-ripped into

separate signals AFTER it passes through an OBUFx.

Here is a portion of an example EDIF file which shows the LOC property and

input ports described within a net bundle:

(netBundle (rename XIRQ_40_23_58_0_41_ "XIRQ(23:0)")

(listOfNets

(net (rename XIRQ_40_23_41_ "XIRQ(23)")

(joined

(portRef I (instanceRef I_36_41))

(portRef (member XIRQ_40_23_58_0_41_ 0))

)

(property netflag (string "TS3"))

(property loc (string "P73"))

)

(net (rename XIRQ_40_22_41_ "XIRQ(22)")

(joined

(portRef I (instanceRef I_36_40))

(portRef (member XIRQ_40_23_58_0_41_ 1))

)

(property netflag (string "TS3"))

(property loc (string "P74"))

)

Solution

Men2XNF8 creates an enwrite.cfg file in your project directory to influence

how ENWrite generates its EDIF netlist. (Please see the note below if you

run ENWrite and EDIF2XNF separately, outside of Men2XNF8.) The following

portion of code from Men2XNF8 5.2 shows what information is written into

this file:

###################################################################

create_config_file_5200() {

cat > enwrite.cfg <<!

SET PR M -E

SET SCOPE "$LCA/$tech" "osc5"

IGN PROP "DIVIDE1_BY"

IGN PROP "DIVIDE2_BY"

SET SCOPE "$LCA/$tech" "ck_div"

IGN PROP "DIVIDE1_BY"

IGN PROP "DIVIDE2_BY"

!

}

###################################################################

create_config_file() {

rm_run enwrite.cfg

if [ $tech = "xc5200" ]; then

create_config_file_5200

else

echo "SET PR M -E" > enwrite.cfg

fi

}

###################################################################

ENWrite can be forced to write out port cells independently rather than grouping them into net bundles, so EDIF2XNF can interpret them properly. To disable net bundles, this should be added to the enwrite.cfg file:

SETup NETBUNDLES -none

So, to affect the proper change to the design flow:

###################################################################

create_config_file_5200() {

cat > enwrite.cfg <<!

SET PR M -E

SET NETBUNDLES -none

SET SCOPE "$LCA/$tech" "osc5"

IGN PROP "DIVIDE1_BY"

IGN PROP "DIVIDE2_BY"

SET SCOPE "$LCA/$tech" "ck_div"

IGN PROP "DIVIDE1_BY"

IGN PROP "DIVIDE2_BY"

!

}

###################################################################

create_config_file() {

rm_run enwrite.cfg

if [ $tech = "xc5200" ]; then

create_config_file_5200

else

echo "SET PR M -E" > enwrite.cfg

echo "SET NETBUNDLES -none" >> enwrite.cfg

fi

}

###################################################################

NOTE: If you run ENWrite and EDIF2XNF separately (i.e., you do not run

Men2XNF8), you must create or modify the enwrite.cfg file in your project

directory to contain the above SETup NETBUNDLES line. Be certain to run

ENWrite with the -rcf (read command file) option:

enwrite design/xnf -wef design.edif -rcf enwrite.cfg

AR# 692
Date Created 08/31/2007
Last Updated 01/18/2010
Status Archive
Type General Article