inicializovat asynchronní SRAM

G

grubby23

Guest
Nazdar

Až doteď jsem vždy používá Bram na paměti.To by mohlo být jednoduše inicializovat s hodnotami.
Ale teď mám problém, že potřebuju asynchronní paměti číst data.

Kdokoli nápad jak můžu inicializovat tento druh ram?Jsem pomocí XST 7.3 pro syntézu.
Díky za užitečné komentáře

 
Ahoj,

Pokud se jedná o SRAM, na začátku musíte inicializovat písemně nuly ve všech místech pomocí řádné řídicí signály, jako Wen, CE a adresy.

Je-li u potřebovat více info neváhejte a zeptejte se mě.

Děkujeme vám,
N. Muralidhara

 
muralicrl napsal:

Ahoj,Pokud se jedná o SRAM, na začátku musíte inicializovat písemně nuly ve všech místech pomocí řádné řídicí signály, jako Wen, CE a adresy.Je-li u potřebovat více info neváhejte a zeptejte se mě.Děkujeme vám,

N. Muralidhara
 
Můžete si vytvořit velké asynchronní RAM pomocí distribuované RAM.V kapitole "RAM a ROM HDL Kódovací techniky" ve vašem XST uživatelská příručka, a hledat slovo "distribuováno", nebo "asynchronní".

Můžete také použít Core Generátoru vytvářet distribuované RAM.Lidé "základní prvky - Memory Elementy" sekci.I
don't připomínají jádro, které je nejlepší volba.

Nicméně, velké distribuované RAM spotřebovává hodně logické struktury, a to trvá jen chvíli syntetizovat, a bude plnit spíše pomalu.Pokud je to možné, pokuste se změnit svůj projekt a může tak používat mnohem hezčí synchronní BRAMs.

Nemáte-li přidat do svého logiky FPGA designu právě pro inicializaci RAM s nulami nebo některé konstantní data.FPGA konfiguraci lze inicializovat RAM pro vás.Existují různé způsobem zadání požadovaného inicializační data,
například pomocí HDL prvotní prohlášení nebo atributy, nebo jádro generátoru inicializační soubory.Některé z těchto metod jsou uvedeny v "paměti RAM a ROM HDL Kódovací techniky" sekci.

 
echo47 napsal:Nemáte-li přidat do svého logiky FPGA designu právě pro inicializaci RAM s nulami nebo některé konstantní data.
FPGA konfiguraci lze inicializovat skopců pro vás.
Existují různé způsobem zadání požadovaného inicializační data, jako jsou HDL původní prohlášení nebo atributy, nebo jádro generátoru inicializační soubory.
 
Je
to již nějakou dobu, protože jsem použil coregen s příponou. COE obrázek, ale myslím si, že vaše. COE souboru by měla být dostatečná pro simulaci a syntézu,
za předpokladu, všechny své nástroje jsou správně nainstalovány.Ty by neměly mít, aby vaše inicializačních dat kdekoliv jinde.

Jednotlivé atributy lze INIT inicializace dat v knihovně instance primitivní jako RAMB16_S18_S18, ale knihovna neposkytuje žádné velké distribuované paměti RAM, takže INIT zřejmě nebude pro vás užitečné.

Viz také "Inicializace RAM Přímo v HDL kodex" ve vás XST Uživatelská příručka.Ukazuje, jak vytvořit inicializované RAM s VHDL array, bez využití jádra nebo generátor. COE souboru.Konkrétní příklad vypadá synchronní, ale inicializace technique by měly pracovat s asynchronním distribuované RAM taky.

 
echo47 napsal:Viz také "Inicializace RAM Přímo v HDL kodex" ve vás XST Uživatelská příručka.
Ukazuje, jak vytvořit inicializované RAM s VHDL array, bez využití jádra nebo generátor. COE souboru.
Konkrétní příklad vypadá synchronní, ale inicializace technique by měly pracovat s asynchronním distribuované RAM taky.
 
Oh čekat, že jste pomocí ISE 7.3i.Nemohl jsem použít verzi 7, protože chyby.V HDL paměti inicializace může být nepodporovaném nebo nepracuje správně.Mohli byste přejít na moderní verzi?I've seen velké vylepšení ve verzi 8 a 9.

Nemluvím VHDL.To Verilog 64x16 asynchronních distribuovaných ROM synthesizes pokutu v ISE 9.2.04i.Větší ROM práce příliš, kód jednoduše dostane delší:
Kód:

Modul top (adresa, data);

Vstupní [5:0] adresa;

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

výstupní [15:0] data;Počáteční začít

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

konecpøiøadit data = rom [adresa];

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top