Topic: Importing 156_kc705_FMC150 reference design into Vivado  (Read 11750 times)

tedjnsn April 22, 2014, 02:17 PM

  • Member
  • *
  • Posts: 47
As follow up to earlier conversation - http://www.4dsp.nl/forum/index.php/topic,2804.0.html, I did attempt to import 156_kc705_FMC150 reference design to Vivado before, without success, as follows:


- generated ISE project in SIP from 156_kc705_FMC150
- checked that resulting bitfile is working with fmc15xapp in Ethernet mode
- imported ISE 14.7 project into Planahead 14.7 , generated bitfile there, tested with fmc15xapp ok (there were several critical warnings about missing definitions for some of the clocking constraints though)
- wrote .xdc file in Planahead
- imported  ISE 14.7 project into Vivado (tried with both v. 2013.4 and 2014.1)
- imported the above .xdc file into Vivado
- Vivado implementation reports sub-optimal placement for MAC engine and ADC interface clocks error
- Forcing implementation with CLOCK_DEDICATED_ROUTE fails timing constraints

Is there a way to fix this problem?

Here's detailed errors:

Code: [Select]
[Place 30-150] Sub-optimal placement for an MMCM-BUFG component pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/clkout1] >


sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/mmcm_adv_inst (MMCME2_ADV.CLKOUT1) is provisionally placed by clockplacer on MMCME2_ADV_X1Y2
sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/clkout2_buf (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y16


The above error could possibly be related to other connected instances. Following is a list of
all the related clock rules and their respective instances.


Clock Rule: rule_gclkio_mmcm_1load
Status: FAIL
Rule Description: An IOB driving a single MMCM must both be in the same clock region if CLOCK_DEDICATED_ROUTE=BACKBONE
is NOT set
sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/clkin1_buf (IBUFDS.O) is locked to IOB_X1Y76
and sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/mmcm_adv_inst (MMCME2_ADV.CLKIN1) is provisionally placed by clockplacer on MMCME2_ADV_X1Y2
ERROR: The above is also an illegal clock rule
Workaround: < set_property CLOCK_DEDICATED_ROUTE BACKBONE [get_nets sip_mac_engine_0/mac_engine_inst/brd_clocks_inst/pll0_inst/clkin1] >



Code: [Select]
[Place 30-719] Sub-optimal placement for a global clock-capable IO pin-IDELAY-BUFG pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/I] >


sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/iodelay_inst (IDELAYE2.DATAOUT) is locked to IDELAY_X0Y26
and sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/bufg_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0






ebarhorst April 23, 2014, 04:07 AM (#1)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 1222
Hi Ted


what you can try to do is:
-open a working ISE implemented design in PLANAHEAD and lock the MMCM and BUFG components
-convert these constraints to XDC
-run the VIVADO tool again


Best regards,
Erik

tedjnsn April 23, 2014, 12:22 PM (#2)

  • Member
  • *
  • Posts: 47
Erik,


Thanks for suggestion. Could you point me towards an efficient way to lock MMCM and BUFG in Planahead and save it in *.xdc? I'm not as familiar with that aspect of the tool (yet) and would be grateful for a bit more help with that now.


  • « Last Edit: April 23, 2014, 01:15 PM by tedjnsn »

tedjnsn April 23, 2014, 01:14 PM (#3)

  • Member
  • *
  • Posts: 47
Well, I selected Edit->Find->BUFG and checked "Fixed" property for each in Planahead, same for MMCME2_ADV, wrote new .xdc and run implementation in Vivado. New error I get is that BUFG and IDELAY for ads62 are locked to different regions:


Code: [Select]
[Place 30-719] Sub-optimal placement for a global clock-capable IO pin-IDELAY-BUFG pair. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/I] >


sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/iodelay_inst (IDELAYE2.DATAOUT) is locked to IDELAY_X0Y26
and sip_fmc150_0/fmc150_if_inst/ads62p49_phy_inst/bufg_inst (BUFG.I) is locked to BUFGCTRL_X0Y28




tedjnsn April 23, 2014, 03:30 PM (#4)

  • Member
  • *
  • Posts: 47
Here's perhaps a related issue - Planahead 14.7 does not recognize some of the constraints that SIP generated for ISE, my guess is that it's a syntax issue. Here're the critical warnings it generates:


Code: [Select]
[Constraints 18-11] Could not find net '*/SYSCLK_IN' ["C:/FPGA/4dsp/156_kc705_fmc150/output/kc705_fmc150/Src/kc705_fmc150.ucf":158]

[Constraints 18-11] Could not find net 'sip_fmc150_0/fmc150_if_inst/ads62p49_ctrl_inst/clk_div<3>' ["C:/FPGA/4dsp/156_kc705_fmc150/output/kc705_fmc150/Src/kc705_fmc150.ucf":185]
[Constraints 18-11] Could not find net 'sip_fmc150_0/fmc150_if_inst/dac3283_ctrl_inst/clk_div<3>' ["C:/FPGA/4dsp/156_kc705_fmc150/output/kc705_fmc150/Src/kc705_fmc150.ucf":188]
[Constraints 18-11] Could not find net 'sip_fmc150_0/fmc150_if_inst/amc7823_ctrl_inst/clk_div<3>' ["C:/FPGA/4dsp/156_kc705_fmc150/output/kc705_fmc150/Src/kc705_fmc150.ucf":191]




tedjnsn May 16, 2014, 03:44 PM (#5)

  • Member
  • *
  • Posts: 47
Could you tell me what version of ISE tools was used at 4DSP in generation of IP cores for sip_mac_engine part of the reference design? Was it 13.2 by any chance?

tedjnsn May 16, 2014, 03:50 PM (#6)

  • Member
  • *
  • Posts: 47
Could you tell me what version of ISE tools was used at 4DSP in generation of IP cores for sip_mac_engine part of the reference design? Was it 13.2 by any chance?


never mind, the info is the IP headers

arnaudNL June 13, 2014, 08:00 AM (#7)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
This topic is being closed because the issue is considered as resolved by 4DSP. Feel free to create a new topic for any further inquiries.