cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Anonymous
Not applicable
10,111 Views

How to give IDELAYCTRL in EDK

Hi.

I am using 10.1 EDK with service pack 2 and Virtex5 LX110T ff1738 -1 device.

Normal SDRAM (SDR) and HARD ETHERNET MAC (xps_ll_temac) are a part of my design.

During mapping i am getting error regarding IDELAYCTRL specification for various clock regions as follows...

 

ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld0 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld1 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld2 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld3 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld4 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld5 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld6 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideld7 has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X0Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideler has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X1Y0. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.I_EMAC_TOP/gmii0/YES_IO_1.ideldv has an IDELAY_TYPE attribute of either
   FIXED or VARIABLE. This programming requires that there be an IDELAYCTRL
   block programmed within the same clock region.
ERROR:PhysDesignRules:1613 - IDELAYCTRL not found for clock region
   CLOCKREGION_X0Y2. The IODELAY block
   Inst_system/Hard_Ethernet_MAC/Hard_Ethernet_MAC/V5HARD_SYS.I_TEMAC/SINGLE_GMI
   I.IO_YES_01.gmii_rxc0_delay has an IDELAY_TYPE attribute of either FIXED or
   VARIABLE. This programming requires that there be an IDELAYCTRL block
   programmed within the same clock region.
ERROR:Pack:1642 - Errors in physical DRC.

 

These  ideld0 to ideld7 and ideldv and ideler are a part of my constraint that i am providing in the UCF but then i dont the exact value as to what i should give to them.

 

INST "*gmii0*ideldv"  IDELAY_VALUE = ?;
INST "*gmii0*ideld0"  IDELAY_VALUE = ?;
INST "*gmii0*ideld1"  IDELAY_VALUE = ?;
INST "*gmii0*ideld2"  IDELAY_VALUE = ?;
INST "*gmii0*ideld3"  IDELAY_VALUE = ?;
INST "*gmii0*ideld4"  IDELAY_VALUE = ?;
INST "*gmii0*ideld5"  IDELAY_VALUE = ?;
INST "*gmii0*ideld6"  IDELAY_VALUE = ?;
INST "*gmii0*ideld7"  IDELAY_VALUE = ?;
INST "*gmii0*ideler"  IDELAY_VALUE = ?;

INST "*gmii_rxc0_delay" IDELAY_VALUE = ?;

 

How can i give the exact values to these? 

 

All the receiving signals of the HARD_ETHERNET_MAC instance require these IDELAY values.

 

Receiving signals are ...

fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<0>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<1>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<2>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<3>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<4>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<5>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<6>
fpga_0_Hard_Ethernet_MAC_GMII_RXD_0_pin<7>
fpga_0_Hard_Ethernet_MAC_GMII_RX_DV_0_pin
fpga_0_Hard_Ethernet_MAC_GMII_RX_ER_0_pin
fpga_0_Hard_Ethernet_MAC_GMII_RX_CLK_0_pin
 

Or else if i come to know the number of IDELAYCTRLs and their exact  IDELAYCTRL co-ordinates used for Hard_Ethernet_MAC then also the problem could be solved...

 

Please give me some solution at the earliest possible as i am stuck  due to this error.

 

Regards,

Vijay.

0 Kudos
7 Replies
Highlighted
Xilinx Employee
Xilinx Employee
10,097 Views
Registered: ‎08-02-2007

Re: How to give IDELAYCTRL in EDK

Hello Vijay,

 

Can you file a webcase in relation to this ?

 

Regards

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
Highlighted
10,089 Views
Registered: ‎08-21-2008

Re: How to give IDELAYCTRL in EDK

Hello Hem.

I have already done a webcase regarding this matter. 

Best of luck.
--
Unlimited in my Limits.
0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
10,088 Views
Registered: ‎08-15-2007

Re: How to give IDELAYCTRL in EDK

Here is link to the V-5 User Guide, starting on page 338 it goes into a discussion about IDELAYCTRLs.

http://www.xilinx.com/support/documentation/user_guides/ug190.pdf

In short if you are using a IDELAY or ODELAY element, you will need to LOC the IDELAYCTRL in the respective clock region.  The error message tells which clock region clock region the IODELAY block is in, you will need to LOC the IDELAYCTRL from this respective region.  Figure 7-17 is a good reference to look at where the IDELAYCTRLs are located and how they relate to the clock regions. 

Once you figure out the number of IDELAYCTRLs and LOCs you can then set the following two parameters in the MHS file for the TEMAC:

PARAMETER C_NUM_IDELAYCTRL = 3

PARAMETER C_IDELAYCTRL_LOC = IDELAYCTRL_X0Y6-IDELAYCTRL_X0Y2-IDELAYCTRL_X0Y1 // just an example of the LOCs

 

Another note, the error message states that IDELAYCTRL not found for clock region CLOCKREGION_X1Y0, I believe the IDELAYCTRL loc is IDELAYCTRL_X1Y0 (same coordinates) however I would need to see where pins are located since there are only X0,X1 for clock regions and there is X0,X1,X2 for IDELAYCTRLs.

 

Another easy workaround is to set C_NUM_IDELAYCTRL = 1 to and not set C_IDELAYCTRL_LOC.  If you do this the tools will replicate the IDELAYCTRLs, page 339 goes into more detail about this...

0 Kudos
Highlighted
10,065 Views
Registered: ‎08-21-2008

Re: How to give IDELAYCTRL in EDK

I am going through the V5 user guide and i will pick up some relevant material regarding IDELAYCTRL.

Thnx for your help... 

Best of luck.
--
Unlimited in my Limits.
0 Kudos
Highlighted
10,061 Views
Registered: ‎08-21-2008

Re: How to give IDELAYCTRL in EDK

Hi.

Main issue is that i am getting these errors in mapping and due to this i am unable to open the FPGA editor. In such a case how can i look for various IDELAYCTRLs without FPGA editor? 

Regards... 

Best of luck.
--
Unlimited in my Limits.
0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
10,044 Views
Registered: ‎08-13-2007

Re: How to give IDELAYCTRL in EDK

This is the official answer:

http://www.xilinx.com/support/answers/24704.htm (Virtex-5, Virtex-4 - IDELAYCTRL location)

PlanAhead (or PlanAhead Lite - which is included in 10.1) seems to be preferred by some.

 

Personally, I prefer ADEPT:

http://home.comcast.net/~jimwu88/tools/adept/ (Advanced Debugging/Editing/Planning Tool)

To be clear, this tool is not officially distributed or supported by Xilinx. But many of us use it. ;)

 

The steps with ADEPT would roughly be:

-download and install per Jim's notes (URL above)

-launch the tool

-chose the appropriate device/package and "load"

-make sure "Display IDELAYCTRL" feature is enabled

-you can read in your ucf (optional but very handy to correlate IDELAYCTRL locations with an existing pinout)

-it will then show you where the IDELAYCTRL location are (e.g. IDELAYCTRL_X0_Y3) that corresponds to that group of signals (you'll notice it is in the middle of the colored bank/half-bank clock region)

-version 0.35.1 has a handy new feature. You can now load an ncd file (which may not help you specifically since you can't complete map/par) and see the IDELAYCTRL instance names as well as the IODELAY types in the pin table view. You can see I/O that require IDELAYCTRLs (note the FIXED or VARIABLE mode). Be on the lookout for I/O in a clock region without an IDELAYCTRL or where an IDELAYCTRL is placed but no I/O require one.

-you can also export to an xls spreadsheet (die view) to refer to this later.

 

 

bt

 

Message Edited by timpe on 08-22-2008 09:38 AM
0 Kudos
Highlighted
Anonymous
Not applicable
10,018 Views

Re: How to give IDELAYCTRL in EDK

Hi.

I have read your answer and will try to implement that way..

Thnx for your reply.

0 Kudos