Kako se generira slučajni broj između 44 do 55?

V

venkatec

Guest
Hi Dear Frnds,

Kako se generira slučajni broj između 44 do 55 u VHDL Verilog ili?

 
koristeći LFSR (Linear feedback Shift Register) može generirati u pseudo slučajnih brojeva iz njih koristite 3 bita do 44, tako da će u slučajnih brojeva 44
- 52, zatim dodati dvije različite bita iz LFSR registrirati u ovoj će dobiti između 44 slučajnih brojeva i 55.

 
Mislim da ako koristite LFSR da imaju vrlo dug period treba dati jednolike distribucije, ali kao što govore, nego što svibanj ne.Ali od onoga što drugi način je da se raspodjela dobiti uniformu?

 
Dodavanjem dviju slučajnih brojeva, vi već promijenili raspodjelu.Možete koristiti kartiranje od 1 ... 2 ^ n-1 LFSR broj dometu do 44 .. 55 od stola ili mod 12 operacija.U slučaju dovoljnog LFSR bitwidth, raspodjela unsymmetry je samo mali.Padaju na brojeve neľeljenih je još jedan izbor.

 
Žao mi je što sam u mogućnosti da biste dobili koliko ste generiranjem slučajnih brojeva, možete ga razraditi plz više ...

 
LFSR slučajni broj generatora imaju jednolike distribucije preko njihovih broj rasponu od 1 ... 2 ^ n-1, gdje je n broj ist stadija.

Da biste jednoliko distribuciju preko raspona 44 .. 55 respectvively 0 .. 11, potreban Vam je preslikavanje koje čuva uiniformity.

Bio sam raspravlja kartiranje različitih mogućnosti:
npr. stol ili navratiti mod 12 operacija.Vaš originalni prijedlog stvara i kartiranje, ali to krši jednoobraznost i ima raspon od 0 .. 10 umjesto potrebnih 0 .. 11.

 
Hvala za odgovore,

Kako genrate slučajna ni između bilo kojeg raspon (Ex: Uzmite neke rane 55
- 71) koristeći naredbu u $ slučajnih Verilog.

 
Hi Frnd,

JA tryed koristiti sintaksu ste dali, ali njegove sstamparije različite vrijednosti
ne koje su u rasponu
broj slijedi ovdje
-----------
modul test ();
reg a;
reg B;
reg c;
žica out;
reg [7] raspon;

uvijek
repeat (24)
započeti
# 100
a = 1'b1;
b = 1'b1;# 100
a = 1'b0;
b = 1'b1;

krajUvijek @ (a ili b)
započeti
repeat (24)
započeti
raspon = 55 $ random% 16;
kraj
$ monitor ( "‰ d", raspon);
kraj

endmoduleoutput slijedi ovdje? d 66
#? D 47
#? D 58
#? D 54
#? D 67
#? D 67
#? D 48
#? D 46
#? D 57
#? D 59
#? D 64
#? D 49
#? D 63
#? D 50
#? D 69
#? D 69
#? D 42
#? D 41
#? D 62
#? D 55
#? D 55
#? D 44
#? D 51
#? D 47
#? D 41
#? D 44
#? D 42

Možete li popuštanje mene rješenje ispraviti?

Hvala,
venkat kAdded nakon 1 sat 6 minuta:Hi Frnd,

Dobio sam rješenje za ovaj

moramo koristiti naredbu slučajnih ovako.
bismo trebali koristiti zagrade () kao ispod.
% 16;

raspon = 55 $ (random)%
16;

To daje vrijednosti između 55
- 77Hvala,
venkat kAdded nakon 5 minuta:Spomenuto se daje jedna vrijednost između 55
- 71
ne 55 do 77 ...

 

Welcome to EDABoard.com

Sponsor

Back
Top