cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Explorer
Explorer
17,047 Views
Registered: ‎06-19-2014

[Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

I am using vivado 2014.2 and targetting AC701 board.

 

I have a differential clock signal at clock capable MRCC pins.

 

My clocking scheme is IBUFGDS -- > BUFG --> PLL(which drives BUFG) --> rest of design

 

At generate bit stream step I get following DRC error

 

[Drc 23-20] Rule violation (REQP-1712) Input clock driver - Unsupported PLLE2_ADV connectivity. The signal clock_gen_69/inst/clk_556_mhz on the clock_gen_69/inst/plle2_adv_inst/CLKIN1 pin of clock_gen_69/inst/plle2_adv_inst with COMPENSATION mode ZHOLD must be driven by a clock capable IO.

 

UG472 on page 64 says that PLL/MMCM can have BUFG at input.

 

Then why is this error popping up?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
27,711 Views
Registered: ‎09-20-2012

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

Hi,

 

Can you try running the design in latest Vivado 2014.4?

 

The ISE or Vivado design tools automatically select the appropriate compensation based on circuit topology. However in your case it looks like it chose this incorrectly as ZHOLD. When the clock input of PLL is coming from BUFG then the compensation factor should be BUF_IN.

 

Refer to page-85 of http://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf

 

Thanks,

Deepika.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)

View solution in original post

0 Kudos
8 Replies
Highlighted
Xilinx Employee
Xilinx Employee
27,712 Views
Registered: ‎09-20-2012

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

Hi,

 

Can you try running the design in latest Vivado 2014.4?

 

The ISE or Vivado design tools automatically select the appropriate compensation based on circuit topology. However in your case it looks like it chose this incorrectly as ZHOLD. When the clock input of PLL is coming from BUFG then the compensation factor should be BUF_IN.

 

Refer to page-85 of http://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf

 

Thanks,

Deepika.

Thanks,
Deepika.
--------------------------------------------------------------------------------------------
Google your question before posting. If someone's post answers your question, mark the post as answer with "Accept as solution". If you see a particularly good and informative post, consider giving it Kudos (the star on the left)

View solution in original post

0 Kudos
Highlighted
Explorer
Explorer
16,704 Views
Registered: ‎06-19-2014

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

The same problem came in vivado 2015.1. But your solution worked.

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
13,432 Views
Registered: ‎11-30-2007

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

I suspect that you are generating your Clocking Wizard (MMCM/PLL) Out-Of-Context which means the Clocking Wizard IP is generated/synthesized out-of-context of the higher level design.  At the time of generation for the Out-Of-Context flow, the Clocking Wizard is uninformed of where the CLKIN1 input is coming from so it defaults to the COMPENSATION=ZHOLD.  If you synthesize the Clocking Wizard with the rest of the design (i.e. “Global”) then Vivado synthesis will recognize the CLKIN1 path and correctly set the COMPENSATION of the Clocking Wizard.

 

You can accomplish this by right clicking on your XCI file in the Sources window and then select “Generate Output Products...”  Select the Synthesis Options as “Global” (versus the “Out-Of-Context Per IP”) and then select the “Generate” button.  Now, please try your implementation.

 

Thank you.

Tags (1)
Highlighted
Visitor
Visitor
10,359 Views
Registered: ‎01-29-2017

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

Hello all, 

I am unfortunately hitting the same error in Vivado 2016.4  :-(

zhold_err.gif

I am a newbie so I might be missing something obvious, but whatever I tried, it just ended with this error. (I did generate the "Global" Output product)

Wouldn't anybody have any idea what I am doing wrong ?

Thanks a lot!

Ian

0 Kudos
Highlighted
Visitor
Visitor
10,265 Views
Registered: ‎01-29-2017

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

It looks like Vivado bug, because changing Clocking Wizard primitive from PLL to MMCM "solved" the issue.
Would there be a way around it to use Clocking Wizard with the simpler PLL primitive ?

Highlighted
Visitor
Visitor
10,261 Views
Registered: ‎01-29-2017

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution
I hope I found the solution. The Clocking Wizard-> Re-custom IP->PLLE2 Settings tab->"Allow Override Mode" check->Compensation set to BUF_IN.
Highlighted
Scholar
Scholar
9,488 Views
Registered: ‎06-23-2014

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution
I just had the same problem. Regenerating and selecting "Global" fixed the problem. I wish "Global" was the default for the pop-up window!
0 Kudos
Highlighted
Contributor
Contributor
5,277 Views
Registered: ‎03-19-2015

Re: [Drc 23-20] Rule violation (REQP-1712) Input clock driver

Jump to solution

2018.1 and the bug is still there. It is reasonable that with OOC the tool cannot chose the compensation method correctly as it doesn't know where the PLL will be connected, still in the documentation (7 Series FPGAs Clocking Resources User Guide page 88) we can read:

 

The COMPENSATION attribute values are documented for informational purpose only. The ISE or Vivado design tools automatically select the appropriate compensation based on circuit topology. Do not manually select a compensation value, leave the attribute at the default value.

 

And OOC is a default option...