hvordan du får systemet tid i Verilog

S

starone

Guest
Hei alle,

Jeg vil generere et tilfeldig nummer i Verilog med systemet tid som frøet.
den normale $ tilfeldig () genererer en tilfeldig verdi ved å ta $ tid (simulering tid) som frø sitt.
så, hvordan får jeg det "system time" i Verilog (eller) hvordan gjøre jeg genererer tilfeldig verdi med systemet tid som frø sin.

Takk,
jala

 
Jeg kunne ikke finne en elegant måte, men her er hvordan jeg gjorde det - et systemkall for å skrive inn gjeldende klokkeslett i en fil, deretter leser du filen for å få info inn Verilog.Systemet kaller å "date" fungerer bare på * NIX - hvis du er på Windows, må du endre det.Uansett, her er koden:

Kode:

heltall FP;

heltall fgetsResult;

heltall sscanfResult;

heltall NowInSeconds;

reg [8 * 10:1] str;/ / Kaller "date" og sette ut tid i sekunder siden 1 januar 1970 (når tiden begynte, ingen tvil)

/ / Og sette resultatene i en fil kalt "now_in_seconds"

$ System ("date % s> now_in_seconds");/ / Åpner filen for lesing

FP = $ fopen ("now_in_seconds", "R");/ / Få en streng fra det åpne filen - "fgetsResult" skal være en 1 - du kan teste

/ / Som for fullstendighet hvis du ønsker det

fgetsResult = $ fgets (str, FP);/ / Konvertere strengen til et heltall - "sscanfResult" bør også være en 1, og

/ / Kan du teste det, også,

sscanfResult = $ sscanf (str, "% d", NowInSeconds);/ / Lukk filen ...

$ Fclose (FP); / / lukker filen/ / Bruker tallet som et frø ...

prosess:: self.srandom (NowInSeconds);
 

Welcome to EDABoard.com

Sponsor

Back
Top