2
typedef enum int { IPV4_VERSION = 0, IPV4_IHL = 1, IPV4_TOTAL_LENGTH = 2,IPV4_CHECKSUM = 3 } ipv4_corrupton;
ipv4_corrupton ipv4_corrupt;
std::randomize(ipv4_corrupt) with {ipv4_corrupt dist { IPV4_VERSION :=2,IPV4_IHL := 4,IPV4_TOTAL_LENGTH := 4,IPV4_CHECKSUM := 2}; };
Ich lief den obigen Code 10 mal und immer IPV4_CHECKSUM
. Ich mache einen Fehler?Generate Random Enum mit System Verilog
werden Sie die gleiche Randomisierung in der gleichen Simulation zu wiederholen oder verschiedene Simulationen mit jeweils einer Randomisierung ausführen n? Der erste sollte Ihnen zufällige Werte geben. Die zweite wird durch den Samen von der Kommandozeile bestimmt. Ich glaube, dass das Standard-Saatgut 1 ist. Lesen Sie in Ihrem Handbuch nach, wie Sie das Saatgut einstellen. Die Option ist in der Regel "-seed", "-svseed" oder "-sed". Auch hier handelt es sich um Tool-spezifische Funktionen. Überprüfen Sie das Handbuch. In der Regel kann der Wert ein vorzeichenbehafteter 32-Bit-Wert oder das Wort "rand" oder "random" sein, das den Pseudozufallswert Ihres Betriebssystems verwendet. – Greg
Ja, ich rufe die obige Randomisierung in der gleichen Simulation 10 Mal. Ich mache immer eine Simulation mit verschiedenen Samen. Aber ich sehe immer noch denselben Wert generiert werden. – user3510047
Hallo, ich habe versucht, Ihr Stück Code zu laufen und es funktioniert gut.Ich habe kein Problem mit diesem Code.Sie geben zufälligen Wert von Enum-Typ Variable.So, ich schlage vor, Sie es zu überprüfen und versuchen, mehr zu erkunden es oder einige Ergebnisse in Bezug darauf. – ChetanJoshi