Verilog bir dizi yapı başlatmak nasıl?

Y

yuenkit

Guest
örneğin, Reg [7:0] mem [00:03]; 1. Ben mem = 0 elemanını her başlatmak istiyorum, nasıl yapmalı? 2. Ben mem başlatmak istediğiniz şekilde mem [0] = 2, mem [1] = 4, mem [2] = 1, mem [3] = 5. bu nasıl yapılacak?
 
Bir dosyadaki tüm değerleri yazmak ve $ readmemh komutunu kullanın
 
$ Readmemh veya $ readmemb sentezlenebilir değildir. u simülasyon amaçlı kullanabilirsiniz. nasıl u sentezi bölümünde gerçekleştirmek için? u sentezi için basit bir RAM tasarlar. Aravind
 
sen bellek kayıt kullanıyorsanız, başlatma için for döngüsünü kullanın lütfen!
 
Ben JJWW110 anlayamıyorum. u basit bir örnek verebilirim. teşekkürler
 
i jjww dedi tahmin et ne oldu
Code:
 parametresi MEM_SIZE = 1024 reg [7:0] mem [0: MEM_SIZE -1] ilk (k = 0, k <MEM_SIZE - 1, k = k + 1) için başlar başlar mem [ k] = 0; end
 
Bu doğru mudur? Aslında tek bir bit sinyal, bir otobüs sinyali olarak mem tedavi gibi görünüyor.
 
Peki ben sadece mem biraz birini başlatmak isterseniz? Örneğin, 0 tüm mem dizi bit 0 başlatmak istiyor?
 
Kod: Parametre MEM_SIZE = 1024 reg [7:0] mem [0: MEM_SIZE -1] ilk (k = 0, k <MEM_SIZE, k = k + 1) için başlar başlar mem [k] = 8'h00; end end
 
olsun reg [7:0] mem [0: MEM_SIZE -1] mem ram bellek olarak almak mem ya verilog kendisi adına bir koç dosyası olmalıdır? im 512 X 8 ram kitaplığı (dosya adı RAM512X8.v) yukarıdaki gibi bir dizi yapı kullanarak yazma veya dahil etmek için nasıl (ram [7:0] ---) sahip
 
@ Bu gibi bit 0 intialize olabilir weng, parametre MEM_SIZE = 1024 reg [7:0] mem [0: MEM_SIZE -1] ilk (k = 0, k <MEM_SIZE - 1, k = k + 1) için başlar başlar mem [k] [0] = 0; end end
 
Aslında $ readmemh ve $ readmemb sentezlenebilir. Gibi Sentez araçları Pro izin Synplify başlangıç ​​ sadece bu işlevler için ifadeler. Ben başlatmak nasıl bir örnek 2-D array mem dosyası ile contents.txt : [KOD] reg [31:0] mem [0:4095]; İlk readmemh $ ("contents.txt", mem); [/CODE] Bu durumda, TXT dosya sadece onaltılık karakter olmalıdır ve tüm konumlar için içeriği olması gerekmez. Örneğin, böyle bir şey sadece ilk konumu başlatılır: [KOD] F3FA0B59 [/CODE]
 
i reg dizi [7:0] arr [15:00] döngü kullanarak? iniatialize istiyorum Herkes bana lütfen yardımcı ..................
 
i reg dizi iniatialize istiyorum [7:0] arr [15:00] döngü kullanarak? Herkes bana lütfen .................. Eğer sıfır ya da olanlar ile tüm diziyi başlatmak isterseniz
Merhaba jhunjhun, o zaman tarafından sunulan yaklaşımı kullanabilirsiniz yardım jjww110 (yukarıya bakınız). Bir dosyada başlatılırken veri varsa, o zaman görevler readmemh veya readmemb (çok yukarıya bakın) kullanın. Eğer sorunun daha iyi bir görüntü için başlangıçtaki içeriği bir örnek paylaşabilir misiniz?
 
benim problem: reg [7:0] arr [15:00]; reg [7:0] i; reg [01:00] devlet; daima @ (clk) 2'b00 (devlet) durumda başlar: begin / / arrary arr başlatma / / dizi
 
jhunjhun, bir devlet makine dayalı bir sentezlenebilir bellek başlatıcı için, ben sadece adresleme değişkeni i başlatmak için tavsiye ederim. [KOD] girişi clk, reset, / / ​​Declare devletler parametresi S0 = 0, S1 = 1, S2 = 2, S3 = 3; / / max adresi (daha az kelime olabilir) parametresi MAXADDRESS = 8'bFF Declare; parametre FILLINGVALUE = 16'b0000; reg [7:0] arr [15:00]; reg [7:0] i; reg [01:00] devlet; daima @ (posedge clk ya posedge sıfırlama) başlamak if (reset) durumu
 
teşekkürler .......... Ama i arr incrementeted gibi gibi diziye veri doldurmak istiyorsanız
 
Aslında $ readmemh ve $ readmemb sentezlenebilir. Gibi Sentez araçları Pro izin Synplify başlangıç ​​ sadece bu işlevler için ifadeler. Ben başlatmak nasıl bir örnek 2-D array mem dosyası ile contents.txt : [KOD] reg [31:0] mem [0:4095]; İlk readmemh $ ("contents.txt", mem); [/CODE] Bu durumda, TXT dosya sadece onaltılık karakter olmalıdır ve tüm konumlar için içeriği olması gerekmez. Örneğin, böyle bir şey sadece ilk konumu başlatılır: [KOD] F3FA0B59 [/CODE]
k, 1st locatioin için, nasıl tüm bellek konumlarını başlatmak için .....
 
Alvaro, ben daha sonra bir yıldan fazla, ve ben bu aynı başlatma için bir kod ararken ben bu yazı bulundu "gelecek" nesiller :) sadece gönderme kulüpler, ve belki çok küçük bir izin için yararlı olabilir biliyorum katkısı da: S1 devlet, ben bunu test etmek için daha iyi olacağını düşünüyorum i bir eşit veya daha büyük Eğer MAXADDRESS yerine daha eşittir , arızalara karşı dayanıklılığı arttırmak için (MAXADDRESS iki güç değilse). Gibi Belki bir şey: [KOD] ... S1: arr = MAXADDRESS) başlar devlet başlayacak
 

Welcome to EDABoard.com

Sponsor

Back
Top