I n h a l t s v e r z e i c h n i s

1. Abkürzungsverzeichnis

2. Einleitung

2.1. Zielsetzung

2.2. Arbeitsumgebung

2.3. Konzeption

2.3.1. Auflösung

2.3.2. Adressierungsschema

3. Technologien

3.1. Logic Cell Array (LCA)

3.1.1. Configurable Logic Block (CLB)

3.1.2. Input/Output Block (IOB)

3.1.3. Verdrahtungskanäle

3.1.4. Entwicklungswerkzeug PC

3.2. Enwicklungswerkzeug Workstation

3.2.1. Symbole und Makros

3.2.2. Hierachischer Schaltplan

3.2.3. Leitungen und Busse

3.3. In-Circuit-Emulator

3.4. Wire-Wrap-Technik

4. Schaltungsbeschreibung

4.1. Übersicht

4.2. Betriebsmodis

4.3. A/D-Wandler (ADC)

4.4. Ablauf- und D-RAM-Steuerung (CLK2)

4.4.1. Top-Level (CLK2/1)

4.4.1.1. Eingangssignale

4.4.1.2. Ausgangssignale

4.4.2. Prinzip der RAS/CAS-Erzeugung

4.4.3. RAS/CAS-Erzeugung (CLK2/LOGIC/1)

4.4.4. Differenzierer und CAS-Zähler (CLK2/LOGIC/2)

4.4.5. Aufnahmesteuerung und Refreshtimer (CLK2/LOGIC/3)

4.4.6. CLK2 - Zeitdiagramme

4.5. Erzeugung der D-RAM-Adressen (ADRE)

4.5.1. Top-Level (ADRE/1)

4.5.1.1. Eingangssignale

4.5.1.2. Ausgangssignale

4.5.2. ROW-Zähler (ADRE/LOGIC/1)

4.5.3. COL-Zähler (ADRE/LOGIC/2)

4.5.4. Adreßmultiplexer (ADRE/LOGIC/3)

4.5.5. ADRE - Zeitdiagramme

4.6. Erzeugung der Video-Synchronimpule (SYNC)

4.6.1. Top-Level (SYNC/1)

4.6.1.1. Eingangssignale

4.6.1.2. Ausgangssignale

4.6.2. Horizontalsteuerung (SYNC/LOGIC/1)

4.6.3. Vertikalsteuerung (SYNC/LOGIC/2)

4.6.4. CSync-Erzeugung (SYNC/LOGIC/3)

4.6.5. Aufnahmesteuerung (SYNC/LOGIC/4)

4.6.6. SYNC - Zeitdiagramme

4.7. Datenfluß- und CPU-Steuerung (PROZ)

4.7.1. Top-Level (PROZ/1)

4.7.1.1. Datenbusse

4.7.1.2. Eingangssignale

4.7.1.3. Ausgangssignale

4.7.2. Datenflußsteuerung (PROZ/LOGIC/1)

4.7.3. Datenmultiplexer (PROZ/LOGIC/2)

4.7.4. Interrupt-Steuerung (PROZ/LOGIC/3)

4.7.5. PROZ - Zeitdiagramme

4.8. Dynamischer Speicher (DRAM)

4.9. Mikroprozessor (CPU)

4.10. D/A-Wandler (DAC)

5. Programmbeschreibung

5.1. Verwendete Hardware

5.2. Bedienung

6. Ungelöste Probleme

6.1. Modus-Umschaltungen

6.2. Kritisches Timing

6.3. Aufnahmesteuerung

6.4. Umrahmung

7. Zusammenfassung

7.1. Einsatzgebiete

7.2. Ausblick

 

Anhang

 

A. Schaltpläne

A.1. Bildspeicher, Top-Level (EDDI3)

A.2. Ablaufsteuerung (CLK2)

A.3. Adreßerzeugung (ADRE)

A.4. Video-Sync-Erzeugung (SYNC)

A.5. Prozessormodul, Datensteuerung (PROZ)

A.6. Sonstige Schaltpläne

B. Zeitdiagramme

B.1. CLK2 - Zeitdiagramme

B.2. ADRE - Zeitdiagramme

B.3. SYNC - Zeitdiagramme

B.4. PROZ - Zeitdiagramme

C. LCA-Makrobibliothek

C.1. Übersicht

C.2. Flip-Flops

C.2.1. RS-Flip-Flops

C.2.2. Toggle-Flip-Flops

C.3. Binärzähler

C.3.1. Binärzähler modulo 4

C.3.2. Binärzähler modulo 8

C.3.3. Binärzähler modulo 16

C.3.4. Binärzähler modulo 256

C.4. I/O-Pads

C.5. Addierer/Subtrahierer

D. Flußdiagramme

D.1. Flußdiagramme zu START.S

D.2. Flußdiagramme zu IRQ.S

D.3. Flußdiagramme zu TAST.S

D.4. Flußdiagramme zu UNTER.S

E. Programmlisting

E.1. Bibliothek (BIBL.S)

E.2. Initialisierung und Hauptprogramm (START.S)

E.3. Interrupt-Behandlung (IRQ.S)

E.4. Tastatur- und Anzeigesteuerung (TAST.S)

E.5. Unterprogramme (UNTER.S)

E.6. Low-Level Routinen (FREMD.S)

E.7. Referenztabelle

F. Datenblätter

F.1. UVC 3130: A/D-D/A-Wandler

F.2. XILINX XC3000-Serie, Zeitverhalten

F.3. uPD424256-12, 256K*4 Bit D-RAM

F.4. Video-Basisnormen der 625-Zeilen-Systeme

G. Literaturverzeichnis

H. Sachwortverzeichnis

 

Abbildungen

 

Abb. 4-1: CLK2- Zustandsfolgediagramm

Abb. A-1: Übersichtsschaltplan (EDDI3/1)

Abb. A-2: Ablaufsteuerung, Top-Level (CLK2/1)

Abb. A-3: RAS/CAS-Erzeugung (CLK2/LOGIC/1)

Abb. A-4: Differenzierer, CAS-Zähler (CLK2/LOGIC/2)

Abb. A-5: Aufnahmesteuerung, Refresh-Timer (CLK2/LOGIC/3)

Abb. A-6: Wartezyklus (CLK2/LOGIC/WAITZYK/1)

Abb. A-7: RAS-Zyklus (CLK2/LOGIC/RASZYK/1)

Abb. A-8: CAS-Zyklus (CLK2/LOGIC/CASZYK/1)

Abb. A-9: Refresh-Zyklus (CLK2.LOGIC/RFSHZYK/1)

Abb. A-10: Adreßerzeugung, Top-Level (ADRE/1)

Abb. A-11: RAS-Zähler (ADRE/LOGIC/1)

Abb. A-12: CAS-Zähler (ADRE/LOGIC/2)

Abb. A-13: Adreßmultiplexer (ADRE/LOGIC/3)

Abb. A-14: Addierer Nr.1 (ADRE/LOGIC/ADD_1/1)

Abb. A-15: Addierer Nr.2 (ADRE/LOGIC/ADD_2/1)

Abb. A-16: Multiplizierer * 24 (ADRE/LOGIC/MUL20/1)

Abb. A-17: Multiplizierer * 80 (ADRE/LOGIC/MUL80/1)

Abb. A-18: Sync-Erzeugung, Top-Level (SYNC/1)

Abb. A-19: Horizontalsteuerung (SYNC/LOGIC/1)

Abb. A-20: Vertikalsteuerung (SYNC/LOGIC/2)

Abb. A-21: Composite-Sync-Erzeugung (SYNC/LOGIC/3)

Abb. A-22: Aufnahmesteuerung (SYNC/LOGIC/4)

Abb. A-23: Zeilenkomparator (SYNC/LOGIC/COMP9/1)

Abb. A-24: Prozessormodul, Top-Level (PROZ/1)

Abb. A-25: Datenwegesteuerung (PROZ/LOGIC/1)

Abb. A-26: Datenmultiplexer (PROZ/LOGIC/2)

Abb. A-27: Interruptsteuerung (PROZ/LOGIC/3)

Abb. A-28: A/D- und D/A-Wandlerplatine (ADC/DAC)

Abb. A-29: CPU-Platine

Abb. A-30: Anzeige- und Tastaturplatine

 

Abb. B-1: CLK2 - RAS/CAS-Erzeugung

Abb. B-2: CLK2 - Differenzierer

Abb. B-3: CLK2 - CPU-Modus (1)

Abb. B-4: CLK2 - CPU-Modus (2)

Abb. B-5: CLK2 - REC-Modus

Abb. B-6: ADRE - COL-Adreßerzeugung (1)

Abb. B-7: ADRE - COL-Adreßerzeugung (2)

Abb. B-8: ADRE - ROW-Adreßerzeugung

Abb. B-9: ADRE - Adreßmultiplexer

Abb. B-10: ADRE - CPU-Modus

Abb. B-11: SYNC - V1-Puls

Abb. B-12: SYNC - V2-Puls

Abb. B-13: SYNC - H-Puls, CSync-Erzeugung

Abb. B-14: PROZ - CPU-Modus

 

Abb. C-1: Übersicht über die LCA-Makrobibliothek

Abb. C-2: FCSR: Getaktetes RS-Flip-Flop, Vorrang Setzen

Abb. C-3: FCRS: Getaktetes RS-Flip-Flop, Vorrang Rücksetzen

Abb. C-4: FTCR: Toggle-Flip-Flop, Synchron Reset

Abb. C-5: FTCRD: Toggle-Flip-Flop, Direct Reset

Abb. C-6: FTCPR: Ladbares Toggle-Flip-Flop, Synchron Reset

Abb. C-7: FTCPRD: Ladbares Toggle-Flip-Flop, Direct Reset

Abb. C-8: C4BCRX: Zähler modulo 4, Synchron Reset

Abb. C-9: BCRDX: Zähler modulo 4, Direct Reset

Abb. C-10: C4BCPRDX: Ladbarer Zähler modulo 4, Direct Reset

Abb. C-11: C8BCRX: Zähler modulo 8, Synchron Reset

Abb. C-12: C8BCPR: Ladbarer Zähler modulo 8, Synchron Reset

Abb. C-13: C8BCPRDX: Ladbarer Zähler modulo 8, Direct Reset

Abb. C-14: C16BCRX: Zähler modulo 16, Synchron Reset

Abb. C-15: C16BCPRX: Ladbarer Zähler modulo 16, Synchron Reset

Abb. C-16: C16BCPRDX: Ladbarer Zähler modulo 16, Direct Reset

Abb. C-17: C256BCRX: Zähler modulo 256, Synchron Reset

Abb. C-18: C256BCPRDX: Ladbarer Zähler modulo 256, Direct Reset

Abb. C-19: ILOZ: I/O-Pad mit Input-Latch und Tri-State-Output

Abb. C-20: HALF_ADD: Halbaddierer

Abb. C-21: ADDSUB2: 2-Bit-Addierer/Subtrahierer

Abb. C-22: ADDSUB4: 4-Bit-Addierer/Subtrahierer

Abb. C-23: ADDSUB8: 8-Bit-Addierer/Subtrahierer

 

Abb. D-1: STTA: Reset-Initialisierung

Abb. D-2: BFUELL: Bildspeicher mit Testdaten füllen

Abb. D-3: MKZEIL: Testbildzeile aufbauen

Abb. D-4: MKCH: Zeile eines Zeichens aufbauen

Abb. D-5: IRQA: Routine für maskierbaren Interrupt

Abb. D-6: NMIA: Routine für nicht maskierbaren Interrupt

Abb. D-7: ATINIT: Anzeige und Tastatur initialisieren

Abb. D-8: ANZNEU: Anzeige mit aktuellen Daten füllen

Abb. D-9: ANZNU: Binärzahl zweistellig darstellen

Abb. D-10: TASLOW: Low-Level-Tastaturfunktion ausführen (1)

Abb. D-11: TASLOW: Low-Level-Tastaturfunktion ausführen (2)

Abb. D-12: CONIN: Tastatur über Tabelle abfragen

Abb. D-13: TASIA: Physikalischen Tastencode ermitteln

Abb. D-14: BIN2BCD: Umwandlung Binär -> BCD

Abb. D-15: INCCAS: COL-Adresse erhöhen

Abb. D-16: DECCAS: COL-Adresse vermindern

Abb. D-17: INCRAS: ROW-Adresse erhöhen

Abb. D-18: DECRAS: ROW-Adresse vermindern

Abb. D-19: INCROW: Zeilennummer erhöhen

Abb. D-20: DECROW: Zeilennummer vermindern

Abb. D-21: ICCAS: Versch. der Bilder um ein Pixel nach links

Abb. D-22: DCCAS: Versch. der Bilder um ein Pixel nach rechts

Abb. D-23: ICRAS: Versch. der Bilder um ein Bild nach links

Abb. D-24: DCRAS: Versch. der Bilder um ein Bild nach rechts

Abb. D-25: ICRW1: Versch. der Bilder um eine Zeile nach oben

Abb. D-26: DCRW1: Versch. der Bilder um eine Zeile nach unten

Abb. D-27: CCCAS: COL-Adressen-Bereichsabfrage

Abb. D-28: CCRAS: ROW-Adressen-Bereichsabfrage

Abb. D-29: CCROW: Zeilennummer-Bereichsabfrage

Abb. D-30: XILUP: XILINX-Konfiguration laden

Abb. D-31: WAIT: Lange Warteschleife

Abb. D-32: WTLAUF: Kurze Warteschleife für Hauptprogramm