06-12-2018 11:34 PM
I have a clocks block in one subsystem and from that module the clocks are assigned to various IP's in the sub system. But after synthesis the netlist shows that the clock from the specific subsystem goes to the top of the design followed by a BUFG and again comes back into the sub system. I have no such path in my design. Why is the tool making this paths which might effect the functionality of the design ?
06-13-2018 01:21 AM
What is the hierarchy setting you are using for synthesis?
I believe you are using 'rebuilt' where the tool will flatten the hierarchy then optimize and then netlist will be rebuilt again. Can you use KEEP_HIERARCHY or 'none' and let us know the results?
06-13-2018 02:39 AM
Feel free to post your queries in implementation board if you are seeing any issues. Regarding the net/cell names, I believe the changes occurred due to flattening of hierarchy.
06-13-2018 03:58 AM
@anusheel Ideally the netlist should show up something which is something near to the RTL logic. If it shows something which is not in the design them debugging those issues is a problem right ? Moreover this things add up some delays in the design and cause some timing issues with higher speeds
06-13-2018 04:08 AM
By using 'rebuilt' you are allowing the tool to perform cross boundary optimization and hence the netlist is different than what you see in RTL. You can select the preserve hierarchy option available in the tool Or use DONT_TOUCH/KEEP_HIERARCHY attribute to block tool from performing such optimizations.
>>Moreover this things add up some delays in the design and cause some timing issues with higher speeds
Can you elaborate the issue and show us the schematic?
06-13-2018 08:18 PM
ERROR: [Opt 31-67] Problem: A LUT3 cell in the design is missing a connection on input pin I1, which is used by the LUT equation. This pin has either been left unconnected in the design or the connection was removed due to the trimming of unused logic.
This is the ERROR i get when I set flatten hierarchy to none
06-13-2018 09:21 PM
Set a DONT_TOUCH property on the LUT3 driving the LUT mentioned in the error. This can be found from an open synthesized design.
set_property DONT_TOUCH true [get_cells <lut3_name>]