-
Notifications
You must be signed in to change notification settings - Fork 685
Closed
Labels
resolution: fixedClosed; fixedClosed; fixedtype: feature-non-IEEERequest to add new feature, outside IEEE 1800Request to add new feature, outside IEEE 1800
Description
Thought this was the cause of confusion in #2661 but was not.
Currently for initial randomization Verilator repeatedly calls the random number generator to determine the initial values of signals. If that signal list changes due to optimization or a design change this will introduce large disruptions in all of the random values.
We should instead use the hierarchical name of the signal to create a hashed value, then randomize the signal based on that hash off from a single whole-design seed. This way each signal will be randomized consistently based on itself and adding/removing/renaming signals will only change randomization of those signals.
To give credit, this technique was invented and patented by IBM, but has long since expired.
Metadata
Metadata
Assignees
Labels
resolution: fixedClosed; fixedClosed; fixedtype: feature-non-IEEERequest to add new feature, outside IEEE 1800Request to add new feature, outside IEEE 1800