Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


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


Record #692

Product Family:  Software

Product Line:  Mentor

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


Problem Description:
Keywords: enwrite, edif2xnf, loc, property

Urgency: Standard

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 1:

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



End of Record #692

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals!

© 1998 Xilinx, Inc. All rights reserved
Trademarks and Patents