Distributor FPGA XILINX 63234 END
Důležitá poznámka: Tento záznam ve formátu PDF ke stažení je poskytován za účelem zlepšení jeho použitelnosti a čitelnosti. Je důležité si uvědomit, že Záznamy odpovědí jsou Webobsah založený na -, který je často aktualizován s dostupností nových informací. Připomínáme vám, že byste měli navštívit technickou podporu Xilinx. Webmísto a review (odpověď Xilinx 63234) pro nejnovější verzi této odpovědi.
Zavedení
Vzhledem ke způsobu, jakým jsou paměti DDR2 a DDR3 navrženy a jak je navržen řadič řady MIG 7, není výkon přímočarý. Vyžaduje to pochopení různých parametrů časování Jedec a architektury řadiče a pro získání odhadů budete muset spustit simulace. Obecný princip pro určení výkonu je stejný, ale tento dokument poskytuje snadný způsob, jak dosáhnout efektivity pomocí MIG ex.ampnávrh s pomocí zkušebního stolu a stimulů fileje připojeno zde.
Efektivní šířka pásma
Datová sběrnice DRAM dosahuje téměř špičkové šířky pásma pouze během dávek čtení a zápisu a její režie snižuje efektivní rychlost přenosu dat.
Několik exampmenší režijní náklady jsou
- doba předběžného naúčtování přístupu k řádkům ve stejné bance (přístupová adresa není ve stejném řádku na stránce)
- doba obnovy zápisu pro změnu z přístupu pro zápis na přístup pro čtení
- doba obratu autobusu pro změnu přístupu z přístupu pro čtení na přístup pro zápis
Hodiny přenášejí data
- Účinnost (%) = ———————————————-
Celkový počet hodinových cyklů
Efektivní šířka pásma = Špičková šířka pásma * Účinnost
MIG Design Generation
- Podrobnosti o MIG IP najdete v kapitole 586 UG1 a exampgenerace designu.
- Před spuštěním simulace výkonu svařovacího zařízení řady MIG 7 proveďte následující kroky, abyste se ujistili, že je simulační prostředí v pořádku.
- Otevřete MIG exampNavrhněte a zmapujte příslušné knihovny, spusťte simulaci a ujistěte se, že v přepisu vidíte zprávu „test prošel“.
- Pro demonstraci postupu jsem vygeneroval MIG IP adresu pro xc7vx690tffg1761-2 a spustil příkaz ex.ampdesign.
- Dvě věci, které je třeba poznamenat, jsou bity adresy paměti a výběr mapování adresy paměti.
- NapřampV rozbalovací nabídce paměťových součástí jsem vybral MT41J128M8XX-125.
Pro vybranou paměťovou část z obrázku 1 řádek = 14, sloupec = 10 a banka = 3, takže app_addr_width = řádek + sloupec + banka + pořadí = 28
Můžete vybrat buď BANK_ROW_COLUMN, nebo ROW BANK_COLUMN.
Opustil jsem sloupec ROW BANK, což je výchozí mapování adres.
Example design Simulace se syntetizovatelnou zkušební stolicí
- V části Nastavení simulace vyberte QuestaSim/ModelSim Simulator a přejděte do umístění kompilovaných knihoven.
- Podrobnosti o odkazování na cestu instalace nástrojů třetích stran, výběru cílového simulátoru a kompilaci a mapování knihoven naleznete v uživatelské příručce (UG900) Vivado Design Suite Logic Simulation.
Simulujte grafické uživatelské rozhraní (klikněte na kartu Spustit simulaci ve správci projektů) a ujistěte se, že se v přepisu zobrazuje zpráva „test prošel“.
Simulace výkonu RTL modifikace
- Klikněte pravým tlačítkem myši na záložku Zdroje, vyberte „Přidat nebo vytvořit zdroje simulace“ a přejděte na soubor mig7_perfsim_traffic_generator.sv. file a kliknutím na tlačítko Dokončit jej přidejte.
- Klikněte pravým tlačítkem myši na záložku Zdroje, vyberte „Přidat nebo vytvořit zdroje simulace“, přejděte k souboru perfsim_stimulus.txt a klikněte na Dokončit přidávání.
- Okomentujte example_top instance v souboru sim_tb_top.v file.
- Přidejte níže uvedené řádky RTL k sim_tb_top,v
- Upravte APP_ADDR_WIDTH, APP_DATA_WIDTH, RANK_WIDTH, H a BANK_WIDTH podle výběru paměťové součástky. Hodnoty lze získat ze souboru _mig.v. file.
- Žlutě zvýrazněný název instance mig_7series_0_mig se může lišit v závislosti na názvu komponenty během vytváření IP adresy. Ověřte, zda jste zvolili jiný název, a podle toho jej změňte.
- Jakmile je IP adresa vygenerována, otevřete soubor _mig.v. file a zkontrolujte případné odchylky v názvech signálů LHS a opravte je.
- app_sr_req, app_ref_req a app_zq_req by měly být inicializovány na 0.
- Jako example_top.v je komentovaný a nový filePokud jsou přidány znaky , pravděpodobně uvidíte vedle znaku mig_7series_0_mig.v znak „?“. file pod simulačními zdroji.
- Chcete-li mapovat správné file, klikněte pravým tlačítkem myši na soubor mig_7series_0_mig.v, vyberte „Přidat zdroje“ a přejděte na /mig_7series_0_example.srcs/sources_1/ip/mig_7series_0/mig_7series_0/user_design/rtl a přidejte soubor mig_7series_0_mig_sim.v file.
- Pokud vidíte „?“ pro podkladové files, přidejte všechny RTL fileve složkách clocking, controller, ip_top,phy a UI.
- Jakmile jsou provedeny změny RTL a vše potřebné filePokud jsou do vašich simulačních zdrojů přidány prvky, hierarchie by měla vypadat podobně jako na obrázku 5.
- The fileČerveně zvýrazněné moduly jsou nově přidané a u modulů souvisejících s ECC se očekává znak „?“, protože vybraná konfigurace paměti má možnost ECC zakázána.
Podnět File Popis
Každý stimulační vzor má 48 bitů a formát je popsán na obrázcích 6-1 až 6-4.
Kódování adresy (adresa [35:0])
Adresa je ve stimulu zakódována dle obrázku 7-1 až 7-6. Všechna pole adresy je nutné zadat v hexadecimálním formátu.
Všechna adresní pole mají šířku dělitelnou čtyřmi a zadávají se v hexadecimálním formátu. Testovací zařízení odesílá do paměťového řadiče pouze požadované bity adresního pole. NapříkladampTj. v konfiguraci s osmi bankami se do řadiče paměti odesílají pouze bankovní bity [2:0] a zbývající bity se ignorují. Další bity pro adresní pole jsou k dispozici pro zadání adresy v hexadecimálním formátu. Musíte potvrdit, že zadaná hodnota odpovídá šířce dané konfigurace.
- Adresa sloupce (Sloupec[11:0]) – Adresa sloupce ve stimulu je poskytována maximálně do 12 bitů, ale je třeba ji adresovat na základě parametru šířky sloupce nastaveného ve vašem návrhu.
- Adresa řádku (Row[15:0]) – Adresa řádku ve stimulu je poskytována maximálně do 16 bitů, ale je nutné ji adresovat
- To je založeno na parametru šířky řádku nastaveném ve vašem návrhu.
- Adresa banky (Banka[3:0]) – Adresa banky ve stimulu je poskytována maximálně na čtyři bity, ale je třeba ji adresovat na základě parametru šířky banky nastaveného ve vašem návrhu.
- Adresa pořadí (Rank[3:0]) – Adresa pořadí ve stimulu je poskytována maximálně čtyřem bitům, ale je třeba ji adresovat na základě parametru šířky pořadí nastaveného ve vašem návrhu.
- Adresa je sestavena na základě parametru nejvyšší úrovně MEM_ADDR_ORDER a odeslána do uživatelského rozhraní.
Opakování příkazu (Opakování příkazu [7:0])
- Počet opakování příkazu udává, kolikrát se příslušný příkaz opakuje na uživatelském rozhraní. Adresa pro každé opakování se zvýší o 8. Maximální počet opakování je 128.
- Zkušební stolice nekontroluje hranici sloupce a pokud je během přírůstků dosaženo maximálního limitu sloupce, provede se obtékání.
- 128 příkazů zaplní stránku. Pro jakoukoli adresu sloupce jinou než 0 se počet opakování 128 překročí.
- Hranice sloupce se obtáčí až k začátku adresy sloupce.
Využití autobusu
Využití sběrnice se vypočítává na uživatelském rozhraní s ohledem na celkový počet čtení a zápisů a používá se následující rovnice:
- BL8 trvá čtyři cykly paměti
- Konec_stimulu je čas, kdy jsou provedeny všechny příkazy.
- calib_done je čas, kdy je kalibrace hotová.
Example Vzory
Tyto exampsoubory jsou založeny na MEM_ADDR_ORDER nastaveném na BANK_ROW_COLUMN.
Jeden vzor čtení
00_0_2_000F_00A_1 – Tento vzor je jedno čtení z 10. sloupce, 15. řádku a druhé banky.
Single Write Pattern
00_0_1_0040_010_0 – Tento vzor je jediný zápis do 32. sloupce, 128. řádku a první banky.
Jediný zápis a čtení na stejnou adresu
- 00_0_2_000F_00A_0 – Tento vzor představuje jeden zápis do 10. sloupce, 15. řádku a druhé banky.
- 00_0_2_000F_00A_1 – Tento vzor je jednorázovým čtením z 10. sloupce, 15. řádku a druhé banky.
Více zápisů a čtení se stejnou adresou
- 0A_0_0_0010_000_0 – To odpovídá 10 zápisům s adresami začínajícími od 0 do 80, což je vidět ve sloupci.
- 0A_0_0_0010_000_1 – To odpovídá 10 čtením s adresami začínajícími od 0 do 8,0, což je vidět ve sloupci.
Zalomení stránky během zápisu
0A_0_2_000F_3F8_0 – To odpovídá 10 zápisům s adresou sloupce zalomenou na začátek stránky po jednom zápisu.
Simulace generátoru výkonu
V tomto okamžiku jste s MIG ex hotovi.ample návrhová simulace. To znamená, že vaše nastavení simulace je připraveno, provedli jste úpravy RTL pro simulaci výkonu, nová hierarchie simulace je správná a pochopili jste vzory stimulů. Spusťte simulaci znovu se 16 zápisy a čteními v souboru perfsim_stimulus.txt.
- Spusťte vše, počkejte na aktivaci signálu init_calib_complete a uvidíte navrhovaný počet zápisů a čtení. Simulace se poté zastaví.
- Po zobrazení výzvy k ukončení simulace vyberte Ne a přejděte do okna přepisu, kde si budete moci prohlédnout statistiky výkonu.
- Pokud vyberete možnost „ukončit simulaci“, statistiky výkonu se zapíší do file s názvem mig_band_width_output.txt, který se nachází ve složce sim_1/behave.
- Exampcesta k adresáři le: /mig_7series_0_example_perf_sim\mig_7series_0_example.sim/sim_1/behav
Možná se divíte, proč ta procentatagVyužití sběrnice je pouze 29. Spusťte simulaci znovu se stejným nastavením IP adresy, ale pouze změnou stimulu. file na 256 zápisů a 256 čtení
- ff_0_0_0000_000_0
- ff_0_0_0000_000_1
Nyní uvidíte procentatage jako 85, což znamená, že DDR3 nabízí lepší využití sběrnice pro dlouhou sekvenci zápisů a čtení.
Obecné způsoby, jak zlepšit výkon
Faktory, které ovlivňují efektivitu, lze rozdělit do dvou částí:
- Specifické pro paměť
- Specifické pro ovladač
Obrázek 9 vám dává přeskokview z termínů, které jsou specifické pro paměť.
Na rozdíl od pamětí SRAM a blokových pamětí se výkon DDR2 nebo DDR3 neomezuje pouze na maximální datovou rychlost.
Závisí to na mnoha faktorech načasování, včetně:
- tRCD: Zpoždění příkazu řádku (nebo zpoždění ras-cas).
- tCAS(CL): Latence stroboskopu adresy sloupce.
- tRP: Zpoždění předběžného nabíjení řádku.
- tRAS: Doba aktivity řádku (aktivace pro předběžnou změnu).
- tRC: Doba cyklu řádku. tRC = tRAS + tRP
- tRAC: Zpoždění náhodného přístupu. tRAC = tRCD + tCAS
- Latence zápisu tCWLCASas.
- tZQ: Kalibrační čas ZQ.
- tRFC: Doba cyklu aktualizace řádku
- tWTR: Zpoždění zápisu do čtení. Čas poslední transakce zápisu do příkazu čtení.
- tWR: Čas zotavení po zápisu. Poslední transakce zápisu do doby předběžného nabití.
- Časování všech uvedených parametrů závisí na typu použité paměti a rychlosti paměťové části.
- Více podrobností o definicích a specifikacích časování lze nalézt v normách JEDEC pro DDR2 a DDR3 nebo v jakémkoli datovém listu paměťového zařízení.
Efektivita závisí především na způsobu přístupu k paměti. Různé vzory adres poskytují různé výsledky účinnosti.
Režie časování paměti
- Doba aktivace a doba přednabíjení při změně na nové banky/řádky nebo změně řádků v rámci stejné banky. - Tím se snižuje potřeba změny řádků, což může eliminovat tRCD a tRP.
- Odesílejte kontinuální příkazy pro zápis nebo čtení - Zachování časování tCCD.
- Minimalizujte přepínání příkazů ze zápisu na čtení a ze čtení na zápis – doba obnovy zápisu pro změnu přístupů na čtení a doba obratu sběrnice pro změnu ze čtení na zápis.
- Nastavte správný interval obnovy.
- a. Paměť DDR3 SDRAM vyžaduje obnovovací cykly s průměrným periodickým intervalem tREFI.
- b. Předem lze vydat maximálně 8 dalších příkazů Refresh („vtažených“). Tím se počet obnovení nesníží, ale maximální interval mezi dvěma sousedními příkazy Refresh je omezen na 9 × tREFI
- Využijte všechny banky – vhodnější je vhodný adresovací mechanismus.
- a. Řádek-Banka-Sloupec: Pro transakci probíhající v sekvenčním adresním prostoru jádro automaticky otevře stejný řádek v další bance zařízení DRAM, aby se v transakci pokračovalo po dosažení konce existujícího řádku. Toto je vhodné pro aplikace, které vyžadují rozesílání velkých datových paketů na sekvenční adresní umístění.
- b. Banka-Řádek-Sloupec: Při překročení hranice řádku se aktuální řádek uzavře a otevře se další řádek ve stejné bance. MSB je adresa banky, kterou lze použít k přepínání mezi různými bankami. Je vhodná pro kratší, náhodnější transakce do jednoho bloku paměti na určitou dobu a poté skok do jiného bloku (banky).
- Délka prasknutí
- a. BL 8 je podporován pro DDR3 na řadě 7. BC4 má velmi nízkou účinnost, která je menší než 50 %. Je to proto, že doba provádění BC4 je stejná jako BL8. Data jsou pouze maskována uvnitř komponenty.
- b. V případech, kdy si nepřejete zapisovat celý burst, lze zvážit buď datovou masku, nebo zápis po čtení.
- Nastavte správný interval ZQ (pouze DDR3)
Ovladač posílá jak kalibrační příkazy ZQ Short (ZQCS), tak ZQ Long (ZQCL).- a. Dodržujte standard DDR3 JEDEC
- b. Kalibrace ZQ je popsána v části 5.5 standardu JEDEC Spec JESD79-3 DDR3 SDRAM.
- c. Kalibrace ZQ kalibruje zakončení na čipu (ODT) v pravidelných intervalech, aby se zohlednily odchylky napříč VT.
- d. Logika je obsažena v souboru bank_common.v/vhd
- e. Parametr Tzqcs určuje frekvenci, s jakou je do paměti odesílán příkaz kalibrace ZQ.
- f. Je možné deaktivovat čítač a ručně odeslat pomocí app_zq_req, je to podobné ručnímu odeslání Refresh. Podrobnosti viz (Xilinx Answer 47924).
Režie ovladače
- Periodické čtení – Podrobnosti viz (Xilinx Answer 43344).
- a. Neměňte dobu čtení.
- b. Přeskočit periodická čtení během zápisů a zobrazit počet zmeškaných čtení před skutečným čtením
- Změna pořadí – Podrobnosti naleznete v odpovědi (Xilinx Answer 34392). Pro návrhy uživatelského rozhraní a rozhraní AXI je vhodnější mít tuto možnost povolenou.
- a. Změna pořadí je logika, která dopředu vyhledává několik příkazů a mění pořadí uživatelských příkazů tak, aby příkazy mimo paměť nezabíraly platnou šířku pásma. Výkon také souvisí se skutečným vzorcem provozu.
- b. Na základě adresního vzoru pomáhá přeskupení přeskočit příkazy pro předběžné nabíjení a aktivaci a zabraňuje tomu, aby tRCD a tRP obsazovaly šířku pásma dat.
- Pokuste se zvýšit počet bankovních automatů.
- a. Většina logiky řídicí jednotky se nachází v bankovních automatech a odpovídají bankám DRAM
- b. Daný bankovní automat spravuje v daném okamžiku pouze jednu banku DRAM.
- c. Přiřazení bankovního automatu je dynamické, takže není nutné mít bankovní automat pro každou fyzickou banku.
- d. Bankomaty lze konfigurovat, ale jde o kompromis mezi plochou a výkonem.
- e. Povolený počet bankovních automatů se pohybuje od 2 do 8.
- f. Ve výchozím nastavení jsou 4 bankovní automaty konfigurovány pomocí parametrů RTL.
- g. Pro změnu bankovních automatů zvažte parametr nBANK_MACHS = 8 obsažený v memc_ui_top
Example pro 8 bankovních automatů – nBANK_MACHS = 8
Nyní znáte faktory, které ovlivňují výkon. Představte si aplikaci v nadřazeném směru, která vám poskytuje 512 datových bajtů na paket t a vy je potřebujete uložit do různých paměťových umístění. Protože 512 datových bajtů se rovná 64 datovým burstům DDR3, spusťte znovu příkaz ex.ample design s podnětem file obsahující 512 zápisů, 512 čtení a přepínání řádků pro každých 64 zápisů nebo čtení:
Na konci simulace uvidíte, že využití sběrnice je 77 procent.
Obrázek 11: Statistika výkonu pro 512 zápisů a 512 čtení – Přepínání řádků pro 64 zápisů nebo čtení.
Nyní můžete aplikovat znalosti získané v předchozí části ke zvýšení efektivity. Chcete-li využít všechny banky namísto změny řádku, upravte adresní vzor tak, aby se změnila banka, jak je znázorněno níže. To je ekvivalentní nastavení ROW_BANK_Column v nastavení mapování adres paměti v grafickém uživatelském rozhraní MIG.
Na konci simulace uvidíte, že dřívějších 77 procent využití sběrnice je nyní 87!
Pokud stále požadujete vyšší efektivitu, můžete použít velké pakety o velikosti 1024 nebo 2048 bajtů nebo zvážit ruční aktualizaci.
Poznámka: Společnost Xilinx nedoporučuje obcházení obnovování dat v řadiči, protože si nejsme jisti, zda budete schopni splnit časování automatického obnovování podle JEDEC, které ovlivňuje spolehlivost dat. Změnou parametru NBANNBAnk_MACH na řadiči můžete dosáhnout zlepšení výkonu. To však může ovlivnit časování návrhu. Podrobnosti o parametru nBANk_MACH naleznete v odpovědi Xilinx 36505.
Otevřít soubor core_name_mig_sim.v file a změňte parametry nBANK_MACHS ze 4 na 8 a znovu spusťte simulaci.
Aby se hodnota parametru projevila v hardwaru, je třeba aktualizovat soubor core_name_mig.v. filePoužil jsem stejný vzorec, kde jsme dosáhli 87% využití sběrnice (obrázek 2). S nBANK_MACHS nastaveným na 8 je nyní účinnost 90 %.
Také mějte na paměti, že ½ a ¼ kontroléry negativně ovlivňují efektivitu kvůli svým latencím. NapříkladampProtože můžeme odesílat příkazy pouze každé 4 cykly CK, někdy dochází k dodatečnému odsazení při dodržení minimálních specifikací časování DRAM, což může snížit účinnost oproti teoretické. Vyzkoušejte různé řadiče, abyste našli ten, který vyhovuje vašim požadavkům na účinnost. Reference
- Zynq-7000 AP SoC a FPGA řady 7 MIS v2.3 [UG586]
- Centrum řešení Xilinx MIG http://www.xilinx.com/support/answers/34243.html
Historie revizí
13. 03. 2015 – První vydání..
Dokumenty / zdroje
![]() |
Distributor FPGA XILINX 63234 END [pdfUživatelská příručka 63234 Koncový distributor FPGA, 63234, Koncový distributor FPGA, Distributor FPGA |