stránka>

R

rsrinivas

Guest
Zdravím všechny
jsem vybudoval rejstřík soubor, který má inicializovat na nulu na reset.
tedy pole 16 registrů, které jsou široké 64 bitů každý.
howdo i inicializovat je na reset.

Modul regfil1 (CLK, RST, addrread, addrwrite, DIN, writep, readp, dout);
vstup CLK;
vstup RST;
vstup [63:0] DIN;
vstup readp;
vstup writep;
vstup [04:00] addrread;
vstup [04:00] addrwrite;
výkon [63:0] dout;

parametr MAX_COUNT = 5'b01111; / / nejvyšší adrese v registru souboru.

reg podepsán [63:0] dout;

Vždy @ (posedge ČLK) / / test zde funguje pouze na posedge CLK
začíná: rst_blk
integer i;
if (RST)
pro (i = 0; i <= MAX_COUNT, i = i 1)
začít
regbank <= 64'h0000000000000000;
konec
else if (writep == 1'b1) začíná
regbank [addrwrite] <= din;
konec
konec

Vždy @ (posedge CLK)
začít
if (readp == 1'b1 & &! RST) začíná
dout <= regbank [addrread];
konec
konec

endmodulePracuje pouze na posedge CLK, není pro vedení prací na každém posedge CLK nebo je současně, tj. v posedge CLK celý pro smyčky se provádí
jakýchkoli změn nebo návrhy pls

 
Pro vedení dostane popraven v jednom posedge CLK, když RST je vysoká.

 
tak na jednom posedge CLK-li reset je vysoká celý reg banka bude nulový?

 
rsrinivas napsal:

tak na jednom posedge CLK-li reset je vysoká celý reg banka bude nulový?
 
Mám simulované v NCsim ale simulátor nevykazuje hodnota přiřazená na Reset.
Jsem trochu zmatený.

 
Váš kód nedefinuje regbank.Potřebuješ něco jako toto:
reg [63:0] regbank [0: MAX_COUNT];

Pokud jste zaměřením Xilinx FPGA (možná jiní příliš), dávejte pozor, aby vaše single-cyklus reset přinutí syntezátor provést regbank jak 1024 flip-obvody a spoustu multiplexery.

 
Hi echo
Díky za korekci.
Mám to v mém kódu jsem zapomněl vložit ere.
U říci tat mnoho zdrojů bude spotřebována v pořádku.
(64 * 16 = 1024 FF je).
Mám spartánsky 3e.
jiné než zdroj wat problémy použití může dojít.

na zdraví
Srinivas

 
rsrinivas napsal:

Mám simulované v NCsim ale simulátor nevykazuje hodnota přiřazená na Reset.

Jsem trochu zmatený.
 
Jen jsem si všiml, že vaše adresa autobusy 5 bitů, ale váš MAX_COUNT je pouze 15.To se zdá divné, ale možná jste to udělal záměrně, i když původně řekl jen 16 registrů.Pět bitů znamená 32 rejstříků a 2048 flip-flopy.V takovém případě regbank definice by měla být:
reg [63:0] regbank [0:31];

Předpokládám, že tam žádný problém s náročné spoustou registrů a multiplexery, pokud máte dostatek místa ve vašem FPGA, a pokud vám nevadí, že snížení rychlosti v důsledku vysoké fan-out a dlouhé trasy.

I směrovány do Spartan-3E, a Quick-a-špinavé post-simulace trasy vypadá ok.

 
Ahoj
díky 4 thereply.
Kód jsem vyslán ere je jen hrubý, co jsem napsal.
reg banka je Wat jsem hledal, je v pro design, která drží dočasné hodnoty.
Mám možnost mít dualport ram také.
který z nich je lepší žádné sugesstions.

 

Welcome to EDABoard.com

Sponsor

Back
Top