Generieren von Zufallszahlen - seed änderungen nur einmal

Generiere ich eine Zahl in verilog zwischen 0 bis 10000 in einer Schleife wie diese:

wire rand;
integer i, seed;
initial 
   begin
      i=1;
      seed=0;
      while (i<10)
        begin
        force rand = $random(seed) % 10000;
      end
   end

das problem, dass Saatgut änderungen nur einmal und in den rest der Iterationen bleibt die gleiche. (Ich sehe die Werte in ModelSim).

  • so legen Sie die Samen auf null, keine änderungen an Sie und Frage mich, warum es nicht geändert?
  • Ich verstehe, dass $random ist das gleiche wie $dist_uniform(Saatgut,0,1000) und auf diese Weise die Samen-änderungen mit jeder iteration. Ich habe versucht den gleichen code mit Gewalt rand = $dist_uniform(Saatgut,0,1000) und das Ergebnis ist das gleiche. das eigentliche problem ist, dass rand bleiben die gleichen in jeder iteration der Schleife.
  • der rand ist nur 1 bit breit
InformationsquelleAutor LiorZ | 2012-11-15
Schreibe einen Kommentar