Xilinx DDR2 MIG 7 Vodnik za oceno zmogljivosti
Pomembna opomba: Ta PDF zapisa odgovorov, ki ga je mogoče prenesti, je na voljo za izboljšanje njegove uporabnosti in berljivosti. Pomembno je omeniti, da so zapisi odgovorov Webvsebino, ki temelji na vsebini, ki se pogosto posodablja, ko so na voljo nove informacije. Opozarjamo vas, da obiščete tehnično podporo Xilinx Webstran in ponovnoview (Xilinx Answer 63234) za najnovejšo različico tega odgovora.
Uvod
Zaradi načina, kako so zasnovani pomnilniki DDR2 in DDR3 in je zasnovan krmilnik serije MIG 7, zmogljivost ni enostavna.
Zahteva razumevanje različnih časovnih parametrov Jedec in arhitekture krmilnika, zato boste morali zagnati simulacije, da dobite ocene.
Splošno načelo za določanje zmogljivosti je enako, vendar ta dokument ponuja preprost način za doseganje učinkovitosti z uporabo MIG example načrtovanje s pomočjo preskusne naprave in dražljaja fileje priloženo tukaj.
Učinkovita pasovna širina
Podatkovno vodilo DRAM doseže skoraj najvišjo pasovno širino le med izbruhi branja in pisanja, njegova obremenitev pa znižuje dejansko hitrost prenosa podatkov.
Nekaj bivšihamprežijski stroški so:
- čas vnaprejšnjega polnjenja za dostop do vrstic v isti banki (naslov dostopa ni v isti vrstici – zadetek strani)
- čas obnovitve pisanja za spremembo dostopa za pisanje na branje
- čas obračanja vodila za prehod iz dostopa za branje v dostop za pisanje
Efektivna pasovna širina = najvišja pasovna širina * učinkovitost
MIG Design Generation
Glejte 586. poglavje UG1 za podrobnosti o MIG IP in exampgeneracija oblikovanja.
Preden zaženete simulacijo zmogljivosti serije MIG 7, naredite naslednje, da se prepričate, da je vaše simulacijsko okolje v redu. Odprite MIG example oblikujte in preslikajte ustrezne knjižnice, zaženite simulacijo in zagotovite, da lahko v prepisu vidite sporočilo »test opravljen«.
Za predstavitev toka sem ustvaril MIG IP za xc7vx690tffg1761-2 in poklical exampoblikovanje.
Dve stvari, ki ju je treba upoštevati, sta bit pomnilniškega naslova in izbira preslikave pomnilniškega naslova.
Na primerample, pod spustnimi možnostmi pomnilniškega dela sem izbral MT41J128M8XX-125.
Za izbrani del pomnilnika s slike 1 je vrstica = 14, stolpec = 10 in banka = 3, torej app_addr_width = vrstica + stolpec + banka + rang = 28
Izberete lahko stolpec BANK_ROW_COLUMN ali ROW BANK.
Ostal sem v stolpcu ROW BANK, ki je privzeta preslikava naslova.
Exampsimulacija oblikovanja s testno napravo, ki jo je mogoče sintetizirati
Pod nastavitvami simulacije izberite QuestaSim/ModelSim Simulator in poiščite lokacijo prevedenih knjižnic.
Za podrobnosti o kazanju na namestitveno pot orodij tretje osebe, izbiri ciljnega simulatorja ter prevajanju in preslikavi knjižnic se lahko obrnete na (UG900) Vivado Design Suite Uporabniški priročnik Logična simulacija
Zaženite simulacijo prek grafičnega uporabniškega vmesnika (kliknite zavihek Zaženi simulacijo v upravitelju projekta) in se prepričajte, da je v prepisu prikazano sporočilo »test opravljen«.
Modifikacije simulacije zmogljivosti RTL
- Z desno miškino tipko kliknite zavihek virov, izberite »dodaj ali ustvari vire simulacije« in poiščite mig7_perfsim_traffic_generator.sv file in kliknite Dokončaj, da ga dodate.
- Z desno miškino tipko kliknite zavihek virov, izberite »dodaj ali ustvari vire simulacije«, poiščite perfsim_stimulus.txt in kliknite Dokončaj, da ga dodate.
- Komentirajte bivšegaampprimerek le_top v sim_tb_top.v file.
- Dodajte spodnje vrstice RTL v sim_tb_top,v
- lokalni param APP_ADDR_WIDTH = 28;
- localparam APP_DATA_WIDTH = 64;
- lokalni param APP_MASK_WIDTH = APP_DATA_WIDTH / 8;
- localparam MEM_ADDR_ORDER = “BANK_ROW_COLUMN”;
- lokalni param BANK_WIDTH = 3;
- lokalniparam RANK_WIDTH = 1;
- žica [APP_ADDR_WIDTH-1:0] c0_ddr3_app_addr;
- žica [2:0] c0_ddr3_app_cmd;
- žica c0_ddr3_app_en;
- žica [APP_DATA_WIDTH-1:0] c0_ddr3_app_wdf_data;
- žica c0_ddr3_app_wdf_end;
- žica [APP_MASK_WIDTH-1:0] c0_ddr3_app_wdf_mask;
- žica c0_ddr3_app_wdf_wren;
- žica [APP_DATA_WIDTH-1:0] c0_ddr3_app_rd_data;
- žica c0_ddr3_app_rd_data_end;
- žica c0_ddr3_app_rd_data_valid;
- žica c0_ddr3_app_rdy;
- žica c0_ddr3_app_wdf_rdy;
- žica c0_data_compare_error;
- žica ui_clk;
- žica ui_clk_sync_rst;
- wire app_sr_req = 0;
- wire app_ref_req = 0;
- wire app_zq_req =0;
- žica c0_app_wdf_mask =0;
Instanciranje pomnilniškega krmilnika FPGA
mig_7series_0_mig u_mig_7series_0_mig (
// Vrata pomnilniškega vmesnika
- .ddr3_addr (ddr3_addr_fpga),
- .ddr3_ba (ddr3_ba_fpga),
- .ddr3_cas_n (ddr3_cas_n_fpga),
- .ddr3_ck_n (ddr3_ck_n_fpga),
- .ddr3_ck_p (ddr3_ck_p_fpga),
- .ddr3_cke (ddr3_cke_fpga),
- .ddr3_ras_n (ddr3_ras_n_fpga),
- .ddr3_reset_n (ddr3_reset_n),
- .ddr3_we_n (ddr3_we_n_fpga),
- .ddr3_dq (ddr3_dq_fpga),
- .ddr3_dqs_n (ddr3_dqs_n_fpga),
- .ddr3_dqs_p (ddr3_dqs_p_fpga),
- .init_calib_complete (init_calib_complete),
- .ddr3_cs_n (ddr3_cs_n_fpga),
- .ddr3_dm (ddr3_dm_fpga),
- .ddr3_odt (ddr3_odt_fpga),
// Vrata aplikacijskega vmesnika
- .app_addr (c0_ddr3_app_addr),
- .app_cmd (c0_ddr3_app_cmd),
- .app_en (c0_ddr3_app_en),
- .app_wdf_data (c0_ddr3_app_wdf_data),
- .app_wdf_end (c0_ddr3_app_wdf_end),
- .app_wdf_wren (c0_ddr3_app_wdf_wren),
- .app_rd_data (c0_ddr3_app_rd_data),
- .app_rd_data_end (app_rd_data_end),
- .app_rd_data_valid (c0_ddr3_app_rd_data_valid),
- .app_rdy (c0_ddr3_app_rdy),
- .app_wdf_rdy (c0_ddr3_app_wdf_rdy),
- .app_sr_req (app_sr_req),
- .app_ref_req (app_ref_req),
- .app_zq_req (app_zq_req),
- .app_sr_active (app_sr_active),
- .app_ref_ack (app_ref_ack),
- .app_zq_ack (app_zq_ack),
- .ui_clk (ui_clk),
- .ui_clk_sync_rst (ui_clk_sync_rst),
- .app_wdf_mask (c0_ddr3_app_wdf_mask),
// Vrata sistemske ure
- .sys_clk_i (sys_clk_i),
// Referenčna vrata ure
- .clk_ref_i (clk_ref_i),
- .sys_rst (sys_rst)
- );
Instanciranje generatorja prometa z zmogljivostjo
mig7_perfsim_traffic_generator#
(
.APP_DATA_WIDTH (APP_DATA_WIDTH),
.COL_WIDTH (COL_WIDTH),
.ROW_WIDTH (ROW_WIDTH),
.RANK_WIDTH (RANK_WIDTH),
.BANK_WIDTH (BANK_WIDTH),
.MEM_ADDR_ORDER (MEM_ADDR_ORDER),
.tCK (tCK),
.ADDR_WIDTH (APP_ADDR_WIDTH)
)
u_traffic_gen
(
.clk (ui_clk),
.rst (ui_clk_sync_rst),
.init_calib_complete (init_calib_complete),
.cmp_error (c0_data_compare_error),
.app_wdf_rdy (c0_ddr3_app_wdf_rdy),
.app_rd_data_valid (c0_ddr3_app_rd_data_valid),
.app_rd_data (c0_ddr3_app_rd_data),
.app_rdy (c0_ddr3_app_rdy),
.app_cmd (c0_ddr3_app_cmd),
.app_addr (c0_ddr3_app_addr),
.app_en (c0_ddr3_app_en),
.app_wdf_mask (c0_ddr3_app_wdf_mask),
.app_wdf_data (c0_ddr3_app_wdf_data),
.app_wdf_end (c0_ddr3_app_wdf_end),
.app_wdf_wren (c0_ddr3_app_wdf_wren)
);
- 5. Spremenite APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH in BANK_WIDTH glede na vašo izbiro dela pomnilnika.
Vrednosti lahko dobite pri _mig.v file. - Rumeno poudarjeno ime primerka mig_7series_0_mig se lahko razlikuje glede na ime vaše komponente med ustvarjanjem IP-ja, preverite, ali ste izbrali drugo ime, in ga ustrezno spremenite.
- Ko je IP ustvarjen, odprite _mig.v file in navzkrižno preveri morebitne razlike v imenih signalov LHS in jih popravi.
- app_sr_req, app_ref_req in app_zq_req morajo biti inicializirani na 0.
- Kot bivšiample_top.v je komentiran in nov filedodani, boste verjetno videli »?« poleg
mig_7serija_0_mig.v file pod viri simulacije.
Za preslikavo pravilnega file, z desnim klikom mig_7series_0_mig.v izberite »Dodaj vire«, poiščite
/mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl
in dodajte mig_7series_0_mig_sim.v file. - Če vidite »?« za osnovno files, dodajte vse RTL files v mapah clocking, controller, ip_top,phy in UI.
- Ko so spremembe RTL opravljene in vse zahtevano filedodate virom simulacije, mora biti hierarhija podobna sliki 5.
The fileRdeče označeni so na novo dodani in »?« se pričakuje na modulih, povezanih z ECC, saj je v izbrani konfiguraciji pomnilnika možnost ECC onemogočena.
Spodbuda File Opis
Vsak vzorec dražljaja je 48-bitni, format pa je opisan na slikah 6-1 do 6-4.
Kodiranje naslova (naslov [35:0])
Naslov je kodiran v dražljaju, kot je prikazano na slikah 7-1 do 7-6. Vsa naslovna polja je treba vnesti v šestnajstiški obliki. Vsa naslovna polja imajo širino, ki je deljiva s štiri za vnos v šestnajstiški obliki. Preizkusna naprava pošlje le zahtevane bite naslovnega polja krmilniku pomnilnika.
Na primerample, v konfiguraciji z osmimi bankami se pomnilniškemu krmilniku pošljejo samo biti banke [2:0], preostali biti pa se prezrejo. Dodatni biti za naslovno polje so na voljo za vnos naslova v šestnajstiški obliki.
Potrditi morate, da vnesena vrednost ustreza širini dane konfiguracije.
- Naslov stolpca (Stolpec[11:0]) – Naslov stolpca v dražljaju je naveden na največ 12 bitov, vendar ga morate obravnavati na podlagi parametra širine stolpca, nastavljenega v vašem načrtu.
- Naslov vrstice (vrstica[15:0]) – Naslov vrstice v dražljaju je naveden na največ 16 bitov, vendar morate to obravnavati na podlagi parametra širine vrstice, nastavljenega v vašem načrtu.
- Naslov banke (Banka[3:0]) – Naslov banke v dražljaju je naveden v največ štirih bitih, vendar morate to nasloviti na podlagi parametra širine banke, nastavljenega v vašem načrtu.
- Naslov uvrstitve (Rank[3:0]) – Naslov ranga v dražljaju je zagotovljen do največ štirih bitov, vendar ga morate nasloviti na podlagi parametra širine ranga, nastavljenega v vaši zasnovi.
Naslov je sestavljen na podlagi parametra MEM_ADDR_ORDER najvišje ravni in poslan v uporabniški vmesnik
Ponovitev ukaza (Ponovitev ukaza [7:0])
Število ponovitev ukaza je število ponovitev zadevnega ukaza v uporabniškem vmesniku. Naslov za vsako ponovitev se poveča za 8. Največje število ponovitev je 128.
Preskusna naprava ne preverja meje stolpca in se ovije, če je med povečanji dosežena največja omejitev stolpca.
128 ukazov zapolni stran. Za kateri koli naslov stolpca, ki ni 0, število ponovitev 128 na koncu prečka mejo stolpca in se ovije na začetek naslova stolpca.
Uporaba avtobusa
Izkoriščenost vodila se izračuna na uporabniškem vmesniku ob upoštevanju skupnega števila branj in zapisov, pri čemer se uporabi naslednja enačba:
- BL8 potrebuje štiri cikle pomnilniške ure
- end_of_stimulus je čas, ko so vsi ukazi opravljeni.
- calib_done je čas, ko je kalibracija končana.
Example Vzorci
Ti bivšiamptemeljijo na MEM_ADDR_ORDER, nastavljenem na BANK_ROW_COLUMN.
Enotni vzorec branja
00_0_2_000F_00A_1 – Ta vzorec je eno samo branje iz 10. stolpca, 15. vrstice in druge banke.Enotni vzorec pisanja
00_0_1_0040_010_0 – Ta vzorec je en sam zapis v 32. stolpec, 128. vrstico in prvo banko.Enotno pisanje in branje na isti naslov
00_0_2_000F_00A_0 – Ta vzorec je enojno pisanje v 10. stolpec, 15. vrstico in drugo banko.
00_0_2_000F_00A_1 – Ta vzorec je eno samo branje iz 10. stolpca, 15. vrstice in druge banke
Več zapisov in branj z istim naslovom
0A_0_0_0010_000_0 – To ustreza 10 zapisom z naslovi, ki se začnejo od 0 do 80, kar je mogoče videti v stolpcu.
0A_0_0_0010_000_1 – To ustreza 10 branjem z naslovom, ki se začne od 0 do 80, kar je mogoče videti v stolpcu.
Prelom strani med pisanjem
0A_0_2_000F_3F8_0 – To ustreza 10 zapisom z naslovom stolpca, ovitim na začetek strani po enem pisanju.
Simulacija Performance Traffic Generatorja
Na tej točki ste končali z MIG exampsimulacija oblikovanja. To pomeni, da je vaša nastavitev simulacije pripravljena, da ste opravili spremembe RTL simulacije delovanja, da je nova hierarhija simulacije pravilna in da ste razumeli vzorce dražljajev. Ponovno zaženite simulacijo s 16 zapisi in branji v perfsim_stimulus.txt.
Zaženite vse, počakajte, da se potrdi signal init_calib_complete, in videli boste predlagano število zapisov in branj. Simulacija se bo nato ustavila.
Ko ste pozvani, da zapustite simulacijo, izberite Ne in pojdite v okno s prepisom, kjer si boste lahko ogledali statistiko uspešnosti.
Če izberete "zapusti simulacijo" statistika uspešnosti bo zapisana na a file imenovan mig_band_width_output.txt, ki se nahaja v sim_1/behave mapo.
Examppot imenika le:-
/mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Morda se sprašujete, zakaj procenttaguporaba e-vodila je samo 29. Znova zaženite simulacijo z enakimi nastavitvami IP, vendar samo spremenite dražljaj file na 256 pisanja in 256 branja
ff_0_0_0000_000_0
ff_0_0_0000_000_1
Zdaj boste videli procentetage kot 85, kar pomeni, da DDR3 nudi boljšo izkoriščenost vodila za dolga zaporedja pisanja in branja.
Splošni načini za izboljšanje učinkovitosti
Dejavnike, ki vplivajo na učinkovitost, lahko razdelimo na dva dela:
- Specifičen pomnilnik
- Poseben krmilnik
Slika 9 vam daje overview izrazov, ki so specifični za spomin.
Za razliko od pomnilnikov SRAM in blokovnih pomnilnikov zmogljivost DDR2 ali DDR3 ni samo največja hitrost prenosa podatkov.
Odvisno je od številnih časovnih dejavnikov, vključno z:
- tRCD: Zakasnitev ukaza vrstice (ali zakasnitev od ras do cas).
- tCAS(CL): Zakasnitev stroboskopskega naslova stolpca.
- tRP: Zakasnitev predpolnjenja vrstice.
- tRAS: Aktivni čas vrstice (aktivirajte za predhodno spremembo).
- tRC: Čas cikla vrstice. tRC = tRAS + tRP
- tRAC: Zakasnitev dostopa Radom. tRAC = tRCD + tCAS
- tCWL: Zakasnitev pisanja Cas.
- tZQ: Čas kalibracije ZQ.
- tRFC: Čas cikla osveževanja vrstice
- tWTR: Zakasnitev pisanja za branje. Čas zadnjega zapisa transakcije v ukaz Branje.
- tWR: Napišite čas okrevanja. Zadnja transakcija pisanja v čas predpolnjenja
Časovna razporeditev vseh navedenih parametrov je odvisna od vrste uporabljenega pomnilnika in stopnje hitrosti pomnilniškega dela.
Več podrobnosti o definicijah in časovnih specifikacijah lahko najdete v DDR2 DDR3 JEDEC ali v podatkovnem listu katere koli pomnilniške naprave.
Učinkovitost je v glavnem odvisna od načina dostopa do pomnilnika. Različni vzorci naslovov dajejo različne rezultate učinkovitosti.
Stroški časovnega pomnilnika
- Aktivacijski čas in čas predpolnjenja pri menjavi na nove banke/vrstice ali menjavi vrstic v isti banki.- Torej, če zmanjšate spremembo vrstic, lahko to odstrani tRCD in tRP.
- Pošiljanje neprekinjenih ukazov za pisanje ali branje - Vzdrževanje časa tCCD.
- Minimizirajte preklop ukazov pisanja za branje in branja za pisanje – obnovitveni čas pisanja za spremembo dostopov za branje, čas obračanja vodila za spremembo iz branja v pisanje
- Nastavite ustrezen interval osveževanja.
- DDR3 SDRAM zahteva cikle osveževanja v povprečnem periodičnem intervalu tREFI.
- Vnaprej je mogoče izdati največ 8 dodatnih ukazov za osvežitev (»povleči«). To ne zmanjša števila osvežitev, vendar je največji interval med dvema okoliškima ukazoma Osvežitev omejen na 9 × tREFI
- Uporabite vse banke – Zaželen je ustrezen mehanizem naslavljanja.
- Vrstica-Bank-Stolpec: Za transakcijo, ki poteka prek zaporednega naslovnega prostora, jedro samodejno odpre isto vrstico v naslednji banki naprave DRAM, da nadaljuje transakcijo, ko je dosežen konec obstoječe vrstice. Zelo je primeren za aplikacije, ki zahtevajo razbijanje velikih podatkovnih paketov na zaporedne naslovne lokacije.
- Banka-vrstica-stolpec: Ko prestopite mejo vrstice, se trenutna vrstica zapre in znotraj istega brega odpre druga vrstica. MSB je bančni naslov, s katerim lahko preklapljate med različnimi bankami. Primeren je za krajše, bolj naključne transakcije v en blok pomnilnika za določen čas in nato skok v drug blok (banko)
- Dolžina izbruha
- BL 8 je podprt za DDR3 na seriji 7. BC4 ima zelo nizko učinkovitost, ki je nižja od 50 %. To je zato, ker je čas izvajanja BC4 enak kot BL8. Podatki so samo zamaskirani znotraj komponente.
- V primerih, ko ne želite pisati celotnega niza, lahko razmislite o podatkovni maski ali zapisu po branju.
- Nastavite ustrezen interval ZQ (samo DDR3)
Krmilnik pošilja ukaze za umerjanje ZQ Short (ZQCS) in ZQ Long (ZQCL).- Upoštevajte standard DDR3 Jedec
- Kalibracija ZQ je obravnavana v razdelku 5.5 standarda JEDEC Spec JESD79-3 DDR3 SDRAM
- ZQ Calibration kalibrira On Die Termination (ODT) v rednih intervalih, da upošteva razlike med VT
- Logika je v bank_common.v/vhd
- Parameter Tzqcs določa hitrost, s katero je ukaz ZQ Calibration poslan v pomnilnik
- Če je mogoče onemogočiti števec in ročno poslati z aplikacijo app_zq_req, je podobno ročnemu pošiljanju Osvežitve.
Za podrobnosti glejte (Xilinx Answer 47924).
Režijski stroški krmilnika
- Periodična branja – glejte (Odgovor Xilinx 43344) za podrobnosti.
- Ne spreminjajte obdobja branja
- Preskoči občasna branja med pisanjem in izda število zgrešenih branj pred pravim branjem
- Prenaročanje – Refer (Odgovor Xilinx 34392) za podrobnosti.
Za zasnove uporabniškega vmesnika in vmesnika AXI je bolje, da je to omogočeno.- Preurejanje je logika, ki gleda naprej več ukazov in spreminja vrstni red uporabniških ukazov, tako da ukazi, ki niso v pomnilniku, ne zavzamejo veljavne pasovne širine. Uspešnost je bila povezana tudi z dejanskim vzorcem prometa.
- Na podlagi vzorca naslova preureditev pomaga preskočiti prednapolnitev in aktivirati ukaze ter poskrbi, da tRCD in tRP ne zavzameta širine podatkovnega pasu.
- Poskusite povečati število bankomatov.
- Večina logike krmilnika se nahaja v bančnih napravah in ustrezajo bankam DRAM
- Posamezen bančni stroj v danem trenutku upravlja eno banko DRAM.
- Dodeljevanje bankomatov je dinamično, zato ni potrebno imeti bančnega avtomata za vsako fizično banko.
- Bankomate je mogoče konfigurirati, vendar je to kompromis med površino in zmogljivostjo.
- Dovoljeno število bankomatov je od 2-8.
- Privzeto so 4 bankomati konfigurirani prek parametrov RTL.
- Če želite spremeniti bančne avtomate, upoštevajte parameter nBANK_MACHS = 8 v memc_ui_top Example za 8 bankomatov – nBANK_MACHS = 8
Zdaj se zavedate dejavnikov, ki vplivajo na uspešnost.
Razmislite o aplikaciji navzgor, ki vam daje 512 podatkovnih bajtov na paket in jih morate shraniti na različne pomnilniške lokacije. Ker je 512 podatkovnih bajtov enakih 64 izbruhom podatkov DDR3, znova zaženite example oblikovanje s spodbudo file ki vsebuje 512 zapisov, 512 branj in preklapljanje vrstic za vsakih 64 zapisov ali branj:
- 3f_0_0_0000_000_0
- 3f_0_0_0001_000_0
- 3f_0_0_0002_000_0
- 3f_0_0_0003_000_0
- 3f_0_0_0004_000_0
- 3f_0_0_0005_000_0
- 3f_0_0_0006_000_0
- 3f_0_0_0007_000_0
- 3f_0_0_0000_000_1
- 3f_0_0_0001_000_1
- 3f_0_0_0002_000_1
- 3f_0_0_0003_000_1
- 3f_0_0_0004_000_1
- 3f_0_0_0005_000_1
- 3f_0_0_0006_000_1
- 3f_0_0_0007_000_1
Na koncu simulacije boste videli, da je izkoriščenost avtobusov 77 odstotkov.
Slika 11: Statistika zmogljivosti za 512 zapisov in 512 branj – preklapljanje vrstic za 64 zapisov ali branj.
Zdaj lahko uporabite znanje, pridobljeno v prejšnjem razdelku, da izboljšate učinkovitost. Z view Če želite uporabiti vse banke namesto spreminjanja vrstice, spremenite vzorec naslova, da spremenite banko, kot je prikazano spodaj.
To je enakovredno nastavitvi ROW_BANK_Column v nastavitvi preslikave pomnilniških naslovov v GUI MIG.
- 3f_0_0_0000_000_0
- 3f_0_1_0000_000_0
- 3f_0_2_0000_000_0
- 3f_0_3_0000_000_0
- 3f_0_4_0000_000_0
- 3f_0_5_0000_000_0
- 3f_0_6_0000_000_0
- 3f_0_7_0000_000_0
- 3f_0_0_0000_000_1
- 3f_0_1_0000_000_1
- 3f_0_2_0000_000_1
- 3f_0_3_0000_000_1
- 3f_0_4_0000_000_1
- 3f_0_5_0000_000_1
- 3f_0_6_0000_000_1
- 3f_0_7_0000_000_1
Na koncu simulacije boste videli, da je prejšnja 77-odstotna izkoriščenost vodila zdaj 87!
Če še vedno potrebujete večjo učinkovitost, lahko izberete velike pakete velikosti 1024 ali 2048 bajtov ali razmislite o ročni osvežitvi.
Opomba: Xilinx ne spodbuja obhoda osveževanja krmilnika, ker nismo prepričani, ali boste lahko dosegli čas samodejnega osveževanja Jedec, ki vpliva na zanesljivost podatkov.
Na strani krmilnika lahko spremenite nBANk_MACH in vidite izboljšanje zmogljivosti.
Vendar pa lahko to vpliva na vaš čas načrtovanja, glejte (Odgovor Xilinx 36505) za podrobnosti na nBANk_MACH
Odprite core_name_mig_sim.v file in spremenite parametre nBANK_MACHS s 4 na 8 in znova zaženite simulacijo. Če želite, da vrednost parametra začne veljati v strojni opremi, morate posodobiti core_name_mig.v file.
Uporabil sem isti vzorec, kjer smo dosegli 87-odstotno izkoriščenost vodila (slika -12).
Ko je nBANK_MACHS nastavljen na 8, je učinkovitost zdaj 90 %.
Upoštevajte tudi, da krmilnika ½ in ¼ negativno vplivata na učinkovitost zaradi svojih zakasnitev.
Na primerample, ker lahko pošljemo samo ukaze vsake 4 cikle CK, je včasih dodatno oblazinjenje, ko se držimo minimalnih časovnih specifikacij DRAM, kar lahko zmanjša učinkovitost od teoretične.
Preizkusite različne krmilnike in poiščite tistega, ki ustreza vašim zahtevam glede učinkovitosti.
Reference
- Zynq-7000 AP SoC in 7 serije FPGA MIS v2.3 [UG586]
- Xilinx MIG Solution Center http://www.xilinx.com/support/answers/34243.html
Zgodovina revizij
13/03/2015 – Začetna izdaja
Prenos PDF-ja: Xilinx DDR2 MIG 7 Vodnik za oceno zmogljivosti