• No results found

DRAM kontrolér

N/A
N/A
Protected

Academic year: 2022

Share "DRAM kontrolér"

Copied!
54
0
0

Loading.... (view fulltext now)

Full text

(1)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta mechatroniky a mezioborových inženýrských studií

DRAM kontrolér

Diplomová práce

Vypracoval: Jiří Janoušek

Vedoucí diplomové práce: Ing. Milan Kolář, CSc.

Liberec 2004

Rozsah průvodní zprávy 54 stran

Počet obrázků 14

Počet tabulek 6

Rozsah přílohy 6 stran + 1 CD ROM

(2)

TECHNICKÁ UNIVERZITA V LIBERCI

Fakulta mechatroniky a mezioborových inženýrských studií Katedra elektroniky a zpracování signálů Akademický rok: 2002/2003

ZADÁNÍ DIPLOMOVÉ PRÁCE

pro: Jiřího Janouška

studijní program: 2612 M – Elektrotechnika a informatika obor: 2612 T – Mechatronika

Vedoucí katedry Vám ve smyslu zákona o vysokých školách č.111/1998 Sb.

určuje tuto diplomovou práci:

Název tématu: DRAM kontrolér

Zásady pro vypracování:

1. Seznamte se s jazykem VHDL pro popis elektronických systémů.

2. Prostudujte architekturu a řízení DRAM paměťových modulů typu SIMM.

3. Navrhněte a využitím jazyka VHDL popište elektronický systém, který zajistí čtení, zápis a refresh dat v paměti DRAM. Zajistěte automatickou detekci velikosti a typu pamětí.

4. Vytvořené varianty DRAM kontrolérů porovnejte z hlediska rychlosti přenosu dat a nároků na prostředky hradlového pole. Vyberte optimální variantu řízení DRAM.

5. Pro návrh elektronické části systému (včetně simulací) použijte návrhový systém MAX+plus II firmy Altera, případně ispLEVER firmy Lattice.

6. Navržený systém ověřte programovatelným hradlovým polem na testovacím přípravku.

(3)

Prohlášení

Byl jsem seznámen s tím, že na mou diplomovou práci se plně vztahuje zákon č. 121/2000 o právu autorském, zejména § 60 (školní dílo).

Beru na vědomí, že TUL má právo na uzavření licenční smlouvy o užití mé DP a prohlašuji, že s o u h l a s í m s případným užitím mé diplomové práce (prodej, zapůjčení apod.).

Jsem si vědom toho, že užít své diplomové práce či poskytnout licenci k jejímu využití mohu jen se souhlasem TUL, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených univerzitou na vytvoření díla až do jejich skutečné výše.

Diplomovou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím diplomové práce a konzultantem.

Datum: Podpis: ……….

Jiří Janoušek

(4)

Poděkování

Na tomto místě bych rád poděkoval vedoucímu diplomové práce Ing.

Milanovi Kolářovi, CSc., Ing. Miroslavu Novákovi, Ph.D. a Ing. Janu Václavíkovi za cenné rady a podnětné připomínky a za celkový velmi kladný profesní i lidský přístup.

(5)

ANOTACE

Diplomová práce se zabývá návrhem integrovaného obvodu, zajišťujícím obsluhu a řízení dynamické paměti. Popisuje vnitřní strukturu DRAM, způsob jejího řízení a vysvětluje pojem refresh paměti. Na základě technické specifikace pamětí typu SIMM-72 je v jazyku VHDL vytvořen kontrolér, zajišťující čtení, zápis a refresh dat v paměti. Po provedených simulacích a optimalizaci prvotního návrhu je zde popsán nejoptimálnější řadič paměti, splňující požadavky pro implementaci do multifunkční jednotky EMU-2. Systém je tvořen hierarchickou strukturou. Nejvyšší úroveň obsahuje komponenty, zajišťující specifické požadavky dané použitím. Na nižší úrovni je vytvořen funkční blok realizující univerzální řadič dynamické paměti.

Jeho funkčnost je ověřena na testovacím přípravku SHARC EZ-KIT Lite a na hradlovém poli ispLEV2096A.

ANNOTATION

The aim of the diploma work is to make the integrated circuit design to control the dynamic memory, to describe the internal structure of DRAM and to explain the memory refresh. In virtue of the technical specification of memory modules SIMM-72 was made the controller in VHDL language. After the optimalization and simulations the memory driver was used in the multifunctional unit EMU-2. The system is based on the hierarchical structure. The top level contains the specific components. The action unit with the universal memory driver works on the lower level. The reliability and the functionality were tested on the test device SHARC EZ-KIT and on the gate array ispLEV2096A.

(6)

OBSAH

1 ÚVOD ……….……..………8

2 INTEGROVANÉ OBVODY ………...………… 9

2.1 Rozdělení a charakteristika obvodů ………...………9

2.2 Programovatelné obvody ………..…….9

2.2.1 Typy architektur programovatelných obvodů ……….…..10

2.2.2 Obvody PLD ………..…….. 10

2.2.3 Obvody CPLD ………..…… 11

2.2.4 Pole FPGA ……….………12

3 ZPŮSOBY NÁVRHU INTEGROVANÝCH OBVODŮ ………….. 13

3.1. Jazyk VHDL ………...………14

3.2. Návrhové systémy použité při tvorbě řadiče ……….…………. 15

4 PAMĚTI RAM ………...………… 16

4.1. Statická paměť SRAM ……….……….. 16

4.2. Dynamická paměť DRAM ………...………….. 16

4.2.1 Vnitřní struktura paměti DRAM ……….…………. 17

4.2.2 Přístup do paměti ……….………. 19

4.2.3 Refresh paměti ……….. 20

5 SPECIFIKACE POŽADAVKŮ NA NÁVRH OBVODU …….….... 21

5.1 Multifunkční jednotka EMU-2 ……….21

5.2 Komunikace procesoru ADSP 21061 s externí pamětí …………..……. 22

6 NÁVRH DRAM KONTROLÉRU ………...….. 25

6.1 Hierarchie návrhu hradlového pole ………...…….. 25

6.2 Nejvyšší úroveň návrhu ………..……… 25

6.2.1 Podpora ethernetového rozhraní ………..………. 25

6.2.2 Obsluha systémového registru ……….……… 25

6.3 Komponenta DRAMcontrol ……….26

6.3.1 Postup při návrhu komponenty DRAMcontrol ………..…….. 27

6.3.2 Blokové rozdělení ………..…….. 28

6.3.3 Generátor signálu refresh ………. 28

Jiří Janoušek - 6 - Liberec 2004

(7)

6.3.4 Dekodér výstupních signálů ……….……… 29

6.3.5 Stavový automat ………..…….…… 31

6.3.6 Popis jednotlivých stavů automatu ……….………….. 32

7 SIMULACE PRVOTNÍHO MODELU ………. 34

7.1 Prostředí pro simulaci ……….……… 34

7.2 Porovnání výsledků s technickými parametry ………...35

7.2.1 Zapisovací cyklus ……….……… 35

7.2.2 Čtecí cyklus ………..………… 36

7.2.3 CBR Refresh ……… 37

7.3 Zhodnocení výsledků simulace ……….….. 38

8 OPTIMALIZACE NÁVRHU ……… 39

8.1 Rychlost přenosu dat ……….……….. 39

8.2 Nároky na hradlové pole ………. 40

9 FINÁLNÍ NÁVRH DRAM KONTROLÉRU ………...………. 41

9.1 Stavový automat ……….. 41

9.2 Simulace finálního návrhu ……….. 42

9.3 Výsledky simulace ………..………….43

9.4 Implementace do obvodu ispLSI2096 ………...………..44

10 ZÁVĚR ……….………….45

11 SEZNAM POUŽÍTÉ LITERATURY ……….………..46

12 PŘÍLOHY ……….…………48

Jiří Janoušek - 7 - Liberec 2004

(8)

1 ÚVOD

Paměť je nedílnou součástí každého počítačového systému. Některé typy pamětí vyžadují ke komunikaci s okolím paměťový kontrolér, který zajistí řízení paměti dle požadavků na ni kladených.

Úkolem této diplomové práce je vytvoření kontroléru dynamické paměti DRAM. Hlavním motivačním prvkem je jeho použití v multifunkční měřící jednotce EMU-2, vyvinuté na Katedře elektrotechniky. Jedná se o systém navržený pro měření na třífázových transformátorech, proto disponuje značným počtem paralelních analogových kanálů a umožňuje synchronní kontinuální záznam všech měřených kanálů. Systém je schopen v krátkém časovém intervalu získat značné množství dat. Pro přenos těchto dat je vybaven standardním ethernetovým rozhraním.

Odkládací prostor pro rychlá měření je tvořen pamětí DRAM

Komunikaci mezi touto pamětí a signálovým procesorem zajišťuje právě kontrolér. Na jeho rychlosti řízení paměti závisí množství dat, které je možné za určitý časový okamžik zaznamenat a tím limituje i maximální možnou přesnost měření. Proto je snaha o co nejoptimálnější řadič paměti.

Návrh řadiče a popis jeho chování má být realizováno v jazyku VHDL. Počítá se s autodetekcí typů paměťových modulů a univerzálnosti použití kontroléru. Řadič by měl mít co nejmenší nároky na velikost hradlového pole. Po implementaci do obvodu, použitého v jednotce EMU-2, musí zbýt dostatečná kapacita pole pro realizaci dalších funkčních bloků pro podporu infračerveného rozhraní a PWM generátoru.

Jiří Janoušek - 8 - Liberec 2004

(9)

2 INTEGROVANÉ OBVODY

2.1 Rozdělení a charakteristika obvodů

Integrované obvody slouží k realizaci elektronického zařízení. Prudký rozvoj výpočetní techniky a mikroelektronických technologií přesunul návrh integrovaných obvodů od návrhářů jejich výrobců přímo k uživateli. Prosazuje se proto snaha o výrobu obvodů přizpůsobených požadovanému účelu tzv. aplikačně specifické integrované obvody, označované zkratkou ASIC (Application Specific Integrated Circuit). Zákaznické integrované obvody jsou součástky navržené přesně podle požadavků zákazníka. Celý navrhovaný systém je možno převést na jediný čip, což umožňuje vykonávat specifické funkce, které v některých případech nejsou samostatnými prvky řešitelné a to vzhledem k rozměrům zařízení, ke stupni integrace, pracovnímu kmitočtu, kombinaci analogových a digitálních částí, případně vzhledem k jiným okolnostem. Výrazně kratší je i doba realizace výsledného obvodu oproti klasickým konstrukcím a možnost pružného přizpůsobování funkcí obvodu.

Typy integrovaných obvodů:

- programovatelné obvody – programuje je samotný uživatel, dělí se na PLD, CPLD, FPGA

- polozákaznické obvody - navrhují se pouze propojovací masky (jedna nebo více);

ostatní masky technologického procesu jsou univerzální

- plně zákaznické obvody – všechny masky technologického procesu jsou určeny dle požadavků zákazníka

2.2 Programovatelné obvody

Všechny programovatelné obvody různých typů a různých výrobců jsou vždy zcela technologicky dokončené integrované obvody (IO). Uživatel potom může tyto obvody buď naprogramovat či konfigurovat podle svých požadavků. Podle typu IO

Jiří Janoušek - 9 - Liberec 2004

(10)

je možné obvody přímo programovat v univerzálním programátoru, konfigurovat je z externí konfigurační paměti nebo je programovat pomocí sériového interface (dnes nejčastěji JTAG interface) přímo zapájené na desce – tzv. ISP (in-system programming). IO se dnes používají téměř ve všech oblastech elektronických systémů, ať už ve výrobcích průmyslové nebo spotřební elektroniky.

2.2.1 Typy architektur programovatelných obvodů

Dle vnitřního uspořádání hradlového pole se IO dělí na tři základní skupiny:

PLD - Programmable Logic Device FPGA - Field Programmable Gate Array CPLD - Complex Programmable Logic Device

2.2.2 Programovatelné obvody typu PLD

Programovatelná logická součástka s pevně danou strukturou polí:

vstup – součinové pole – součtové pole - výstup Podle druhu pole, které je možno programovat se dělí na:

– paměti PROM (Programmable Read Only Memory) – programovatelné pole OR – obvody PAL (Programmable Array Logic) – programovatelné pole AND

– obvody FPLA (Field Programmable Logic Array) – rogramovatelné pole AND i OR

– obvody GAL (Generic Array Logic) – obvod PAL + makrobuňka OLMC

PAL obvody jsou programovatelné pouze jednorázově a umožňují realizaci pouze jednoduchých obvodů, proto je jejich použití na ústupu. Přeprogramovatelné obvody typu GAL mohou být na výstupech vybaveny klopnými obvody pro možnost vytváření synchronních sekvenčních obvodů ovládaných společným hodinovým signálem pomocí konfigurovatelného makročlánku OLMC (Output Logic Macro Cell).

Jiří Janoušek - 10 - Liberec 2004

(11)

2.2.3 Programovatelné obvody CPLD

Architektura programovatelných integrovaných obvodů CPLD (tzv.

hrubozrnná architektura) se sestává z několika logických bloků - menších obvodů PLD, které mají hradla realizovaná technikou programovatelných montážních součinů a jejichž lokální zpětnovazební vodiče dovolují spojit každý bit s každým.

Každý takový programovatelný blok má šířku 10 – 18 bitů a velké obvody CPLD jich obsahují až 48. Jsou vzájemně propojené globální propojovací maticí. Plocha křemíku pro globální propojení ovšem roste s druhou mocninou počtu bitů všech bloků, což je hlavním omezením růstu velikosti těchto obvodů. Proto se využívají pro aplikace, kde záleží především na rychlosti a ne na kapacitě obvodu.

U středních a větších obvodů CPLD nejsou programovatelné bloky spojeny přímo s vývody obvodu. Signály zpracovávají vstupně-výstupní bloky a teprve přes lokální propojení jsou přivedeny na vnitřní bloky a do globálního propojení.

Signálové vývody obvodu mohou být konfigurovány jako vstupy, výstupy, obousměrné vývody, se vstupním registrem nebo bez něj. Je možné předem definovat přiřazení signálů na vývody pouzdra a toto přiřazení zachovat i při následných úpravách schématu během vývoje a tím neměnit použitý tištěný spoj.

Některé obvody CPLD mohou být více než 10 000 krát přeprogramovány, jsou kompatibilní s PCI standardem a podporují normu JTAG (IEEE1149.1). Ochranu naprogramovaných dat proti neoprávněnému čtení i zápisu lze zajistit naprogramováním tzv. security bitu.

Typickou technologií obvodů je EECMOS. Vyrábějí je všichni významní výrobci (Xilinx, Altera, Atmel, atd.), ale za průkopníka na poli technologie i architektury je považována firma Lattice.

Jiří Janoušek - 11 - Liberec 2004

(12)

2.2.4 Programovatelná hradlová pole FPGA

Programovatelná hradlová pole s jemnozrnnou architekturou (FPGA - Field Programmable Gate Array nebo také LCA - Logic Cell Array) jsou složena ze vstupně/výstupních bloků, realizujících rozhraní mezi vnitřní logikou a vývody obvodu, matice konfigurovatelných logických bloků umístěných v pravidelném rastru a uživatelsky definovatelných propojovacích cest. Propojení má podobu řádku nebo mřížky, což je častější případ. Hrany mřížky jsou tvořeny propojovacími vodiči.

V místech vývodů po obvodu programovatelných bloků jsou rozmístěny programované spínače, které dovolují spojit každý vývod s více (ne nutně všemi) vodiči. V uzlech mřížky pak jsou spojovací uzly podobné křížovému přepínači s tím rozdílem, že ve stejném směru vodič může pokračovat nebo může být přerušen.

Pokud by každý spojovací vodič procházel spínačem v každém uzlu mřížky, delší spoje by měly neúnosné zpoždění. Proto mřížkové obvody vždy nabízejí vodiče různé délky, např. dvěma hranami mřížky počínaje a celou šířkou či délkou čipu konče. Dělení na vnitřní a vstupně-výstupní bloky je u obvodů jemnozrnné architektury nutností. Programovatelné bloky již nejsou sdruženy s vývody čipu a propojení nemůže přenášet proudy potřebné na vývodech.

Vstupně- výstupní blok je možno programovat jako kombinační nebo s registrem, ve funkci výstupu je zpravidla možný třetí stav. Funkci jednotlivých bloků a příslušná propojení definuje konfigurační program, který se ukládá do vnitřních paměťových buněk RAM založených na spínačích CMOS přepisem z vnější paměti ROM, PROM nebo EPROM automaticky po zapnutí napájení. Obvod je možné řídit také přímo z počítače a jeho funkci lze měnit i během provozu, což ostatní ASIC obvody neumožňují. Další předností je možnost využití již navržených makrobloků, jejichž spojením lze snadno vytvářet i velmi složité funkce. Frekvence taktování těchto klopných obvodů se může pohybovat ve stovkách MHz.

Jiří Janoušek - 12 - Liberec 2004

(13)

3 ZPŮSOBY NÁVRHU INTEGROVANÝCH OBVODŮ

Dnešní programovatelný obvod je nejen rozsáhlá, ale také složitá struktura s mnoha druhy logických i propojovacích prostředků. Jejich některé vlastnosti (např.

charakteristiky zpoždění signálů) nejsou obvyklé v jiných technologiích. Návrh a ověření takového obvodu tedy vyžaduje zvláštní pracovní postupy a nástroje. Proto se při návrhu elektronických systémů, realizovaných v integrovaných obvodech, používá specifických programovacích prostředků, označovaných jako návrhové systémy. Ty na základě popisu navrhovaného systému umožňují ověřit jeho funkčnost. K ověření funkce bez ohledu na časové parametry se používá funkční simulace. Po jejím úspěšném dokončení provede návrhový systém syntézu - vytvoří zapojení prvku do cílového obvodu pro dosažení požadované funkce. Poté lze statickou časovou analýzou nebo časovou simulací ověřit časové parametry. Pokud odpovídají požadavkům návrhu, tak dalším krokem je implementace, což je již podrobný plán konfigurace cílového obvodu s požadovanou funkcí a jejímž výsledkem je konfigurační soubor pro cílový obvod.

Popis navrhovaného systému může mít formu schématu nebo textu, zapsaného v některém z hardwarově orientovaných jazyků – HDL (Hardware Description Language). Se vzrůstající složitostí návrhů, umožněnou prudkým vývojem integrovaných obvodů, se tradiční návrhy s využitím schématu staly nezvládnutelně složitými a časově náročnými. Zároveň se zvýšil tlak na maximální zkracování vývoje funkčního vzorku. Proto vznikla poptávka po nových metodách a je zřejmé, že využití jazyků HDL se stává nezbytností nejen v oblasti návrhu klasických zákaznických obvodů ASIC, ale i obvodů FPGA.

3.1 Jazyk VHDL

Zkratka VHDL znamená VHSIC Hardware Description Language, přičemž VHSIC je akronym pro název projektu Very High Speed Integrated Circuit, ve kterém byl tento jazyk vyvíjen. Jazyk VHDL je spolu s jazykem Verilog nejvíce rozšířený mezi jazyky používané pro modelování číslicových zařízení. Tento jazyk

Jiří Janoušek - 13 - Liberec 2004

(14)

podporuje mnoho komerčních i nekomerčních aplikací přístupných na různých softwarových platformách.

Jazyk VHDL se vyvíjí od roku 1981 na požadavek amerického ministerstva obrany. Požadavkem bylo vyvinutí jazyka se širokými možnostmi popisu, který bude souhlasně interpretovaný různými simulátory a bude nezávislý na technologii a návrhové metodice. První norma IEEE 1076-1987 byla formulována v roce 1987.

VHDL slouží k dokumentaci, verifikaci a syntézu číslicových obvodů, je technologicky nezávislý – nepojí se s žádnou konkrétní technologií. Lze použít i na vyšších úrovních abstrakce, konkrétně na systémové úrovni. Podporuje větší část z úrovní abstrakce, pomocí kterých je možné popsat funkci zařízení. Základními podporovanými úrovněmi je úroveň logických obvodů, úroveň meziregistrových přenosů a funkční úroveň.

Návrh lze popsat dvěma základními postupy – popisem chování (behaviorálně) a popisem struktury:

Behaviorální styl se podobá klasickému programování softwarových aplikací a popisuje chování navrhovaného systému na funkční úrovni. Jazyk umožňuje při tomto způsobu popisu použití klasických konstrukcí jako if-then-else, switch-case, for a jiné. Dále umožňuje použití funkcí a proměnných.

Strukturální popis představuje analogii netlistu, tedy textový popis propojení součástí (strukturálních bloků), z nichž je navrhovaný systém složen. Propojení daných bloků je realizované signály, jež představují fyzické cesty mezi logickými členy. Signály na rozdíl od proměnných nabývají hodnot s jistým časovým zpožděním.

Behaviorální styl popisu má výhodu v tom, že je obvykle srozumitelnější a je tedy vhodnější pro dokumentaci, a je zpravidla méně závislý na cílovém obvodu než popis strukturálním stylem. Strukturální styl vsak umožňuje podrobnější řízení procesu syntézy přímo zapsaným textem.

I když byl jazyk VHDL prvotně určený pro návrh číslicových systémů, v současné době existuje rozšířený standard VHDL o analogové a smíšené obvody, zkráceně označovaný jako VHDL-AMS.

Jiří Janoušek - 14 - Liberec 2004

(15)

3.2 Návrhové systémy použité při tvorbě řadiče

Při návrhu systému jsem použil návrhový systém MAX II+Plus firmy Altera, který je v základní verzi BASELINE volně stažitelný z webu Altery. V něm jsem prováděl funkční a časové analýzy při tvorbě popisu obvodu v jazyku VHDL. Zvolil jsem ho pro jeho příjemné uživatelské prostředí a jeho velké možnosti při simulacích a analýzách, které výrazně usnadňují vyhledávání chyb, vzniklých nevhodným zápisem ve VHDL a pomáhají návrháři zefektivnit celý návrh. Podporuje také hierarchické uspořádání návrhu, jež jsem využil při spojení modulů, popsaných v souborech toplevel.vhd a DRAMcontrol.vhd.

Při testování funkčnosti kontroléru byl použit testovací přípravek SHARC s hradlovým polem od firmy Lattice Semiconductor, které MAX II+Plus nepodporuje. Pro vytvoření JEDEC souboru se muselo použít software od Lattice Semiconductor ispDesignEXPERT, který ve své knihovně IO pole ispLSI2096A obsahuje. Samotné nahrání souboru JEDEC do PLD jsem provedl pomocí utility ISP Daisy Chain Download (ispDCD™).

Oba programy jsou na CD ROM přiloženy k této diplomové práci společně se zdrojovými texty pro možnost otestování návrhu. K použití software MAX II+Plus je potřeba zažádat o zaslání bezplatné licence na stránkách výrobce.

Jiří Janoušek - 15 - Liberec 2004

(16)

4 PAMĚTI RAM

Paměť RAM (Random Access Memory) umožňuje, na rozdíl od pamětí sekvenčních, čtení i zápis do libovolného místa v paměti. Jako všechny polovodičové paměti jsou i paměti RAM uspořádány na čipu maticově. Každá paměťová buňka je určena řádkovým a sloupcovým vodičem. Podle toho, čím je paměťová buňka tvořena se mění vlastnosti polovodičové paměti. Existují dva základní druhy pamětí – statické a dynamické.

4.1 Statická paměť - SRAM

Jedná se o paměť z přímým přístupem, energeticky závislou, určenou pro čtení i zápis. Paměťová buňka je tvořena bistabilním klopným obvodem. Stavem klopného obvodu je určen zápis log. “l” nebo log. “0”. Adresace se provádí sepnutím příslušného spínače řádkovým vodičem a dojde k připojení konkrétní paměťové buňky na datové (sloupcové) vodiče. V této chvíli je možno z buňky číst nebo do ní zapisovat. Při čtení se obsah buňky přesouvá z paměti přes budič na datovou sběrnici, při zápisu se informace přesouvá z datové sběrnice do příslušné paměťové buňky. Při čtení se zkoumá jak skutečná, tak inverzní hodnota (ta slouží ke kontrole správnosti čtení). Jedna paměťová buňka obsahuje 4 až 6 tranzistorů. Statické paměti jsou sice rychlé, ale mívají menší kapacitu, protože každá buňka zabírá na čipu poměrně velké místo a jsou drahé, proto se používají hlavně pro vyrovnávací paměti cache, kde jsou kladeny hlavně nároky na rychlost.

4.2 Dynamická paměť - DRAM

Obdobně jako u statické paměti jsou paměťové buňky na čipu uspořádány maticově. Každá buňka je tvořena jedním unipolárním tranzistorem, jehož parazitní kapacita je řízeně nabíjená. Mezi vývody kapacity existuje napětí, které je úměrné velikosti náboje. Můžeme zde rozlišit dva fyzikální stavy: nabitý – log. 1, vybytý –

Jiří Janoušek - 16 - Liberec 2004

(17)

log. 0. Při zápisu se na adresový vodič přivede hodnota logická 1. Tím se tranzistor otevře. Na datovém vodiči je umístěna zapisovaná hodnota. Tato hodnota projde přes otevřený tranzistor a nabije kondenzátor. V případě zápisu nuly dojde pouze k případnému vybití kondenzátoru (pokud byla dříve v paměti uložena hodnota 1). Při čtení je na adresový vodič přivedena hodnota logická 1, která způsobí otevření tranzistoru. Jestliže byl kondenzátor nabitý, zapsaná hodnota přejde na datový vodič.

Tímto čtením však dojde k vybití kondenzátoru a zničení uložené informace. Jedná se tedy o buňku, která je destruktivní při čtení a přečtenou hodnotu je nutné opět do paměti zapsat. To je důležité si uvědomit při časování řídících signálů a dodržet minimální dobu pro opětovné zapsání dat.

Protože jsou kapacity reálné, mají svůj svod a vzhledem k jejich malé velikosti dochází k rychlému vybíjení a ke ztrátě informací. Aby k tomu nedocházelo provádí se pravidelně periodická obnova dat (tzv. refresh) – proto vznikl název dynamická paměť. Nutnost oživování dat je oproti pamětem statickým vyvážena velmi malými rozměry paměti DRAM, díky kterým může dosahovat velkých kapacit a její výroba je poměrně levná. Používá se především jako hlavní paměť v počítačových systémech.

4.2.2 Vnitřní struktura paměti DRAM

Dynamické paměti mají téměř vždy paměťové buňky uspořádané do čtvercových polí. To je dáno tím, že kvůli úspoře vstupních vývodů je maticové adresování buňky v paměti rozděleno na adresaci řádku a adresaci sloupce, pro které se používá stejné sběrnice. Tím je umožněna její poloviční velikost. Tato úspora však s sebou nese i výrazné prodloužení doby nutné k přístupu do paměti a snižuje přenosovou rychlost. Adresovaná data jsou přivedena na výstupní oddělovače a vyvedena na datovou sběrnici.

Jiří Janoušek - 17 - Liberec 2004

(18)

Příklad vnitřní struktury DRAM:

Obr. 4.a Vnitřní struktura paměti typu 4M x4, - převzato z [5]

Popis řídících signálů:

(V celém následujícím textu jsou pro větší přehlednost jména signálů psána vždy tučným písmem)

A0 .. A11 – adresová sběrnice společná pro sloupce i řádky DQ1 .. DQ4 –datová sběrnice

ras – signál potvrzující zadání adresy řádku (row address). Při jeho sestupné hraně se při čtecím či zapisujícím cyklu přiřadí paměti adresa řádku pro určitou banku paměti a ta je držena do jeho vzestupné hrany

cas – signál potvrzující zadání adresy sloupce (column address). Při jeho sestupné hraně se při čtecím či zapisujícím cyklu přiřadí paměti adresa sloupce a čte resp.

zapisuje se jeden nebo více bytů či slov

we – tento signál určuje, zda je přístup do paměti pro čtení (we = log. 0) nebo zápis (we = log. 1)

Všechny signály se zároveň používají pro provedení refresh.

Jiří Janoušek - 18 - Liberec 2004

(19)

4.2.2 Přístup do paměti

Komunikace s pamětí může probíhat buď synchronně (SRAM) nebo asynchronně - v této práci se zabývám pouze paměťmi s asynchronním přístupem.

Pro určení paměťové buňky je vždy nutné nejprve zadat adresu řádku a poté adresu sloupce. Pokud však je v po sobě následujících adresách shodný řádek (data jsou ve stejné stránce), je možno zadávat pomocí signálu CAS pouze adresu sloupce (tzv.

strobování pomocí CAS), adresa řádku zůstává zachována po celou dobu, kdy je signál RAS na úrovni logické 0 (tzv. latch pomocí RAS). Tím se zkracuje přístupová doba. Velikost bloku, který se dá číst či zapisovat bez nutnosti změny stránky, záleží na uspořádání paměťové matice. Obvykle to bývá 1024 – 4096 buněk. Stránkový přístup je paměťmi podporován ve dvou módech – EDO mode a Fast Page mode

FPM i EDO paměti jsou vyrobeny stejnou technologií, mají shodnou masku i výstupy a velmi podobné chování. Liší se jen vlivem signálu CAS na datovou sběrnici DQ. FPM při každé vzestupné hraně signálu CAS při otevřené stránce (signál RAS je ve stavu log. 0) automaticky nastaví na výstupy DQ vysokou impedanci a dál neřídí výstupní data. To má za následek, že CAS musí být držen v log. 0 dokud nejsou přečtena data a to zabraňuje paměti DRAM přejít do dalšího stavu a vznikají prodlevy.

EDO tuto ztrátu času napravuje, řídí výstupní data i po přechodu signálu CAS do log. 1. Výhodou toho je, že při čtení dat ze sběrnice DQ se již připravuje adresa sloupce pro další cyklus. Tato metoda bývá označována jako pseudo pipeline. Datová sběrnice se uvolní, až když se nastaví pro výstupy DQ stav vysoké impedance signálem RAS nebo WE. Na to je nutné při návrhu dbát pro zachování kompatibility řadiče s EDO pamětí.

Signál CAS musí být před adresací sloupce svojí sestupnou hranou určitý čas (precharge time) v log. 1 a u pamětí FPM tím vznikají časové prodlevy.

Jiří Janoušek - 19 - Liberec 2004

(20)

4.2.3 Refresh paměti

Paměti DRAM umožňují různé způsoby provedení refresh. Základní rozdělení je na rozložené (distributed refresh) a sloučené (burst refresh) oživení.

Distributed refresh – refresh time je rozdělen na stejné časové intervaly a v každém z nich je oživen určitý řádek. Počet intervalů se rovná počtu řádků. U většiny typů pamětí DRAM je interval roven 15,6 µs.

Burst refresh – tato metoda představuje spojitou sérii po sobě jdoucích oživovacích cyklů, při kterých se postupně oživují všechny řádky. Během této doby nejsou umožněny další příkazy či žádosti o přístup do paměti.

Pokud tedy budeme uvažovat například paměť s 1K refreshem, která vyžaduje oživení každých 16 ms a pro jeho provedení je potřeba 1024 cyklů (1K) a každý z nich trvá 130 ns, je paměť během jeho provádění blokována 133 µs a následujících 15,867 ms je paměť volná pro čtení či zápis. Díky této neplynulosti obsluhy paměti není použití této metody časté.

Oživovací cyklus

Každý z jednotlivých oživovacích cyklů, ať už v rozloženém či sloučeném módu, je možné provést jedním z následujících postupů: RAS only refresh, CBR refresh nebo Hidden refresh

RAS only refresh

Na adresovou sběrnici je přivedena adresa řádku, který se bude oživovat.

Signál CAS je držen ve stavu log. 1 a při sestupné hraně signálu RAS dochází k oživení příslušného řádku. Po dobu, kdy je signál CAS v log. 1, setrvávají výstupy DQ otevřené – není zápis na sběrnici. Dá se říci, že se jedná o „čtení naprázdno“.

Kontrolér paměti DRAM musí sám určovat adresu řádku, který bude oživen.

Nezáleží na jejich pořadí, ale je nutné, aby ve specifikované době byla oživena celá paměť.

Jiří Janoušek - 20 - Liberec 2004

(21)

CBR refresh

CBR neboli CAS before RAS je nejčastěji používaná metoda oživení díky své snadné aplikaci, nízkým nárokům na řízení a pro svoji nižší energetickou závislost.

Provádí se sestupem signálu CAS do stavu log. 0, následovaným sestupem signálu RAS. Každá následná sestupná hrana signálu RAS znamená další oživovací cyklus.

Po celou dobu je nutné, aby signál WE byl v úrovni log. 1. Výstupy DQ zůstávají v otevřeném stavu.

Paměťový modul obsahuje interní čítač, který se při připojení ke zdroji nastaví na náhodnou hodnotu. Udává adresu řádku, který se bude oživovat. Po každém provedení oživovacího cyklu se inkrementuje o 1. Po dosažení hodnoty adresy posledního řádku automaticky přechází na řádek první. Čítač pracuje automaticky a nedá se žádným způsobem z vnějšku řídit.

Protože při použití tohoto druhu oživení se nepoužívá adresová sběrnice (adresu určuje vnitřní čítač), jsou během něj vypnuty adresové buffery, což snižuje nároky na energii.

Hidden Refresh

Po proběhnutí čtecího či zapisovacího cyklu se ponechá signál CAS na úrovni log. 0 a signál RAS provede puls, při jehož sestupné hraně se provede oživení. Je to podobné jako u metody CBR, ale s tím rozdílem, že v průběhu oživovacího cyklu zůstávají na výstupech zachována data. Metody CBR i Hidden jsou stejně časově náročné, ale druhá varianta ponechává data na výstupech pro čtení i během oživovacího cyklu, proto se nazývá skrytá.

5 SPECIFIKACE POŽADAVKŮ NA NÁVRH OBVODU 5.1 Multifunkční jednotka EMU-2

Řadič, vytvořený v rámci této diplomové práce, má být součástí multifunkční měřící jednotky EMU-2, což je systém vyvinutý na Technické univerzitě v Liberci na Katedře elektrotechniky. Jeho jádro je tvořeno signálovým procesorem ADSP21061 s aritmetikou v plovoucí řádové čárce se špičkovým výkonem 120MFLOPS. Dále je jednotka vybavena ethernetovým rozhraním s komunikačním protokolem UDP/IP.

Jiří Janoušek - 21 - Liberec 2004

(22)

Odkládací prostor pro rychlá měření je tvořen volitelně pamětí DRAM. Do systému mohou být osazeny dva standardní moduly SIMM-72 s celkovou kapacitou do 64 MB. Paměť je připojena k signálovému procesoru přes řadič naprogramovaný do hradlového pole Lattice ispLSI2096A.

Hradlové pole může obsahovat i uživatelské periférie, jako jsou čítače, generátory PWM, binární vstupy/výstupy apod. Je nutné to při návrhu respektovat a návrh tomu přizpůsobit.

V následující kapitole vysvětluji komunikací DSP s externí pamětí. Zaměřuji se na pouze popis vlastností DSP a signálů, které se týkají paměti DRAM. Pro detailnější popis signálového procesoru odkazuji na [8], [9], [10].

5.2 Komunikace procesoru ADSP 21061 s externí pamětí

Mimo vnitřní paměť SRAM, umožňuje ADSP pomocí vnitřní 32-bitové sběrnice adresaci 232 slov (16 GB) mimo čip externím portem. Tento externí adresový prostor obsahuje i vnitřní paměti všech ostatních procesorů připojených v multiprocesorovém sytému, které se standartně adresují jako vnější paměť. Signály pro řízení paměti jsou určeny pro rychlé statické SRAM paměti. Jsou však podporovány i mapované periférie a pomalejší paměti pomocí kombinace čekacích stavů a potvrzujících signálů, definované uživatelem (v této práci se jedná o signál ack).

Při použití DRAM paměti DSP používá signál pro signalizaci překročení hranice stránky v paměti (page) a signál pro ovládání sběrnice (SBTS). Externí paměť může pozdržet jak instrukci, tak i data. Vnější paměťový prostor je dělen do 4 stejně velikých bank.

Jiří Janoušek - 22 - Liberec 2004

(23)

Propojení jednoho či více DSP s externí pamětí

Obr. 5.a Komunikace DSP s externí pamětí, převzato z [10], upraveno

Popis funkce řídících signálů mezi DSP a pamětí / řadičem (viz. Obr. 5.a)

ADDR 0 – 31 - externí adresová sběrnice pro externí paměti a periférie. DRAM má adresovou sběrnici 11-ti bitovu, z toho 3 bity (nejvyšší a dva nejnižší) řídí přímo kontrolér. Adresový multiplexor je řízen signálem rowsel.

DATA 0 -47 - externí datová sběrnice. Pro přenos 32 bitových dat s plovoucí čárkou (single-precision floatingpoint) se využívá bitů 16 – 47. Pro 16-ti bitová data se využívá bitů 16-31.

MS0 – MS3 - signály pro výběr paměti. Procesor jimi určuje odpovídající banku externí paměti. Velikost banky musí být definována v systémovém řídícím registru

Jiří Janoušek - 23 - Liberec 2004

(24)

(SYSCON) v DSP. Pro výběr přístupu do prostoru paměti DRAM je využit signál MS0, s kterým lze použít signál page.

RD , WR - žádost DSP o čtení resp. zápis do externí paměti. Využívá se i při přístupu jiného procesoru do vnitřní paměti.

PAGE - signál překročení hranice stránky. Velikost stránky DRAM musí být definována v paměťovém řídícím registru (WAIT) v DSP. Tento signál je možné použít pouze pro banku externí paměti č. 0. Ta je určena pro paměť DRAM. Pro jiné banky není tento signál podporován.

ACK - tímto signálem paměť potvrzuje příjem. Může být použit řadičem paměti nebo perifériemi pro pozdržení pro dokončení přístupu. Jeho pomocí se přidávají čekací stavy, eliminuje se tím možná kolize při zpoždění přístupu do paměti ze strany kontroléru.

TS – signál pro ovládání sběrnice, v mém případě je nevyužit.

Pro návrh kontroléru je klíčové využití signálu page, které se řídí nastavením pole PAGSZ, což jsou bity 25 -27 v registru WAIT. DSP nastavuje signál page pokaždé, když nastane žádost o přístup na adresu externí paměti v bance 0, ležící mimo aktuální stránku. Procesor porovnává každou výstupní adresu s poslední adresou úspěšného přístupu do vnější paměti (tu si ukládá do registru ELAST).

Signál page je nastaven po celou dobu přístupu.

Jiří Janoušek - 24 - Liberec 2004

(25)

6 NÁVRH DRAM KONTROLÉRU

6.1 Hierarchie návrhu hradlového pole

Prvním krokem bylo vytvoření konceptu celkového návrhu PLD, kterého bude kontrolér DRAM součástí. V hradlovém poli se počítá i s dalšími samostatnými komponentami. Proto byla zvolena hierarchická struktura, skládající se ze dvou úrovní. Tou nejvyšší je podsystém, popsaný v souboru toplevel.vhd. Řadič je vytvořen jako samostatná komponenta a je popsán souborem DRAMcontrol.vhd.

6.2 Nejvyšší úroveň návrhu

Nejvyšší úroveň tvoří modul toplevel.vhd, který obsahuje:

- podporu ethernetového rozhraní - obsluhu systémového registru - komponentu DRAM kontrolér

6.3 Podpora ethernetového rozhraní

Realizována procesem REGISTRY. Výstupní signály jsou synchronizovány na náběžnou hranu hodinového signálu ADSP_CLK. Pro možnost připojení jednotky EMU-2 k ethernetu je nutné řízení těchto registrů:

ETH_RD, EH_WR – signály pro čtení resp. zápis z paměťového prostoru ethernetu.

Ten je definován jako banka č. 3 a je volen signálem MS3.

RST_ETH – reset řadiče ethernetu IRQ0 - žádost o přerušení

6.4 Obsluha systémový registr

Systémový registr slouží k řízení A/D převodníků a podpoře dvou bitů konektoru DIG_IO. Je realizován procesem SYS_REGISTRY. Registr SysReg obsahuje tyto signály:

allDIG_IO31, allDIG_IO29 – dva bity konektoru DIG_IO

Jiří Janoušek - 25 - Liberec 2004

(26)

INRST_ETH – pomocný vnitřní signál pro reset řadiče ethernetu

ADCSE, ADCRES – set a reset A/D převodníků. Tyto signály jsou přivedeny na O1 resp. O2 - optrony typu PC817 X, z nichž jsou přes klopné obvody U7A a U7B rozvedeny na všechny A/D převodníky v podobě signálů AD_SET a AD_RESET.

Čtení a zápis do Systémového registru:

Přístup registru SysReg na datovou sběrnici je řešen pomocí klopného obvodu typu D a multiplexoru.

Obr. 6.a Přístup na datovou sběrnici

OE – signál povolení zápisu. Aktivuje se signálem RD, pokud je adresa rovna 0.

V ostatních případech je na sběrnici nastaven stav vysoké impedance (sběrnice je otevřena).

IO – signál pro načtení dat do registru. Aktivuje se signálem WR, pokud je adresa rovna 0.

6.3 Komponenta DRAMControler

Funkcí DRAM kontroléru je zajistit obsluhu dynamické paměti na základě požadavků signálového procesoru. Paměť je řízena třemi vektory signálů – ras, cas, a we, o jejichž časování se kontrolér stará a umožňuje signálovému procesoru čtení či zápis do externí paměti bez jejího přímého řízení. Požadavkem na navrhnutý kontrolér je jeho použití pro různé typy a velikosti modulů SIMM 72, tj. podpora FPM a EDO pamětí o velikosti do 32 MB.

Jiří Janoušek - 26 - Liberec 2004

(27)

Základem návrhu je univerzální jádro, splňující nároky všech požadovaných typů pamětí a dekodér, identifikující typ paměti a specifikující řídící vektory signálů.

Komunikace mezi DSP a DRAM kontrolérem je popsána v kapitole 5.2. Zde uvádím jen seznam signálů vstupujících či vystupujících z řadiče:

Výstupní signály z DSP do kontroléru:

clk, reset, dramsel (odpovídá signálu MS0 v DSP), RD, WR, Page, a00, a01, a10, a11, a12, a21, a22, a23 (část adresových bitů)

Výstupní signály z paměťových modulů:

PD11, PD12, PD21,PD22 (identifikační piny) Výstupní signál z kontroléru do DSP:

Ack

Výstupní signály z kontroléru do DRAM:

allCAS, allWRD, allRAS (vektory řídících signálů)

6.3.1 Postup při návrhu komponenty DRAMControl

Při tvorbě DRAM kontroléru jsem postupoval metodou nazývanou „shora dolů“, nebo-li že jsem si rozdělil návrh na několik funkčních bloků, kde každý jednotlivý blok představuje funkčně nezávislou logickou strukturu. Komunikaci mezi logickými bloky obstarávají vnitřní signály, jejich popis je vždy uveden u popisu funkce bloku.

Blokové rozdělení řadiče paměti:

- stavový automat generující řídící logiku

- dekodér určující řídící signály pro paměťové moduly - proces generující signál pro aktivaci refresh

Jiří Janoušek - 27 - Liberec 2004

(28)

6.3.2 Blokové rozdělení řadiče paměti

Obr. 6.b Blokové schéma komponenty DRAMControl.vhd

6.3.3 Generátor signálu refresh

Tento blok byl vytvořen pro nezávislost komponenty na vnějším časování oživení paměti. Je realizován procesem CITAC. Jeho cílem je generovat signál refresh a tím oznámit nutnost provést obnovu paměti. V tomto návrhu kontroléru je použita metoda CBR refresh. Její velikou výhodou je, že si vnitřní logika paměti sama určuje řádek, pro který má být obnova provedena a proto se návrh kontroléru nemusí jeho adresací zabývat a tím se snižují nároky na počet buněk v hradlovém poli. Pro plynulost obsluhy paměti je volen rozložený refresh.

Jiří Janoušek - 28 - Liberec 2004

(29)

Výpočet počtu hodinových cyklů, po kterých se aktivuje signál refresh:

refresh rate = refresh time / počet řádků

refresh time = max. doba, po kterou je uchována informace v paměti

refresh rate = doba mezi obnovou jednotlivých řádků (při zachování rovnoměrného časování)

Typickou hodnotou pro většinu SIMM-72 modulů je 15,625 µs. Proto mohu provádět časování oživení paměti bez nutnosti detekce typu paměti.

Frekvence hodin kontroléru: 40 MHz

Počet hodinových cyklů pro aktivaci refresh dalšího řádku:

15,625*10-6 * 40*10 6 = 625 cyklů

Kontrolér vždy nejprve dokončuje probíhající cyklus (např. čtecí), proto se v krajním případě aktivace refresh může zpozdit až o 7 cyklů, proto v prvotním návrhu proces CITAC generuje signál refresh každých 618 cyklů, aby nedošlo k případné ztrátě dat.

Signál refresh je nastaven (v úrovni log. 1) až do aktivace signálu refr_go, který je generován stavy S1 .. S7 a oznamuje spuštění procesu refresh - tím se vrací zpět do log. 0.

6.3.4 Dekodér výstupních signálů

Stavový automat generuje obecné řídící signály, které se musí přizpůsobit konkrétnímu zapojení paměťových modulů. Tento návrh počítá s použitím dvou 72- pinových DRAM pamětí typu SIMM. Podrobné schéma propojení kontroléru s paměťmi je v příloze [P1] na přiloženém CD-ROM.

Dekodér je tvořen procesem SIGNALY, v kterém se detekuje velikost a typ pamětí a generují se příslušné výstupní signály, řídící oba paměťové moduly. Jsou synchronizovány na vzestupnou hranu hodinového signálu clk. Protože předpokládám použití stejných typů pamětí pro oba sloty, používám k určení výstupů pouze identifikační signály PD11 a PD12 z prvního modulu a analogicky přistupuji i k druhé paměti.

Jiří Janoušek - 29 - Liberec 2004

(30)

Způsob adresace

Pomocí 11-ti bitové adresové sběrnice by bylo možno obsluhovat jen 16 MB paměti (2048 x 2048 x 32 bitů = 16 MB). Proto se další adresové bity dekódují na řízení signálů ras a cas a tím se adresovatelná kapacita paměti zvyšuje na 64 MB a je možné použít dva 32MB moduly.

Způsob jejich přiřazení ukazuje následující tabulka:

PD12 PD11 Velikost paměti ras cas

0 0 4 MB x A12

1 1 8 MB A12 A21

1 0 16 MB x A22

0 1 32 MB A22 A23

Popis výstupních signálů dekodéru:

Všechny výstupní signály jsou synchronizovány na náběžnou hranu hodinového signálu

allCAS – dvoubitový vektor, dle nejvyššího bitu adresy sloupce vybírá dekodér jeden ze dvou modulů a na sběrnici DQ přivádí všech 32 možných datových bitů najednou

allRAS – čtyřbitový vektor, vždy dvojice signálů slouží pro výběr jedné ze dvou bank v pamětech. Banky se chovají jako dvě samostatné paměti se společně sdílenou adresovou i datovou sběrnicí, každá má však vlastní řídící signály.

allWE – dvoubitový vektor pro výběr čtení či zápisu, jeho řízení nezávisí na velikosti paměti

ack_c –signál pro sychnronizaci s DSP. Stav v log. 0 signalizuje probíhající operaci – DSP čeká na její dokončení

rowsel_c, rowsel_r – výběrový signál pro adresový multiplexor

Tyto signály jsou vzájemně opačné (rowsel_c = NOT rowsel_r) a určují přiřazení adresy sloupce respektive řádku adresovým bitům DRAM_A2 .. DRAM_A9, což je realizováno multiplexorem, tvořeného 8-mi bitovými logickými výhybkami U12 a U13 (viz příloha P3)

Jiří Janoušek - 30 - Liberec 2004

(31)

Y00, Y01, Y02 – pomocné adresové signály, odpovídající adresovým bitům DRAM_A0, DRAM_A1 a DRAM_A10 paměťových modulů.

Protože je kontrolér navrhován pro různé velikosti pamětí, které používají rozdílný počet adresových bitů, jsou nejnižší dva bity (Y00, Y01) a nejvyšší bit (Y02) přiřazovány dle následující tabulky:

rowsel = 0 (adresa sloupce) rowsel = 1 (adresa řádku) Velikost

paměti y00 y01 y02 y00 y01 y02

4, 8 MB a00 a01 0 a10 a11 0

16, 32 MB a00 a01 a10 a11 a12 a21

6.3.5 Stavový automat

Obr. 6.c Stavový automat prvotního návrhu kontroléru

Jiří Janoušek - 31 - Liberec 2004

(32)

Stavový automat je vlastně hlavní jádro celého DRAM kontroléru. Celá obsluha pamětí, spočívající ve vhodném časování řídících signálů, vychází z tohoto stavového automatu. Je realizován konečným automatem synchronizovaným na náběžnou hranu hodinového signálu clk a asynchronním resetem. Pokud dojde k nastavení signálu reset na úroveň logické nuly, automat se z jakéhokoliv stavu vrací do stavu výchozího.

6.3.6 Popis jednotlivých stavů automatu:

S0 – výchozí stav

Do tohoto stavu automat přechází při aktivaci signálu reset nebo po dokončení oživovacího cyklu (stavy S1 .. S7). Je to nečinný stav, signály ras, cas i we jsou neaktivní neboli na úrovni logické 1 a paměť je v tzv. low power módu . V tomto stavu automat setrvává do doby, než DSP vyšle žádost o přístup do paměti signálem dramsel = 0 (automat přechází do stavu S1) nebo žádost o provedení refresh (automat přechází do stavu S8)

S1 .. S7 – provedení refreshe

Signál CAS přechází z log. 1 do log. 0 a v následujícím taktu je následován stejným poklesem signálu ras při držení signálu we v úrovni log. 1. Tím se aktivuje CBR refresh. Stavy S4 až S7 jsou vyčkávací, zajišťují dokončení refresh. Poté automat přechází zpět do výchozího stavu S0.

S8 .. S10 – adresace řádku (page swap)

Nastala nová žádost o přístup do paměti nebo adresa paměťové buňky leží mimo řádek (stránku) předchozího čtecího či zapisovacího cyklu. Je proto nutné zapsat adresu řádku. Multiplexor zvolí adresu pro řádek (signál dramsel = 1) a v následujícím taktu klesne signál ras na úroveň logické 0, čímž se provede přiřazení nové řádkové adresy. Poté automat přechází do stavu S11.

Jiří Janoušek - 32 - Liberec 2004

(33)

S11 – mezistav, který odděluje provedení adresace řádku a start čtecího nebo zapisovacího cyklu. Zde se vybírá typ přístupu do paměti. Pokud není žádost o přístup do paměti, automat se vrací se výchozího stavu S0.

S13, S14, S15 – stavy pro provedení čtecího / zapisovacího cyklu

Signály ras a rowsel jsou po celou dobu čtecího či zapisovacího cyklu drženy na úrovni logické 0. Při každé následující sestupné hraně signálu cas je adresována další paměťová buňka a v závislosti na nastavení signálu we probíhá čtení resp. zápis dat do paměti. Při provedení přístupu se povoluje signálem ack další instrukce signálového procesoru.

S12 – ukončení čtecího resp. zapisovacího cyklu

Pokud je již nutné provést refresh (signál refresh = 1), ukončí se přístup do paměti (signál ras se nastaví na úroveň logické 1) a stavový automat přechází do stavu S1.

Jestliže je žádán přístup do paměti ve stejné stránce jako předchozí, chod automatu pokračuje stavem S13 a následuje další čtecí / zapisovací cyklus bez změny adresy řádku, v opačném případě následuje stav S8 a proběhne page swap.

Když není požadován přístup do paměti ani provedení refresh, konečný automat čeká ve stavu S12 a nastaveným signálem ras v logické 0, čímž umožňuje pokračování čtení/zápisu ve stejné stránce bez nutnosti adresace řádku neboli umožňuje zůstat v tzv. Fast Page módu.

Jiří Janoušek - 33 - Liberec 2004

(34)

7 SIMULACE PRVOTNÍHO NÁVRHU

7.1 Prostředí pro simulaci

Celý návrh kontroléru paměti DRAM jsem realizoval v návrhovém prostředí MAX II+Plus od firmy Altera, s kterým jsem měl již zkušenosti z předchozích let.

Tento produkt jsem si vybral pro jeho příjemné uživatelské prostředí a jeho možnosti při simulaci návrhu. Jeho popisu je věnována kapitola 3.2.

Pro simulaci návrhu jsem zvolil hradlové pole EPM7096 z třídy MAX7000, jehož parametry se nejvíce blíží logickému obvodu ispLSI2096A, do kterého má být kontrolér implementován jako součást multifunkční měřící jednotky EMU2.

Rozhodujícím parametrem pro výběr vhodného pole pro časovou simulaci byla jeho rychlost, udávaná zpožděním mezi vstupem a bezregistrovým výstupem tPD (pro oba typy obvodů je tPD = 7,5 ns).

Provádět simulaci na jiném obvodu je možné, jelikož jazyk VHDL je zcela nezávislý na typu hradlového pole. Proto model, ověřený simulací pro určitý obvod, lze úspěšně implementovat do odlišného pole. Musí se však dbát na dodržení určitých podmínek – dostačující počet hradel, registrů, rychlost obvodu a počet vstupních a výstupních pinů.

Pro zobrazení časových průběhů signálů v prostředí MAX II+Plus slouží Waveform Editor, z něhož jsem schémata exportoval do grafického editoru a následně upravil.

Funkčnost jádra návrhu závisí na správném časování vnitřních řídících signálů. Ty jsou poté v závislosti na druhu a velikosti pamětí dekódovány na více signálů výstupních, které ovládají paměťové moduly. Vnitřní signály ras, cas, wrd a rowsel proto převádím na výstupy ras_o, cas_o, wrd_o a rowsel_r, které slouží pouze pro účely zobrazení časových průběhů. Jsou synchronizovány na náběžnou hranu hodinového signálu clk.

Z důvodu použití kontroléru v jednotce EMU2, je navržen pro taktovací frekvenci 40 MHz, doba přechodu mezi jednotlivými stavy stavového automatu je 25 ns. To je velmi limitující faktor při časování signálů.

Jiří Janoušek - 34 - Liberec 2004

(35)

7.2 Porovnání výsledků simulace s technickými parametry

Porovnáním simulací a časových průběhů udávaných výrobcem lze určit dodržení norem pro řízení paměti a zhodnotit funkčnost návrhu. Tyto simulace byly základem pro analýzu časových průběhů a následnou optimalizaci prvotního návrhu.

7.2.1 Zapisovací cyklus

Obr. 7.a Průběh řídících signálů při zápisu a při zápisu ve FPM módu, převzato z [12]

Obr. 7.b Časová simulace řídících signálů při zápisu a při zápisu ve FPM módu

Tabulka s časovými údaji je na následující straně.

Jiří Janoušek - 35 - Liberec 2004

(36)

7.2.2 Čtecí cyklus

Obr. 7.c Průběh řídících signálů při čtení a při čtení ve FPM módu, převzato z [12]

Obr. 7.d Časová simulace řídících signálů při čtení a při čtení ve FPM módu

Srovnání simulace prvotního návrhu (v tabulce sloupec Kontrolér1) s časy uváděnými výrobcem Micron v [12] (sloupec DRAM)

parametr DRAM Kontrolér1 tCAS min 15 ns 75 ns

tCP min. 10 ns 25 ns tCRP min. 10 ns 50 ns tCSH min. 60 ns 125 ns

tPC min. 35 ns 100 ns

parametr DRAM Kontrolér1 tRASP min 60 ns min 150 ns

tRCD min. 20 ns 50 ns tRP min. 40 ns 50 ns tRSH min. 15 ns 100 ns tRAH min. 10 ns 25 ns

Jiří Janoušek - 36 - Liberec 2004

(37)

7.2.3 CBR Refresh

Obr. 7.e Průběh řídících signálů při CBR refresh, převzato z [12]

Obr. 7.f Časová simulace řídících signálů při CBR refresh

Srovnání simulace prvotního návrhu (v tabulce sloupec Kontrolér1) s časy uváděnými výrobcem Micron v [12] (sloupec DRAM)

Parametr DRAM Kontrolér1 tRP min 40 ns 75 ns tRAS min. 60 ns 100 ns

tCP min. 10 ns 75 ns tCSR min. 10 ns 25 ns tCHR min. 15 ns 25 ns

Aktivaci refresh zajišťuje proces CITAC vysláním signálu refresh po dosažení určité hodnoty proměnné tiktak. Tato hodnota závisí na požadovaném intervalu mezi oživováním jednotlivých řádků. Pro účely simulace jsem ji zvolil na

Jiří Janoušek - 37 - Liberec 2004

(38)

hodnotu 50, po jejímž dosažení se aktivuje signál refresh (přechází do log. 1) a nuluje se čítač. Nejprve se dokončí probíhající operace (na obr. 7.f se jedná o zapisovací cyklus ve Fast Page módu realizován přechody mezi stavy S13-S14-S15- S12) a po jejím dokončení může stavový automat přejít do stavu S1 a započít aktivaci refresh. Ve stavu S1 se signál refresh deaktivuje.

7.3 Zhodnocení výsledků simulace

Výsledky simulace ukázaly, že tento návrh odpovídá minimálním požadavkům technické specifikace časování signálů pro řízení přístupu do paměti a obsluhu refresh dynamické paměti.

Přístupová doba Běžný přístup

Pro běžný přístup do místa v paměti je v tomto návrhu třeba osmi stavů : S8 .. S10 – stavy pro adresaci řádku (Page Swap)

S11 - je přechodný stav po adresaci řádku

S13, S14,S15 – adresace sloupce, při kterém probíhá čtení či zápis dat S12 – dokončující stav

Pro jeden běžný přístup do paměti je potřeba 8 x 25 ns = 200 ns. Technická specifikace uvádí minimální dobu pro jeden přístup tRC = 110 ns. V tomto případě je navržený kontrolér při čtení či zápisu téměř dvakrát překračuje minimální dobu pro přístup do paměti, a to jistě není optimální řízení přístupu.

Přístup ve Fast Page módu První přístup:

S8 .. S10 – adresace řádku S11 – přechodný stav

S13,S14,S15, S12 - adresace sloupce, čtení či zápis dat Následující přístupy ve FPM režimu:

S13, S14, S15, S12 - adresace sloupce, čtení či zápis dat na stejném řádku

Jiří Janoušek - 38 - Liberec 2004

(39)

Pro první přístup je potřeba 8 x 25 ns = 200 ns. Uváděná minimální doba pro první přístup do paměti je tRP + tCSH = 100 ns. Následující přístupy do paměti potřebují každý 4 x 25 ns = 100 ns. Uváděná minimální doba přístupu ve FPM režimu je tPC = 35 ns. Zde řadič využívá pouze třetinu rychlosti paměti. Optimalizace je proto velmi žádoucí.

8 OPTIMALIZACE NÁVRHU

8.1 Rychlost přenosu dat

Prvním krokem bylo porovnání časových simulací s technickou specifikací pamětí a odhalení zbytečných prodlužovacích stavů konečného automatu.

Nepotřebné stavy v automatu byly obsaženy, protože při návrhu jádra prvotního kontroléru bylo postupováno dle modelu, který je popsán v [3] a který byl určen pro vyšší taktovací frekvenci. To se týká především stavů pro provedení refresh. Ten mohl být zkrácen ze 7 na 5 stavů (ST1..ST5)

Při synchronizaci všech řídících signálů na stejnou hranu signálu je nemožné provést přístup do paměti s adresací řádku méně než pěti stavy se zaručením plné bezchybnosti. Při ubrání jednoho stavu by se signály cas a rowsel přepnuly ve stejné chvíli. Pokud by poté z nějakého důvodu došlo k opoždění signálu rowsel a tím pozdě zareagoval adresový multiplexor, došlo by k chybě při adresaci. Tento problém jsem se pokusil vyřešit vytvořením procesu multiplex_rowsel, který by reagoval na sestupnou hranu hodinového signálu a vysílal signál pro výběr adresy sloupce s 12,5 ns předstihem před samotnou adresací.

Tento návrh se ovšem nedal nakonec použít, protože došlo ke kolizi s vnitřním uspořádáním obvodu. Muselo se dodržet už existující rozložení jednotlivých pinů. Hodinový signál ADSP_CLK je přiřazen pinu Y0 (č. 15), který je jedním ze tří vstupů, vyhrazených pro globální hodinový signál. Pro tyto vstupy se nedá použít negace signálu a tím ani synchronizace na sestupnou hranu. Návrh by

Jiří Janoušek - 39 - Liberec 2004

(40)

byl funkční, pokud by se hodinový signál přivedl na běžný vstup. A to v tomto případě nebylo možné.

8.2 Nároky na hradlové pole

Při tvorbě kontroléru byly kladeny požadavky nejen na jeho rychlost, ale i na minimalizaci prostoru, který je potřeba v hradlovém poli pro realizaci kontroléru.

Ten závisí nejen na návrhu samotném, ale i na druhu použitého klopného obvodu a na způsobu implementace. Počet využitých logických bloků, makrobuněk a propojek závisí na nastavení kompilátoru. Optimalizace výsledné logiky se může řídit požadavky na rychlost a výkon obvodu, nebo na jeho minimalizaci.

I když je jazyk VHDL nezávislý na použitém obvodu, při popisu elektronického systému je nutné dbát na určitá pravidla, kterými se pak řídí samotná implementace. Při nevhodných konstrukcích dochází k nárůstu zbytečných logických členů. V tomto případě se jednalo o neúplnou definici signálu refr_go, který je při syntéze vnímán jako latch (asynchronní klopný obvod) a tím vzrůstají požadavky na hradlové pole. Jeho odstraněním (byl nahrazen vhodnější formulací pro detekci probíhajícího refresh, viz zdrojový text na přiloženém CD-ROM) se snížily požadavky pro implementaci. Proces CITAC a tím i signály refresh a refr_go byly vytvořeny pouze pro možnost ověření funkce kontroléru, při pozdějším využití tohoto kontroléru společně s dalšími komponentami (dekodér IRC, PWM generátor …) se uvažuje o centrálním čítači, sloužícím zároveň jako časová základna pro generování PWM, proto jsem se dál nezabýval jeho optimalizací. Ta by spočívala v nahrazení proměnné, kterou jsem použil, sérií hradel XOR. Tím by se zajistila větší kontrola nad syntézou textu popisujícího chování obvody.

Celkový počet obsazených buněk v obvodu závisí na použitém postupu syntézy a implementace. Ten se volí buď pro minimalizaci zabraného prostoru nebo pro dosažení co nejvyšší rychlosti obvodu. Rozhoduje také rozvržení přidělení pinů.

Výsledné nároky na hradlové pole jsou uvedeny v kapitole 9.5.

Jiří Janoušek - 40 - Liberec 2004

(41)

9 FINÁLNÍ NÁVRH KONTROLÉRU

Přístup pro čtení a pro zápis jsem rozdělil do dvou samostatných uzlů (aby nedocházelo ke kolizím při změně žádosti čtení / zápis) a tím realizoval opakovaný FPM přístup pomocí dvou stavů – ST8-S10 (respektive ST9-ST10). Minimalizoval jsem dobu nutnou k provedení refresh a adresaci řádku (page swap).

9.1 Konečný stavový automat finálního návrhu

Obrázek 9.a Stavový automat finálního návrhu kontroléru

Jiří Janoušek - 41 - Liberec 2004

(42)

9.2 Simulace finálního návrhu

Průběh čtecích a zapisovacích cyklů

Obr. 9.b Časová simulace finálního návrhu – čtení/zápis

Na obr. 9.b je zachycen průběh řídících signálů při simulaci finálního kontroléru. Nejprve proběhnou 4 čtecí cykly (z toho 3 ve Fast Page módu). Po nastavení signálu page se ukončí FPM režim a přechází se na adresaci řádku a proběhnou 4 zapisovací cykly.

Porovnání dosažených časů při simulaci (sloupec Finální řadič) s technickou specifikací (sloupec DRAM):

parametr DRAM Finální řadič tCAS min 15 ns 25 ns tCP min. 10 ns 25 ns tCRP min. 10 ns 50 ns tCSH min. 60 ns 75 ns tPC min. 35 ns 50 ns

parametr DRAM Finální řadič tRASP min 60 ns min 75 ns

tRCD min. 20 ns 50 ns tRP min. 40 ns 50 ns tRSH min. 15 ns 25 ns tRAH min. 10 ns 25 ns Při porovnání výsledků by se dalo říci, že časy tCSH a tRCD je možné zkrátit ještě o 25 ns (doba přechodu mezi jednotlivými stavy automatu). To však není provedeno z důvodu zabránění možné kolize při adresaci sloupce. Podrobněji je o tom zmíněno v kapitole 8.1.

Jiří Janoušek - 42 - Liberec 2004

(43)

Průběh CBR refresh

Obr. 9.c Simulace finálního návrhu – CBR refresh

Porovnání dosažených časů při simulaci (sloupec Finální řadič) s technickou specifikací (sloupec DRAM):

Parametr DRAM Finální řadič tRP min. 40 ns 50 ns tRAS min. 60 ns 75 ns tCP min. 10 ns 25 ns tCSR min. 10 ns 25 ns tCHR min. 15 ns 25 ns

9.3 Výsledky simulace

Doba přístupu pro čtení / zápis:

První přístup

ST6..ST8 – provedení Page swap

ST9 – ST11 (resp. ST10-ST11) – čtení, resp. zápis

Pro jeden běžný přístup do paměti je potřeba 5 x 25 ns = 125 ns. Technická specifikace uvádí minimální dobu pro jeden přístup tRC = 110 ns.

Další přístupy ve FPM módu

ST9 – ST11 (resp. ST10-ST11) – čtení, resp. zápis

Následující přístupy do paměti ve FPM režimu potřebují každý 2 x 25 ns = 50 ns. Uváděná minimální doba přístupu ve FPM módu je tPC = 35 ns.

Jiří Janoušek - 43 - Liberec 2004

(44)

9.4 Implementace do skutečného hradlového pole

Zkouška finálního návrhu byla provedena pomocí testovacího přípravku SHARC EZ-KIT Lite se signálovým procesorem ADSP-21061.

Použité hradlové pole: ispLSI2096A-80LQ128I Použitý paměťový modul: 8MB SIMM-72 EDO

Jednalo se tedy s prvky shodnými s prvky v jednotce EMU-2, pro kterou je tento kontrolér určen. Syntéza byla provedena pomocí software ispDesignEXPERT.

Vytvořený JEDEC soubor byl nahrán přes paralelní port LPT počítače a ISP rozhraní na desce EZ-KIT.

Při použití metody pro minimalizaci obsazeného prostoru, má celý finální návrh tyto nároky:

Počet obsazených makrobuněk: 59 z 96 možných Počet obsazených globálních logických bloků (GLB): 15 z 24 možných Počet použitých vnitřních propojek: 135

Pro srovnání zde uvádím nároky prvotního návrhu:

Počet obsazených makrobuněk: 68

Počet obsazených globálních logických bloků (GLB): 18

Počet použitých vnitřních propojek: 173

Kontrolér i s čítačem (který bude společný pro všechny komponenty) obsadil přes polovinu bloků hradlového pole, zůstal však dostatečný prostor pro realizaci ostatních komponent, používaných v EMU-2.

Řadič byl odzkoušen pomocí programu, napsaného ve Visual DSP ++.

Postupně se celý adresový prostor plnil daty, které se pak zpětně četly a kontrolovaly.

Kontrolér pracuje bezchybně.

Jiří Janoušek - 44 - Liberec 2004

References

Related documents

S ohledem na öirokÈ moûnosti volby typu wavelet funkcÌ, pro- mÏnnÈ rozliöenÌ v ËasovÈ a frekvenËnÌ oblasti a rozs·hlÈ moûnosti dekompozice a rekonstrukce p˘vodnÌho

Otcovský wavelet určuje celkový trend signálu - rozklad na škálové koeficienty, zatímco mateřský wavelet zachycuje doplňkovou informaci o „jemnostech“ na

Součástí řešení bude řešení okolí, vazby na řeku a historický most, řešení dopravy a prostranství náměstí.. Komentář

V rámci plnění cíle práce, který spočíval v odstranění nedostatku knihovny Armadillo (neefektivnímu využití cache paměti procesoru pro vektory a matice malých rozměrů)

Téma disertační práce: Influence of High Temperatures on Properties of Geopolymers Filled by Inorganic Fibrous Particles.. Termín odevzdání:

Zapojte invertující zesilovač se jmenovitým zesílením A u = -5,0 s využitím rezistorů ze zásobníků – nepoužívejte hodnoty menší než 2 kΩ (hrozí přetížení

1) Sestavte úlohu investujícího zesilovače s moduly DOMINO dle pokynů vedoucího cvičení. 3) Připojte na vstup generátor signálu a digitální osciloskop na

Tato doktorská disertační práce byla zaměřena na chování podniků zejména v čase globální finanční krize roku 2009 a následujícím středně dlouhém