mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 14:13:23 +00:00
cxxrtl: provide a way to perform unobtrusive power-on reset.
Although it is always possible to destroy and recreate the design to simulate a power-on reset, this has two drawbacks: * Black boxes are also destroyed and recreated, which causes them to reacquire their resources, which might be costly and/or erase important state. * Pointers into the design are invalidated and have to be acquired again, which is costly and might be very inconvenient if they are captured elsewhere (especially through the C API).
This commit is contained in:
parent
7b0cfd5c36
commit
5beab5bc17
4 changed files with 78 additions and 3 deletions
|
@ -55,6 +55,14 @@ cxxrtl_handle cxxrtl_create(cxxrtl_toplevel design);
|
|||
// Release all resources used by a design and its handle.
|
||||
void cxxrtl_destroy(cxxrtl_handle handle);
|
||||
|
||||
// Reinitialize the design, replacing the internal state with the reset values while preserving
|
||||
// black boxes.
|
||||
//
|
||||
// This operation is essentially equivalent to a power-on reset. Values, wires, and memories are
|
||||
// returned to their reset state while preserving the state of black boxes and keeping all of
|
||||
// the interior pointers obtained with e.g. `cxxrtl_get` valid.
|
||||
void cxxrtl_reset(cxxrtl_handle handle);
|
||||
|
||||
// Evaluate the design, propagating changes on inputs to the `next` value of internal state and
|
||||
// output wires.
|
||||
//
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue