Initialization values in EBMC

27 views
Skip to first unread message

Alexander Gnusin

unread,
Sep 11, 2023, 8:04:21 AM9/11/23
to CProver Support
To comply with synthesizable designs in FPGA, it would be desirable to avoid "initial" statements in Verilog and initialize all synchronous design elements to 0 (usually this is a case in FPGA when global reset is de-asserted). Is it possible to implement with feature in EBMC by default (still, being able to use "initial" to override these default values).

Thanks,
-Alex   

Daniel Kroening

unread,
Sep 13, 2023, 10:53:28 AM9/13/23
to CProver Support
May I first ask whether you are absolutely sure that your synthesis tool chain guarantees that all state holding elements are zero initialised? In particular, I have seen cases where "bigger" (meaning exceeding some configurable threshold) pieces of state got mapped onto target-specific SRAM, and those weren't initialised.

Assuming this is actually guaranteed, then my key concern is that this is obviously specific to a particular synthesis flow, and hence can't be a default.

Would you feel comfortable to tell EBMC about this in some programmatic way, e.g., using a Python API? How are you dealing with this when doing simulation?

With best regards,

Daniel
Reply all
Reply to author
Forward
0 new messages