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
Kontroloval/a
Datum:
Číslo: 1.
Pořadové číslo žáka: 12
Třída: E4B
ÚLOHA: Návrh paměti
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ů.
Návrh paměti
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
AD19-AD0
vstupní výstupní
Datová sběrnice a část adresové sběrnice.
BHE
výstupní
Řízení přenosu slabik. Během T1 může tento signál povolovat přenos vyšší slabiky dat. BHE A0 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.
Návrh paměti EPROM
1 1 1b
(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 A0-A16 I/01-I/O8 UCC, GND
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 Data inputs/outputs – bity pro část datové sběrnice (konkrétně jednu slabiku) Power supply (+5V) – Napájení, uzemění
CE
Chip enable – tímto signálem určujeme, že chceme používat zvolenou paměť
OE
Output enable – signál pro čtení z paměti
WE
Write enable – signál pro oznámení zápisu do paměti
AT27C010 SIGNÁLY NC
FUNKCE No connection – signál přepne paměť do stavu vysoké impedance → paměť se chová, jako kdyby byla z obvodu odpojena
A0-A16
Adress inputs – bity určené pro adresovou sběrnici
01-O8
Data outputs – výstup pro čtení dat
UCC, GND
Power supply (+5V) – Napájení, uzemění
CE
Chip enable – tímto signálem určujeme, že chceme používat zvolenou paměť
OE
Output enable – signál pro čtení z paměti
PGM
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.
Návrh paměti
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 A19 A18 A0 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
-
-
-
-
-
-
-
-
Návrh paměti
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. AD0-AD16 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)
Návrh paměti
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)
Návrh paměti
1 1 2d
Návrh paměti
113
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í.