PDF-Datei
Transcription
PDF-Datei
Digitaltechnik Teil 3 -1- Prof . Komar Digitaltechnik Teil 3: Programmierbare Logik Inhaltsverzeichnis Speicher Umlaufspeicher, FIFO, LIFO Halbleiterspeicher (Matrixspeicher) Nichtflüchtige Speicher Festwertspeicher (ROM, PROM, EP ROM) Flüchtige Speicher (SRAM, DRAM) Assoziativspeicher (CAM ) Speicher – Sonderformen Übersicht gebräuchlicher Speicherbausteine .................. ................. ................. ................. ................. ................. ................. .................. ................ 2 3 5 8 9 12 18 19 20 Programmierbare Logikbausteine PLD ASIC-Vollkundenspez.-, Standard-ICs, Gate-Arrays Programmierbare Logikbausteine PLD PROM – PLA – PAL Übersicht über PALs Schaltnetz- Realisierung mit PLD-ICs PLD mit programmierbaren Ausgängen – GAL Ausgangs Makrozelle OLMC FPGA Rechnergestützter Entwurf programmierbarer Logik ............... 22 ............... 23 ............... 24 ................ 26 ................ 27 ................. 28 .................. 29 .................. 31 ................. 32 Digitaltechnik Teil 3 -2- Speicher Speicherhierarchie Computer-System mit verschiedenen Speicherarten Prof . Komar Digitaltechnik Teil 3 -3- Prof . Komar Begriffspaare zur Charakterisierung von Speichern Halbleiterspeicher lassen sich unterteilen in Matrix - und Umlaufspeicher Umlaufspeicher sind Speicher mit seriellem Zugriff und werden aus rückgekoppelten Schieberegistern gebildet. Ein parallel zum Schieberegister betriebener modulo -n-Zähler adressiert die jeweils am Registerausgang befindliche Information. Bei Gleichheit von Adresse der gewünschten Information und Zählerstand gibt der Vergleicher Datenein- und ausgang des Schieberegisters frei. Für einen m-Bit Wortspeicher werden m Schieberegister parallel betrieben. Rückgekoppeltes Schieberegister als Umlaufspeicher DA-Datenausgang DE-Dateneingang SE-Steuerereingang für Schreiben oder Lesen Ta-Schiebetakt Schieberegister für Umlaufspeicher werden häufig in dynamischer Technik ausgeführt. Dynamische Technik heißt, daß als 1bit-Speicherelement ein Kondensator (z.B. Gate-Kapazität eines MOSTransistors) dient, der aufgrund der Leckströme seine Information (Ladung) innerhalb von msec verlieren würde und deshalb ständig aufgefrischt werden muß. Dieser benötigte Refresh bedingt bei dynamischen Schieberegistern bzw. Umlaufspeichern (Umlaufrefresh) eine untere Grenzfrequenz für den Takt. Statische Schieberegister sind demgegenüber aus Flipflops aufgebaut und behalten ihre Information solange die Versorgungsspannung anliegt. Digitaltechnik Teil 3 -4- Prof . Komar Vorteile haben dynamische Schieberegister durch die mögliche höhere Taktfrequenz (schneller als statische) und die größere Packungsdichte (einfacherer Zellaufbau) auf dem Chip. FIFO- und LIFO-Speicher Zu den seriellen Halbleiter-Schreib/Lesespeichern kann man auch noch die Speicher für variable Datenmengen zählen, die nach den Prinzipien - FIFO First-In-First-Out Queue- oder Warteschlangenprinzip mit asynchronem Ein- und Auslesen von verschiedenen Seiten. Mit FIFOs werden Systeme mit unterschiedlichen Datentransferraten gekoppelt. Sie dienen als elastische Zwischenspeicher ( Pufferspeicher, Ringspeicher ), die z.B. schnell Daten übernehmen können um diese dann langsam auszulesen oder umgekehrt. Zustandssignale geben über den Füllstand der FIFOs Aufschluß. - LIFO Last-In-First-Out Stack- oder Stapelprinzip, Ein- und Auslesen von derselben Seite, wobei die zuletzt eingelesene Information zuerst wieder entnommen wird Ein LIFO hat einen eigenen Adressgenerator, den Stackpointer ( SP ), der auf die Spitze des Stapels zeigt. Bei PUSH ( Wort in Stack einschreiben ) wird der SP inkrementiert und bei POP ( Wort aus Stack lesen ) dekrementiert. Der Stack eignet sich in Mikrocomputersystemen sehr gut für die effiziente Zwischenspeicherung von Rücksprungadressen oder Registerinhalten. arbeiten bzw. organisiert sind. FIFO mit seriellen Ein- und Ausgängen Blockschaltbild und Zugriffsmöglichkeiten eines LIFO -Speichers ( Stack, Stapel ) Digitaltechnik Teil 3 -5- Prof . Komar Halbleiterspeicher (Matrixspeicher) Halbleiterspeicher sind integrierte Digitalschaltungen, die Daten aufnehmen, aufbewahren und abgeben können. Sie lassen sich nach folgenden Gesichtspunkten klassifizieren: Einteilung der Halbleiterspeicher nach Zugriffsarten Digitaltechnik Teil 3 -6- Prof . Komar Ein Speicherelement, der nicht weiter zerlegbare Teil eines Speichers, dient zur Aufbewahrung eines Bit. Wenn in einem Speicher jedes Speicherelement einzeln angesprochen (adressiert) werden kann, dann ist der Speicher bitorganisiert. Bei einem wortorganisierten Speicher sind die Speicherelemente nur in Gruppen zugänglich (Wortlänge meist 8 Bit = 1 Byte). Eine derartige Gruppe heißt Speicherzelle und der Inhalt Speicherwort. Die Kapazität eines Speichers wird in der Form 2K*Wortlänge in Bit angegeben. Bei wahlfreiem Zugriff kann auf die Speicherwörter in beliebiger Reihenfolge (random access) zugegriffen werden. Serieller Zugriff liegt vor, wenn nur in einer gewissen Reihenfolge zeitlich nacheinander auf die Speicherwörter zugegriffen werden kann. Die Zugriffszeit (access time) kennzeichnet die Zeitspanne, die zwischen dem Anlegen der Adresse (AdressZugriffszeit) und der Verfügbarkeit der gültigen Daten an den Ausgängen vergeht. Die Zykluszeit ist die Zeitspanne zwischen dem Beginn zweier aufeinanderfolgender, gleichartiger, zyklisch wiederkehrender Schreib- oder Lesevorgänge (manchmal Zykluszeit = Zugriffszeit). Im ortsadressierten Halbleiterspeicher wird eine Speicherzelle mit Hilfe einer fest zugeordneten Adresse ausgewählt. Im inhaltsadressierten Halbleiterspeicher ( Assoziativspeicher ) werden Speicherzellen durch Suchbegriffe (Suchbitmuster) angesprochen. Im nichtflüchtigen Speicher ( Festwertspeicher ) bleiben die Daten auch ohne Betriebsspannung erhalten, im flüchtigen ist dies nicht der Fall. Im löschbaren Speicher ist Umprogrammierung möglich, im nichtlöschbaren dagegen lassen sich einmal gespeicherte Daten nicht mehr rückgängig machen. Im statischen Speicher bleiben die Daten erhalten solange die Versorgungsspannung anliegt, im dynamischen Speicher müssen die Daten alle 2-4 ms aufgefrischt ( refresh ) werden. Digitaltechnik Teil 3 -7- Prof . Komar Prinzipieller Aufbau von Matrixspeichern am Beispiel eines 64*1 Bit Schreib-Lesespeichers mit Impulsdiagramm Adressierung und Betriebsartenwahl eines 64 x 1-Bit-Schreib-Lese-Speichers Impuls-Zeitdiagramm für Lese- und Schreib-Zyklus des RAMs a) Lese-Zyklus b) Schreib-Zyklus Digitaltechnik Teil 3 -8- Prof . Komar Nichtflüchtige Speicher Bei nichtflüchtigen oder Festwertspeichern bleiben die Daten auch ohne Betriebsspannung erhalten. Da es sich um Speicher mit wahlfreiem Zugriff handelt, müßten sie eigentlich 'read only RAM' heißen. Sie werden in bipolarer und unipolarer Technik hergestellt Unter 'Programmierung' von Festwertspeichern versteht man das Übertragen der gewünschten Information in den Speicher. Im Bild ist die prinzipielle Organisation eines bitorganisierten, nichtflüchtigen Speichers mit einer Kapazität von 1K*1Bit dargestellt. Die 10 Adressleitungen werden speicherintern in Zeilenadresse A0 - A4 (row) und Spaltenadresse A5 - A9 (column) aufgeteilt. Mit der Zeilenadresse A0 - A4 wird über einen 1-aus-32-Decoder jeweils genau eine der 32 Zeilenleitungen auf H-Pegel gelegt. Damit legen alle 32 Speicherelemente der adressierten Zeile ihren Inhalt auf ihre Spaltenleitung. Mit Hilfe der Spaltenadresse (A5 - A9) schaltet der Multipl exer dann die gewünschte Spaltenleitung (1 Bit) auf den Ausgang D. Bei einem wortorganisierten Speicher mit einer Kapazität von 128*8Bit benötigt man ebenfalls 1024 Speicherelemente, die nun aber zu 128 Speicherzellen zusammengefasst werden und dafür sind nur 7 Adreß leitungen erforderlich. Die Adressierung der Zeilenleitung erfolgt auch hier über einen 1-aus 32-Decoder durch die Zeilenadressen A0 A4 und alle Elemente der Zeilenleitung legen ihren Inhalt auf die Spaltenleitungen. Mittels der Spaltenadresse A5 - A6 schalten die Multiplexer MUX 0 -MUX 7 dann das gewünschte Speicherwort zu den Ausgängen D0 bis D7 durch. Prinzipieller Aufbau eines bitorganisierten Speichers ( 1K * 1 ) Aufbau eines wortorganisierten Speichers (128 * 8 ) Speichermatrix mit Diodenkopplung Festwertspeicher mit MOS-Transistoren Digitaltechnik Teil 3 -9- Prof . Komar ROM ( read only memory ) Ein ROM wird vom Hersteller programmiert, indem eine leitende Verbindung zwischen Zeilenleitung und Spaltenleitung der Speichermatrix hergestellt wird oder nicht. Eine nachträgliche Änderung der gespeicherten Daten ist nicht möglich. Als Koppelelemente werden in bipolaren Schaltungen Schottky-Dioden oder Transistoren und in MOSSchaltungen Feldeffekttransistoren mit verschieden dicken Isolierschichten zwischen Gate und Substrat verwendet. Die Programmierung der vorgefertigten Speicherbausteine erfolgt mit der letzten Metallisierungsmaske. PROM ( programmable ROM ) Ein PROM kann vom Anwender programmiert werden, wobei die Programmierung sich nicht mehr rückgängig machen läßt. Es enthält neben den bereits beschriebenen Speichermartrixelementen noch zusätzliche Schaltungen für die Programmierung. Beim Fusible-Link-Verfahren wird eine, in Reihe zum Koppelelement geschaltete, leicht schmelzbare Brücke (Nickel-Chrom oder Silizium ) durch einen Stromimpuls von etwa 500 mA und 0.1-1ms Dauer zerstört Der Speicher ist also mit einer '1' in allen Bit gefüllt und die '0'-Inhalte werden durch Schmelzen der Brücke erzeugt. Beim AIM-Verfahren (Avalanche Induced Migration ) ist jeder Kreuzungspunkt mit bipolaren Transistoren versehen, deren Basis nicht angeschlossen ist und die deswegen sperren. Im unprogrammierten Zustand sind somit alle Bit '0'. Beim Programmieren einer '1' wird nun die Emitter-Basis Diode bis zum Durchbruch belastet und verliert ihre Sperrwirkung. Die Programmierung erfolgt unabhängig von der Speicherorganisation immer bitweise. Die Vorgehensweise bei der Programmierung muß dem jeweiligen Datenblatt entnommen werden und erfolgt mit speziellen Programmiergeräten. Digitaltechnik Teil 3 - 10 - Prof . Komar EPROM (erasable PROM) Ein EPROM läßt sich vom Anwender programmieren und durch UV-Bestrahlung von 5-20 minütiger Dauer wieder gesamthaft löschen. EPROMs gibt es nur in unipolarer MOS-Technik, wobei als Koppelelement ein spezieller, selbstsperrender Feldeffekttransistor, der FAMOS-Transistor ( Floating gate Avalanche injection MOS ), dient. Aufbau, Schaltsymbol und vereinfachte Kennlinien des FAMOS-Transistors Eine hohe Programmierspannung zwischen Gate ( Zeilenleitung ) und Drain ( Spaltenleitung ) injiziert in das zusätzliche, schwebende Gate durch die SiO2-Schicht hindurch schnelle Elektronen, die dort für 10-20 Jahre gespeichert bleiben. Durch diese Ladung erhöht sich die Schaltschwellenspannung. Ein unprogrammiertes EPROM liefert an allen Datenausgängen H-Pegel. FAMOS-Transistor als Speicherelement EPROM TMS27128 Über ein Quarzfenster eingestrahltes Licht von 250 nm Wellenlänge läßt die im schwebenden Gate gespeicherten Elektronen abfließen und erniedrigt die Schwellenspannung. Im Gegensatz zum PROM läßt sich hier eine ganze Speicherzelle in einem Schritt programmieren, wobei die Reihenfolge beliebig ist. Der TTL-kompatible MOS-Baustein TMS 27128 benötigt im Normalbetrieb eine Leistung von 525mW und im Power Down-Modus von 125mW. Es gibt ihn mit Adresszugriffszeiten von 250ns, 350ns und 450ns. Typische EPROM-Konfigurationen Blockschaltbild eines EEPROMs Digitaltechnik Teil 3 - 11 - Prof . Komar EEPROM/EAROM ( electrically erasable/alterable PROM ) Ein EEPROM kann vom Anwender programmiert werden und läßt eine elektrische, selektive Umprogrammierung der Speicherzellen zu. Als Koppelelemente werden wie beim EPROM Feldeffekttransistoren mit Ladungsspeichern, hier aber in FLOTOX-Technik ( Floating Gate Tunnel-Oxide ) verwendet. Dieses FLOTOX-Speicherelement entspricht der FAMOS-Struktur, enthält aber einen Abschnitt zwischen Gate und Dra in, in dem Elektronen bei hohen elektrischen Feldstärken tunneln können. Zum Programmieren und Umprogrammieren werden nun mit einer Spannung von etwa 20 V Elektronen auf das schwebende Gate gebracht oder wieder entfernt. Die Zeitdauer für die Programmierung einer Speicherzelle beträgt 1 bis 10ms, und die Anzahl der zulässigen Programmier/Löschzyklen ist auf etwa 10 000 beschränkt. Bei neueren Bausteinen werden die zum Programmieren und Löschen benötigten hohen Spannungen auf dem IC selbst erzeugt und man kommt mit einer Versorgungsspannung von 5 V aus. EEPROM -> erst wortweises Löschen bevor neu programmiert EAROM -> ohne vorheriges Löschen direkt umprogrammierbar Flash-EEPROM Die Flash-EEPROM Speicherzelle basiert auf einer Eintransistor-EPROM-Zelle und ist ähnlich der EEPROMSpeicherzelle elektrisch löschbar. Technisch und im Preis zwischen EPROM und EEPROM angesiedelt, findet das Flash-EEPROM sein Einsatzgebiet als Disketten- oder Festplattenersatz in Kleinstcomputern ( Siliziumdisk, Memory-Cards ->PCMCIA-Standard ) und auch als updatefähiger ( kein Ausbau aus Schaltung für Programmierung ) BIOSoder Betriebssystem-Festwertspeicher. Der Aufbau der Flash-EEPROMs stimmt im wesentlichen mit dem der EEPROMs überein, benötigen aber weniger Fläche pro Bit (Preis) und auch eine geringere Programmierspannung von nur 12 V. Sie müssen vor einer Programmierung gelöscht werden und dies wird durch einen Löschimpuls innerhalb einer Sekunde entweder gesamthaft oder bei anderen Versionen sektorweise ( Block, Page ) erreicht wobei sie anders als das EPROM in der Schaltung verbleiben können. Typische Flash-EEPROMs weisen derzeit byte-organisierte Kapazitäten bis zu 20 M Byte bei Lesezugriffzeiten von 70 bis 120 nsec auf. Vergleich rel.Zellengröße Programmierung Spannung Auflösung Zeit pro Byte Löschen Spannung Auflösung Zeit EPROM 1 Flash-EEPROM 1.2-1.3 EEPROM 3 Programmer 12-20 V Byte < 100 µsec in Schaltung 12 V intern Byte < 10 µsec in Schaltung 5 V extern Byte 5 msec UV-Löschgerät 12-20 V Chip 10-20 min in Schaltung 12 V intern Chip/Page 1 sec 0,3 sec/Block in Schaltung 5 V extern Byte 5 msec/Byte Lösch/Prgr.Zyklen 100 ->100 000 10 000 Lese-Spannung 5V 5V 5V Digitaltechnik Teil 3 - 12 - Prof . Komar Flüchtige Speicher Im flüchtigen Speicher oder Schreib-Lese-Speicher gehen die Daten nach Ausschalten der Versorgungsspannung verloren. Die interne Organisation der RAM-Bausteine entspricht weitgehend derjenigen nichtflüchtiger Speicher ( Matrixprinzip ). Im Beispiel eines 256*4Bit Schreib-Lesespeichers wird über die Zeilenadresse die Wortleitung dekodiert und über die Spaltenadresse werden jeweils 4 Schreib/Leseverstärker dekodiert. Abhängig vom Write-Signal W, werden die Daten entweder über den Eingangsbuffer eingelesen und in die Speicherelemente geschrieben oder über den Ausgangsbuffer ausgelesen. Es gibt Bausteine mit getrennten und mit gemeinsamen Daten-Ein/Ausgängen, die dann beim Schreiben als Eingänge und beim Lesen als Tristate-Ausgänge funktionieren. SRAM ( statisches RAM ) Die Speicherelemente in SRAM-Bausteinen sind Flipflops aus kreuzgekoppelten Transistoren in bipolarer oder unipolarer Technik, die eingeschriebene Information bis zum Spannungsausfall behalten. Für die Steuerung der Betriebsabläufe eines SRAM findet man nebem dem Steuersignal CE oder CS (chip enable oder chip select= Bausteinfreigabe) noch OE (output enable = Ausgänge freigeben bzw auslesen ) und WE oder R/W oder W (write enable oder read/write = Schreibfreigabe bzw Unterscheidung Lesen / Schreiben ). Diese Steuersignale sind üblicherweise low-aktiv. Aufbau eines wortorganisierten Schreib/Lese-Speichers 256*4Bit Flipflop aus Feldeffekttransistoren Schreib/Lese-Verstärker und Buffer Schreib/Lesespeicher TMS4016 Digitaltechnik Teil 3 Typische Organisationsformen bei statischen RAMs Gehäuseformen für ein statisches ( 32k x 8 )-RAM Statisches RAM-Modul 128k x 8 - 13 - Prof . Komar Digitaltechnik Teil 3 - 14 - Prof . Komar DRAM (dynamisches RAM) Als Speicherelemente für DRAM werden Ein-Transistorzellen mit einem Kondensator ( 0.04-0.08pF ) als Informationsspeicher eingesetzt. Aufgrund der entladenden Leckströme müssen dynamische RAMs alle 24ms durch einen Auffrischvorgang aufgeladen werden ( refresh ). Bei neueren DRAMs muß dieser Refresh nicht mehr durch externe Logik durchgeführt werden, sondern er wird durch chipinterne Schaltungen ausgeführt ( pseudostatisch ). Bei allen Speicherzugriffen wird zuerst die Wortleitung aktiviert und über die geöffneten Feldeffekttransistoren kommt es jeweils zum Ladungsausgleich zwischen der Speicherkapazität C und der Schaltkapazität Cs. Es findet also ein zerstörendes Lesen statt, wobei aber der Schreib/Leseverstärker die Information erkennt und intern zwischenspeichert. Beim Lesen wird danach das zwischengespeicherte Wort ausgegeben und anschließend die gesamte Zeile unverändert zurückgeschrieben. Beim Schreiben werden die zwischengespeicherten internen Werte des Schreib/Leseverstärkers durch das neue Wort überschrieben und anschließend die gesamte Zeile zurückgeschrieben. Beim Refresh wird die gesamte Zeile unverändert zurückgeschrieben. Um die gegenüber SRAM um Faktor vier höhere Integrationsdichte des DRAM auszunutzen, müssen diese in platzsparenden Gehäuse untergebracht werden. Um aus diesem Grund die Zahl der Anschlüsse zu reduzieren, werden bei DRAMS oft die Zeilen- und die Spaltenadresse an die gleichen Anschlüsse gemultiplext und außerdem sind die meisten DRAM bitorganisiert, was bei gegebener Speicherkapazität die Zahl der Adreß- und Datenanschlüsse minimiert. Bei einem 64k*1Bit DRAM sind dann z.B. nur 8 statt 16 Adressanschlüsse notwendig. Aufbau und Steuerung eines DRAMs Es muß durch die beiden Signale RAS ( Zeilenadresstakt, row adress strobe ) und CAS ( Spaltenadresstakt, Column Adress Strobe ) festgelegt werden, welcher Adressteil gültig anliegt. Der Refreshvorgang wird durch Anlegen von Zeilenadresse und RAS-Signal jeweils für alle Speicherelemente einer Zeile durchgeführt. Der Zeitanteil für das Auffrischen liegt bei etwa 1-3 % der Betriebsdauer. Nur-Auffrisch-Zyklus eines DRAMs Speicherelement eines DRAM Digitaltechnik Teil 3 Schreibzyklus - 15 - und Prof . Komar Lesezyklus eines DRAMs Für das Auffrischen der DRAMs in Mikrocomputerschaltungen gibt es verschiedene Verfahren: - Burst-Refresh ->für die Dauer der Ansteuerung aller Zeilen ist kein Zugriff vom Mikroprozessor möglich - Cycle-Stealing ->verteilt über 2 bis 4 msec wird z.B. alle 15 µsec ein Refresh-Zyklus durchgeführt - Hidden-Refresh ->nur wenn Prozessor nicht auf Speicher zugreift wird aufgefrischt Neben den Read-, Write- und Refresh-Cycles gibt es meist noch verschiedenste andere Zugriffsmöglichkeiten ( Zyklen ) in Abhängigkeit von dem verwendeten DRAM und dem speziellen Anwendungsfall, wie z.B. Early-Write-Cycle, Read-Write-Cycle, Static-Column -Read-Cycle, Static-Column -Early-Write-Cycle CAS-Before-RAS-Refresh-Cycle… Zur Charakterisierung der Zugriffszeit auf den Baustein hat man einen repräsentativen Wert, nämlich die maximale RAS-Zugriffszeit ( t RAC ) herausgegriffen. Bei einem typischen Wert von 60 ns liegt dann die CASZugriffszeit ( t CAC ) bei 15 ns. Übliche Organisationsformen dynamischer Speicherbausteine Neben den Bauformen wie sie bei allen digitalen ICs zum Einsatz kommen, gibt es gerade für den Einsatz in PCSystemen noch spezielle Bauformen, sogenannte Module, bei denen mehrere Speicherbausteine auf einem keramischen Träger angebracht werden ( SIMM, SIP u. DIMM ). Wegen der hohen Lokalität von Code und Daten in Computersystemen, finden Zugriffe auf dynamische RAMs sehr häufig mit der gleichen Zeilenadresse statt, finden also in der gleichen Page statt ( Page - Hits ). Daraufhin entwickelte Page -Mode -DRAMs erlaubten es, durch eine kleine Änderung in der RAS/CASZugriffstechnik, innerhalb einer durch RAS adressierten Page mit maximal 100 µsec CAS-Zyklen beliebige andere Spalten dieser Page zu adressieren. Es wurde hierbei aber nach jedem CAS-Zugriff der Speicherinhalt wieder zurückgeschrieben, was sehr viel Zeit kostete. Daraufhin entwickelte Fast-Page -Mode-DRAMs ( FPM-DRAM ) schreiben die Daten erst bei einem Page-Wechsel (neue Zeilenadresse ) zurück. Dadurch wurden bei einem Page-Hit, verglichen mit einem kompletten RAS/CAS-Zyklus, dreimal so schnelle Zugriffe möglich. Digitaltechnik Teil 3 - 16 - Prof . Komar Wird ein zusätzliches Ausgaberegister für die Daten vorgesehen, erhält man ein EDO-DRAM ( Enhanced Data Output-DRAM ), bei dem man schon die nächste zu lesende Adresse innerhalb einer Page übermitteln kann, bevor die Daten der vorangegangenen Adresse gelesen werden. Dadurch kommt es zu einer Verkürzung der CAS-Zykluszeit, die bei einem 60ns EDO-DRAM nur 25 ns beträgt, gegenüber 40ns bei einem FPM DRAM. Bei einem Systemt akt von 66 MHz kann mit nur zwei Takten auf den Baustein zugegriffen werden, gegenüber drei Takten beim FPM -DRAM. Bei heutigen Rechnersystemen hat man es, bedingt durch den Einsatz von Cache-Speichern, meist nicht mehr mit einzelnen Zugriffen auf den Arbeitsspeicher zu tun, sondern es wird mit gebündelten Zugriffen ( Bursts ) auf meist vier aufeinanderfolgenden Adressen gearbeitet. Da diese Bursts eine vorgegebene Reihenfolge von Adressen aufweisen und eine bestimmte Anzahl von Zugriffen haben, braucht man eigentlich nur eine Startadresse zu übermitteln. Darauf wird dann ein interner Zähler im RAM eingestellt. Die Zugriffe können dann über das CAS-Signal getaktet und von dem Zähler, der entsprechend hochgezählt wird, adressiert erfolgen. Mit diesen sogenannten Burst-EDO-RAMs ( BEDO-RAM ) erreicht man Page-Mode-Zugriffszeiten von 15 ns. Hiermit kann bei 66 MHz Systemtakt in einem Taktzyklus auf die Bausteine zugegriffen werden. Lesezyklus bei verschiedenen DRAM-Typen Digitaltechnik Teil 3 - 17 - Prof . Komar Die schnellsten Zugriffe bei dynamischen Speichern sind mit synchronen DRAMs ( SDRAM ) und Rambus bzw. Direct Rambus DRAMs ( RDRAM ) möglich. Bei synchronen DRAMs beziehen sich alle Signale auf ein gemeinsames Taktsignal ( üblicherweise der Systemtakt ). Es gibt zwar noch die von DRAMs bekannten Steuersignale, durch diese wird aber eigentlich ein Kommando an das SDRAM geschickt. Bei SDRAM kann bei einem Burst auf die Daten mit 100 MHz Systemtakt zugegriffen werden, allerdings erst nach einer gewissen Zeit, die zur Übermittlung der Zeilen und Spaltenadressen benötigt wird. Die Länge des Bursts ist nicht auf vier Zugriffe beschränkt, sondern lässt sich einstellen ( 1, 4, 8 oder 16 ). Mit den RDRAMs ( bzw. den Direct Rambus DRAMs ) ist nocheinmal eine deutliche Steigerung des Datendurchsatzes zu erreichen. Hierbei kann, nach 40 ns Row Access Time bzw. beim Page-Hit nach 20 ns Column Access Time, alle 10 ns auf 16 Bytes des Speichers zugegriffen werden. Mit dieser Technik erreicht man eine Speicherbandbreite bei 800 MHz Speichertakt und 16 Bit Busbreite von bis zu 1,6 Gbyte/s, das doppelte dessen, was mit SDRAMs bei 100 MHz Systemtakt und 64 Bit Busbreite möglich ist. Lesezyklus beim SDRAM und RDRAM Digitaltechnik Teil 3 - 18 - Prof . Komar Assoziativspeicher (CAM contents adressed memory) Inhaltsadressierte Halbleiterspeicher werden nicht gezielt durch Adressen sondern durch Suchbegriffe ange sprochen. Das Bitmuster, nach dem gesucht wird, ist im allgemeinen kürzer als die Wortlänge des Speichers. Falls es gefunden wird, wird dies durch ein Treffersignal angezeigt und in einem Lesezyklus kann wie bei RAMSpeichern das vollständige Speicherwort gelesen werden. CAM-Speicher erleichtern vor allem Suchvorgänge. Sie erfordern aber einen deutlich höheren Bauteileaufwand und werden daher nur selten eingesetzt. Blockschaltbild eines Assoziativspeichers und Beispiel eines Suchvorgangs Organisatorischer Aufbau eines Assoziativspeichers Suche in einem inhaltsadressierbaren Speicher Digitaltechnik Teil 3 - 19 - Prof . Komar NOVRAM Nichtflüchtige Halbleiter-Schreib/ Lesespeicher Durch Kombination von EEPROM-Zellen mit SRAM gleicher Kapazität auf einem Chip lassen sich nichtflüchtige Schreib/Lesespeicher mit wahlfreiem Zugriff aufbauen. Mittels eines Signals (STORE) läßt sich der RAM-Inhalt innerhalb von Millisekunden in den EEPROM-Bereich kopieren und das Signal RECALL bewirkt umgekehrt das Laden des RAM mit den EEPROM-Daten innerhalb von Mikrosekunden. Ansonsten funktioniert das RAM als schneller Arbeitsspeicher und das EEPROM als nichtflüchtiger Hintergrundspeicher. Sind z.B. geeignet zum Retten von Daten bei Spannungsausfall, wenn keine batteriegepufferten CMOS-RAMBausteine dafür verwendet werden können. Prinzip des NOVRAM Cache-Speicher Cache-Speicher sind schnelle Zwischenspeicher in Rechnersystemen. Sie werden sowohl zwischen Arbeitsspeicher und Zentraleinheit ( Prozessor ) als auch zwischen Peripherieeinheiten (z.B. Festpatte ) und Arbeitsspeicher eingesetzt. Multiport-Speicher Multiport-Speicher gestatten es, von mehreren Seiten unabhängig voneinander auf einen gemeinsamen Speicherbereich zuzugreifen. Eine interne Steuerung sorgt dafür, dass Konfliktfälle vermieden werden. Sie werden in Multiprozessorsystemen eingesetzt. Video-RAMs (VRAMs) Video-RAMs wurden speziell für den Einsatz als Bildspeicher für Grafikkarten entwickelt. Der Zugriffsmechanismus ist auf die dort gestellten Anforderungen optimiert. RAM-DACs RAM-DACs ( Random Access Memory-Digital Analog Converter ) sind eine Kombination aus RAM mit D/AWandler die zwischen Video-RAM und Monitor geschaltet sind. Bei den üblichen Farbmonitoren und Farbgrafikkarten gibt es drei parallele RAM-DACs also für jede Farbe ( Rot, Grün u. Blau ) ein eigenes. Anhand einer im RAM gespeicherten Umsetzungstabelle ( Look-Up-Table ) liefert jeder Kanal ein analoges Signal zur Ansteuerung des Monitors. Dadurch ist es möglich, unterschiedliche Farbtabellen bei einer festen, gegebenen Anzahl von Bits darzustellen, indem man die Umsetzungstabelle jeweils entsprechend belegt. Adressdecodierung des Arbeitsspeichers eines Computers Digitaltechnik Teil 3 - 20 - Übersicht über statische und dynamische Schreib-/Lesespeicher Übersicht über Festwertspeicher Prof . Komar Digitaltechnik Teil 3 - 21 - Übersicht der möglichen digitalen Elektronik-System-Realisierungstechniken Prof . Komar Digitaltechnik Teil 3 - 22 - Prof . Komar ASIC Programmierbare Logikbausteine PLD ( Programmable Logic Devices ) gehören zu den anwendungsspezifischen integrierten Schaltungen ASIC ( Application Specific Integrated Circuits ). Allen ASIC-Typen ist gemeinsam, daß sie ihre endgültige Funktion erst durch die Spezifikation des Anwenders erhalten. Vollkundenspezifische IC's werden vom Hersteller für eine spezielle Anwendung bzw für einen Kunden speziell entworfen und sind nicht auf dem freien Chipmarkt verfügbar. Der Entwurf erfolgt auf Transistorebene, bietet die Möglichkeit der Integration von Analog- und Leistungsfunktionen und ergibt eine optimale Packungsdichte. Durch die sehr aufwendige Entwicklung sind sie nur bei sehr hohen Produktionsstückzahlen wirtschaftlich. Gate -Arrays ( Matrix von Zellen ) sind vorgefertigte IC's in Waferform, bei denen digitale und analoge Funktionszellen (Makros) auf dem Chip in Art und Position festliegen und Änderungen nicht möglich sind. Kundenspezifisch ist lediglich die Verdrahtung der einzelnen Funktionselemente, die mit den letzten Masken durchgeführt wird und natürlich den Chip nicht optimal ausnutzen kann ( ungenutzte Makros ) Der Hersteller stellt eine sogn. Zellbibliothek für die einzelnen Makros (Gatter, Zähler, Register usw.) zur Verfügung. Dadurch kann der Entwurf vom Anwender wesentlich schneller und kostengünstiger durchgeführt werden als für vollkundenspezifische Schaltkreise. Standardzellen IC's versuchen die wirtschaftlichen Vorteile von Gate Arrays mit den Vorzügen der Vollkunden-IC's zu verbinden. Durch eine Funktionsbibliothek wird der Design-Aufwand in Grenzen gehalten, andererseits liegen für die Makros aber nicht bereits fertige Transistorstrukturen vor, sondern alle Transistorebenen und Masken werden flächenoptimal entsprechend der Anforderung ausgelegt und somit die Chipfläche optimal genutzt. Aufwand beim ASIC -Einsatz Digitaltechnik Teil 3 - 23 - Prof . Komar Gemeinsam ist diesen drei Typen, daß sie nur in enger Zusammenarbeit mit dem Hersteller und leistungsfähiger Computerunterstützung ( CAE/CAD) entworfen werden können. Übersicht über digitale, gemischte und analoge ICs Programmierbare Logikbausteine PLD können dagegen meistens vom Anwender alleine z.B. auf dem PC entwickelt ( FORTRAN-Programm PALASM ) und mit speziellen Programmiergeräten programmiert werden. PLD ist ein Sammelbegriff für alle programmierbaren Logik-Bausteine und ausgehend von ursprünglich rein kombinatorischen PLDs ( Schaltnetzrealisierung ) sind sequentielle PLD ( Schaltwerkrealisierung ) heute Stand der Technik. Prinzipielle Struktur von PLDs Die stürmisch verlaufende, technische Entwicklung hat zu einer verwirrenden Vielzahl zum Teil geschützter Bezeichnungen geführt. Zu den kombinatorischen PLD lassen sich im Prinzip auch die Festwertspeicher zählen und damit ist folgende grobe Unterteilung möglich: - (X)ROM (PROM, EPROM, EEPROM ..) - PAL (CPAL, PLE, HAL,....) - PLA (FPLA, IFL, FPLS, FPGA ...) Digitaltechnik Teil 3 - 24 - Prof . Komar Die allgemeine Grundstruktur progra mmierbarer Logikschaltungen besteht aus der Kombination einer UNDund einer ODER- Matrix. Matrixfestwertspeicher wie PROM oder EPROM bestehen aus einer festverdrahteten UND-Matrix zur vollständigen Dekodierung der einzelnen Adressen und aus einer programmierbaren ODER-Matrix, die den Inhalt der Speicherwörter festlegt. Im Grunde eine zweistufige Logik in disjunktiver Normalform DNF. In einem PROM müssen alle Zeilen der Wahrheitstabelle abgespeichert werden, unabhängig vom Wert der Ausgangsvariablen. Wenn aber die Ausgangsvariablen nur in verhältnismäßig wenig Zeilen den Wert 1 (oder den Wert 0) annehmen, dann ist es wirtschaftlich vorteilhafter, nicht die gesamte Tabelle zu programmieren, sondern nur diese wenigen Zeilen. Die integrierten Bausteine, die sich diesen praktischen Erfordernissen besser anpassen lassen sind: - PLA Programmable Logic Array UND- als auch ODER-Matrix programmierbar - PAL Programmable Array Logic UND-Matrix programmierbar, ODER-Matrix fest vorgegeben. Programmierung der UND-Verknüpfung Ein PROM mit n-Eingängen enthält grundsätzlich 2 n UND-Glieder ( Produktterme ) während es bei PLA - und PAL-Bausteinen viel weniger sind und deswegen für PLA/PAL-Realisierung die Schaltfunktion minimiert werden muß (möglichst wenig Produktterme verwenden ). Beispielsweise hat das FPLA DM 8575/8576 von National Semiconductor bei n=14 Eingängen, m=8 Ausgängen p=96 Produktterme und damit eine 'Speicherkapazität' von 96*8 Bit = 768 Bit. Ein PROM mit 14 Eingängen und 8 Ausgängen hat demgegenüber 2 14 Produktterme und eine Speicherkapazität von 2 14 * 8 =131 072 Bit Digitaltechnik Teil 3 - 25 - Prof . Komar Prinzipielle Schaltung eines FPLA Beim PLA unterscheidet man zwischen maskenprogrammierten Typen (vom Hersteller zu programmieren) und denjenigen, die vom Kunden selbst programmiert werden können, dem FPLA ( Field PLA ). PAL-Bausteine können ebenfalls vom Anwender programmiert werden. Die Bezeichnung FPAL ist aber nicht üblich. Die Programmierung erfolgt wie beim PROM mittels einer durchzubrennenden Sicherung ( daher IFL = Integrated Fuse Logic) und ist nicht reversibel. Entsprechend der EPROM und EEPROM – Technik sind auch löschbare EPLD ( Erasable PLD ) und EEPLD auf dem Markt. Allerdings muß die Möglichkeit der Umprogrammierung mit Geschwindigkeits einbußen bezahlt werden. PLA und PAL werden in bipolarer und in CMOS-Technik hergestellt. Vereinfachte Darstellung der logischen Verknüpfungen Es gibt bei beiden Bausteinkategorien Ausführungen, bei denen . die Ausgänge entweder high- oder low- aktiv sind oder durch Antivalenz-Gatter (Antivalenz als programmierbarer Inverter) programmierbar sind ( FPLA bei den PLA -Bausteinen) . die Ausgänge über programmierbare Tristate-Buffer intern zurückgeführt werden . die Ausgänge auf Flipflops geführt sind und ein Teil der Flipflopausgänge intern zurückgeführt werden sowie der Flipflop- Typ (D-,JK-,RS-,T-) programmierbar ist (sequentielle PLD) Damit lassen sich ganze Schaltwerke auf einem Chip unterbringen. Digitaltechnik Teil 3 - 26 - Ausschnitt aus einem PAL mit bidirektionalem Ausgang Übersicht über weit verbreitete PALs Prof . Komar und Register-Ausgang Digitaltechnik Teil 3 - 27 - Realisierung eines Schaltnetzes durch PROM-, PLA- und PAL-Bausteine PROM Schaltnetz Schaltnetzentwurf beim Einsatz eines PLA Schaltnetzentwurf beim Einsatz eines PAL Prof . Komar Digitaltechnik Teil 3 - 28 - Prof . Komar GAL-Bausteine PAL-Bausteine mit Rückkopplungen und programmierbaren Ausgängen, sogn. Makrozellen besitzen aufgrund ihrer universell einsetzbaren Ausgänge eine hohe Flexibilität. Sie kommen immer stärker zum Einsatz und werden üblicherweise als GAL ( generic array logic ) bezeichnet Die dargestellte Makrozelle des GAL 22V10 besitzt ein D-FF mit asynchronem Rücksetz- und synchronem Setzeingang. Der 1-aus-4-Multiplexer schaltet entweder den kombinatorischen oder den Register-Ausgang auf den invertierenden Tri-State-Ausgangstreiber durch. Der 1-aus-2-Multiplexer liefert das Rückkoppelsignal auf die UND-Matrix. Die Konfiguration jeder Makrozelle wird durch die zwei programmierbaren Variablen C1 und C0 festgelegt. Die Variable OE ( Output Enable ) wird über einen eigenen Produktterm gesteuert, unabhängig von der programmierten Konfiguration. Der allen FFs gemeinsame Takteingang ist zusätzlich noch auf die UND-Matrix geschaltet und steht für interne Verknüpfungen zur Verfügung. Asynchroner Reset und synchroner Preset kann für alle Kippglieder gemeinsam über je einen zusätzlichen Produktterm gesteuert werden. Alle FFs werden beim Anlegen der Versorgungsspannung rückgesetzt. GAL-Baustein mit programmierbarem Ausgang GAL-Bausteine haben eine sehr große Verbreitung gefunden, da sie auf der Basis von schnellen elektrisch löschbaren CMOS-Zellen aufgebaut sind und aufgrund ihrer vielfältigen Programmiermöglichkeiten und ihrer universellen OLMCs ( output logic macro cells ) eine Vielzahl von PAL-Bausteinen ersetzen können. Der ispGAL22V10 ( in system programmable generic array logic ) verfügt über individuell konfigurierbare Makrozellen und kann im System, also ohne spezielles Programmiergerät in der Schaltung programmiert werden Funktionsblockschaltbild des ispGALs 22V10 Gehäuse und Anschlussbelegung Digitaltechnik Teil 3 - 29 - Logikdiagramm und JEDEC Fuse Map des ispGAL22V10 Blockschaltbild der Ausgangs-Makrozelle OLMC Prof . Komar Digitaltechnik Teil 3 - 30 - Schaltbilder der Ausgangs-Makrozelle für den Betriebszustand Combinatorial I/O Schaltbilder der Ausgangs-Makrozelle für den Betriebszustand “ Registered Output “ Ausgangskonfigurationen Prof . Komar Digitaltechnik Teil 3 - 31 - Prof . Komar FPGA Field Programmable Gate Arrays ( FPGA ) sind vom Anwender programmierbar und benötigen für die Personalisierung keine Masken. Damit sind sie ein Kompromiß zwischen der flexiblen Programmierfähigkeit der PLD und der Leistungsfähigkeit der Masken-Gate-Arrays. FPGAs enthalten im Kern eine Vielzahl von einfachen, konfigurierbaren Logikblöcken ( Configurable Logic Block = CLB ) , die beliebige logische Funktionen mit einer begrenzten Anzahl von Eingangsvariablen implementieren können. Zahlreiche Leitungssegmente und programmierbare Verbindungsstrukturen ( C = Connectivity Matrix, S = Switching Matrix ) erlauben es , die Logikblöcke sehr flexibel miteinander zu verbinden. Am Rande des FPGAs befinden sich besondere Ein-/ Ausgabeblöcke ( IOB = Input Output Block ), die als Schnittstelle zwischem dem Kern des FPGAs und der Peripherie dienen. Schaltungen mit Millionen Gattern können so in einem einzigen FPGA implementiert werden. Für den Aufbau programmierbarer Verbindungen werden bei FPGAs benutzt: SRAM-Programmierung – statisches RAM in Verbindung mit Pass-Transistoren oder Multiplexern Floating-Gate-Transistor wie bei EPROMs Antifuses – durch große Ströme wird ein gut leitende, dauerhafte Verbindung hergestellt. Struktur eines FPGAs Prinzipschaltung eines Logikblocks Digitaltechnik Teil 3 - 32 - Prof . Komar Rechnergestützter Entwurf programmierbarer Logik Bei PALs, GALs, EPLD, CPLD und FPGAs werden zur sprachorientierten Beschreibung die Hardwarebeschreibungssprachen ( HDL ) PALASM und ABEL eingesetzt. Bei komplexeren CPLDs und FPGAs kommen dann die professionellen Standardwerkzeuge VHDL ( Europa ) und Verilog ( USA ) für den rechnergestützten Entwurf zum Einsatz. Hardware-Beschreibungssprachen HDL im Überblick Entwicklungsablauf bei programmierbarer Logik Entwicklungsablauf bei rechnergestütztem Entwurf programmierbarer Logik ausgehend von Spezifikation wird die Aufgabe in einer HDL beschrieben in der anschließenden Logiksynthese erfolgt die rechnergestützte Umsetzung des Entwurfs in eine Hardwarestruktur danach wird mit Logiksimulation überprüft, ob die entwickelte Schaltung die gestellten Anforderungen erfüllt Wahl des Bausteins, in dem die Funktion unterzubringen ist Umsetzung der logischen Gleichungen in das Format des ausgewählten Bausteins ( Fit ) Simulation zur Überprüfung der Umsetzung des Entwurfs Erzeugung einer JEDEC-Datei zur Programmierung des Bausteins ( FuseMAP ) mit funktioneller Simulation wird die Richtigkeit der erzeugten Datei überprüft und mit einer TimingSimulation erfolgt die Überprüfung des genauen Zeitverhaltens nach erfolgreicher Simulation kann der Baustein programmiert werden Test der Programmierung mit Hilfe der gleichen Testvektoren wie bei der vorausgegangenen Simulation