cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
RRN1
Visitor
Visitor
239 Views
Registered: ‎11-20-2020

Vivado 2020.1 Sythesis probelm

Jump to solution

I have a simple inverter before a register in VHDL that is shown correctly in RTL Analysis schematic but when implemented, is totally ignored.  This is preventing some of my logic from coming out of reset.  I know the clock is working since my LEDs flash from a register clocked by this and I know the system reset is released for the same reason.  This leaves just the inverter.  I know it is not implemented because I monitored the input and output signals with an ILA.  The output = input which is wrong.  I have attached screen captures to clarify the issue.  The VHDL show the source process, the Elaborated Schematic shows the correctly inferred logic, the Synthesis shows FDRE with a hint of an inverter in the cell name (isys_s2mm_reset_s_reg_inv), the Implementation schematic shows the same as the Synthesis schematic.  The Hardware Manager ILA capture clearly shows isys_mm2s_reset_s <= mm2s_prmry_reset_out_n_0 when isysrst99m99_s (active-high system reset) is released.  This is wrong, it should be isys_mm2s_reset_s <= NOT mm2s_prmry_reset_out_n_0

Does anyone know of a setting that could cause this?  Is this a bug in the tools?

Hope someone can help.  Thank you.

VHDL.png
Hardware Manager - ILA capture of inputs and outputs.png
Implementation - Schematic.png
Synthesised - Schematic.png
RTL Analysis - Elaborated Design.png
0 Kudos
Reply
1 Solution

Accepted Solutions
RRN1
Visitor
Visitor
207 Views
Registered: ‎11-20-2020

Thank you for the reply.  I was debugging why my MCDMA was not working when I noticed that my resets weren't what I expected them to be and so I came across this behavior which threw me.  Of course on closer inspection, I used the wrong polarity reset further down the line so I suspect a different reason for my design not coming out of reset.  Happy debug days!  Thanks again.

View solution in original post

0 Kudos
Reply
2 Replies
yannickl
Xilinx Employee
Xilinx Employee
218 Views
Registered: ‎11-03-2016

Hi,

Looking at the generated cells, your register was also changed from FDSE to FDRE. I'd assume this optimization was done to better pack the registers in a slice and I'd bet the inverting equivalent logic happens on the reset net.

Also, don't go looking for a NOT cell. After synthesis (or within Vivado the implicit step of tech mapping) it won't exist anymore. FPGAs use LUTs.

Regards,

YL

0 Kudos
Reply
RRN1
Visitor
Visitor
208 Views
Registered: ‎11-20-2020

Thank you for the reply.  I was debugging why my MCDMA was not working when I noticed that my resets weren't what I expected them to be and so I came across this behavior which threw me.  Of course on closer inspection, I used the wrong polarity reset further down the line so I suspect a different reason for my design not coming out of reset.  Happy debug days!  Thanks again.

View solution in original post

0 Kudos
Reply