09-30-2019 10:38 AM
I have multiple combinatorial loops in my design (and they are there on porpuse) but I am not able to start the simulation because I have X's due to those loops. Does Vivado simulator has any capability to resolve the X's to either 1's or 0's or random at time zero?
Any suggestions beside adding reset logic to force the state?
09-30-2019 11:35 AM
09-30-2019 11:46 AM
Thank you for the reply.
I am instantiating LUTs directly and instructing the tool not to touch them.
It is structural verilog code, so I cannot really initialize it, because it is composed by NAND/NORs that I describe them directly with LUTs and create loops connecting the output signals to the inputs. Here is an example of one cell:
(* RLOC = "X0Y0", DONT_TOUCH = "TRUE" *)
.INIT(4'h7) // NAND
) NAND1 (
With other simulator I don't see any issue becaue they have the capability to initialize properly combinatorial loops, but I couldn't find any solution with the Vivado simulator. Maybe there is some simulator setting not documented ...
09-30-2019 12:05 PM