cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
markramona
Explorer
Explorer
564 Views
Registered: ‎12-12-2018

PLLE4_ADV Internal feedback Ultrascale+

Jump to solution

I wanted to ask for some clarification regarding PLLE4_ADV and the internal feedback.

 

In UG572 (v1.9) October 31, 2019, on Page 49, it states:

 

> IMPORTANT:The internal compensation mode setting is determined by a direct connection (wire) from the CLKFBOUT to the CLKFBIN port in the source. However, synthesis optimizes this connection away such that the CLKFBOUT to CLKFBIN connection is removed from all subsequent representations in Vivado design suite. However, the INTERNAL compensation attribute attached to the MMCM/PLL indicates that the compensation is still internal to the MMCM/PLL.

 

However, a recent experiment of mine implementing a design that directly instantiates the PLLE4_ADV instance shows that that isn't the case. Screenshots are attached showing the PLLE4_ADV instance after routing: The screenshots are taken from Vivado 2019.1.

Screenshot-20200404094101-2664x1274.pngScreenshot-20200404092021-2606x1082.png

 

Can you comment on:

  1. The need to manually create a link for the feedback when using the internal compensation mechanism?
  2. The need to specify COMPENSATION="INTERNAL" as opposed to COMPENSATION="AUTO"?

I am mostly interested in the behavior of 2019.1 and 2019.2

I found that AR67766 is specific about the behavior for Vivado 2015 through 2016.2 https://www.xilinx.com/support/answers/67766.html

 

0 Kudos
1 Solution

Accepted Solutions
marcb
Moderator
Moderator
487 Views
Registered: ‎05-08-2012

Hi @markramona 

There have been reports of feedback nets not being removed properly from 2018.1 to 2019.1. 2019.2 should have the correct behavior though. If that is not the case, attaching a post-opt_design DCP that reproduces could help report a new issue.

 

If the removal of the net will help clocking resources, I have listed commands below to trim these nets.

remove_net [get_nets -of_objects [get_pins -of_objects [get_cells -hierarchical -filter {REF_NAME =~ "PLLE4_ADV" && COMPENSATION =~ "INTERNAL"}] -filter {REF_PIN_NAME =~ "CLKFBOUT"}]] -prune

remove_net [get_nets -of_objects [get_pins -of_objects [get_cells -hierarchical -filter {REF_NAME =~ "MMCME4_ADV" && COMPENSATION =~ "INTERNAL"}] -filter {REF_PIN_NAME =~ "CLKFBOUT"}]] prune

 

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------

View solution in original post

2 Replies
marcb
Moderator
Moderator
488 Views
Registered: ‎05-08-2012

Hi @markramona 

There have been reports of feedback nets not being removed properly from 2018.1 to 2019.1. 2019.2 should have the correct behavior though. If that is not the case, attaching a post-opt_design DCP that reproduces could help report a new issue.

 

If the removal of the net will help clocking resources, I have listed commands below to trim these nets.

remove_net [get_nets -of_objects [get_pins -of_objects [get_cells -hierarchical -filter {REF_NAME =~ "PLLE4_ADV" && COMPENSATION =~ "INTERNAL"}] -filter {REF_PIN_NAME =~ "CLKFBOUT"}]] -prune

remove_net [get_nets -of_objects [get_pins -of_objects [get_cells -hierarchical -filter {REF_NAME =~ "MMCME4_ADV" && COMPENSATION =~ "INTERNAL"}] -filter {REF_PIN_NAME =~ "CLKFBOUT"}]] prune

 

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------

View solution in original post

markramona
Explorer
Explorer
484 Views
Registered: ‎12-12-2018

Understood!

 

Makes sense!

0 Kudos