Flip-flops uninitialization causes issues in gate-level simulation. #719
Replies: 4 comments 3 replies
-
|
The flip-flop within FABULOUS_LC is not initialized during bitstream upload. The solution is to create an explicit reset signal in your user design, which you assert after the bitstream has been uploaded. The fabulous-fabrics setup actually specifies that the flip-flops cannot be initialized: https://github.com/FPGA-Research/fabulous-fabrics/blob/bb5d98490fbc99f1f0662f072d3819b7a9b2d663/user_designs/makefile.include#L10 |
Beta Was this translation helpful? Give feedback.
-
|
Hey, this is a known problem that we have with gate level simulation of our fabrics using open source tools. If you have access to commercial simulators, you can also try those, since they can usually define default values for flops. |
Beta Was this translation helpful? Give feedback.
-
|
Hi, I have some news. I tried setting everything to 0 using the The issue comes from a flip-flop whose D value is not set when resetting the counter. This is quite strange as the others flip-flops of the counter are correctly initialized when resetting. I will try to find what causes the uninitialization of this specific flip-flop and post an update if I find something. |
Beta Was this translation helpful? Give feedback.
-
|
I tried with a slightly different design (assigning different bits of the counter to the pins), and now all the pins become x value. I can replicate the same result (getting x's) in icarus verilog so this means that it is not a Questa issue. I think this is probably due to the fact that there are a lot of combinational loops involved. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello everyone.
I am trying to get a full chip with a FABulous FPGA embedded. Right now, I am trying to simulate the gate-level netlist that Librelane outputs at the end of the chip flow.
I am having issues with the simulation as I think the flip-flops used in the fabric are not initialized with a value.
Thus, the simulator sets them to x and propagates them through the design.
Has anyone had the same issue as me ?
And if yes, what was your solution ?
Thank you in advance.
Beta Was this translation helpful? Give feedback.
All reactions