Ich kann in Verilog leicht eine Zufallszahl von 32 Bit Breite erzeugen $random
. Gibt es eine Möglichkeit, eine Zufallszahl von genau n
Bits zu generieren (sagen wir n = 70
)?
Ich denke, ich könnte viele 32-Bit-Zufallszahlen verketten und mich dann auf die erforderliche Anzahl von Bits beschränken, aber das scheint ein Hack zu sein.
Antworten:
Wenn Sie SystemVerilog verwenden können, können Sie eine beliebige Anzahl beliebiger Breite zufällig auswählen. Deklarieren Sie es entweder als
rand
innerhalb einer Klasse oder verwenden Siestd::randomize
. Hier ist ein einfaches Beispiel:Wenn Sie sich an den einfachen alten Verilog halten müssen, ist der von Ihnen vorgeschlagene Hack meiner Meinung nach die beste, einfachste und möglicherweise einzige Wahl. Ich glaube nicht, dass irgendetwas in der Sprache hilfreich ist, da
$random
eine 32-Bit-Zahl zurückgegeben wird.Wenn Sie einfach vermeiden möchten, neue Variablen zu deklarieren und explizit zu verketten, können Sie Folgendes tun.
quelle