Verilog kódu pipeline sčítačka

K

kumar_eee

Guest
Ako realizovať potrubie architektúry pomocou Verilog kódovanie? ...

 
Vezmite si svoje kombinačné logiku, a vložte banky registrov medzi nimi.

 
Dúfam, že to bolo jednoduché, ale to nie je tak jednoduchý, akokoľvek na veľmi jednoduchej úrovni pipelining, budete musieť duplikovať logiku niekedy a ďalších systémov, musíte urobiť systolického design, aby mohla zachrániť latencie a priestoru ..nie je jednoduchá úloha, ale môžete začať moneychaser nápad.

 
môžete pridať DfF v každej fáze n synchronizovať ich všetky na stúpajúce hrany CLK .. týmto spôsobom, vaše dáta budú cestovať Thro 'každej fáze.

 
Myslím, že problém nie je tak jednoduché.

Pre n-systémovej úrovni potrubia v prípade podmienečného skoku treba splachovacie pipline frontu, poskytujú omeškania s (n-1) a ďalšie cykly zaťaženia potrubia fronta n usmernenia skočil umiestnenie.

V prípade, že chcete pridať BTC (pobočka Traget Cache) jednotky odstrániť ďalšie (n-1) vykonávania cyklov po každých podmienené skoky, je potrebné opísať ďalšie BTC zariadenia a ďalšie logické prepojenie s potrubím etáp.

V niektorých fázach prípade potrubím času a výsledok závisí takže musíte modelu všetky tieto zložité vzťahy.

Pipline etapy sú veľmi zložité pre presné modelovanie a softvéru simultion.Niektoré simulátory používajú veľmi zjednodušený model výkone na urýchlenie simulácie procesu.

Ak chcete presne model potrubia Postup môžete očakávať veľa tvrdej práce.

 
môžete pridať DfF v každej fáze n synchronizovať ich všetky na stúpajúce hrany CLK .. týmto spôsobom, vaše dáta budú cestovať Thro 'každej fáze

 
Môže niekto navrhnúť nejaké knihy pre túto realizáciu

 
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 14:31:04 09/28/06
/ / Design Name:
/ / Module Name: SLT16
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
modul SLT (y, x0, x1);

príkon [7:0] x0, x1;
Výstup reg [7:0] y;

Vždy @ (x0 a x1)
začať
if (x1 <x0)
y = 8'b1;
iné
y = 8'b0;
koniecendmodule
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 23:02:45 10/02/06
/ / Design Name:
/ / Module Name: Registrácia
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
Modul Register (out, in, zaťaženie, hodiny, reset);

Výstup reg [7:0] out;
príkon [7:0] s;
vstupné zaťaženie, hodiny, reset;

Vždy @ (posedge hodiny alebo posedge reset)
if (reset)
out = 8'b0000_0001;
iné
if (zaťaženie)
out = in;

endmodule
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 23:12:34 10/02/06
/ / Design Name:
/ / Module Name: PC
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
Modul ProgCounter (out, clock, reset);

Výstup reg [7:0] out;
vstup hodiny, reset;

Vždy @ (posedge reset alebo posedge hodiny)
if (reset)
z <= 8'b0000_0000;
iné
z <= z 1;endmodule
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 23:12:34 10/02/06
/ / Design Name:
/ / Module Name: PC
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
Modul ProgCounter (out, clock, reset);

Výstup reg [7:0] out;
vstup hodiny, reset;

Vždy @ (posedge reset alebo posedge hodiny)
if (reset)
z <= 8'b0000_0000;
iné
z <= z 1;endmodule
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 23:12:34 10/02/06
/ / Design Name:
/ / Module Name: PC
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
Modul ProgCounter (out, clock, reset);

Výstup reg [7:0] out;
vstup hodiny, reset;

Vždy @ (posedge reset alebo posedge hodiny)
if (reset)
z <= 8'b0000_0000;
iné
z <= z 1;endmodule
`časovom 1ns / 1PS
////////////////////////////////////////////////// //////////////////////////////
/ / Company:
/ / Engineer:
/ /
/ / Create Date: 23:12:34 10/02/06
/ / Design Name:
/ / Module Name: PC
/ / Názov projektu:
/ / Target Device:
/ / Tool verzia:
/ / Popis:
/ /
/ / Závislosti:
/ /
/ / Revision:
/ / Revision 0.01 - súbor vytvorený
/ / Ďalšie komentáre:
/ /
////////////////////////////////////////////////// //////////////////////////////
Modul ProgCounter (out, clock, reset);

Výstup reg [7:0] out;
vstup hodiny, reset;

Vždy @ (posedge reset alebo posedge hodiny)
if (reset)
z <= 8'b0000_0000;
iné
z <= z 1;endmodule
nabudúce dám celý kód

 

Welcome to EDABoard.com

Sponsor

Back
Top