UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
4,956 Views
Registered: ‎02-18-2015

Nets missing in Netlist - Vivado 2014.2

Jump to solution

Hi,


I am using Vivado 2014.2.

I have made a project which I have tested on my Kintex 7 - xc7k160tfbg676 FPGA and it was working well.
Today I tried to add to my project an MMCME2_BASE. I accomplished to instantiate it (or so I think) and I Synthesized my project successfully (as I was only getting the usual warnings that I was expecting to get).
Nevertheless when I opened Synthesis, in Netlist the majority of my Nets (that derived from components inside my project) were missing!
I rolled back to a previous working version of my project, I synthesized again, but the problem remained. The Nets are still missing, so I am not able to debug them using ILA. That tells me that the addition of the MMCM was not the problem.
I am assuming that Vivado for some reason removes some of the components inside my project, but the strange thing is I don't get such kind of warning (I repeat, I only get the usual warnings I am expecting to get).

Any ideas on what is happening?

Nassos

0 Kudos
1 Solution

Accepted Solutions
Contributor
Contributor
8,979 Views
Registered: ‎02-18-2015

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

@florentw
@vijayak

Excuse my naive approach of my own matter. I found out today that by using the Tcl command "set_msg_config"  I could be able to see any trimmed Synthesis Warnings. Indeed there were about ~1300 trimmed warnings of the components that were missing (as @florentw mentioned) but not any actual information on why these components were removed.
I thought that was strange so I started googling and I stumbled upon this useful comment by @muzaffer:

https://forums.xilinx.com/t5/Synthesis/Sequential-element-is-unused-and-will-be-removed-from-module/m-p/545377/highlight/true#M12797

I decided to enter the Synthesis Settings and I there I found the option "-flatten_hierarchy*". I don't know if by deafault it is on "rebuilt", but for me it was. I turned it to "none" and...to my suprise the nets/components were back!!
I also enabled the option "-keep_equivalent_registers*".


Thanks again for the support.

Kind regards,
Nassos

0 Kudos
5 Replies
Xilinx Employee
Xilinx Employee
4,922 Views
Registered: ‎10-24-2013

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

Hi @anm

1) Did you try running post synthesis simulation to confirm functionality of your module?

2) You can use dont_touch attribute if you want the tool not to trim the portions of your logic.

3) I suggest you to use the latest version of Vivado (2016.4)for better results.

 

Refer to https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_4/ug901-vivado-synthesis.pdf for details on dont_touch usage.

Thanks,Vijay
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
Moderator
Moderator
4,912 Views
Registered: ‎11-09-2015

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

Hi @anm,

 

Unused nets are removed during synthesis. You may want to have a look to the synthesis log (<proj_neame>.runs/synth_1/...log). See if the nets are mentioned.

 

Hope that helps

 

Regards,

 

Florent


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
Contributor
Contributor
4,871 Views
Registered: ‎02-18-2015

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

@florentw
Already checked it but not a sign of the removed networks.
@vijayak
Thank you for the useful 'dont_touch' atribute. Not able to upgrade, cause I use Vivado through a University server.

I made a new project with the same VHD files, and now it seems to work well. Maybe something with the 'debugg' and 'undebugg' of the nets I used for the Debugg Core, messed the project.
Thank you both for your quick replies.

0 Kudos
Contributor
Contributor
8,980 Views
Registered: ‎02-18-2015

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

@florentw
@vijayak

Excuse my naive approach of my own matter. I found out today that by using the Tcl command "set_msg_config"  I could be able to see any trimmed Synthesis Warnings. Indeed there were about ~1300 trimmed warnings of the components that were missing (as @florentw mentioned) but not any actual information on why these components were removed.
I thought that was strange so I started googling and I stumbled upon this useful comment by @muzaffer:

https://forums.xilinx.com/t5/Synthesis/Sequential-element-is-unused-and-will-be-removed-from-module/m-p/545377/highlight/true#M12797

I decided to enter the Synthesis Settings and I there I found the option "-flatten_hierarchy*". I don't know if by deafault it is on "rebuilt", but for me it was. I turned it to "none" and...to my suprise the nets/components were back!!
I also enabled the option "-keep_equivalent_registers*".


Thanks again for the support.

Kind regards,
Nassos

0 Kudos
Contributor
Contributor
4,804 Views
Registered: ‎02-18-2015

Re: Nets missing in Netlist - Vivado 2014.2

Jump to solution

@florentw
@vijayak


On a  third look of my design, I noticed that by turning "-flatten_hierarchy*" from "rebuilt" to "none", the Implementation stage takes a lot longer to be accomplished and when it does, the percentage of used LUTs and FFs is significally increased in the Post-Implementation Graph. Also the resulting design didn't have the initial functionality it used to. So I started to suspect that there was a flaw in my own design that made Vivado trim my components and NOT the Synthesis Settings.
I figured that a small change I had made in a component of mine, kept some of the outputs stable to a single value (probably '0'), so when Vivado trimmed those outputs and removed that component, a chain reaction started and all the components connected to the removed component, were also trimmed. 
When I fixed that little flaw, my design started to work as intented (all Components/Nets were present at Netlist) with the Synthesis Settigns rolled back to "-flatten_hierarchy*" = "none" and "-keep_equivalent_registers*" UNchecked.

P.S.
I understand that my previous answer did solve my problem with the missing Nets from Netlist, but I think THIS answer is more appropriate as solution from the point that it resolves also the proper functionality of the design.
I leave it to the Moderators to decide if the accepted solution should change. 

0 Kudos