STŘEDNÍ PRŮMYSLOVÁ ŠKOLA V ČESKÝCH BUDĚJOVICÍCH, DUKELSKÁ 13 PROTOKOL O LABORATORNÍM CVIČENÍ Provedl: Jan Kotalík Datum: 3.1. 2010 Číslo: Kontroloval/a Datum: 1. ÚLOHA: Návrh paměti Pořadové číslo žáka: 12 Třída: E4B 0.1 Zadání Navrhněte operační paměť počítače s procesorem 8086 o kapacitě 1 MB -paměť bude celá typu RWM a bude vytvořena tak, že nejvyšších 256kB bude stránkovatelných s pamětí EPROM stejné kapacity -přepínání horních RWM/EPROM bude prováděno takto: 1) při RESET - EPROM 2) při instrukci IN 200H - EPROM 3) při instrukci OUT 200H - RWM Paměť navrhněte včetně řídicích obvodů na její přepínání RWM/EPROM i komunikace paměti s dolní částí, horní částí i celým slovem datové sběrnice. Sestavte paměť z IO RWM i EPROM o této organizaci: 128k x 8b 0.2 Cíl měření Vyzkoušet činnost paměti a signálů.
1 1 1a 1.1 Teoretický rozbor Procesor 8086 ve vztahu k adresování Mikroprocesor 8086 pracuje s 20bitovou adresou pro adresování v hlavní paměti, což v hexadecimálním zápisu odpovídá množině adres 00000 až FFFFF. Z jeho architektury, a tím i z mikroprogramů instrukcí však plyne, že hlavní paměť musí být slabikové organizována, takže CPU adresuje až 1 M slabik, kde 1 M = 2 20. Může tedy mít kapacitu do 1 048 576 slabik, popř. do 524 288 slov. Instrukce i slabiky nebo 16bitová slova dat lze ukládat na libovolné adresy. Přitom slovo o dvou slabikách se u mikroprocesoru 8086 ukládá do dvou sousedních buněk tak, že nižší slabika slova přijde na specifikovanou adresu a vyšší slabika na následující vyšší adresu. Architektura 8086/88 vyžaduje, aby programy mikropočítače předpokládaly hlavní paměť rozdělenou na segmenty. Segment je souvislé pole, resp. odpovídající části paměti o délce do 64K slabik. Jeho počáteční adresa musí být násobkem 16. Jiná omezení nejsou, takže segmentů může obecně být neomezené množství (různých pak 216), mohou těsně sousedit nebo být odděleny nevyužitými adresami a také se mohou zčásti nebo i úplné překrývat. Z toho ovšem plyne, že segmentace je pouze logické děleni paměti, tj. že počet a umístění segmentů určuje programátor podle potřeb aplikace počítače, a nemusí se tedy krýt s fyzickým dělením paměti na stránky nebo konstrukční moduly. Signály procesoru 8086 ve vztahu k adresování Tabulka signálů, pomocí kterých bude procesor 8086 komunikovat s pamětí. SIGNÁLY ORIENTACE FUNKCE AD 19 -AD 0 vstupní výstupní Datová sběrnice a část adresové sběrnice. BHE výstupní Řízení přenosu slabik. Během T 1 může tento signál povolovat přenos vyšší slabiky dat. BHE A 0 Funkce 0 0 Úplné slovo 0 1 Horní slabika (lichá adresa) 1 0 Dolní slabika (sudá adresa) 1 1 - RD výstupní Čtení. Signál indikuje, že CPU přijímá data ze sběrnice. RESET vstupní Signál okamžitě ukončí dosavadní aktivitu CPU a předá řízení instrukcí na adrese FFFF00 M/IO výstupní Rozlišuje takty s přístupem k paměti a ke vstupům/výstupům. WR výstupní Signál oznamující, že data na datové sběrnici jsou platná. Paměti RWM a EPROM RWM (read-write memory) přepisovatelná paměť vhodná pro čtení i zápis s libovolným (náhodným) přístupem, který umožňuje přistupovat k paměti na jakékoli okamžité adrese bez nutnosti přecházet přes ostatní adresy.
1 1 1b EPROM (read-only memory) programovatelná paměť určená pouze pro čtení, programuje se maskou při výrobě, je smazatelná UV zářením. Signály použitých pamětí RWM a EPROM K realizaci paměťového bloku budou použity konkrétní součástky, pro paměť typu RWM (SRAM ) bude použit integrovaný obvod 628128-70, pro paměť EPROM pak obvod AT27C010. Tyto obvody mají v katalogu uvedeny své vlastní signály, které potřebujeme znát pro realizaci návrhu. SRAM 628128-70 SIGNÁLY NC A 0 -A 16 FUNKCE No connection signál přepne paměť do stavu vysoké impedance paměť se chová, jako kdyby byla z obvodu odpojena Adress inputs bity určené pro adresovou sběrnici I/0 1 -I/O 8 Data inputs/outputs bity pro část datové sběrnice (konkrétně jednu slabiku) U CC, GND CE OE WE AT27C010 SIGNÁLY NC A 0 -A 16 Power supply (+5V) Napájení, uzemění Chip enable tímto signálem určujeme, že chceme používat zvolenou paměť Output enable signál pro čtení z paměti Write enable signál pro oznámení zápisu do paměti FUNKCE No connection signál přepne paměť do stavu vysoké impedance paměť se chová, jako kdyby byla z obvodu odpojena Adress inputs bity určené pro adresovou sběrnici 0 1 -O 8 Data outputs výstup pro čtení dat U CC, GND CE OE PGM Power supply (+5V) Napájení, uzemění Chip enable tímto signálem určujeme, že chceme používat zvolenou paměť Output enable signál pro čtení z paměti Program strobe pomocí tohoto signálu lze paměť programovat, v návrhu obvodu pro komunikaci paměti s procesorem jej nebudeme potřebovat MH3205 dekodér MH3205 - dekodér Obvod 3205 je jednoduchý rychlý kombinační dekodér binárního kódu na kód 1 z 8 s negovanými výstupy. Má vstupní přívody A2, A1 a A0 pro 3 bitový binární kód a 8 výstupů O7 až O0. Selekci obvodu zajišťují přívody E3, E2 a E1 na základě zabudované logické funkce E3. E2. E1 = 1 MH3205 charakterizují tyto údaje: velká rychlost zpoždéní max. 18 ns, nízký vstupní proud max. 0,25 ma, výstupní proud - až 10 ma při logické hodnotě 0,. rozšiřitelnost s využitím vstupů E3 až ET, jednička na všech výstupech při deselekci.
1 1 2a 2.1 Návrh Obecná pravdivostní tabulka pro selekci jednotlivých paměťových prvků Pomlčky označují zakázaný stav. M/IO A 19 A 18 A 0 BHE CE 3H CE 3L CE 2H CE 2L CE 1H CE 1L CE 0H CE 0L 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1-0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1-0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1-0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1-1 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1-1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1-1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1-1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 -
1 1 2b Celkové blokové schéma se bude skládat z jednotlivých bloků, které dají dohromady celý návrh. IO 1 Paměť Tento blok obsahuje samotnou paměť složenou z jednotlivých paměťových obvodů, doplněnou o logické klopné obvody NAND na vstupech Chip Enable (chipselect), je zde též připojena adresová a datová sběrnice, a to tak, že paměti pro nižších 8 bitů (L) náleží nižší část datové sběrnice, vyšších 8 bitů sběrnice se připojí k paměti H. Celý blok vychází z obecné pravdivostní tabulky pro selekci jednotlivých paměťových prvků. Vstupy 0,1, 2, 3 se provádí selekce jednotlivých pater pamětí. Vstupy L a H se určuje, zda se pracuje s nižší nebo vyšší slabikou, popřípadě celým slovem. AD 0 -AD 16 jsou bity pro multiplexovanou sběrnici. Vstup OE slouží k příkazu čtení dat ze sběrnice, vstup WE k zápisu do paměti. Vstupy R a E slouží k přepínání mezi pamětí RWM a EPROM. Použité součástky 8x SRAM 628128-70 2x AT27C010 2x 74ALS 00 (obsahuje 4 dvouvstupové součástky NAND) 1x 74HC 10 (obsahuje 3 třívstupové obvody NAND)
1 1 2c IO 2 Obvod pro selekci Tento obvod umožňuje dekódovat binární signál z procesoru a vybrat paměť odpovídající jeho signálu. Pokud však procesor signalizuje, že s pamětí nepracuje, dojde k negaci signálu IO, neboť výstup povede ke vstupu pro odpojení paměti, který přepíná paměť do stavu vysoké impedance při LOG1. Pravdivostní tabulka hodnot pro dekodér, pokud se E1*E2*E3=1 A0 A1 0 1 2 3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 Použité součástky 1x MH3205 1x 74ALS 00 IO 3 Obvod pro přepínání RWM a EPROM Tento obvod umožňuje přepínání horních 256kB mezi pamětí RWM a EPROM. K indikaci je použit obvod složený ze dvou obvodů typu NOR a ze dvou obvodů NAND. K němu je připojená adresová sběrnice. Signály RD a WR určují, zda probíhá instrukce IN nebo OUT. Při aktivním výstupu E bude zvolena paměť EPROM, při výstupu R paměť RWM. Obě paměti nesmí být nikdy vybrány současně v jednom čase. Paměť si bude pamatovat svůj předchozí stav. RESET 200H RD WR E R 0 1 0 1 0 1 0 1 1 0 1 0 1 0 - - 1 0 Pomocí vstupů RD a WR ovbod zjišťuje, zda probíhá instrukce IN nebo OUT. Vstupy A0-A15 označují adresovou sběrnici, obvod sleduje také signál RESET. Výstup EE (EPROM enable) signalizuje, že je vybrána paměť typu EPROM, RE pak pamět typu RWM. Použité součástky 1x 74ALS 00 1x 4081 (obsahuje 4 dvouvstupové obvody AND) 2x 4078 (osmivstupový NOR) 1x 4070 (dvouvstupový OR) 1x 4027 (R-S klopný obvod)
1 1 2d
1 1 3 3.1 Celkové blokové schéma 3.2 Souhrn součástek 8x SRAM 628128-70 2x AT27C010 4x 74ALS 00 (obsahuje 4 dvouvstupové součástky NAND) 1x 74HC 10 (obsahuje 3 třívstupové obvody NAND) 1x MH3205 1x 4081 (obsahuje 4 dvouvstupové obvody AND) 2x 4078 (osmivstupový NOR) 1x 4070 (dvouvstupový OR) 1x 4027 (R-S klopný obvod) 3.3 Závěr Návrh by bylo možno realizovat více způsoby, například využitím dvou obvodů MH3205, kde bychom paměť odpojovali pomocí selekce těchto dvou obvodů. V obvodech, kde byly zapotřebí logické obvody NOT, byly tyto obvody nahrazeny dvouvstupovými NANDy se spojenými vstupy, a to z důvodu úspory součástek, popřípadě kvůli nižší ceně těchto obvodů. Ve schématu je též vyvedena svorka pro signál RESET, který je v případě procesoru i paměti vstupní a tedy je nutné jej externím zařízením ovládat. U procesoru 8086 nejsou zakresleny signály, které nesouvisí s pamětí.