Initialise nesinkroni Šram

G

grubby23

Guest
Bok

Do sada sam uvijek koristi BRAM za pamćenje.To se može lako initialise s vrijednostima.
Ali sada imam problem da mi treba jedan nesinkroni memorija za čitanje podataka out.

Itko ideju kako ja mogu initialise ove vrste RAM-a?Ja sam koristeći XST 7,3 za sintezu.
Hvala za korisne komentare

 
Zdravo,

Ako je to Šram, u početku se morate initialise pisanjem nula na svim lokacijama uz pomoć odgovarajuće kontrolne signale poput izraslina, CE i adrese.

Ako trebate više informacija u ne ustručavajte se pitati mene.

Hvala,
N. Muralidhara

 
muralicrl wrote:

Zdravo,Ako je to Šram, u početku se morate initialise pisanjem nula na svim lokacijama uz pomoć odgovarajuće kontrolne signale poput izraslina, CE i adrese.Ako trebate više informacija u ne ustručavajte se pitati mene.Hvala,

N. Muralidhara
 
Možete stvoriti veliku nesinkroni RAM pomoću distribuiranih RAM.Odnose se na odjeljak "ovnova i ROMovi HDL Coding Tehnike" u Vašoj XST Korisnički priručnik i potraga za riječ "distribuira" ili "nesinkroni".

Također možete koristiti Core Generator za izradu distribuiranih RAM.Pregledajte "Osnovni elementi - Memory Elementi" odjeljak.JA dont 'opoziv jezgri koja je najbolji izbor.

Međutim, veliki distribuira RAM troši puno logike tkanina, te je potrebno neko vrijeme da se sintetizirati, a ona će obavljati prilično sporo.Ako je moguće, pokušajte izmjenu projekta tako da se može koristiti puno ljepši sinkroni BRAMs.

Ne morate dodati na svoj logici FPGA design samo inicijalizirate RAM sa nula ili neki konstantan podataka.FPGA konfiguracija je proces može inicijalizirati RAM za vas.Ima raznih načina određivanja željene inicijalizacija podataka, kao što je koristeći HDL početnog izvještaja ili atributa, ili temeljni generator inicijalizacija kartoteka.Neke od ovih metoda prikazani su u "ovnova i ROMovi HDL Coding Tehnike" odjeljak.

 
echo47 wrote:Ne morate dodati na svoj logici FPGA design samo inicijalizirate RAM sa nula ili neki konstantan podataka.
FPGA konfiguracija je proces može inicijalizirati ovnova za vas.
Ima raznih načina određivanja željene inicijalizacija podataka, kao što su HDL početnog izvještaja ili atributa, ili temeljni generator inicijalizacija kartoteka.
 
Prošlo je neko vrijeme otkad sam se s coregen. VE datoteke, ali JA misliti svoj. VE datoteka bi trebala biti dovoljna za oba simulacija i sinteze,
uz pretpostavku svih vaših alati su ispravno instaliran.Ne biste trebali staviti inicijalizacija podataka bilo gdje drugdje.

Različiti atributi mogu INIT inicijalizirate podataka u instantiated biblioteka primitivac poput RAMB16_S18_S18, ali knjižnica ne daje bilo kakve velike distribuirane ovna, pa INIT vjerojatno neće biti korisne za vas.

Također pogledajte "Pokretanje RAM Direktno u HDL Code" u vama XST Korisnički priručnik.To pokazuje kako stvoriti inicijalizirane RAM sa VHDL polje, bez upotrebe jezgre generatora ili. VE datoteku.To osobito primjer izgleda sinkroni, ali inicijalizacije Tehnika bi trebala raditi s asinkroni raspodijeljeni RAM previše.

 
echo47 wrote:Također pogledajte "Pokretanje RAM Direktno u HDL Code" u vama XST Korisnički priručnik.
To pokazuje kako stvoriti inicijalizirane RAM sa VHDL polje, bez upotrebe jezgre generatora ili. VE datoteku.
To osobito primjer izgleda sinkroni, ali inicijalizacije Tehnika bi trebala raditi s asinkroni raspodijeljeni RAM previše.
 
Oh čekaj, ti
si pomoću ISE 7.3i.Nisam mogao a da ne koriste verziju 7 zbog bugova.HDL u memoriju inicijalizacija svibanj biti nepodržani ili ne radi ispravno.Mogu li nadograditi na modernu verziju?Sam vidio veliko poboljšanje u verziji 8 i 9.

Ne govorim VHDL.Ovaj Verilog 64x16 asinkroni raspodijeljeni ROM synthesizes fino u ISE 9.2.04i.Veći poslu ROMovi previše, kod se jednostavno dobiva više:
Code:

modul vrh (addr, podaci);

input [5:0] addr;

reg [15:0] rom [0:63];

output [15:0] podaci;početno se početi

ROM-a [0] = 64313; rom [1] = 45804; rom [2] = 16813; rom [3] = 31955;

ROM-a [4] = 55950; rom [5] = 38894; rom [6] = 12950; rom [7] = 8497;

rom [8] = 13144; rom [9] = 41124; rom [10] = 16391; rom [11] = 54947;

ROM-u [12] = 4544; rom [13] = 51590; rom [14] = 29238; rom [15] = 63755;

ROM-u [16] = 17495; rom [17] = 49541; rom [18] = 43365; rom [19] = 18498;

ROM-u [20] = 27931; rom [21] = 26724; rom [22] = 50540; rom [23] = 59099;

ROM-u [24] = 63746; rom [25] = 6375; rom [26] = 16127; rom [27] = 63003;

ROM-u [28] = 5513; rom [29] = 53091; rom [30] = 22325; rom [31] = 32963;

ROM-u [32] = 59740; rom [33] = 56116; rom [34] = 56953; rom [35] = 37646;

ROM-u [36] = 7179; rom [37] = 43120; rom [38] = 5928; rom [39] = 47343;

ROM-u [40] = 65150; rom [41] = 62776; rom [42] = 9213; rom [43] = 64208;

ROM-u [44] = 53917; rom [45] = 14185; rom [46] = 59718; rom [47] = 51542;

ROM-u [48] = 63828; rom [49] = 51044; rom [50] = 34328; rom [51] = 12753;

rom [52] = 46895; rom [53] = 61784; rom [54] = 39033; rom [55] = 53040;

ROM-u [56] = 53926; rom [57] = 794; rom [58] = 47707; rom [59] = 27823;

rom [60] = 9949; rom [61] = 74; rom [62] = 561; rom [63] = 54549;

krajdodijeliti podataka = rom [addr];

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top