Entwurf und Realisierung eines Single
Transcrição
Entwurf und Realisierung eines Single
Entwurf und Realisierung eines Single-Chip Broadcast Mischers auf einem FPGA Diplomarbeit durchgeführt von Voraberger Roland Institut für Breitbandkommunikation der Technischen Universität Graz Leiter: Kubin Gernot Univ.-Prof. Dipl. Ing. Dr.techn. Betreuer: Graber Gerhard Ao. Univ.-Prof. Dipl. Ing. Dr.techn. Graz, im August 2007 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Zusammenfassung Diese Arbeit zeigt die Implementierung einer digitalen Audiomatrix auf einem einfachen FPGA Baustein. Ausgehend von einer Rundfunkanwendung werden die Grundfunktionen „Fader“ und „Summe“ in der für den gewählten Baustein geeignetsten Variante realisiert und mit bekannten Lösungen verglichen. Ein besonderes Hauptaugenmerk liegt bei der Synchronisierung auf das Eingangsformat. Zur praktischen Überprüfung der entworfenen Designs wurde eine Testplatine angefertigt. Audiosignale werden mittels ADAT® Schnittstellen angebunden und zur Steuerung der Audiomatrix wird das MIDI Format verwendet. Die Decoder der Schnittstellen sind im Baustein zu einer SingleChip Lösung integriert. Die Funktionseinheit „Fader“ erwies sich sowohl zeitlich als auch im Platzbedarf am aufwändigsten und wird deshalb in mehreren Bausteinfamilien verschiedener Generationen simuliert und mit einer bitseriellen Lösung verglichen. Neuere Bausteine mit integrierten Hardwaremultiplizierern werden simuliert und es zeigt sich die Leistungsfähigkeit selbst kleinster FPGA Bausteine. Der verwendete Baustein ist nicht voll ausgelastet, trotzdem ist das Ergebnis für ein kleines Abwickelpult im Rundfunkbereich ausreichend leistungsfähig. Abstract The aim of this thesis is the implementation of a digital audiomatrix on a simple FPGA. The main functions „fading“ and „summing“ based on the functionality of a broadcast mixing desk are realized. The solution for the FPGA is compared with other known possible solutions. One major point was the synchronization to the incoming audioformat. Audio is connected to the device via ADAT interfaces. Control data is provided by a MIDI input. These interfaces are integrated into the FPGA as a single-chip solution. The fading element needs most of the computing time and hardware resources. The fading function is simulated in several FPGA devices of different generations. Also a bitserial solution is also shown. The integrated hardware multipliers scale up the performance of newer generation FPGAs. The shown solution does not require full capacity of the device. The remaining hardware could be used for expanding the input channel number and/or could be used for an integration of hardware controls like rotary encoders. This would be enough to realize a simple broadcast mixing desk. Institut für Breitbandkommunikation 2 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Danksagung Ich möchte mich bei folgenden Personen recht herzlich für ihre Unterstützung bedanken. Ich danke Herrn Ao. Univ.-Prof. Dipl. Ing. Dr.techn. Graber für die Betreuung während des Studiums und im Speziellen für die Betreuung dieser Arbeit. Messgeräte lieh mir dankenswerterweise die Firma Acousta. Ein Dank geht auch an Herrn Peter Fasser für die Hilfe bei der Printplattenerstellung. Einen herzlichen Dank an meine Familie und Freunde für die stetige Unterstützung und Ermunterung zum Abschließen dieser Arbeit. Besonders bedanken möchte ich mich in diesem Sinn bei Kerstin Klein. Für die unermüdlichen Ermunterungen danke ich Herrn Markus Noisternig, für ihre nette Hilfe Markus Sigmund und Claudia Polanski. Institut für Breitbandkommunikation 3 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Inhaltsverzeichnis 1. Einleitung, Beweggrund................................................................................................................... 7 2. Überblick und Funktionsumfang des Mischers.............................................................................. 11 2.1. Das Pflichtenheft des Mischers...............................................................................................11 2.2. Beschreibung der Testplatine..................................................................................................12 2.3. Chronologischer Entwicklungsablauf.....................................................................................15 3. FPGA und Entwicklungsumgebung............................................................................................... 18 3.1. Der verwendete FPGA............................................................................................................18 3.2. Die verwendete Entwicklungsumgebung............................................................................... 22 3.3. Der Test- und Messaufbau...................................................................................................... 24 4. Synchronisation und Systemclock..................................................................................................28 4.1. Allgemeines über Synchronisation in der Digitalen Audiotechnik........................................ 28 4.2. Synchronisation über PLL und VCXO................................................................................... 29 4.3. Synchronisation über ADAT® Eingang.................................................................................32 5. Verwendete Audioformate und das Steuerformat.......................................................................... 37 5.1. Audioschnittstelle ADAT®.................................................................................................... 37 5.2. Audioschnittstelle SPDIF....................................................................................................... 43 5.3. Steuerschnittstelle MIDI......................................................................................................... 45 6. Audiosignalverarbeitung ............................................................................................................... 51 6.1. Parallele Realisierung der Testplatine, zeitlich seriell ..........................................................51 6.1.1. Parallele Funktionsblöcke Summe und Fader ................................................................51 6.1.2. Ablaufsteuerung der Audiosignalverarbeitung............................................................... 54 6.2. Vergleich verschiedener Faderrealisierungen.........................................................................61 7. Zusammenfassung und Ausblick....................................................................................................67 Literaturverzeichnis............................................................................................................................ 73 Anhang: Source Code und Datenblätter............................................................................................. 74 Institut für Breitbandkommunikation 4 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abbildungsverzeichnis Abb. 1: Testplatine von der Bestückungsseite aus gesehen............................................................... 12 Abb. 2: Ursprünglicher Schaltplan nach dem die Testplatine aufgebaut ist...................................... 14 Abb. 3: Signalflussplan der Audiosignale.......................................................................................... 17 Abb. 4: Pin Planner: Übersicht und Konfiguration der Ein- und Ausgangspins des Bausteins, Screenshot aus der Quartus II Entwicklungsumgebung, Altera Corp................................................ 19 Abb. 5: Ein Logisches Element der Cyclone Familie [Cyclone Device Handbook, S. 2-5] .............20 Abb. 6: Clock Netzwerk Cyclone Familie und Verbindung mit der PLL (verwendeter Baustein besitzt nur PLL 1), [Cyclone Device Handbook, S. 2-30] ................................................................ 21 Abb. 7: Quartus Entwicklungsumgebung, Verschaltung einzelner Funktionsblöcke in der ersten Ebene.................................................................................................................................................. 22 Abb. 8: Verbindungen zwischen Hostrechner und Testplatine ......................................................... 24 Abb. 9: Mischpult und Routingoberfäche der Emu 1212m Soundkarte, Screenshot ........................25 Abb. 10: PD Patch als Testoberfläche zur Einstellung der Faderparameter...................................... 26 Abb. 11: Maximaler Jitter, den ein AES-3 Empfänger ausgleichen können muss, [AES-3, S.22]....29 Abb. 12: Altera PLL Baustein beschreibt OnChip Hardware PLL.................................................... 30 Abb. 13: Funktionsblock PLL, Phasenkomparator aus einer PLL..................................................... 31 Abb. 14: Schaltungsvorlage des Phasenkomparators [Tietze/Schenk, S. 1161]................................ 31 Abb. 15: Funktionsblöcke zur Generierung der Syncsignale............................................................. 32 Abb. 16: Vergleichssimulation eines Zählers down/up, Verhalten der Flanken................................ 33 Abb. 17: Schaltbild D-Flip Flop, flankengetriggert mit Enableeingang als Frequenzteiler...............35 Abb. 18: Simulation Enable gesteuertes Flip Flop mit 3,072 MHz................................................... 35 Abb. 19: ADAT® Frame Aufbau und Orientierung.......................................................................... 38 Abb. 20: Funktionsblock ADAT_In2.................................................................................................39 Abb. 21: Aussortierung ADAT® Format zu Audiowort....................................................................40 Abb. 22: Funktionsblock ADAT_send2, ADAT® Ausgang............................................................. 41 Abb. 23: Ablaufsteuerung des Funktionsblockes ADAT_send2....................................................... 41 Abb. 24: Simulation des NRZI Enkoders...........................................................................................42 Abb. 25: Funktionsblock S/PDIF Ausgang in 24,576 MHz Technik.................................................43 Abb. 26: Steuerungsteil bestehend aus Funktionsblock MIDI_dekode und Steuerramblock............ 46 Abb. 27: Dekodierung des 3 Byte MIDI Befehls............................................................................... 47 Abb. 28: Faderkennline, Aufteilung der 128 linearen Wegpunkte in Rechenwerte...........................48 Abb. 29: Konfiguration eines lpm Operators aus der internen Bibliothek: Dual Port Ram...............49 Abb. 30: Funktionsblock 24bitPsum: 24 Bit breite durchlaufende Summe mit Reset Eingang ....... 51 Abb. 31: Timingdiagramm einer 24 Bit breiten Summe, Baustein Altera EPC1T144C8................. 52 Abb. 32: Funktionsblock Fader: kombinatorischer Multiplizierer mit 24 Bit Multiplikand (Audio) und mit 16bit Multiplikator ............................................................................................................. 53 Abb. 33: Division durch Weglassen niederwertiger Bits................................................................... 53 Abb. 34: Timingdiagramm eines 24 Bit mal 16 Bit Faders, Baustein Altera EPC1T144C8............. 54 Abb. 35: Eingangspuffer 2 mal 8 24 Bit Audiowörter....................................................................... 55 Abb. 36: Ablaufsteuerung für Audiosignalverarbeitung berechnungscnt.......................................... 56 Abb. 37: Ablaufdiagramm Audiosignalverarbeitung: die erste Summe ist vollständig aufgelistet, danach nur mehr der Zählerstand bei Events......................................................................................57 Abb. 38: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events................................. 58 Abb. 39: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events.................................. 59 Institut für Breitbandkommunikation 5 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 40: Hardwarebedarf der bitparallelen, zeitlich seriellen Lösung, Screenshot aus der Quartus II Entwicklungsumgebung..................................................................................................................... 61 Abb. 41: 24 x 16 Bit Fader parallel Cyclone EP1C3T144-8, 499 Logische Elemente ..................... 62 Abb. 42: 24 x 16 Bit Fader parallel EP2C5F256C8, 4/26 Embedded Multiplier............................. 62 Abb. 43: 24 x 16 Bit Fader parallel EP1K100FC256 -3, 531 logische Elemente.............................. 62 Abb. 44: Beispiel eines 8 Bit mal 3 Bit seriellen Mulitplizierers.......................................................64 Abb. 45: Laufzeitsimulation einer 17 Bit parallelen Summe............................................................. 65 Abb. 46: AES Frame 24 Bit LSB-First.............................................................................................. 65 Abb. 47: Verschiedene Stufen der digitalen Verzerrung bis zur Unkenntlichkeit der Kurvenform.. 70 Abb. 48: Schaltplan mit integrierter PLL und Fehlerkorrekturen...................................................... 72 Institut für Breitbandkommunikation 6 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 1. Einleitung, Beweggrund Hardware digitaler Mischpulte Die ersten Überlegungen Mischpulte digital statt analog aufzubauen, führten zu 2 Ansätzen die Audiosignale zu bearbeiten: • Digitale Signalprozessoren (DSP) übernehmen die Rechenaufgaben der Signalverarbeitung • Rechenwerke werden diskret in Hardwareschaltungen aufgebaut Die DSP Welt entwickelte sich sehr schnell, während die diskreten Rechenwerke schnell an die Grenzen der Machbarkeit stießen. Eine Variante der diskreten Audiosignalverarbeitung, die Rechenwerke in FPGAs (Field Programmable Gate Array) aufzubauen, hält sich bis heute und erfährt aus mehreren Gründen gerade eine Renaissance. Die Verwendung von FPGAs erhält dem Entwickler die Flexibilität und hält die Bauteilkosten durch erhöhte Integrationsdichte, im Gegensatz zu wirklich diskreten Rechenwerken in 74HCXX1 Logik, in Grenzen. Auch haben Hersteller von FPGAs den Einsatzbereich Multimedia/Professional Audio in ihr Interessengebiet aufgenommen, sie bieten Unterstützung bei neuen Designs und so genannte IP Cores (Intelectual Properties) an. IP Cores sind vorprogrammierte Elemente, die in ein Design in beliebiger Anzahl integriert werden können (zum Beispiel ein AES3 Empfangsteil). Die rasant steigende Entwicklung der Integrationsdichte der FPGAs bei gleichzeitig sinkenden Kosten macht diese Lösung für digitales Audio interessant. Selbst die kleinsten Bausteine (EP2C5, EP3C5) enthalten schnelle „Embedded Multiplier“, das sind integrierte schnelle Multiplizierer als Hardwareelemente für Rechenanwendungen. Logische Elemente sind die Grundbausteine der FPGAs und werden von einer Entwicklungssoftware zu den jeweilig gewünschten Funktionen des Bausteins parametriert und zusammen geschaltet. 1 74HCXX Logik: High Speed CMOS Bausteine, aus denen digitale Schaltwerke zusammengesetzt sind Institut für Breitbandkommunikation 7 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Folgende Tabelle zeigt eine kleine Übersicht von Bausteinen aus fünf Generationen der Firma Altera2: Typenbezeichnung Logische Speicher PLL Integrierte Elemente in Multiplier Bits Ca. Preis erhältlich seit Flex10K 2880 EPF10K50RC240-4 20480 N/A N/A > 250€ seit 1996 Acex EP1K100FC256-3 4992 49152 1 N/A ca. 40€ seit 2001 Cyclone EP1C3T144C-8 2910 59904 1 N/A ca. 13€ seit 2003 Cyclone EP1C20F324C-6 20060 294912 2 N/A ca. 90€ seit 2003 Cyclone II 68416 EP2C70F672C-6 1152000 4 150 18*18bit ca. 350€ seit 2005 Cyclone EP3C120 III 119088 3888kBit 4 s 288 18*18bit ca. 400€ seit 2007 5136 414kBits 2 23 18*18bit Erhältlich ab Quartal 3, 2007 Cyclone II 4608 EP2C5 Quelle: www.altera.com 119808k 2 Bits 13 18*18bits Ab ca. 12€ seit 2005 Cyclone III EP3C5 Spezielle Funktionen im Broadcastbereich Bei Verwendung digitaler Audiosignalverarbeitung im Rundfunkbereich geht es um komplexe Steuerbarkeit einfacher Grundelemente, da meist so genannte „Selbstfahrertische“ eingesetzt werden. Das heißt, der Moderator wickelt auch gleichzeitig die Sendung ab und ersetzt den Tonmeister. Das Hauptaugenmerk des DJs liegt in der Moderation. Die Bedienung der Audioanlage beschränkt sich auf wenige Bedienelemente mit dahinter liegenden hochautomatisierbaren Vorgängen. Die Komplexität der Audioanlage besteht hauptsächlich aus einer großen Anzahl von Pegelstellern und Summen. Wichtig ist deren Anpassungsfähigkeit und vielfache Verfügbarkeit und weniger fein auflösende Signalbearbeitung. Diese ist mehr dem Geschmack der Personen und der Zeit unterworfen und wird oft mit externen Prozessoren durchgeführt. Die fertig bearbeiteten Audiosignale werden über analoge oder digitale Schnittstellen an die Anlage angebunden. 2 ALTERA: FPGA Anbieter, www.altera.com, weitere Firmen: Xilink, Lattice usw. Institut für Breitbandkommunikation 8 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Hauptaufgaben eines Broadcastmischers sind somit Pegelstellen und verschiedenste Summierungen der angebotenen Signale. Anders als im Produktions- oder Beschallungsbereich gibt es mehr als eine Ausgangssumme. Es werden noch n-m Summen (die selbe Summe wie die Hauptsumme ohne das zuspielende Signal, um Rückkopplungen an der zuspielenden Seite zu vermeiden) für Rückprogramme und Telefonanbindungen, Off-Air Summen für gleichzeitiges Vorproduzieren während der Sendung, Studioeinspielsummen für angebundene Studioräume oder Intercom- bzw. Kommandowege gebraucht. Prinzipielle Audiosignalbearbeitung und Weg zum FPGA In der Audiosignalverarbeitung entwickelten sich zwei verschiedene Berechnungsverfahren, bitseriell und bitparallel. Gerade für die Hardwarelösung bot sich anfangs die bitserielle Berechnung an, da nur so Multiplikationen in brauchbarer Rechenzeit mit den verfügbaren Bausteinen möglich waren. Im Acousta System D5003 wurde durch die bitserielle Verarbeitung und den hohen Parallelisierungsgrad durch Verwendung von FPGAs eine gute Integrationsdichte, hohe Modularität und Anpassungsfähigkeit erreicht. Leider erlaubten die Packungsdichten der damals verfügbaren Bausteine kein durchgängig bitserielles Design. Der Übertragungsweg machte eine Teilparallelisierung notwendig. Die Zubringung zu den Übertragungsbausteinen musste aufgrund hoher Frequenzen auf Platinenlevel parallel stattfinden. Mittlerweile sind schnelle Hardwaremultiplikatoren (Embedded Multiplier) in die FPGAs integriert, welche in hoher Anzahl und mit hohen Taktfrequenzen betreibbar, eine serielle Verarbeitung ersetzen. Außerdem besitzen manche Schnittstellenbausteine keine Möglichkeit das Signal LSBFirst (Least Significant Bit) anzubieten, was einem durchgängig seriellem Design zuwider läuft. Dafür bieten FPGAs die Möglichkeit, diese Empfangsbausteine in den Chip zu integrieren und je nach Bedarf anzupassen, was den Kostenfaktor des FPGA Bausteins etwas relativiert. Die hohe erhältliche Anzahl multifunktionaler I/O Pins ist ein weiterer Pluspunkt zugunsten der FPGA Architektur verglichen mit DSPs. Auch die Anbindung externer Bausteine wie A/D Konverter ist technisch einfach zu realisieren. Dabei muss lediglich die Schnittstelle in Software entworfen werden und kann nach belieben angepasst werden. Höhere Integrationsdichte, integrierte Hardware Elemente wie DSP Cores, integrierter schneller Speicher, Hard- als auch Softwarecontroller On-Chip machen den FPGA auch im Bereich der Audiosignalverarbeitung konkurrenzfähig zur DSP Architektur. Aufgrund kurzer Latenzzeiten durch hohen Parallelisierungsgrad werden FPGAs seit geraumer Zeit auch in semiprofessionellen Soundkarten verwendet. Durch vermehrten Einsatz von FPGAs hauptsächlich in Computernetzwerkelementen und Kommunikationsanlagen sinkt auch der Preis und die Verfügbarkeit steigt. 3 Modulares Audiosystem der Firma Acousta www.acousta.at Institut für Breitbandkommunikation 9 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Aufgabenstellung und Zielsetzung der Arbeit Als Beispiel wird ein kleiner Mischer auf einem sehr einfachen und günstigem FPGA realisiert, um zu ermitteln, welche Möglichkeiten auch Bausteine der kleinsten Klasse in der Audiosignalverarbeitung bieten. Der Baustein soll folgende Funktionen auf dem Chip vereinen und mit möglichst wenig externen Bauelementen auskommen: • • • • • • Eingansformatdekoder eines ADAT® Signals Synchronisation auf Eingangsformat oder Wordclock Ausgangsformatenkoder Steuerschnittstelle (MIDI) Sinnvolle Anzahl von Audiofunktionen Platz für zusätzliche Funktionen, wie zum Beispiel Aussteuerungsanzeige oder Überwachungsausgänge (zum Beispiel pegelabhängige GPIOs, normale GPIOs) Punkte für die Wahl eines FPGAs anstatt eines DSPs sind: • • • • • • • • • • Kurze Ladezeiten, verschiedene Konfiguration für zB. Selbsttests im Betrieb umschaltbar Einfache Anpassungsfähigkeit, zB. auf neue Audioformate oder Steuerschnittstellen Single-Chip Realisierung erleichtert das Printplattendesign (zB. HighSpeed passiert innerhalb des Chips) Möglichkeit zur einfachen Integration eines μControllers im FPGA für Steueraufgaben (zB. NIOS) Konstante Durchlaufzeiten im Audioweg, da Rechenwerk real vorhanden ist integrierter Speicher und mittlerweile Hardware Multiplier für schnelle Rechenoperationen gute Programmierbarkeit durch Unterstützung komplexer Hardwarebeschreibungssprachen Große Anzahl an Pins für Erweiterung und Kommunikation Fertige IP Cores für gängige Formate/ Bauteile einfache Anbindung zB. A/D bzw. D/A Konverter verschiedenster Formate Nach der allgemeinen Vorstellung des Projektes soll nun im folgenden Kapitel der Funktionsumfang genauer definiert und die Testplatine vorgestellt werden. Kapitel 3 beschreibt den verwendeten FPGA und die zugehörige Entwicklungsumgebung näher. In Kapitel 4 wird die Synchronisierung digitaler Audiosysteme und speziell die Realisierung der implementierten Lösung beschrieben, im Kapitel 5 folgen die Funktionsblöcke und die Beschreibung der verwendeten Audio- und Steuerformate. Kapitel 6 beschreibt die auf der Platine getestete Lösung der Audiosignalverarbeitung und stellt Vergleiche mit anderen möglichen Varianten her. Die Source Codes zu den Funktionsblöcken und wichtige Datenblätter sind dem Anhang zu entnehmen. Institut für Breitbandkommunikation 10 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 2. Überblick und Funktionsumfang des Mischers Es wird im folgenden ein Single-Chip Broadcastmischer auf einem einfachen FPGA realisiert und dessen Mindestfunktionen definiert. Die dazu entwickelte Testplatine wird vorgestellt und die Vorgehensweise als chronologischer Entwicklungsablauf aufgeführt. 2.1. Das Pflichtenheft des Mischers Der Mischer muss folgende Aufgaben mindestens erfüllen: • • • • • Audioanbindung des Mischers über ADAT® 8 Audiobusse mit unabhängiger Aufschaltung der Eingänge 8 Hauptpegelsteller Steuerung des Audiocores über MIDI Synchronisation auf ein Wordclock Signal oder auf Eingangsformat das Audio Folgende Bauteile sind zur Erfüllung der Funktionen notwendig: • • • • • • • FPGA Der zugehörige Konfigurationsbaustein für den FPGA (EEProm) Wandler optisch auf elektrisch TORX 141 und elektrisch auf optisch TOTX 141 Elektrische Formatwandlung zB. Stromschnittstelle MIDI auf Spannungsschnittstelle inklusive Schutzschaltung durch Optokoppler f iclk =48kHz∗512=24,576 MHz VCXO4 zur Taktgewinnung mit +- 70ppm Ziehbereich zur Synchronisierung an den Systemtakt der Umgebung Analoger Filter der PLL zur Filterung und Jitterreduktion bei der Taktanpassung Spannungsversorgung für die I/O Elemente VCCIO=3,3V und die so genannte Corespannung zur Versorgung des inneren Kerns des FPGAs VCC_CORE=1,5V 4 VCXO: Voltage Controlled Crystal Oscillator, spannungsgesteuerter Schwinger auf Kristallbasis Institut für Breitbandkommunikation 11 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 2.2. Beschreibung der Testplatine Es wurde eine zweiseitige Platine mit dem Layout Programm Eagle5 erstellt. Eine Massefläche auf der Unterseite sorgt für Stabilität, eine VCC Plane auf der Oberfläche ist im ursprünglichen Entwurf durch mehrere verschiedene Spannungen nicht durchgehend möglich. Die in Abb. 1 dargestellte Platine wurde in Eigenregie geätzt und bestückt. 1 Abb. 1: Testplatine von der Bestückungsseite aus gesehen Als FPGA (1) wurde der Baustein Altera EP1C3T144 – 8 aus der ersten Cyclone Familie verwendet, da gezeigt werden soll, dass mit einem Low-End Baustein die Anforderungen erfüllt werden können. Dieser Baustein ist einfach zu beziehen und aufgrund der TQFP (Thin Quad Flat Pack) Bauform auch einfach manuell zu verarbeiten. Dazu gehört der Konfigurationsbaustein (1a) EPCS1 und der JTAG6 Stecker (1b) um den Konfigurationsbaustein zu programmieren. 5 Eagle 4.16: www.cadsoft.de mit eingeschränktem Funktionsumfang als freie Version downloadbar 6 Joint Test Action Group nach IEEE Standard 1149.1, wird hier nur zur Übertragung des Programms in den Konfigurationsbaustein verwendet Institut für Breitbandkommunikation 12 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die optische Umsetzung des ADAT® Signals übernehmen die Bausteine des Typs Toshiba TORX 141 (2a) als Receiver und TOTX 141 (2b) als Sendebaustein. Jeweils darunter ist noch ein freier Platz für ein zweites TOT/RX Paar. Diese sind 3,3V Bausteine mit einer Maximalübertragungsrate von 15MBit/sec. Das Datenblatt ist dem Anhang (S. 100 bis 110) zu entnehmen. Die Steuerschnittstelle MIDI wird über einen Standard Optokoppler (3) vom TYP CNY17 (siehe [fairchildsemi]) angebunden und sekundär mit 3,3V versorgt. Das Stromsignal wird in ein für den FPGA geeignetes Spannungssignal umgesetzt. Der VCXO (4) ist ein durch eine Steuerspannung verstellbarer (= ziehbarer), hoch präziser Quarz mit der Normalfrequenz 24,576 Mhz und einer Frequenzstabilität von +-25ppm. Wird der Baustein mit 3,3V versorgt, so reduziert sich der Ziehbereich von 100ppm auf ca. +- 70ppm. Das Datenblatt ist im Anhang (S. 111 bis 112) aufgeführt. Ein analoger PLL Baustein des Typs 4046AD (5) „Phase-locked-loop with VCO“ ist vorgesehen. Aufgrund von Pegelanpassungproblemen zwischen der 5V und der 3,3V Domäne und der Möglichkeit den Phasendetektor in den FPGA zu integrieren ist dieser nicht mehr notwendig. Übrig bleibt davon nur mehr der analoge Filterteil (5a) auf der Platine. Die Spannungsversorgung der gesamten Elektronik auf der Platine ist über eine Steckerleiste (6) verbunden und wird mit zwei LDO7 Spannungsreglern auf 3,3V (6a) für die I/O Versorgung des FPGAs und die angeschlossenen Bauteile und 1,5V (6b) für die Corespannung des FPGAs erzeugt. Die LEDs (7) werden für Zustandsanzeigen verwendet: Rot für nicht synchron zum ADAT® Signal, Grün1 für Spannungsversorgung ist in Ordnung, Grün2 für MIDI Signal gültig erkannt. Die Testpins (8) sind für Messzwecke und Erweiterungsmöglichkeiten beliebig beschaltbar. Abb. 2 zeigt den ursprünglichen Schaltplan, der der Testplatine zugrunde liegt. Der FPGA ist hier in 4 Blöcke, so genannte Bänke, aufgeteilt. Gut sichtbar sind die Vielzahl der Pins für die Spannungsversorgung und die Masseverbindungen. Um die Platine einfach und selbst herstellbar zu halten, wurde versucht, die Anzahl der Durchkontaktierungen für Masseverbindungen und Wechsel auf eine andere Plane zu vermeiden. 7 LDO: Low Drop Out Voltage, linearer Spannungsregler mit niedriger Differenzspannung Institut für Breitbandkommunikation 13 Abb. 2: Ursprünglicher Schaltplan nach dem die Testplatine aufgebaut ist Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 2.3. Chronologischer Entwicklungsablauf Zum besseren Verständnis, wie es zur gezeigten Lösung kam, wird der Entwicklungsablauf chronologisch angeführt. Platine ist Clockmaster Sinusgenerator (1) S/PDif Ausgang (2) ADAT Eingang (3) Stabilitätsüberprüfung der Platine Überprüfung ADAT Format Externe PLL PC1 Hostrechner ist Clockmaster, Platine ist Slave Eigene PLL Typ PC II (4) Synchronisation PLL Problematik 24kHz auf 48kHz Sync Wordclock kompatibel Überarbeitung Syncpuls (5) Überarbeitung ADAT Eingang ADAT Ausgang (6) MIDI Eingang (7) Audiosignalverarbeitung Fader/ Summen (8) Institut für Breitbandkommunikation System stabil Überarbeitung Eingang und stabiler Ausgang MIDI Eingang und Steuerspeicher Aufbau Pufferspeicher Test von Fader/ Summe 15 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Zur Inbetriebnahme der Testplatine ist nach Überprüfung der Spannungsversorgungen ein Sinusgenerator (1) (Funktionsblock SinGen) in Form eines Table Look Up Generators entworfen. Es ist mit der Frequenz f test =1kHz ein Standardmesston der Audiotechnik gewählt worden. Die Tabelle besteht aus 48 gerechneten Stützpunkten eines Sinussignals mit 24 Bit Wortbreite, die mittels eines Modulo 48 Zählers zu jedem 48 kHz Zeitpunkt ausgelesen werden. Dieser Ton wurde zuerst in S/PDif8 (2) kodiert, auf den optischen Ausgang (TOTX141) aufgebracht und mit dem Messrechner aufgezeichnet. Die Testplatine liefert zugleich den Takt als Clockmaster. Die optische Überprüfung der Kurvenform eines digital aufgezeichneten Signals dient zur Überprüfung der Stabilität der betroffenen Bauteile. Der so als funktionierend bestätigte S/PDif Ausgang dient dazu um das ADAT® Signal zu messen und den Eingangsformatdekoder (3) zu entwerfen. Nach erfolgter Dekodierung des ADAT® Formats wurde der Messrechner als Clockmaster umgeschaltet und die Testplatine als Slave synchronisiert. Der gewählte Phasendetektor der analogen externen PLL verhielt sich bei Versorgung mit 3,3V entgegen den Angaben des Datenblattes (siehe [Philips Semiconductors S.9]) nicht stabil (siehe Kapitel 3.1). Als Lösung des Problems wurde der Phasendetektor (4) ähnlich des Typ II9 aus dem Philips 74HC4046AD in den FPGA integriert. Nach Stabilisierung und gründlicher Überarbeitung des Synchronisationsalgorithmuses (5) wurde ein ADAT® Ausgang (6) implementiert. Die Eingangssignale wurden dazu direkt auf den Ausgang durchgeschliffen. Zur Steuerung der wird das MIDI Eingangssignal (7) dekodiert und auf den Systemclock der Platine synchronisiert. Nach einigen Simulationen ergab sich, dass ein Pegelsteller (8) auf dem Baustein mit einem 7 Bit Parameter und 24 Bit Audiowert eine Durchlaufzeit von ca. 25 ns benötigt. Der Hardwareaufwand des Pegelstellers war zu hoch, um ihn achtfach parallel zu verwenden und es wurde eine achtfach zeitserielle Lösung verwendet. Um eine vernünftige Bedienbarkeit und Auflösung zu erreichen, wurde der Pegelsteller auf 24 Bit mal 16 Bit erweitert und eine Faderkennlinie eingeführt. Für eine störungsfreie Audiosignalverarbeitung ist ein Empfangs- und ein Sende-Ram als Puffer eingeführt. Diese Pufferspeicher trennen die Audioverarbeitung von den Ein- und Ausgangsfunktionsblöcken. Der Baustein ist in der Lage, innerhalb eines 48 kHz Taktzyklus 64 Fader (= Pegelsteller) und acht Summenbusse, denen jeweils acht Pegelsteller für die acht Eingänge zugeordnet sind, zu verarbeiten. In Abb. 3 ist der Signalflussplan dargestellt. 8 S/PDif = Sony/ Philips Digital Interface, eine vereinfachte Variante des AES-3 Digital Audiosignals 9 Siehe Datenblatt 74HC4046AD, Link im Anhang Institut für Breitbandkommunikation 16 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 3: Signalflussplan der Audiosignale Durch Einsparen der analogen PLL reduziert sich der Hardwareaufwand weiter. Es konnten alle ursprünglich notwendigen 5V auf 3,3V Anpassungen zum FPGA weggelassen werden. Auch die vorgesehene PLL wird nicht mehr benötigt. Der im FPGA integrierte Schwinger ist nicht Teil der Synchronisations- PLL, da dieser erst ab ca. 20 MHz verwendbar ist und die interne PLL keine Möglichkeit bietet, einen analogen Filter zur Reduzierung tieffrequenten Jitters einzuhängen. Die interne PLL wird aber verwendet, um die dreifache Frequenz zum Abtasten des Eingangsstromes zu erzeugen. Der Systemclock aus dem VCXO wird ebenfalls durch die chipinterne PLL geführt, um eventuell auftretenden Phasenjitter zu beruhigen. Die Testplatine wurde nun vorgestellt und die Entwicklung und ihre Auswirkung auf den Prototypen gezeigt. Im folgenden Kapitel wird die Entwicklungsumgebung und der verwendete Baustein vorgestellt. Institut für Breitbandkommunikation 17 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 3. FPGA und Entwicklungsumgebung Im folgenden Kapitel werden die wichtigsten Werkzeuge und Eigenschaften des Bausteins vorgestellt. Die verwendete Hardwarebeschreigungssprache wird vorgestellt um den Source Code lesen zu können und um die Herangehensweise an die Problemlösung zu verstehen. 3.1. Der verwendete FPGA Auf der Testplatine wird ein Baustein der Cyclone Familie der Firma Altera verwendet. Die Cyclone Familie ist die erste Low-Cost Baureihe dieses Unternehmens. Der Typ EP1C3T144-8 besitzt 144 Pins in einem TQFP Gehäuse, davon 104 als I/O Pins entweder als Ein- oder Ausgang verwendbar. Die übrigen 40 Pins sind für die Spannungsversorgung der I/O Pins (3,3V, 2,5V oder 1,8V je nach gewähltem I/O Standard, hier 3,3V), der Spannungsversorgung des FPGA Logikkerns (Corespannung) von 1,5V, den Masseverbindungen und der Spannungsversorgung für die integrierte PLL notwendig. Einige Ein- und Ausgänge können zusätzlich noch differentielle LVDS Signale (Low Voltage Differential Signal) senden bzw. empfangen. Einige Eingänge haben besondere Funktionen, wie zum Beispiel ein Takteingang mit direkter Verbindungen zur internen PLL und/oder zu den internen Clocknetzwerken (clk0 wird für den systemweit verwendeten Clock aus dem VCXO verwendet). Die I/O Pins können komfortabel im Pin Planner (Abb. 4) der Entwicklungsumgebung belegt werden. Institut für Breitbandkommunikation 18 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 4: Pin Planner: Übersicht und Konfiguration der Ein- und Ausgangspins des Bausteins, Screenshot aus der Quartus II Entwicklungsumgebung, Altera Corp. Dem Programmierer muss die genaue Struktur (siehe Abb. 5) des verwendeten Bausteins nicht unbedingt geläufig sein. Die Entwicklungsumgebung analysiert die beschriebene Hardware. Der geschriebene Code wird reduziert, vereinfacht und optimiert auf entweder Platzbedarf oder Verarbeitungsgeschwindigkeit. Danach versucht die Entwicklungsumgebung das Programm mit den Logischen Elementen des jeweiligen Bausteins zu realisieren. Institut für Breitbandkommunikation 19 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 5: Ein Logisches Element der Cyclone Familie [Cyclone Device Handbook, S. 2-5] Die Speicherbits sind in kleinen Blöcken realisiert und vielfältig verwendbar. Eine häufig verwendete Speicherart ist hier das Dual Port RAM, das zwei unabhängige Ports zur Verfügung stellt und gleichzeitigen Zugriff von zwei unterschiedlichen Domains erlaubt (siehe Kapitel 5.3. MIDI). Ein wichtiger Punkt sind die schnellen Clocknetzwerke, die alle Logischen Elemente des ganzen Chips physikalisch mit beliebigen Taktsignalen versorgen (siehe Abb. 6). Diese sorgen für synchrones Schalten der Flip Flops am gesamten Baustein. Diese sind auch mit der integrierten PLL verbunden und über dezidierte Eingängen von außen direkt erreichbar. Institut für Breitbandkommunikation 20 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 6: Clock Netzwerk Cyclone Familie und Verbindung mit der PLL (verwendeter Baustein besitzt nur PLL 1), [Cyclone Device Handbook, S. 2-30] Ein FPGA benötigt noch ein externes Speicherelement, das seine Konfiguration dauerhaft hält. Dieses ist hier in der einfachsten Lösung ein passender Altera Baustein EPCS1, der als EEProm mit einem Programmer (hier mittels parallel angebundenem ByteBlaster 2 der Firma Altera) vom Hostrechner über einen JTAG Stecker von extern beschrieben und seriell über eine Startlogik vom FPGA ausgelesen wird. Diese Bootphase dauert ca. 20 ms. Mit komplexeren Konfigurationsbausteinen oder über kleine Mikrocontroller lässt sich ein FPGA auch während des Betriebs in kürzester Zeit umladen und kann komplett andere Funktionen übernehmen. Meistens wird dies zum Updaten von Funktionen oder für Selbsttests, bzw. Tests der Peripherie verwendet. Institut für Breitbandkommunikation 21 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 3.2. Die verwendete Entwicklungsumgebung Ein FPGA ist ein programmierbarer Baustein. Das Programm, weiterhin die Firmware oder das Design genannt, kann auf mehrere Arten erstellt werden. Eine Methode ist klassisches digitales Schaltungsdesign mit bekannten Logikbausteinen wie AND, NAND XOR usw., die grafisch zusammengesetzt werden wie auf einem Experimentierboard. Diese Methode hat den Nachteil, dass das Programm bei komplexen Designs unübersichtlich und sehr aufwändig zu erstellen ist. Die wesentlich elegantere Methode besteht in der Verwendung von Hardwarebeschreibungssprachen. Die bekanntesten Sprachen sind VHDL und Verilog. Diese sind standardisiert und firmenübergreifend einsetzbar. Sie wurden nicht nur für FPGAs entworfen, sondern dienen allgemein dazu, um digitale Schaltungen zu beschreiben. VHDL ist sehr mächtig und komplex und daher für nicht Geübte schwer verständlich. Altera bietet eine einfachere Variante an, um die Bausteine der Firma zu beschreiben, genannt AHDL (Altera Hardware Description Language). Diese Sprache ist einfacher zu schreiben, zu lesen und auch in der Programmierung relativ zeitsparend. Diese Arbeit wurde in AHDL geschrieben vorwiegend, um die Lesbarkeit einfach zu halten. Abb. 7: Quartus Entwicklungsumgebung, Verschaltung einzelner Funktionsblöcke in der ersten Ebene Institut für Breitbandkommunikation 22 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der Aufbau des Designs ist in Blöcken auf erster Ebene grafisch, der Inhalt der Blöcke ist in AHDL als so genannte Subdesigns beschrieben. Die Ein- und Ausgänge auf der ersten Ebene entsprechen den physikalischen I/O´s, die Ports der Funktionsblöcke dienen zur Verbindung untereinander. Diese Blöcke lassen sich, wenn sie sich als stabil erwiesen haben, als Bibliotheksbausteine ablegen und in weiteren Designs verwenden. Sie werden, da sie jeweils eine bestimmte Funktion erfüllen, weiterhin als Funktionsblöcke bezeichnet. Das erste Blatt im Anhang Seite 75 zeigt die erste Ebene mit den zusammengeschalteten Funktionsblöcken. Die Funktionsblöcke sind in den anschließenden Kapiteln in ihrer Funktion näher erläutert. Die wichtigsten Elemente eines Subdesigns soweit hier verwendet: include Sektion: Einbindung von fertigen parametrierbaren Bausteinen zum Beispiel „lpm_shiftreg.inc“ ist ein Schieberegister von Altera subdesign Sektion: Hier werden alle Ein- und Ausgänge des Blocks (sind keine physikalischen I/O Pins) definiert. Diese sind im Funktionsblock sichtbar und können in der ersten Ebene mit anderen Blöcken verbunden werden. variable Sektion: Hier werden Variablen angelegt, hauptsächlich Flip Flops, Register, Rechenelemente wie Addierer oder Multiplizierer. Funktionen, die nicht Standard sind, müssen in der include Sektion inkludiert werden und können dann beliebig oft verwendet werden. Eine Sonderform sind Hilfsvariablen, so genannte NODES, sie dienen als Zwischenspeicher ähnlich Variablen in Programmiersprachen. begin Ab hier wird die Hardware beschrieben. Nützlich ist am Anfang eine default Sektion, in der Zustände, die nicht explizit beschrieben sind auf Standardwerte gehalten werden. Hier werden Bauelemente beschalten, miteinander verbunden, Register verglichen, Zähler gebildet und so kombinatorische und sequentielle Logik aufgebaut. Zu beachten ist, dass hier kein zeitlicher Ablauf gegeben ist wie bei einer seriellen Programmiersprache. Die zeitlichen Zusammenhänge müssen selber aufgebaut werden. In den vorliegenden Designs sind hauptsächlich Ablaufzähler verwendet, auf deren Zählerstand abgefragt wird und Funktionen ausgelöst werden (zum Beispiel if (zähler[].q == 18) then...) end; Institut für Breitbandkommunikation 23 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die so programmierten Designs werden in einen Baustein kompiliert und simuliert. Der Kompilationsvorgang überprüft das beschriebene Bausteinverhalten, reduziert mehrfach vorhandene Elemente und passt sie dem gewählten Baustein an. Die Simulation ist ein wichtiger Bestandteil einer Hardwarebeschreibung. Der Funktionsblock kann sowohl funktionell simuliert werden, als auch in seinem zeitlichen Verhalten im Baustein, abhängig von Gatterlaufzeiten und seiner jeweiligen vom Kompilat abhängigen geographischen Lage im Chip. Die Firma Altera stellt dazu eine Entwicklungsumgebung namens Quartus II10 auch als freie Webedition zur Verfügung. Diese beinhaltet Projektmanagement, vorgefertigte Bauteile, Grafik und Texteditoren zum Erstellen von Code, einen Pin Planner, um die Zuordnung und Einstellung der I/O Pins des Bausteins zu verwalten, und einen einfachen Simulator. Weitere Tools sind vorhanden, um den Stromverbrauch des Bausteins im aktuellen Design abzuschätzen, Taktfrequenzen und Laufzeiten innerhalb des Chips festzustellen und ein Tool zum Schreiben und Überprüfen der Konfigurationsbausteine. 3.3. Der Test- und Messaufbau Die Testplatine wird sowohl mit Ton- als auch mit Steuersignalen von einem Hostrechner versorgt (siehe Abb. 8). ADAT Out Toslink optisch ADAT In Emu 1212m MIDI Out ADAT In ADAT Out MIDI elektrisch 2 polig MIDI In Spannungsversorgung +5V und GND Hostrechner PC Abb. 8: Verbindungen zwischen Hostrechner und Testplatine 10 Quartus II ist auf http://www.altera.com/products/software/products/quartus2web/sof-quarwebmain.html erhältlich Institut für Breitbandkommunikation 24 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der Hostrechner ist ein normaler PC mit einer semiprofessionellen Soundkarte des Typs Emu11 1212m. Diese steckt in einem PCI Slot und bietet vielfältige Anschlussmöglichkeiten: ● ● ● ● Analoger Stereo Ein- und Ausgang ADAT® oder S/PDif Ein- und Ausgang umschaltbar MIDI Ein- und Ausgang ASIO: Streaming Ein- und Ausgänge für PC-interne Verarbeitung (zum Beispiel Mehrspuraufnahme und Wiedergabe) Zusätzlich bietet die Karte ein integriertes Mischpult mit einer Misch- und einer Monitorschiene und mehrere Insertpunkte in den Kanalzügen. Als Inserts werden Pegelmesser, Asio Sends zum Aufzeichnen der von der Testplatine bearbeiteten Eingangssignale und ein Testtongenerator zum Bespielen der Testplatine verwendet. Abb. 9: Mischpult und Routingoberfäche der Emu 1212m Soundkarte, Screenshot 11 www.emu.com, Hersteller semiprofessioneller Audiohardware für PCs Institut für Breitbandkommunikation 25 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Abb. 9 zeigt eine typische Messsituation. Im Fenster Output Assignment ist die Beschaltung der physikalischen ADAT® Ausgänge mit dem Mix Bus zu sehen. Auf diesen Bus spielt ein Testtongenerator im Insert des „Wave“ Eingangs. Die Eingänge „PCI Card ADAT 1/2“ bis „PCI Card ADAT 7/8“ (Input 2-5) sind mit den Summen 1-8 der Testplatine beschalten. Die Kanalregler der ADAT ® Eingänge sind zugezogen, um eine Rückkopplung auf den Mischbus zu vermeiden. In den Insertwegen ist der ankommende Pegel auf der Aussteuerungsanzeige grob ablesbar. Darunter werden die Signale an ein Mehrspuraufnahmeprogramm weitergeleitet, aufgenommen und optisch auf Stabilität und Konsistenz überprüft. Mittels Aufnahmen werden Langzeitstabilitätstests durchgeführt. Aufnahmefehler sind durch Peaks oder Unterbrechungen im Sinussignal einfach zu erkennen. Die Testplatine wird mit einem PD12 (Pure Data, Anleitung siehe [PD]) Patch gesteuert und getestet. Dieser generiert MIDI Befehle, um die Fader zu stellen. Die Fader der Testplatine werden mit „0“ als Multiplikand initialisiert, das heißt, sie sind gemutet und die Summen erhalten kein Signal. Es wird lediglich ein Testpatch zur Verfügung gestellt, der alle Funktionen der Testplatine einstellbar und somit testbar macht. Abb. 10: PD Patch als Testoberfläche zur Einstellung der Faderparameter Der Patch bietet die Möglichkeit, mittels dem Slider rechts den Pegel einzustellen, der erstens mit den Buttons 0 bis 7 dem jeweiligen Eingang und zweitens mit der Channel Box des jeweiligen Summenausgangs definiert wird. 12 PD, Pure Data, datenstromorientierte Programmiersprache von Miller Pukette und Firma entwickelt bei IRCAM, www.puredata.org Institut für Breitbandkommunikation 26 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Ein Fader ist mit zwei Parametern lokalisierbar: Fader (0/1) bedeutet Eingangskanal 0 auf Summe 1, die am Ausgang 1 anliegt. Der Block „noteout“ sendet am eingestellten MIDI Device des Rechners ein „Note On“ Signal. Damit sind alle 64 Pegelsteller nach Summen getrennt stellbar. Eine ergonomische Benutzeroberfläche ist nicht Bestandteil dieser Arbeit. Sie ist frei gestaltbar. Die Realisierung kann eine reine Softwarelösung, die ihre Steuerinformation über die MIDI Schnittstelle sendet, sein. Weiters ist ein Hardwarecontroller ebenfalls über die Steuerschnittstelle denkbar. Eine dritte Möglichkeit besteht darin, direkt inkrementelle Drehgeber oder analoge Geber über A/D Konverter an den FPGA anzubinden. Dazu sind noch genug Logische Elemente (LE) und I/O Pins vorhanden. Die Umgebung des Bausteins ist nun sowohl elektrisch (Kapitel 2) als auch systematisch beschrieben. Im folgenden Kapitel wird eines der wichtigsten Themen sowohl in der digitalen Audiotechnik, als auch im FPGA Design beschrieben, die Synchronisation. Institut für Breitbandkommunikation 27 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 4. Synchronisation und Systemclock Im folgenden Kapitel wird eines der zeitaufwändigsten Themen dieser Arbeit beschrieben. Die Synchronisation auf ein digitales Audiosignal oder einen Wordclock steht hier im direkten Zusammenhang mit der internen Synchronität der einzelnen Funktionsblöcke. 4.1. Allgemeines über Synchronisation in der Digitalen Audiotechnik Ein wichtiges Thema in der digitalen Audiotechnik ist die Synchronität aller Teilnehmer an einem Audionetzwerk. Ein Gutes Beispiel, ein Funkhaus, hat viele Geräte verschiedenster Hersteller mit verschiedenen Formaten, welche miteinander Audiosignale störungsfrei austauschen müssen. Dazu wird meistens von einem Videosignal ein sogenanntes Wordclocksignal abgeleitet. Das Wordclocksignal ist ein Rechtecksignal mit Tastverhältnis 50% und der Frequenz fWClk=48 kHz und besitzt zu jedem Wort eines abgetasteten Audiosignals eine steigende Flanke. Dieses wird im Haus verteilt und gilt sowohl für die Frequenz-, als auch für die Phasenbeziehung aller Teilnehmer zueinander. Dieses Rechtecksignal, genannt Wordclock (1 Word = 1 Audiosample), wird meist sternförmig von einem Clock- Master als möglichst jitterfreie Quelle verteilt. Bei kleineren Anwendungen ist es auch möglich, den Takt aus dem digitalen Audiosignal selber abzuleiten. Vermieden werden sollte eine serielle Clockverteilung über mehrere Geräte, da diese den Takt mit Jitter versehen und dieser von jedem Gerät verstärkt wird. Ein schlechter Fall ist etwa, wenn ein Analog- Digital Konverter mit einem stark jitterbehafteten Clock versorgt wird. Dies führt zu verschiedenen Zeitabständen bei der Abtastung und somit zu Störsignalen bei der Wiederherstellung des Audiosignals. Rein digitale Geräte müssen nur dafür sorgen, dass jedes Audiowort fehlerfrei empfangen und ebenso wieder gesendet wird. Langsamer Jitter kann durch Nachführen der Systemtaktfrequenz oder durch FIFO Puffer (First-In First-Out) ausgeglichen werden, hochfrequenter Jitter darf nicht dazu führen, dass es zur Verletzung von Datenlaufzeiten in den Bausteinen kommt. Die Abb. 11 zeigt den erlaubten Jitter über die Frequenz, die ein AES-3 Empfänger tolerieren muss. Bis 200 Hz darf der Jitter deutlich höher sein und kann durch etwa eine langsame PLL ausgeglichen werden. Institut für Breitbandkommunikation 28 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 11: Maximaler Jitter, den ein AES-3 Empfänger ausgleichen können muss, [AES-3, S.22] 4.2. Synchronisation über PLL und VCXO Die gesamte Signalverarbeitung im Chip wird über einen 48kHz Wordclock synchronisiert. Das Wordclock Signal kann entweder an einem I/O Pin physikalisch anliegen, oder aus dem ADAT® Eingangssignal gewonnen werden. Das ADAT® Format erlaubt zwei verschiedene Synchronisationsmethoden. Es ist einerseits möglich aus den einzelnen Synchronisationsbits (jedes fünfte Bit nach 4 Bit Daten, siehe Kapitel 5.1) ein Vergleichssignal abzuleiten. Dies entspricht einem durch die Codeverletzung am Blockstart lückenden 12.288MHz f ADATsync= Signal und es müssten zwei verschiedene Mechanismen 5 für die Synchronisation via ADAT® Clock und Wordclock realisiert werden. Dies würde zusätzlichen Hardwareaufwand mit ungeraden Teilern bedeuten. Die zweite und hier realisierte Variante benutzt das Blockstart Symbol, um daraus ein Vergleichssignal für eine PLL mit hoch genauem verstellbarem Quarz, einem VCXO zu erzeugen. An dieser PLL kann das Vergleichssignal, also ein externes Wordclocksignal, ein 48kHz Signal aus dem ADAT® Strom oder wenn die Platine Clockmaster ist, das Signal selber sein. Institut für Breitbandkommunikation 29 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers An einem speziellen I/O Pin, einem Clockeingang (clk0 PIN 16), ist der Ausgang des VCXOs angeschlossen (clk). Die Mittenfrequenz f VCXO beträgt die 512-fache Frequenz des Wordclocks f Wclk , f VCXO= f Wclk ∗512=48kHz∗512=24,576 MHz . Abb. 12: Altera PLL Baustein beschreibt OnChip Hardware PLL Das Taktsignal wird durch die interne PLL des Bausteins geführt, um eventuell ausbleibende Flanken aufgrund elektrischer Störungen oder Jitter durch unsaubere Flanken aufzufüllen, und ergibt den Systemclock iclk. Mit dieser Frequenz werden alle Funktionsblöcke und Register chipintern getaktet. Ausbleibende 24,576 MHz Pulse würden die Ablaufzähler, deren Clock ebenfalls iclk ist, stören und zu einem kompletten Ausfall eines Audioframes und schlimmstenfalls zum Verlust der Synchronität führen. Es wird von den 24,576 MHz ein Dreifaches der ADAT® Trägerfrequenz (fADAT=12,288 MHz) über den Teiler 3/2 abgeleitet und als Dclk zum Abtasten des ADAT® Einganssignales zur Verfügung gestellt. f Dclk = f ADAT ∗3 2 Die Steuerspannung des VCXOs wird durch einen Phasenkomparator (siehe Abb. 13) erzeugt. Die Erstimplementierung verwendete einen bewährten analogen PLL Baustein des Typs 74HC4046AD. Entgegen den Angaben im Datenblatt zeigte der Baustein bei Verwendung des Phasenkomparators vom Typ PC213 bei Versorgungspannungen mit 3,3V Instabilitäten. 13 Siehe Datenblatt 74HC4046AD, Verweis im Anhang Institut für Breitbandkommunikation 30 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Deshalb ist der Phasenkomparator in der Implementierung in den FPGA als Funktionsblock integriert worden. Dieses Design des Funktionsblockes PLL_2 ist allgemein gehalten und steht als Bibliotheksbaustein weiter zur Verfügung. Abb. 13: Funktionsblock PLL, Phasenkomparator aus einer PLL Abb. 14: Schaltungsvorlage des Phasenkomparators [Tietze/Schenk, S. 1161] Dieser Phasenkomparator besteht aus zwei flankengetriggerten D-Flip Flops, die sich gegenseitig über den Reset Eingang zurücksetzen. Das Vorzeichen des Ausgangssignals der Schaltung gibt an, welche der beiden anliegenden Frequenzen höher ist. Der Detektor benötigt kein exaktes Tastverhältnis der zu vergleichenden Frequenzen, da die Signale an den Clock Eingängen der Flip Flops angeschlossen sind. Der analoge Summierer in obiger Schaltung wird durch einen digitalen Addierer mit einem Tri-State Ausgang, der extern hochohmig auf VCC/2 über einen Spannungsteiler gehalten wird, ersetzt. Bei Frequenzgleichheit ist der Ausgang des FPGAs hochohmig und wird durch den Spannungsteiler auf VCC/2 gehalten. Bei Frequenzungleichheit schaltet der Ausgang entweder gegen Masse oder VCCIO (3,3V). Dieses Signal liegt über einen I/O Pin des FPGAs am Spannungseingang des VCXO´s an und regelt die Frequenz dieses Quarzes innerhalb seines Ziehbereiches. So ist die Schaltung auch auf den Spannungbereich des VCXO´s angepasst. Dieser beträgt 0 bis VCCIO = 3,3V. Ein weiterer Grund für die Wahl dieses Phasenkomparators ist der theoretisch unendlich große Fangbereich durch die immer vorzeichenrichtige Messung, da die Genauigkeit des Zuspielers nicht bekannt ist. Institut für Breitbandkommunikation 31 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Begrenzt wird der Fangbereich praktisch nur durch den Ziehbereich des VCXOs, der bei 3,3V Versorgung ca. +- 70ppm beträgt. Dies ergibt einen −6 maximalen Frequenzbereich der Platine mit f zieh=48000Hz∗70∗10 =33,6 Hz zu f wclk =48000±33,6 Hz . Der Phasenkomparator benötigt zwei Signale: Comp(are) und Signal. Wird die Platine über einen Wordclock Eingang synchronisiert, so muss dieses Signal an einem I/O Pin an die Platine angeschlossen sein und kann dann direkt an den Comp Eingang des Funktionsblockes PLL_2 angeschlossen werden. 4.3. Synchronisation über ADAT® Eingang Im weiteren wird der Fall der Synchronisation über den ADAT® Eingang beschrieben. Abb. 15: Funktionsblöcke zur Generierung der Syncsignale Der Funktionsblock PLL_steuer ist ursprünglich für die Verwendung des externen Phasenkomparators 74HC4046AD entworfen und dient als Versuchsdesign für mehrere Varianten. Die aktuell nicht verwendeten Ausgänge des Funktionsblocks benötigen keine Bausteinlogik. Der Compiler der Designsoftware erkennt nicht weiter verwendete Signale. Die Teile des Codes, die 24 kHz Synchronisationssignale beschreiben, sind für den Phasenkomparator des Typs PC1 der externen PLL (siehe Datenblatt) eingeführt worden, da dieser Vergleichssignale mit gleicher Periodendauer benötigt. In der vorliegenden Variante wird nur der Ausgang pll48kHzcomp verwendet und an den Phasenkomparator am Signal Eingang angeschlossen. Das Signal pll48kHzcomp liegt am Ausgang [8] eines frei laufenden Zählers, der mit iclk (=24,576 MHz) zählt, an. Institut für Breitbandkommunikation 32 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Wortbreite des Zählerausgangs ist neun Bit (PLLCount[8..0]) breit. Das höchstwertige Ausgangssignal stellt somit ein 48 kHz Signal dar. Die Zählrichtung ist „down“. Mittels einer Simulation wurde überprüft, ob es Unterschiede in der Synchronität der Zählerausgänge im Vergleich zu „up“ Zählern erkennbar sind. Mit einer Simulation konnte kein Unterschied festgestellt werden: Abb. 16: Vergleichssimulation eines Zählers down/up, Verhalten der Flanken Unterschiedliche Laufzeiten von Zählerausgängen führen bei Vergleichen zu kurzzeitigen Spitzen (Spikes), die falsche Schaltzustände auslösen können. Deshalb muss besondere Vorsicht angewendet und manchmal mittels Register nach synchronisiert werden. Im Projekt kommen sowohl „up“ als auch „down“ Zähler zur Verwendung. Das 48kHz PLLsync Signal ist das Vergleichssignal für die PLL und wird aus dem ADAT® Eingangssignal abgeleitet. Von diesem Signal hängt die Stabilität des gesamten Designs und somit die Störungsfreiheit des Audiosignals ab. Das ADAT® Signal hat zur Erkennung des Blockstarts eine eindeutige Sequenz aus zehn mal logisch „0“ und einer Flanke auf logisch „1“. Diese Flanke wird gesucht und zum Phasendetektor geführt. Nun gilt es den Frequenzunterschied zwischen der ADAT® Trägerfrequenz und der Frequenz des Systemclocks über den gewählten Teiler von 512 zu synchronisieren. Da keine Angaben zum Frequenzbereich eines ADAT® Signals erhältlich sind, sollte der Fangbereich so groß wie möglich sein. Institut für Breitbandkommunikation 33 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der Funktionsblock ADAT®_In hat im Unterschied zu allen anderen Designs einen zweiten Clock anliegen, den Abtastclock fDclk, der das 3/2 fache der Hauptfrequenz 24,576 MHz beträgt. Dieser Clock ist an ein 20 bit langes Schieberegister (syncshift) mit einem seriellen Input und einem parallelen Output angeschlossen. Die Länge des Schieberegisters ergibt sich aus einer minimal und einer maximal möglichen Länge. Das Minimum ist durch die Möglichkeit bestimmt, dass Dateninhalte maximal 5 ADAT® Bitcycles logisch „0“ sein können, bevor ein logischer Zustand „1“ auftritt. Dies darf nicht als Blockstart erkannt werden. Die maximale Länge ergibt sich durch das Format des Blocksync-Zeichens mit 10 ADAT Bitcyles und dem möglichen Frequenzunterschied zwischen dem internen und dem externen Clock, da diese noch nicht synchronisiert sind. Der Parallelausgang des Schieberegisters syncshift wird mit der Bitmaske „00000000000000000001“ bzw. der Inversen verglichen. Bei Übereinstimmung ist der Blockstart gefunden. Nun ist das Ergebnis eines Vergleiches immer ein Signal, das aufgrund innerer Gatterlaufzeiten zu Spikes führen kann. Deshalb wird das Ergebnis des Vergleiches noch einmal mit dem Dclk synchronisiert, und als framesync Signal ausgegeben. Das framesync Signal hat kein 1 Tastverhältnis von 50%, sondern ist nur ein Puls der Länge t framesync = f . Dclk Da der Phasendetektor aber nur auf die steigende Flanken reagiert, gilt dies als Vergleichssignal. Das framesync Signal als Puls ist gleichzeitig das Vergleichssignal für den Phasendetektor (= pll_sync -> Eingang COMP) und auch das Startsignal für den Ablauf im Funktionsblock ADAT® Empfänger ADAT_In. Durch die Verschiebung um tframesync zwischen tADAT und ticlk/2 können keine Abtastfehler (2 Werte aus dem selben ankommenden scheinbar zu langem Bit) verursacht durch Phasenjitter entstehen, da die Datenübernahme erst im letzten Drittel eines ankommenden Bits stattfindet. Wenn der Phasenjitter sich auf < 1/3 * tADAT beschränkt, kann mit einfacher ADAT® Trägerfrequenz (fADAT) das Eingangssignal mit einem Schieberegister übernommen werden und eine komplexere Eingangsschaltung für den ADAT® Empfänger ist nicht notwendig. Wichtig ist hier, dass alle Register und Flip Flops, die zur Bildung des Synchronisationspulses führen mit dem selben Clock versorgt werden, der mindestens doppelt so hoch ist wie das abzutastende Signal (Abtasttheorem). Der Faktor 3 für fDclk ist mit der On- Chip PLL einfach zu erzeugen und beinhaltet genug Reserven, um den Frequenzunterschied und den Phasenjitter auszugleichen. f f DClk 2∗ f ADAT f diff f jitter , wobei f diff = f ADAT − iclk 2 Institut für Breitbandkommunikation 34 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Das Ausgangssignal des Phasenkomparators durchläuft noch einen analogen Filter, der einen I-Anteil enthält, der verhindert, dass die gesamte PLL auf harmonische Frequenzen einrastet. Ursprünglich wurde die Filterdimensionierung aus dem ACOUSTA D500 System übernommen, jedoch etwas beschleunigt (siehe Schaltplan neu Kapitel 7, Abb. 48: C 24 ist mit 100nF bestückt). Stabil ist der ganze Filter aber erst mit einem 100nF Kondensator am Spannungsteiler des Phasenkomparator Ausganges Richtung Masse gestützt (C26 Schaltplan neu Kapitel 7). Die Platine synchronisiert sich mit der angeführten Schaltung stabil auf das angebotene ADAT® Signal der Audiokarte EMU 1212m des Messrechners. Das gesendete ADAT® Signal mit der synchron zur internen Frequenz wird störungsfrei vom Hostrechner angenommen. Der Funktionsblock PLL_steuer bietet noch Enable Signale an, die zusammen mit dem Systemtakt iclk niedrigere Frequenzen darstellen: 12MEn für Funktionsgruppen mit 12,288 MHz, 6MEn für 6,144 MHz und 3MEn für 3,072 MHz. Diese werden an den Enable Eingang des Bausteines angeschlossen, der mit einer niedrigeren Frequenz arbeitet. Der einzige Clock ist chipweit der Systemclock iclk. Im folgenden Beispiel (siehe Abb. 17 und Abb. 18) wird ein D Flip Flop mit 3,072 MHz betrieben, obwohl es am Clock Eingang mit iclk versorgt wird. Abb. 17: Schaltbild D-Flip Flop, flankengetriggert mit Enableeingang als Frequenzteiler Abb. 18: Simulation Enable gesteuertes Flip Flop mit 3,072 MHz Institut für Breitbandkommunikation 35 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Im FPGA ist es vorteilhaft möglichst synchron zu arbeiten, da schnelle Clocknetze an den Logischen Elementen Chip- weit direkt angebunden sind. So entstehen stabile Designs durch kurze interne Laufzeiten und hohe Setupzeiten der Register. Auch sind synchrone Designs gut simulierbar. Wenn alle Register mit dem selben Clock versorgt werden, verschwindet das Problem verschiedener Laufzeiten unterschiedlicher Clocksignale. Enable Signale sind außerdem relativ unkritische Signale, da sie erst zur Taktflanke von iclk stabil sein müssen. Sie können somit auch von kombinatorischer Logik abgeleitet sein. In diesem Kapitel wurde gezeigt, wie die Arbeitsfrequenz der Testplatine der Frequenz des Audiosignals mittels einer PLL nachgeführt wird. Diese Art der Synchronisation bietet die Möglichkeit, das Eingangssignal direkt Bit für Bit zu übernehmen und auf einen langen Pufferspeicher zum Ausgleich tieffrequentem Jitters zu verzichten. Die Gesamtdurchlaufzeit bleibt mit dieser Technik niedrig. Institut für Breitbandkommunikation 36 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 5. Verwendete Audioformate und das Steuerformat Im folgenden Kapitel werden alle verwendeten Audio und Steuerschnittstellen zuerst allgemein und anschließend deren Verarbeitung durch die zugehörigen Funktionsblöcke beschrieben. 5.1. Audioschnittstelle ADAT® ADAT® ist eine semiprofessionelle Schnittstelle für die Mehrkanalübertragung von Audiosignalen. Sie wurde von der Firma ALESIS14 eingeführt und ist nicht veröffentlicht. Die gute Verbreitung gerade im semiprofessionellen Bereich hat den Nutzen, dass eine große Anzahl preiswerter Audiogeräte mit ADAT® Schnittstellen am Markt verfügbar ist. So existieren zum Beispiel Audiokarten für Rechner und eine große Auswahl an mehrfach A/D Konvertern mit Mikrofonvorverstärkern in verschiedenen Preisklassen. Das Format erlaubt es, acht Audiokanäle mit 48 kHz Abtastrate über eine Entfernung von ca. 5 bis 10m optisch zu übertragen. In der Rundfunktechnik sind 48 kHz Abtastrate Standard, während die Studiotechnik zu höheren Abtastraten (96 kHz bzw. 192 kHz) tendiert. Dies ist bei ADAT® nur durch Halbierung beziehungsweise Viertelung der Kanalanzahl (S-Mux15) möglich. Das Transportmedium ist eine Kunststofffiber auf der Basis des TOSLink Systems von Toshiba mit den zugehörigen TOTX/ TORX Sende- und Empfangsbausteinen. Die maximale Datenrate ist auf 15 Mbit16 elektrisch beschränkt und ergibt aufgrund des Formats mit acht Kanälen bei 48 kHz Samplerate f ADAT =256Bit∗48kHz=12,288 MBit . Die gute Verfügbarkeit auf dem PC-Markt erlaubt es im vorliegenden Beispiel eines kleinen Broadcastmischers eine einfache Anbindung einer Zuspielmaschine in Form eines PCs mit einer gängigen Audiobearbeitungsbzw. Abspiel-software, die die Playlist des Musikprogrammes und diverse Jingles bzw. Sounds abspielen. Eine Erweiterung um eine zweite ADAT® In Schnittstelle für 8 analoge Mikrofon/Line Eingänge für Mikrofone und analoge Zuspielquellen würde für ein DJ-Studio für normale Sendungen ausreichen. 14 Für Informationen siehe www.alesis.com 15 S-Mux: die Kanalzahl wird zB. Für 96 kHz halbiert und dafür 2 mal 4 Samples pro Frame übertragen 16 Siehe Datenblatt der TOT/RX Bausteine im Anhang Institut für Breitbandkommunikation 37 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Das Datenformat wurde aus dem Skriptum zu Digitaler Audiotechnik 117 übernommen und mit Hilfe eines Oszilloskops überprüft. Dazu wird das zu messende Signal an einen I/O Pin (als Ausgang konfiguriert), der an einer der Steckerleisten anliegt, angeschlossen. Abb. 19: ADAT® Frame Aufbau und Orientierung Ein so genanntes ADI Frame wie in Abb. 19 besteht aus insgesamt 256 Bit, wovon die ersten 11 Bit zur Blocksynchronisierung dienen. Die nächsten 4 Bit sind Userbits mit einem logischem „1“ und werden hier nicht weiter verwendet. Danach befinden sich die Audiodaten jeweils 24 Bit pro Kanal MSB-First. Die 24 Bit Audiodaten sind ebenfalls in Vierergruppen, gefolgt von einem logischem „1“, aufgeteilt. Dies sorgt für Flankenwechsel, auch wenn Daten Null sind, und können zur Synchronisierung (Clock-Data-Recovery, Taktgewinnung aus dem Datenstrom) verwendet werden. Bei 48 kHz ergibt sich mit 256 Bit eines Frames eine Datenfrequenz von f ADAT =48000Hz∗256=12,288 MHz . Die Daten sind NRZI kodiert, das heißt, ein Datenbit logisch „1“ führt zu einer Zustandsänderung des Ausganges, ein Bit logisch „0“ nicht. 17 Vgl. [DAT1, S. 132]. Kapitel 3.3.1. Beschreibung des ADAT® Formats Institut für Breitbandkommunikation 38 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der Funktionsblock ADAT_In2 Abb. 20: Funktionsblock ADAT_In2 ADAT Signal NRZI Dekoder Schieberegister Syncpuls, Clock Ablaufsteuerung 24bit Audioworte Puffersteuerung Ablaufzähler Die Ablaufsteuerung erhält den Syncpuls (pllsync) aus dem Funktionsblock ADAT_sync1 (siehe Kapitel 4.2. Synchronisation auf das ADAT® Signal). Das Startsignal PLLsync markiert den abgetasteten Flankenwechsel des Blockstartsymbols. 1 Dieses Signal ist t pllsync = 2∗ f =14ns lang und setzt zyklisch den Zähler Dclk InCnt[7..0] über den Eingang CLRN (Clear, negative Logik) auf „00000000“ zurück. Der Ausgang des Zählers ist 8 Bit breit und zählt innerhalb eines 48 kHz Zyklus mit iclk „down“ von 255 bis 0. Dieser Zähler synchronisiert und steuert die gesamte nachfolgende Audiosignalverarbeitung. Die Ausgangssignale dieses Zählers sind dazu als Ausgänge des Funktionsblocks ausgeführt. Das ADAT® Eingangssignal aus dem TORX Empfangsbaustein wird dem NRZI Dekoder zugeführt. Dieser besteht aus 2 D Flip Flops (NRZI_dekode und outFF). outFF.clk NRZI_decode.clk NRZI_decode.d NRZI_decode.ena outFF.d outFF.ena = = = = = = clk; clk; ADAT_In; 12Men; NRZI_decode.q XOR ADAT_In; 12Men; Institut für Breitbandkommunikation 39 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der Eingang des Flip Flop outFF erhält das aktuelle Eingangsbit ADAT_In(t) XOR verknüpft mit dem gespeicherten Eingangsbit ADAT_In(t+1). ADAT_In(t) ADAT_In(t+1) ADAT_In(t) XOR ADAT_In(t+1) 0 0 0 0 1 1 1 0 1 1 1 0 Das dekodierte Signal durchläuft anschließend ein 30 Bit langes Schieberegister mit seriellem Eingang und parallelem Ausgang. Die Schieberichtung ist „left“. MSB LSB Bit In 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 23 22 21 20 19 18 17 16 Hi AND 15 14 13 12 Hi AND 11 10 9 8 Hi AND 7 6 5 4 Hi AND 3 2 1 0 Hi AND Audio[23..0] Hi = Valid Abb. 21: Aussortierung ADAT® Format zu Audiowort Der parallele Ausgang des Schieberegisters wird wie in Abb. 21 dargestellt in 24 Bit Audiodaten und 6 Bit logisch „1“ aufgeteilt. Solange Audiodaten erwartet werden, läuft das Schieberegister „Audioshifter“ mit fADAT = 12,288 MHz durch. audioshifter.enable = (InCnt[]<=250 AND InCnt[]>=11) AND 12Men; An 8 Zeitpunkten liegen nun am Audioausgang (raw_out[23..0]) gültige Audiosamples an. Dieser Ausgang ist parallel an einem Pufferspeicher angeschlossen. Der Funktionsblock ADAT_In2 generiert die Steuersignale zum Beschreiben dieses Pufferspeichers. Diese beinhalten die zu den Audiodaten jeweilig zugehörige Speicheradresse und zu den Zeitpunkten, an denen das Audiosignal gültig ist, werden Schreibimpulse generiert, so genannte Writeenables. Die Adressen werden linear durch gezählt. Hier wäre eine zusätzliche Steuermöglichkeit vorhanden. Man kann die Adressen aus einer frei beschreibbaren Tabelle (Speicher, oder Registerbank) anstatt aus Zählerständen generieren. Man erhält somit eine Kreuzschienen Funktionalität, eine so genannte Vorkreuzschiene. Diese ist hier nicht notwendig, da jede Summe ihre eigenen Faderelemente zur Beschaltung verwendet. Institut für Breitbandkommunikation 40 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Synchronisationsbits des ersten ADAT® Kanals logisch “1“ jeweils am Ende eines Datenblocks werden logisch „UND“ verknüpft, und als Indikator für ein gültig empfangenes ADAT® Signal an einer LED ausgegeben. Dies dient hauptsächlich zur Anzeige der Synchronität der Testplatine zum ADAT® Eingangssignal und zeigt auch den Einschwingvorgang der PLL bis zur Synchronität optisch an. Die Funktionsblöcke ADAT_Send2 und adatschaufler2: Abb. 22: Funktionsblock ADAT_send2, ADAT® Ausgang Abb. 23: Ablaufsteuerung des Funktionsblockes ADAT_send2 24bit Audioworte Schieberegister OR Blockstart,Userbits NRZI Enkoder ADAT Signal Schieberegister Ablaufzähler,Clock Ablaufsteuerung Die Ablaufsteuerung „adatschaufler2“ wird mit den Signalen des Ablaufzählers im Funktionsblock ADAT_In2 gesteuert. Die Ablaufsteuerung sorgt hier auf Grund der eingehenden Zählerstände für Leseadressen, um dem Funktionsblock ADAT_send2 Audiodaten aus dem Pufferspeicher zur richtigen Zeit zur Verfügung zu stellen. Institut für Breitbandkommunikation 41 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die beiden Schieberegister im ADAT® Enkoder „syncshifter“ und „audioshifter“ laufen mit fADAT = 12,288 Mhz durch und werden zu den passenden Zeitpunkten18 parallel geladen. Das Register „syncshifter“ wird mit dem Blockstartsymbol „00000000001“, den Userbits „0000“ und dem zugehörigem Syncbit „1“ geladen. Das Register „audioshifter“ erhält vom Ausgangspufferspeicher und der Ablaufsteuerung, die wiederum als Nachkreuzschiene genutzt werden könnte, ein 24 Bit Audiowort. Um Sync- und Audioblöcke aneinander zu reihen, werden die seriellen Ausgänge der beiden Schieberegister über eine logische „Oder“ Verknüpfung dem NRZI Enkoder zugeführt. Dazu muss sichergestellt werden, dass das Register zur inaktiven Zeit auf logisch“0“ (GND) gehalten ist. syncshifter.shiftin beziehungsweise: audioshifter.shiftin = GND; = GND; Der NRZI Enkoder besteht aus einem D Flip Flop, welches am Dateneingang das invertierte, gespeicherte Signal anliegen hat. Das zu kodierende Signal liegt am „Enable“ Eingang des Koder Flip Flops und ist mit einem 12,288 MHz Enable verriegelt: NRZIFF.d = !NRZIFF.q; NRZIFF.clk = clk; NRZIFF.ena= (syncshifter.shiftout OR audioshifter.shiftout) AND 12Men; Dies entspricht einem Flankenwechsel bei logisch“1“ und keiner Änderung des Ausgangssignals bei logisch“0“. Abb. 24: Simulation des NRZI Enkoders Hier ist der Ausdruck (syncshifter.shiftout OR audioshifter.shiftout) als NRZIin abgebildet. Der Ausgang des NRZI Koders wird als fertiges ADAT® Signal dem TOTX 141 Baustein zur Umsetzung auf ein optisches Signal zugeführt. 18 Siehe auch: Ablauftabelle Abb. 37,38 und 39 Spalte ADAT Out Institut für Breitbandkommunikation 42 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 5.2. Audioschnittstelle SPDIF Hauptsächlich zu Inbetriebnahme- und Messzwecken der Testplatine ist (siehe Kapitel 2 Entwicklungsablauf) eine S/PDIF Schnittstelle als digitaler Ausgang implementiert. Abb. 25: Funktionsblock S/PDIF Ausgang in 24,576 MHz Technik Diese Schnittstelle ist sehr weit verbreitet, gut standardisiert und bietet auch in der Praxis gute Kompatibilität. Viele Empfänger bieten zusätzlich einen Taktratenwandler im Eingangsbereich an, somit sind sie unabhängig von der Taktrate des Senders. Der Hauptzweck dieses Funktionsblocks ist die Herstellung einer ersten Audioverbindung der Testplatine mit dem Messrechner. Er hält sich weitgehend an die AES319 Norm, die mit einem Mindestprotokoll als SPDIF mit auf logisch „0“ gesetzte Zusatzbits abgebildet wird: Validity Bit 0 entspricht Kanal ist „ein“ User Bits 0 somit ist keine Maschine nötig, die pro Frame ein User Bit ausgibt Status 0 somit ist keine Maschine nötig, die pro Frame ein Channel Status Bit ausgibt 0 wird auf Null gesetzt, da Parity Error zu keiner Audioabschaltung führt Channel Bits Parity Bit 19 AES Audio Engineer Society, AES-3 ist ein Standard für 2 Kanal Digital Audio; siehe www.aes.org Institut für Breitbandkommunikation 43 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 24bit Audioworte Schieberegister Switch Preambles Biphase mark Enkoder S/PDIF Signal Schieberegister Ablaufzähler,Clock Ablaufsteuerung Das Design besteht im Wesentlichen aus zwei Schieberegistern (pre_shifter und datashifter), die parallel geladen und seriell entladen werden. Der Shifter für die Präambeln20 (X, Y und Z) läuft fix mit 6,144 MHz f SPDIF =48kHz∗2 stereo∗32Bit∗2 Kodierung =6,144 MHz . Der Shifter für die Audiodaten (24 Bit) und die VUCP Bits (4 Bit), die noch einen „Biphase Mark“ Coder für die Kanalkodierung durchlaufen, läuft mit einer Taktfrequenz von 3,072 MHz. Die Ablaufsteuerung besteht aus zwei Zählern, wobei der erste 9 Bit breite 24,576 MHz Zähler global als Eingang anliegt (und somit im Timing mit den anderen Cores synchron läuft) und der zweite intern bis 384 zählt, um den Blockstart mit der Z- Preambel zu markieren. Um 3,072 MHz und 6,144 MHz Daten verarbeiten zu können, liegen entsprechende 6,144 MHz und 3,072 MHz Enable Signale zusätzlich zum globalen 24,576 MHz Clock (iclk) am Eingang an. Die Audiodaten müssen in paralleler Form am Eingang anliegen und werden jeweils an den Flanken „steigend“ (linkes Signal) und „fallend“ (rechtes Signal) eines Wordclockframes abgeholt: inreg[].ena = (Acnt[7..0] == 0); Enable für das Eingangsregister (inreg) des Designs. Der „Biphase-Mark“ Enkoder erzeugt aus den Audiodaten mit Bitclock 3,072 Mhz ein kodiertes Signal mit der doppelten Frequenz von 6,144 MHz. Die SPDIF Schnittstelle kann sowohl optisch als auch elektrisch ausgesendet werden. Zum Zeitpunkt der Inbetriebnahme wurde der optische Baustein TOTX 141 verwendet. 20 Präambeln sind Codeverletzungen, und dienen zur Markierung von Frame- , bzw Subframestarts Institut für Breitbandkommunikation 44 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Es ist andenkbar, zum Beispiel für Monitoringzwecke, einen zusätzlichen Ausgang als SPDIF elektrisch auf einen freien I/O Pin der Platine oder über den zweiten bestückbaren optischen Transmitter auszuführen. Im Fall der elektrischen Realisierung wäre es aus Sicherheitsgründen ratsam, einen Ausgangstransformator zu verwenden. 5.3. Steuerschnittstelle MIDI Als Steuerschnittstelle ist die bewährte Standardschnittstelle MIDI gewählt. Sie ist einfach und sehr gut verfügbar, da sie auf fast jedem Standard PC vorhanden ist. Auch eine Hardwarerealisierung ist recht einfach. Die MIDI Schnittstelle ist als Stromschnittstelle außerdem gegen Störsignale gut gesichert. Zusätzlich sorgt die sehr niedrige Übertragungsrate von 32500 Baud für ein unproblematisches Übertragungsverhalten. Daher sind auch keine speziellen Kabel oder Stecker notwendig. Durch die Stromübertragung ist eine galvanische Entkopplung über Optokoppler einfach, und es entfällt die Pegelproblematik (5 V versus 3,3 V). Die Übertragungsrate von 32500 Baud ist für kleine Anwendungen, wie im realisierten Beispiel, ausreichend schnell. Für größere Pulte ist MIDI als Steuerschnittstelle bei gleichzeitiger Änderung mehrerer Parameter (zum Beispiel Laden eines Snapshots) schon zu langsam. Ein Befehl besteht hier aus 30 Bits und dauert t Befehl =30Bit∗30,8 s=924 s . Werden alle 64 Faderelemente gleichzeitig geändert, dauert dies ca. 60 ms und die verzögerte Reaktion wird wahrnehmbar. MIDI Befehle sind Abfolgen von Bytes (8 Bit). Die Unterscheidung ob ein Byte ein Kommando oder Daten (C/D) enthält, findet im MSB statt. Ist dieses logisch“1“ enthält es ein Kommando, logisch“0“ bedeutet Dateninhalt. Die Datenwortbreite der Standardbefehle ist somit beschränkt auf 7 Bit. Ein MIDI Wort wird seriell mit einem Start- und Stopbit übertragen: 0 X 0 X X X X X X C/D 1 9 Die Schnittstelle überträgt Steuerwerte für die 64 Pegelsteller. Eine MIDI Schnittstelle verwaltet allgemein 16 Kanäle. Hier werden die einzelnen Kanäle zur Steuerung jeweils eines Summenausgangs des Mischers verwendet.Als Steuerbefehl zum Stellen eines Pegelstellers wird der Befehl „Note On“ aus dem MIDI Befehlssatz verwendet. Institut für Breitbandkommunikation 45 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Dieser Befehl lautet als Bytefolge: 0x9CC 0xNNNN 0xVVVV Abkürzung Wertebereich Bezeichnung Verwendung CC 0 bis 15 Channel Auswahl Summe (c) NNNN 0 bis 127 Note Auswahl Eingang (i) VVVV 0 bis 127 Velocity Linearer Pegelwert (d) Die Abb. 26 zeigt die beiden Funktionsblöcke „MIDI_dekode“ und den zugehörigen Speicherblock „steuerramblock_1024“, der die Parameter für die Pegelsteller enthält. Abb. 26: Steuerungsteil bestehend aus Funktionsblock MIDI_dekode und Steuerramblock MIDI Daten Schieberegister 7 Bit Fader Tabelle Abtastclock Clock Ablaufsteuerung 16 Bit Daten 16 Bit Adressen Writeenable Speicher 1024 Werte Dual Port RAM Lese adressen Ein kompletter „Note On“ Befehl wird von einem 29 Bit langem Schieberegister seriell eingelesen und parallel ausgegeben(siehe Abb. 27). Institut für Breitbandkommunikation 46 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 0 c c c c X 0 0 1 1 0 i i i i i i i 0 1 0 d d d d d d d 0 1 0 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 19 20 21 22 23 24 25 26 27 28 29 Abb. 27: Dekodierung des 3 Byte MIDI Befehls c i d .... Channel Nummer .... Input Nummer .... Daten Bit 0 ist das Startbit, danach 8 Bits wobei das MSB den Inhalt als Commando (1) oder Daten (0) kennzeichnet. Gesendet wird LSB-First, gefolgt von einem Stopbit (1). Das Stopbit wird zur Validitätsprüfung herangezogen. Sind die drei erwarteten Stopbits erkannt, führt dies zu einer optische Signalisierung über eine LED und bedeutet, dass ein relevanter MIDI Befehl empfangen wurde. Der parallele Ausgang des Schieberegisters wird in eine Adresse und ein Datum für ein Steuerram geteilt. Die 128 möglichen Faderwerte (Daten „d“ des „Note On“ Befehls) werden als weglinearer Wert eines mechanischen Gebers interpretiert. Das heißt, die Platine erwartet sich einen linearen Wegwert als Usereingabe, zum Beispiel mit einem 100mm „Faders“ mit linearer Potentiometerbahn. Diese werden in einen 16 Bit Rechenwert für den Pegelsteller (Multiplikator) der Audiosignalverabeitung umgesetzt. Eine Tabelle in Form eines „Case“ Befehls liefert aus einem linearen Eingangswert (0 bis 127) einen Rechenwert für die Audiosignalverarbeitung. Es wird ein Pegelsteller mit erhöhter Genauigkeit im Arbeitsbereich +6dB bis -24dB abgebildet. Dies zeigt Abb. 28. auf der folgenden Seite (vgl. [Dickreiter Band 2 S. 122]) . Im Fall eines Abwickelmischpults wird erwartet, dass die Audiosignale am Eingang des Mischers mit Normpegel 0dB ausgesteuert anliegen. Der Pegelsteller in der Audiosignalverarbeitung hat eine +6dB Verstärkung integriert, um zu niedrige Pegel aufholen zu können. Die Aufteilung der 128 möglichen Schritte ist zugunsten einer feineren Auflösung im Bereich um +6 dB bis -12 dB feiner aufgeteilt. Ab –24dB beginnt der Ausblendbereich. Ab hier steigen die Pegelschritte bis zur maximalen Dämpfung vor Pegel aus (entspricht Multiplikation mit 0). Institut für Breitbandkommunikation 47 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 28: Faderkennline, Aufteilung der 128 linearen Wegpunkte in Rechenwerte Die Dämpfung der letzten Pegelschritte ergeben sich aus der Rechenbreite 16 Bit des Pegelstellers. Die folgenden Rechenbeispiele zeigen, dass hier nur bestimmte Dämpfungen möglich sind. Rechenwert 0: v min=20∗log 0 =−∞ 32768 Rechenwert 1: 1 v 1=20∗log =−90,3 dB 32768 Rechenwert 2: 2 v 2 =20∗log =−84,3 dB 32768 Rechenwert 3: v 3=20∗log 3 =−80,8 dB 32768 Die Aufteilung dieser Tabelle und somit die Pegelstellerkennline kann beliebig nach den Wünschen des Benutzers angepasst werden. Institut für Breitbandkommunikation 48 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Der 16 Bit Rechenwert wird an der Adresse bestehend aus Ausgangssummennummer und Eingangskanalnummer mit einem Writeenable in einen Steuerramblock geschrieben: Summe 7 Faderwert 0- 127 16Bit aus Tabelle Summe 6 Faderwert 0-127 16Bit aus Tabelle ... Faderwert 0-127 16Bit aus Tabelle ... Faderwert 0-127 16Bit aus Tabelle Summe 0 Faderwert 0-127 16Bit aus Tabelle Das Steuerram ist in Form eines DUAL PORT RAMs mit 128 mal 8 Einträgen ausgeführt. Ein DUAL PORT RAM wie in Abb. 29 besitzt zwei voneinander unabhängige Schreib- bzw. Leseschnittstellen. Es wird zur Datenübergabe zwischen zwei verschiedenen Zeitbasen verwendet, wie hier zwischen MIDI Eingangsdekodierung (schreibend) und auf der Leseseite die Audiosignalverarbeitung, die die Faderwerte abholt. Bei zeitgleichem Lesen und Schreiben wird der vorher gespeicherte Wert gelesen, und es kommt zu keiner Störung des Audiosignales durch einen nicht gültigem Faderwert. Abb. 29: Konfiguration eines lpm Operators aus der internen Bibliothek: Dual Port Ram Der MIDI Datenstrom am Eingang ist asynchron zur Audiosignalverarbeitung. Für ein stabiles Design ist es gut, auch hier den Systemclock mit 24,576 Mhz (iclk) zu verwenden. Das MIDI Eingangssignal mit der Bitdauer TMIDI wird mittels eines Modulo 768 Zählers (MIDIDetCnt), zählend mit iclk = 24,576 MHz, abgetastet: T MIDI = 1 =30,77 us 32500Baud Institut für Breitbandkommunikation 49 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Laufzeit des MIDIDetCnt Zählers ist etwas langsamer gewählt und erhöht die Erkennungssicherheit: T MIDIDetCnt = 768 =31,25 us 24576000 T Diff =T MIDI −T MIDIDetCnt =481ns Der gesuchte 3 Byte- Befehl besteht aus 30 Bit, somit ergibt sich die maximale Abweichung zu ca. T abweichung =30∗T Diff =14,42 usT MIDI Zusätzlich wird der Zähler MIDIDetCnt bei jedem Flankenwechsel von „Hi“ auf „Lo“ zurückgesetzt. So ist sichergestellt, dass bei Zählerstand 384 des Zähler MIDIDetCnt auf jeden Fall das Eingangsschieberegister ein neues MIDI Bit speichert. Für Überprüfungs- und Wartungszwecke sind die drei Stopbits des 3 Byte Befehls logisch „UND“ verknüpft. Der Ausgang des „UND“ ist am LED 3 der Platine angeschlossen und signalisiert, dass ein drei Bit langer MIDI Befehl gültig erkannt wurde. Im Kapitel 5 sind alle Schnittstellen der Testplatine vorgestellt. Die Schnittstellendekoder sind im FPGA realisiert und bereiten sowohl die seriellen Audiodaten als auch die seriellen Steuerdaten für die folgenden Rechenaufgaben in paralleler Form auf. Institut für Breitbandkommunikation 50 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 6. Audiosignalverarbeitung Nachdem sowohl alle Formate und die zugehörigen Funktionsblöcke, die die Schnittstellen bearbeiten, beschrieben sind und zur Verfügung stehen, folgt im Kapitel 6 die Beschreibung der Elemente der Audiosignalverarbeitung. Als erstes ist eine bitparallele, zeitserielle Realisierung beschrieben, die für die Testplatine kompiliert und darauf getestet ist. Ausgehend von den Mess- und Simulationsergebnissen werden anschließend weitere Realisierungsmöglichkeiten der Audiosignalverarbeitung diskutiert. 6.1. Parallele Realisierung der Testplatine, zeitlich seriell Parallele Realisierung, zeitlich seriell bedeutet, dass die Berechungschritte parallel, das heißt, zeitgleich erfolgen, die Rechenbausteine werden innerhalb eines Ablaufzyklusses mehrfach durchlaufen. Dazu ist es notwendig, die Durchlaufzeit durch den Berechnungsbaustein bis das Ergebnis gültig anliegt, zu kennen. Das Verhältnis der Rahmenzeit eines Ablaufzyklusses zur Durchlaufzeit bestimmt die maximale serielle Verarbeitungsfrequenz. Die angepeilte Durchlaufzeit ist mit der Dauer eines Wordclock bestimmt. 6.1.1. Parallele Funktionsblöcke Summe und Fader Hier sind die beiden Grundelemente eines Mischpultes, Summe und Fader (= Pegelsteller) als bitparallele Rechenwerke beschrieben und gemessen. Zuerst wird die Realisierung der Summe vorgestellt, da diese im FPGA einfacher umsetzbar ist. Funktionsblock Parallele Summe: Abb. 30: Funktionsblock 24bitPsum: 24 Bit breite durchlaufende Summe mit Reset Eingang Institut für Breitbandkommunikation 51 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 24bit Audiowort Addierer 24 Bit 24 Bit + 24Bit Clock 24Bit Register Clear 24bit Audiowort Enable Der Funktionsblock 24bitPsum besteht aus einem 24 Bit Addierer, der zwei 24 Bit breite Eingänge kombinatorisch addiert. Das Ergebnis hält bei Aufforderung (Enable) ein Register (ZsumReg), dessen Ausgang am zweiten Eingang des Addierers angeschlossen ist. Mit jedem Enable wird das aktuelle Eingangswort, addiert mit dem vorher gespeichertem Additionsergebnis, gespeichert. Die Summe läuft durch und kann so für eine beliebige Anzahl von zeitlich seriell anliegenden Audiowörtern verwendet werden. Ein Clear (Reset) Signal setzt das Register auf Null und eine neue Summierung startet. Der Ausgang kann jederzeit abgegriffen und weiterverwendet werden, um Teilsummen zu ermöglichen. Durch den Enable Eingang „ZsumEn“ ist die Arbeitsfrequenz bestimmbar und die Summe kaskadierbar. Abb. 31: Timingdiagramm einer 24 Bit breiten Summe, Baustein Altera EPC1T144C8 Der Bauteilbedarf beläuft sich auf 24 logische Elemente des gewählten Bausteins. Die Rechenzeit ist von der steigenden Flanke des Clocks zu messen, da hier das gespeicherte Zwischenergebnis zum Summieren freigegeben wird. Die gesamte Laufzeit des Funktionsblock beträgt ca. 10 ns. Damit ergibt sich 1 =100MHz eine maximale Arbeitsfrequenz von: f PSum = 10ns Gegen Überlauf ist dieser Funktionsblock nicht gesichert, das Ergebnis ist in diesem Fall unbrauchbar21. 21 Siehe Abb. 47, Kapitel 7 Institut für Breitbandkommunikation 52 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Funktionsblock Paralleler Fader: Abb. 32: Funktionsblock Fader: kombinatorischer Multiplizierer mit 24 Bit Multiplikand (Audio) und mit 16bit Multiplikator 24 Bit Audiowort 16 Bit Pegelwort Multiplizierer 24 Bit * 16 Bit 40Bit Division durch 24 Bit Audiowort 2^15 Beschneidung auf 24 Bit Der Funktionsblock Fader besteht aus einem kombinatorischen Multiplizierer aus der Altera Quartus Bibliothek mit 24 Bit breitem Eingang A und einem 17 Bit breitem Eingang B, jeweils vorzeichenbehaftet („signed“). Da das Pegelwort nur einen positiven Wert annimmt, wird der Block als 24Bit „signed“ mal 16bit „unsigned“ betrachtet. Der Ausgang des Multiplizierers ist 40 Bit breit. Davon werden 24 Bit als normierter Ausgang verwendet. MSB LSB 39 38 37 36 35 34 33 32 31 ... ... ... 16 15 14 13 12 11 10 ... MSB ... 0 Ergebnis Multiplikator LSB 23 22 21 20 19 18 17 16 ... ... ... ... 0 Ausgang Abb. 33: Division durch Weglassen niederwertiger Bits Der Ausgang wird um 1 Bit verschoben, damit ergibt sich bei maximalem Multiplikator eine Verstärkung um +6dB. Dies ist gleichzusetzen mit einer Division um 32768 (2^15) und benötigt keine Bauteillogik. Der Multiplikator wird wie folgt gewichtet. v n =20∗log n , n=0 .. 65535 32768 Institut für Breitbandkommunikation 53 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 34: Timingdiagramm eines 24 Bit mal 16 Bit Faders, Baustein Altera EPC1T144C8 Der Bauteilbedarf beläuft sich auf 499 Logische Elemente des gewählten Bausteins. Die Rechenzeit dieses Faders beträgt ca. 28 ns. Damit ergibt sich 1 =35,7 MHz . eine maximale Arbeitsfrequenz von f PFad = 28ns Bedingt durch die +6dB Verstärkung kann es zum Überlauf dieses Funktionsblocks kommen, das Ergebnis verliert seine wichtigste Information, das MSB (Most Significant Bit), welches die Vorzeicheninformation enthält, und ist in diesem Fall nicht mehr verwendbar. Allerdings ist es auch nicht sinnvoll, ein Signal, das laut genug ist, über den Aussteuerbereich hinaus zu verstärken. Es soll vielmehr dem Benutzer die Möglichkeit geben, zu leise Signale auf Studionormpegel anzupassen. Eine Variante zur Sicherung gegen Übersteuerung ist im Kapitel 7 angeführt. 6.1.2. Ablaufsteuerung der Audiosignalverarbeitung Die beiden Funktionsblöcke Summe und Fader sind allgemein einsetzbar und benötigen eine Umgebung, die zur richtigen Zeit Audiosignale, Stellwerte und Steuersignale zur Verfügung stellt. Um die Berechnung von den Ein- und Ausgängen zu trennen, werden die 8 Audiosignale vom Funktionsblock ADAT_In2 in die erste Page des ersten von zwei Pufferspeicher geschrieben. Der Ablaufzähler wird ebenso wie die Auswahl der Page vom Funktionsblock ADAT_In2 generiert (siehe Kapitel 5.1). Institut für Breitbandkommunikation 54 Diplomarbeit Audio Entwurf und Realisierung eines Single-Chip Broadcast Mischers P age 0 P age 0 Ausgangspuffer Eingangspuffer 24 Bit Fader 24 Bit Summe 24 Bit P age 1 Ablaufzähler Audio P age 1 Ablaufsteuerung Die Pufferspeicher sind Dual Port Rams mit 16 24 Bit breiten Wörtern. Sie werden hier zur zeitlichen Trennung zwischen Eingangsteil und Audiobearbeitungsteil verwendet und nicht im klassischem Dual Port Betrieb mit überschneidenden Schreib- und Lesezugriffen. Abb. 35: Eingangspuffer 2 mal 8 24 Bit Audiowörter Hier wird die höchste Adresse als Unterscheidung für zwei Pages zu je acht Wörtern verwendet. Diese Adresse generiert der Funktionsblock ADAT_In2. Die Ablaufsteuerung der Audiosignalverarbeitung invertiert diese höchste Adresse, um jeweils die fertig gespeicherten Audiosignale aus der nicht gerade beschriebenen Page zu lesen. Der Sinn dieser gegenläufigen Adressierung ist, dass immer von einer Page gelesen wird, während die andere geschrieben wird und die Eingangsverarbeitung vollständig von der Audiosignalverarbeitung getrennt ist. Institut für Breitbandkommunikation 55 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Ablaufsteuerung sorgt für die Leseadresse (BerechAdr) auf den Eingangspuffer, die Leseadresse für den Steuerspeicher (FaderRdAdr) in dem die Pegelwerte gespeichert sind, die zeitlichen Steuersignale für die Summierung (ZsumEn und resetsum) und die Schreibadresse (SumWrAdr) inklusive Writeenable (SumWrEn). Abb. 36: Ablaufsteuerung für Audiosignalverarbeitung berechnungscnt Die Ablaufsteuerung steuert den Datenfluss durch den Fader und die Summe. Der Funktionsblock Fader ist rein kombinatorisch und benötigt keine zeitliche Steuerung und stabilisiert sich nach ca. 28 ns nach Anlegen von Multiplikand (Audiowert aus Eingangspuffer) und Multiplikator (Pegelwert aus Steuerspeicher). Die Summe hingegen besitzt ein internes Zwischenregister, das mit den Eingängen ZsumEn und reset zeitlich steuerbar ist. Die Ablaufsteuerung ist so dimensioniert, dass innerhalb einer 48 kHz Zykluszeit alle 64 Fader und 8 Summen berechnet sind. Die Audiosignale werden 8 mal innerhalb eines Ablaufzyklusses ausgelesen und durchlaufen den Fader und werden in der Summe addiert. Zeitgleich werden die dem Fader zugehörigen Steuerwerte aus dem Steuerram ausgelesen. Dem Fader stehen Multiplikator und Multiplikand zum selben Zeitpunkt zur Verfügung. Der Addierer der Summe addiert kombinatorisch den fertig gerechneten Wert mit dem davor gespeicherten. Nach einem Faderzyklus (mindestens die Zeit bis die kombinatorische Logik stabil ist plus der Speicherlaufzeit und Sicherheit), und der Rechenzeit der Summe, wird das Enable des Zwischenregisters aktiviert und das Rechenergebnis übernommen. Nach Ablauf von jeweils acht bearbeiteten Eingangssignalen wird das Ergebnis der Summe als Ausgangssignal in den zweiten Pufferspeicher geschrieben und das Zwischenregister resetiert. Die folgenden Tabellen (Abb. 37 bis 39) beschreiben die Ablaufsteuerung der Audiosignalverarbeitung. Events werden immer bei bestimmten Adressständen des Ablaufzählers (Zähler) ausgelöst. Der erste Achterblock ist vollständig abgebildet. Nachfolgend werden nur mehr die Zählerstände angegeben, bei denen die Ablaufsteuerung Events ausgibt. Institut für Breitbandkommunikation 56 Write Adresse Write Enable Page0/Ram1 Zähler Adresse Audio Ram1 Page1/Ram1 0 0 0 255 7 0 254 0 253 0 Adresse Multiplikator Summenablauf Write Enable Write Adresse Lese Adresse Page(9..7)/ adr(4..2) Ram2 Page1/Ram2 Page0/Ram2 0 Resetsum ADAT Out Zähler Binär 0 0 0 7/7 7 0 11111111 7 7/7 ZsumEn 7 0 Audio Load 11111110 7 7/7 7 0 11111101 252 7 7/7 7 0 11111100 0 251 6 7/6 7 0 11111011 0 250 6 7/6 ZsumEn 7 0 11111010 0 249 6 7/6 7 1 11111001 0 248 6 7/6 7 1 11111000 0 247 5 7/5 7 1 11110111 0 246 5 7/5 ZsumEn 7 1 11110110 0 245 5 7/5 7 1 11110101 0 244 5 7/5 7 1 11110100 0 243 4 7/4 7 1 11110011 0 242 4 7/4 ZsumEn 7 1 11110010 0 241 4 7/4 7 1 11110001 0 240 4 7/4 7 1 11110000 0 239 3 7/3 7 1 11101111 0 238 3 7/3 ZsumEn 7 1 11101110 0 237 3 7/3 7 1 11101101 0 236 3 7/3 7 1 11101100 0 235 2 7/2 7 1 11101011 0 234 2 7/2 ZsumEn 7 1 11101010 0 233 2 7/2 7 1 11101001 0 232 2 7/2 7 1 11101000 0 231 1 7/1 7 1 11100111 0 230 1 7/1 ZsumEn 7 1 11100110 0 229 1 7/1 7 1 11100101 0 228 1 7/1 7 1 11100100 0 227 0 7/0 7 1 11100011 0 226 0 7/0 ZsumEn 7 1 11100010 0 225 0 7/0 7 1 11100001 0 224 0 7/0 Resetsum 7 1 Audio Load 11100000 0 223 7 6/7 6 1 11011111 0 222 7 6/7 ZsumEn 6 1 11011110 0 Write Enable 220 7 6/7 6 1 11011100 1 214 5 6/5 ZsumEn 6 2 11010110 1 210 4 6/4 ZsumEn 6 2 11010010 WriteEnable Abb. 37: Ablaufdiagramm Audiosignalverarbeitung: die erste Summe ist vollständig aufgelistet, danach nur mehr der Zählerstand bei Events 1 206 3 6/3 ZsumEn 6 2 11001110 1 202 2 6/2 ZsumEn 6 2 11001010 1 198 1 6/1 ZsumEn 6 2 11000110 1 194 0 6/0 ZsumEn 6 2 A udio Load 11000010 1 193 0 6/0 6 2 11000001 1 192 0 6/0 Resetsum 6 2 11000000 1 Write Enable 190 7 5/7 ZsumEn 5 2 10111110 2 186 6 5/6 ZsumEn 5 3 10111010 2 182 5 5/5 ZsumEn 5 3 10110110 2 178 4 5/4 ZsumEn 5 3 10110010 2 174 3 5/3 ZsumEn 5 3 10101110 2 170 2 5/2 ZsumEn 5 3 10101010 2 166 1 5/1 ZsumEn 5 3 10100110 2 162 0 5/0 ZsumEn 5 3 10100010 2 161 0 5/0 5 3 10100001 2 Write Enable 160 0 5/0 Resetsum 5 3 10100000 2 158 7 4/7 ZsumEn 4 4 10011110 3 154 6 4/6 ZsumEn 4 4 10011010 3 150 5 4/5 ZsumEn 4 4 10010110 3 146 4 4/4 ZsumEn 4 4 10010010 3 142 3 4/3 ZsumEn 4 4 10001110 3 138 2 4/2 ZsumEn 4 4 10001010 3 134 1 4/1 ZsumEn 4 4 A udio Load 10000110 3 Write Enable 130 0 4/0 ZsumEn 4 4 10000010 3 129 0 4/0 4 5 10000001 3 128 0 4/0 Resetsum 4 5 10000000 4 126 7 3/7 ZsumEn 3 5 1111110 4 122 6 3/6 ZsumEn 3 5 1111010 4 118 5 3/5 ZsumEn 3 5 1110110 4 114 4 3/4 ZsumEn 3 5 1110010 4 110 3 3/3 ZsumEn 3 5 1101110 4 106 2 3/2 ZsumEn 3 5 1101010 4 102 1 3/1 ZsumEn 3 5 1100110 4 Write Enable 100 1 3/1 3 5 1100100 4 98 0 3/0 ZsumEn 3 6 1100010 5 97 0 3/0 3 6 1100001 5 96 0 3/0 Resetsum 3 6 1100000 5 94 7 2/7 ZsumEn 2 6 1011110 5 90 6 2/6 ZsumEn 2 6 1011010 Abb. 38: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events WriteEnable WriteEnable WriteEnable WriteEnable 5 86 5 2/5 ZsumEn 2 6 1010110 5 82 4 2/4 ZsumEn 2 6 1010010 5 78 3 2/3 ZsumEn 2 6 1001110 5 74 2 2/2 ZsumEn 2 6 Audio Load 1001010 5 Write Enable 70 1 2/1 ZsumEn 2 6 1000110 6 66 0 2/0 ZsumEn 2 7 1000010 6 65 0 2/0 2 7 1000001 6 64 0 2/0 Resetsum 2 7 1000000 6 62 7 1/7 ZsumEn 1 7 111110 6 58 6 1/6 ZsumEn 1 7 111010 6 54 5 1/5 ZsumEn 1 7 110110 6 50 4 1/4 ZsumEn 1 7 110010 6 46 3 1/3 ZsumEn 1 7 101110 6 44 3 1/3 1 7 Audio Load 101100 6 42 2 1/2 ZsumEn 1 7 101010 6 Write Enable 40 2 1/2 1 7 101000 6 38 1 1/1 ZsumEn 1 7 100110 7 34 0 1/0 ZsumEn 1 7 100010 7 33 0 1/0 1 7 100001 7 32 0 1/0 Resetsum 1 7 100000 7 30 7 0/7 ZsumEn 0 7 11110 7 26 6 0/6 ZsumEn 0 7 11010 7 22 5 0/5 ZsumEn 0 7 10110 7 18 4 0/4 ZsumEn 0 7 10010 7 14 3 0/3 ZsumEn 0 7 Sync Load 1110 7 Write Enable 10 2 0/2 ZsumEn 0 7 1010 7 6 1 0/1 ZsumEn 0 7 110 0 Pagew echsel 2 0 0/0 ZsumEn 0 7 10 0 1 0 0/0 0 7 1 0 0 0 0/0 Resetsum 0 7 0 Abb. 39: Ablaufdiagramm Audiosignalverarbeitung: Zählerstand bei Events WriteEnable WriteEnable WriteEnable Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 1 =20,83 us 48kHz Die Zählfrequenz beträgt f Zähler =12,288 MHz , die Zählrichtung ist „down“ von 1 MHz=81,4 ns an. 255 bis 0. Ein Zählerstand liegt t Zähler = 12,288 Alle Enables und Adressen werden vom Datum des Zählers abgeleitet. Die Auswahl der Page bestimmt das ADAT_In2 Design und wird in der Ablaufsteuerung negiert: Die Zählerlaufzeit beträgt eine 48 kHz Periode. t Ablauf = BerechAdr[3] BerechAdr[2..0] = !page; = localCnt[4..2]; Die Adressbildung vor und nach dem Audiopuffer läuft gegengleich zur Adressbildung innerhalb der Audiosignalverarbeitung, um Überschneidungen während des Pagewechsels gänzlich zu vermeiden. Die zweite Zeile dieses Codebeispiels zeigt, wie die Adressbildung aus den Ausgängen des Zählers generiert wird, indem jeweils Ausschnitte verwendet werden. Die Adresse BerechAdr[2..0] ist 3 Bit breit, zählt also von 7 bis 0 und zwar mit einem Viertel der Zählergeschwindigkeit. Die zur Verfügung stehende Laufzeit des Faderelements und anschließend die Summierung mit der gespeicherten Zwischensumme ist die Zeit zwischen dem Adresswechsel der synchronen Leseadressen Audiosignal und Faderwert aus Steuerram und dem folgendem Enable des Summendesigns (Beispiel 251250), hier gewählt mit t rechenmax =2∗t zähler =162,8 ns . Die Simulation ergibt für den 24 mal 16 Bit Fader eine Laufzeit von ca. 28 ns, für die Summenlogik ca. 10 ns. t rechensim =t Fader t Summe=28ns10ns=38ns Dazu kommt noch etwas Zeit für die reale Logik, die im Vergleich vernachlässigbar ist. Der Ablauf könnte mittels höherer Taktfrequenz (24,576 Mhz = iclk) und Verkürzung der Schrittweite deutlich gestrafft werden. Dadurch ergäbe sich aber eine Wartezeit bis zum nächsten Pagewechsel, da der ADAT ® Ausgang mit dem ADAT® Eingang synchron arbeiten sollte. Der zeitliche Overhead kann hier benutzt werden, um die Eingangsanzahl mit der selben Durchlaufzeit auf 16 zu erhöhen. Die gesamte Durchlaufzeit eines Audiosignals durch die Testplatine ergibt sich mit dieser Pufferanordnung zu zwei Wordclockframes, das entspricht zwei Samples. Die Ablaufsteuerung kommt mit wenigen Logikbausteinen aus, da sie sich auf simple Vergleiche, die harmonisch in 2^n Abfolgen passen, beschränken. Institut für Breitbandkommunikation 60 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 40: Hardwarebedarf der bitparallelen, zeitlich seriellen Lösung, Screenshot aus der Quartus II Entwicklungsumgebung Der Hardwareaufwand dieser Lösung beläuft sich auf 945 Logische Elemente (Logic Cells) und 17152 Speicherbits (Memory Bits). Der größte Anteil an logischen Elementen ergibt sich für den parallelen Fader (inst28) mit 491 Elementen. Die Logik des MIDI Eingangs liegt mit 214 Elementen an zweiter Stelle. Der Aufwand an Hardware ist schon deutlich geringer. 6.2. Vergleich verschiedener Faderrealisierungen Das Kapitel 6.1.1. zeigt, dass das Faderelement den Großteil an Hardwareelementen benötigt, und den größeren Rechenzeitbedarf aufweist. Nachfolgend wird der 24 Bit mal 16 Bit Pegelsteller in verschiedenen Bausteinen simuliert und mit einer seriellen Realisierung verglichen. Der Funktionsblock Fader ist hier in 3 Bausteinen aus 3 Generationen ausgeführt. Der Baustein Cyclone EP1C3T144 – 8 ist auf der Testplatine verwendet, der Baustein Cyclone II EP2C5F256C8 entstammt der Nachfolgefamilie mit integrierten Hardwaremultiplikatoren, so genannten „Embedded Multiplier“ und der Baustein Acex 1k EP1K100FC256–3 ist aus der Vorgängergeneration. Aus dieser Familie sind einige Typen in Audiogeräten am Markt verbaut. Die Bausteine sind jeweils aus der langsamsten Kategorie der jeweiligen Familie ausgewählt (-6 bis -8 Cyclone, -1 bis -3 Acex). Institut für Breitbandkommunikation 61 Cyclone: Abb. 41: 24 x 16 Bit Fader parallel Cyclone EP1C3T144-8, 499 Logische Elemente Cyclone II: Abb. 42: 24 x 16 Bit Fader parallel EP2C5F256C8, 4/26 Embedded Multiplier Acex 1k: Abb. 43: 24 x 16 Bit Fader parallel EP1K100FC256 -3, 531 logische Elemente Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Folgende Tabelle zeigt eine Zusammenfassung aus den Abb. 41 bis 43. Baustein Bedarf Rechen- Anmerkung zeit Acex EP1K100 FC256–3 531/ LU 4992 ca 53ns Ältere Generation 12,288 MHz Cyclone 499/ EP1C3T14 LE 4–8 2910 ca 28ns Verwendeter Baustein, Rechenfrequenz auf 24,576 Mhz (iclk) steigerbar Cyclone II 4/26 EP2C5F25 embedded 6C8 Multiplier keine LE ca 22ns tauglich bis ca. Funktionsgruppe verwendet automatisch die Embedded Multiplier, Vervierfachung der Rechenfrequenz knapp nicht möglich, dafür Steigerung durch Parallelisierung möglich Serieller Fader Zum Vergleich ist ein serieller Fader (Project ser_fad) entworfen und simuliert: Audio seriell Multiplikator Multi Bit AND Addierer Ergebnis parallel 17 Bit +17 Bit gespeichertes Zwischenergebnis ein Bit geshiftet Schieberegister für Zwischenergebnis Ausgangsbit Das Audiosignal muss bitseriell und „LSB-First“ anliegen, um die Multiplikation zu ermöglichen. Abb. 44 zeigt den Ablauf an einem Beispiel eines 8 Bit Multiplikand mal 3 Bit Multiplikators. Die Größe des Funktionsblockes ist abhängig von der Wortbreite des Multiplikators, die Durchlaufzeit ebenfalls. Im Multibit AND wird jedes Bit des aktuellen Multiplikators mit dem aktuellen Audiobit logisch „und“ verknüpft und im Addierer mit dem gespeicherten und am Anfang eines Rechenzyklusses zurückgesetzten Zwischenergebnis addiert. Dieser Addierer ist gleich breit wie der Multiplikator plus ein Overhead Bit, um den Übertrag nach dem Schieben um eine Stelle zu halten. Institut für Breitbandkommunikation 63 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Das Ergebnis dieser Addition wird in das Schieberegister, welches das Zwischenergebnis hält, parallel übernommen. Beim nächsten Taktzyklus schiebt das Schieberegister (>>) das Zwischenergebnis ein Bit nach links, am seriellen Ausgang erscheint das Ergebnisbit. Am Parallelausgang des Registers liegt das Zwischenergebnis um eine Stelle dezimiert an, um mit dem Ergebnis des Multibit AND aus dem neuen Audioeingangsbits addiert werden zu können. 1 1 0 1 0 1 0 1 * 1 AND 0 1 0 1 0 1 1 1 0 1 = 1 0 1 = + >> 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 AND 1 0 1 = + >> 0 0 0 0 0 1 0 0 0 0 1 0 AND 1 0 1 = + >> 1 0 1 0 0 0 1 0 0 1 1 0 AND 1 0 1 = + >> 0 0 0 0 0 1 1 0 0 1 1 AND 1 0 1 = + >> 1 0 1 0 0 0 1 0 0 1 1 0 AND 1 0 1 = + >> 0 0 0 0 0 1 1 0 0 0 1 1 AND 1 0 1 = + >> 1 0 1 0 0 0 1 0 0 1 1 0 AND 1 0 1 = + >> 1 0 1 0 0 1 1 0 1 0 0 0 Abb. 44: Beispiel eines 8 Bit mal 3 Bit seriellen Mulitplizierers Das zeitbestimmende Element ist hier der Addierer, der im Fall eines 24 mal 16 Bit Faders 17 Bit breit sein muss. Die Laufzeit des Addierers bestimmt die maximale Arbeitsfrequenz, die Simulation ergibt ca. 16 ns. Institut für Breitbandkommunikation 64 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 45: Laufzeitsimulation einer 17 Bit parallelen Summe Der Bauteilbedarf des Addierers beträgt 17 Logische Elemente. Die maximale Arbeitsfrequenz ergibt sich mit 16 ns zu: f 17bitadd= 1 =62,5 MHz 16ns Die gesamte Durchlaufzeit ergibt sich durch die Breite des Multiplikators, des Multiplikands und des Overheadbits zu t durchlauf =t 24Bit t 16Bit 1=41∗t Arbeitsfrequenz . Der gesamte Hardwarebedarf des 24 Bit mal 16 Bit seriellen Multiplizierers beläuft sich auf 35 Elemente (Project ser_fad) bei Implementierung in einem Baustein der Cyclone Familie. Der Aufwand an Logischen Elementen ist zwar sehr gering, doch muss auch die Peripherie bitseriell ausgeführt sein. Für eine Mischpultanwendung können viele dieser Faderelemente parallel in einem FPGA ausgeführt werden. Im Vergleich zur parallelen Realisierung mit gleichem Hardwareaufwand entsprechen ca. 14 serielle Faderelemente einer Parallelrealisierung serieller L par 499 = =14,25 Multiplizierer. n serfad = Lser 35 Für einen sinnvollen Einsatz müssen die zu berechnenden Audiosignale parallel, jedoch bitseriell zur Verfügung gestellt werden. Im vorliegenden Beispiel wird das Audiosignal zwar seriell angeliefert, allerdings sind die Audiowörter auch seriell hintereinander im Datenstrom angeordnet. So müsste ein fertig gespeicherter Block von Audiosignalen innerhalb eines Wordclockframes in einzelne Schieberegister anstatt in Speicherblöcken übernommen werden. Diese sind zweifach nötig, um abwechselnd zu speichern, und alle acht Audiowörter bitseriell und parallel den Faderelementen anzubieten. Die Schieberegister benötigen Hardewareelemente und die sind im Gegensatz zu Speicherelementen rar. Eine interessante Anwendung ist der serielle Fader, wenn A/D Konverter oder AES/EBU Eingänge direkt an den FPGA angeschlossen sind, und diese über serielle Busse parallel Audiosignale liefern. Das AES EBU Signal eignet sich dazu sehr gut, da AES-3 ein bitserielles Signal, LSB-First ist. Abb. 46: AES Frame 24 Bit LSB-First Institut für Breitbandkommunikation 65 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Mehrere AES-3 Empfänger, entweder als Bausteine oder integriert in den FPGA, sind geeignet, um eine serielle Umgebung zu beliefern. Aktuelle A/D Konverter bieten das gesampelte Audiosignal im I^2 S Mode seriell an, nur ist dieses leider MSB-First. Folgende Tabelle zeigt eine Auswahl professioneller aktueller A/D Konverter aus dem Audiobereich. AKM ak5394a Nur MSB-First Cirrus Cs5381 Nur MSB-First TI pcm4222 Nur MSB-First Eine interessante Anwendungsmöglichkeit für den hardwareschonenden Einsatz serieller Faderelemente ist ein digitaler „Gain“, also eine Vordämpfung, für digitale AES-3 Eingänge, die nicht gut ausgesteuerte Audiosignale auf Studionormpegel anpassen. Dieses Kapitel zeigt, dass das Faderelement das laufzeitbestimmende Element in einer FPGA Realisierung ist. Summen sind schnell, Multiplizierer müssen mit vielen Logischen Elementen aufgebaut werden. Die bitserielle Realisierung braucht zwar selber wenig Logische Elemente, die notwendige Parallelisierung um die gleiche Rechenleistung zu erreichen und die fehlende bitserielle Umgebung machen diesen Vorteil wieder zunichte. Es steigen die Geschwindigkeiten je Bausteingeneration, der wirkliche Durchbruch scheint aber die Integration von Hardwaremultipliziern in den Baustein (Embedded Multiplier) zu sein. Institut für Breitbandkommunikation 66 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers 7. Zusammenfassung und Ausblick Erfüllung des Pflichtenheftes Die Mindestfunktionen aus Kapitel 2.1. sind in dieser Arbeit erfüllt. • • • • • Audioanbindung des Mischers über ADAT® 8 Audiobusse mit unabhängiger Aufschaltung der Eingänge 8 Hauptpegelsteller Steuerung des Audiocores über MIDI Synchronisation auf ein Wordclock Signal oder auf das Audio Eingangsformat Die notwendigen Audio- und Steuerformate wurden im FPGA dekodiert. Zusätzlich zum ADAT® Format wurde während der Testphase noch eine S/PDif Ausgangsschnittstelle entworfen. Die Forderung der unabhängigen Summenaufschaltung und der acht Hauptpegelsteller konnte aufgrund ausreichender Rechenleistung des Bausteins auf 64 Pegelsteller erweitert werden. Jeweils acht Pegelsteller pro Summe ermöglichen eine gepegelte Summenaufschaltung. Dieser Fader im Signalweg vom Eingangssignal zur Summe erlaubt komplexere Steuermöglichkeiten, die frei über die Steuersoftware konfiguriert werden können. Der Synchronisationsalgorithmus wurde für die Synchronisation über das Audio Eingangsformat entworfen. Der Algorithmus ist aber so ausgelegt, dass an den selben Funktionsblock ein Wordclocksignal anstatt der 48 kHz Information aus dem ADAT® Datenstrom angeschlossen werden kann. Erkenntnisse zur Verwendbarkeit als Mischpult Die Leistungsfähigkeit des kleinsten FPGA Bausteines der Cyclone Serie wurde gezeigt. Ein Mischpult mit acht Mono Eingängen, dafür aber acht individuelle Summen, ist nur für sehr kleine Anwendungen wie portable Mischpulte für Außeneinsätze oder für kleinste Sendeabwicklungen einsetzbar. Eine Erweiterung um einen zweiten ADAT® Eingang würde den Einsatzbereich deutlich erweitern. Die geringe Auslastung des Chips mit 945 von 2910 Logischen Elementen und die Kapazität den Ablauf der Audiosignalverarbeitung mit den vorhandenen 24,576 MHz laufen zu lassen, bieten dazu die Möglichkeit. Institut für Breitbandkommunikation 67 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Die Konfiguration und Steuerung der möglichen Audiosignalwege wird im vorliegenden Beispiel ausschließlich über Faderwerte übernommen. Wird zum Beispiel im Fall einer PFL Summe (Pre Fade Listening, Vor Fader Abhören) nur meist ein frei wählbarer Eingang auf eine Summe geschaltet, so wird nur der dem gewünschten Eingang zugeordnete Pegelsteller auf 0dB (unity gain) gestellt, und übernimmt hier eine reine Schaltfunktion. Alle anderen Fader dieser Summe stehen auf aus, das heißt, der Multiplikator ist Null. Für ein einfaches Mischpult ist dies ausreichend. Bei größeren Anwendungen und konfigurierbaren Anlagen wird es sehr Hardware intensiv, die vorhandene Struktur mehrstufig aufzubauen, und nur über Faderelemente zu stellen. Hierzu wird es notwendig Pufferelemente, wie im Beispiel gezeigt, mit flexibler Adressierung zur Verschaltung der vorhandenen Audiofunktionen, wie in Kapitel 5.1. angedeutet, aufzubauen. Erkenntnisse zum verwendeten Baustein und der Umgebung Der gewählte FPGA ist mit 945 von 2910 Logischen Elementen nicht vollständig ausgenutzt, und die Steigerung der Arbeitsfrequenz von 12,288 MHz auf die als Systemtakt vorhandenen 24,576 MHz ist möglich. Eine Erweiterung um weitere 8 oder gar 24 Eingangskanäle erscheint durchaus machbar. Eine Verdoppelung der Arbeitsfrequenz der Audiosignalverarbeitung und einem weiteren bitparallelem Faderelement, zeitlich seriell, könnten eine 32 * 8 Audiomatrix möglich machen. Von den 104 vorhandenen I/O Pins sind aktuell nur 28 verwendet. Die freien Pins können für eine direkte Anbindung von Steuerelementen wie Tasten, inkrementelle Drehgeber und A/D Konverter für Schiebepotentiometer sowie auch LED´s für Pegelanzeigen verwendet werden. Die daraus gewonnenen Parameter können direkt auf die Steuersignale des Designs wirken. Dies kann für ein kompakteres System mit simpler Bedienung den MIDI Steuerport ergänzen oder ersetzen. Vom 59904 Bit großen Speicher des Bausteins sind nur 17152 verwendet. Davon sind die meisten für 128 mögliche Eingänge je Summe vorbereitet. Der Kombination Faderelement und Summe fehlen zum Filter nur mehr die Verzögerungselemente. Diese können mit Speicherblöcke vergleichbar mit den Pufferelementen in der Audiosignalverarbeitung realisiert werden. Allerdings ist dafür die Rechenbreite mit 24 Bit Festkomma etwas gering und könnte sich negativ auf die Stabilität von Filtern auswirken. Institut für Breitbandkommunikation 68 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Auf der Testplatine arbeiten Bausteine mit verschiedenen Versorgungsspannungen. Diese betragen 5V, 3,3V und 1,5V. Die Anpassung für die Signale verschieden versorgter Bausteine ist schwierig, vor allem, wenn es sich um höhere Frequenzen im MHz Bereich handelt. Die Verlagerung der analogen PLL in den FPGA Baustein und der Betrieb des VCXO´s mit 3,3V machen es möglich, eine reine 3,3V Umgebung zu verwenden. Dies führt zu einer deutlichen Vereinfachung des Platinenlayouts. Die größte Schwierigkeit bei der Entflechtung der ursprünglichen Platine war die Zuführung der verschiedenen Spannungsversorgungen zu den Bausteinen ohne Durchkontaktierungen. Der VCXO ist in einer SMD Variante, für 3,3V spezifiziert, erhältlich. Die korrigierte und auf 3,3V reduzierte Variante führt zum Schaltplan in Abb. 48 am Schluss dieses Kapitels. Erkenntnisse zum Thema Audiosignalverarbeitung Die Elemente Fader und Summe sind in der vorliegenden Fassung mit 24 Bit Eingängen und ebenso 24 Bit Ausgängen ausgeführt. Bei gut ausgesteuerten Signalen, wie fertiges Musikprogramm oder prozessierte Mikrofonsignale über Mikrofonvorverstärker mit integrierten Kompressoren und speicherbaren Einstellungen - wie in der Rundfunkbranche üblich, reicht die Rechengenauigkeit aus. Es ist in solchen Anwendungen nicht damit zu rechnen, dass sehr leise Signale gemischt werden. Für Produktionsanwendungen wäre es sinnvoller, das Ausgangssignal des Faderelements in 32 Bit oder besser in der vollen Breite von 40 Bit an eine ebenso breite Summe zu übergeben, und die Anpassung im Pegel und in der Wortbreite erst am Ausgang der Summe vorzunehmen. Am anderen Ende der Dynamik fehlt die Übersteuerungsfestigkeit, die in einer vollen Wortbreite intern für den Fader gegeben wäre. Es sollte sichergestellt werden, dass bei Übersteuerung der Summe ein ähnliches Verhalten wie bei analogen Geräten eintritt. Analoge Geräte flachen die Spitzen der Signale ab, während bei digitaler Übersteuerung das Vorzeichenbit verloren geht (siehe Abb. 47) und ein Sprung mit sehr hohen Frequenzinhalten auftritt. Das „zerstörte“ Signal klingt ungewohnt und stört mehr als eine analoge Übersteuerung. Dazu muss in der Summe eine Logik eingebaut werden, die anstatt dem Ergebnis der Summe den maximal möglichen positiven oder negativen Rechenwert der Ausgangswortbreite weiterverarbeitet. Da hier acht Signale summiert werden, tritt der Fehler praktisch nie auf, da in Musik- bzw. Sprachsignalen selten kohärente Signale auftreten. Institut für Breitbandkommunikation 69 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Abb. 47: Verschiedene Stufen der digitalen Verzerrung bis zur Unkenntlichkeit der Kurvenform Eine einfach zu realisierende Lösung ist, den Funktionsblock Psum auf 40 Bit zu erweitern und die volle Rechenbreite inklusive MSB aus der „signed“ Interpretation des Multiplizierelements aufzusummieren. Die Summe ist breiter als notwendig. Ein Vergleich des MSBs und des MSB-1 ermöglicht eine Erkennung des Überlaufs der Rechenbreite. Mit dieser Information wird anstatt des Ergebnisses der maximal mögliche positive bzw. negative Wert an die nächste Stufe weitergegeben. Eine 40 Bit breite Summe benötigt 39 Logische Elemente und ebenso ca. 10 ns laut Simulation. Erweiterungsmöglichkeiten und Ausblick Die oben genannte Auslastung des Bausteins lässt einigen Spielraum für diverse zusätzliche Funktionen. Genannt wurden bereits: ● ● ● ● Erweiterung der Eingangskanäle und Hauptsummen Mehrstufige Strukturen Übersteuerungsfestigkeit Direkte Einbindung von Steuerelementen wie Drehgeber, Tasten oder Faderelemente Institut für Breitbandkommunikation 70 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Sinnvoll wäre es auch, eine Aussteuerungsanzeige direkt im Baustein zu implementieren, da in dieser FPGA Lösung jeder Punkt in der Audiosignalkette direkt abgreifbar ist. Dazu lässt sich mittels eines einfachen Integrators ein gleichgerichteter Pegel messen und über LED Ketten an freien Ausgangspins direkt gegen Masse treiben, wie die 4 LEDs auf der Testplatine. Ein weiteres Grundelement der Mischpulttechnik, eine Dynamiksektion, lässt sich so einfach nicht realisieren, da für einen FPGA zu komplexe Berechnungen notwendig werden. Dies wäre ein Anwendungsfall für programmierbare Mikrocontroller, die aus Logischen Elementen aufgebaut, in den selben FPGA kompiliert, Steuerungsaufgaben übernehmen. Bei Verwendung von Altera Bausteinen haben diese den Namen „NIOS22“ und werden in der selben Entwicklungsumgebung wie die restliche Hardware entworfen. Hierzu sind aber größere Bausteine als der vorgestellte notwendig. Diese sind verfügbar und die Integrationsdichte steigt stetig. Bisher mussten aufwändig mehrere FPGAs über Busstrukturen und Schnittstellen verbunden werden, um die notwendige Rechenleistung zur Verfügung zu stellen. Diese Busstrukturen sind Engstellen, da sie über Platinenverbindungen geführt werden müssen und somit in ihrer Taktfrequenz und Wortbreite beschränkt sind. Außerdem benötigen diese Schnittstellen wiederum Logische Elemente, die die Rechenleistung weiter einschränken. Eine Erhöhung der Packungsdichte führt zur deutlichen Vereinfachung der Hardware. Es ist abzusehen, dass Audioanlagen, die bis jetzt mehrere FPGAs auf mehreren Platinen verteilt benötigen, bald in einem einzigen Baustein Platz finden. Die Integration von mehrbandigen Filtern im Audiosignalweg halte ich aufgrund niedriger Wortbreite in Fixkommadarstellung nicht für sinnvoll. Die nächste Generation von FPGA Bausteinen mit integrierten kaskadierbaren Multiplizierern werden dahingehend deutlich besser verwendbar sein. Ein interessantes Thema wäre, Leistungsverstärker für zum Beispiel Kopfhörerausgänge, in Form von so genannten „H-Bridges“ direkt vom FPGA aus anzusteuern. Es entfällt der aufwändige und teure D/A Konverter und es müsste ein Wiederherstellungsfilter im Baustein entworfen und das 24Bit breite parallele Audiosignal in ein PWM- Signal umgesetzt werden. Die flexible Struktur eines FPGAs, die stetig steigende Hardwaredichte und die Integration schneller Multiplizierer in großer Anzahl in die Bausteine machen FPGAs interessant als Single-Chip Anwendung in der Mischpulttechnik. Die Hersteller bieten des weiteren einen stetig wachsenden Pool an fertigen oder parametrierbaren Funktionsblöcken wie AES-3 Empfänger, Taktratenwandler, PCI- oder PCIe Schnittstellen an, die die Entwicklungszeit niedrig halten. 22 NIOS Software Prozessor der Firma Altera auf FPGA Basis, nähere Informationen auf www.altera.com Institut für Breitbandkommunikation 71 Abb. 48: Schaltplan mit integrierter PLL und Fehlerkorrekturen Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Literaturverzeichnis [AES-3]: AES standard for digital audio- Digital input-output interfacing – Serial transmission format for two-channel linearly represented digital audio data, Audio Engineering Society Inc. 2003, 29 S., www.aes.org [Cyclone Device Handbook]: Cyclone Device Handbook, Altera Corp. 2007, C5V1-2.2, http://www.altera.com/literature/hb/cyc/cyc_c5v1.pdf [DAT1]: Digitale Audiotechnik 1, Graber Gerhard, Skriptum zur Vorlesung V8.1-WS2006/07 [Dickreiter] : Handbuch der Tonstudiotechnik Band 1 +2, Dickreiter Michael, K.G. Saur 1997, 6. Auflage, 430S., 520 S. [fairchildsemi]: CNY171, CNY172, CNY173, CNY174, CNY17F1, CNY17F2, CNY17F3, CNY17F4, MOC8101, MOC8102, MOC8103, MOC8104, MOC8105, MOC8106, MOC8107, MOC8108 Phototransistor Optocouplers, Fairchild Semiconductor, www.fairchildsemi.com, Rev 1.0.6, 15 S. [PD]: Pure Data Documentation, Pukette Miller S., http://crca.ucsd.edu/~msp/Pd_documentation/ [Philips Semiconductors] : 74HC/HCT4046AD Phase-Locked-Loop with VCO, Philips Semiconductors Product Specification, www.nxp.com, 1997, 34 S. [Tietze/Schenk]: Halbleiter- Schaltungstechnik, Tietze Ulrich, Schenk Christoph Springer Verlag 2002, 12. Auflage, 1606 S. Institut für Breitbandkommunikation 73 Diplomarbeit Entwurf und Realisierung eines Single-Chip Broadcast Mischers Anhang: Source Code und Datenblätter Die erste Seite zeigt eine Übersicht, wie sie im Editor in der Entwicklungsumgebung zu sehen und zu bearbeiten ist. Dies ist auch das Blockschaltbild der Funktionsblöcke. Der Source Code zu den Funktionsblöcken ist nach der Verwendung in den Kapiteln geordnet. Kapitel 4.3. Kapitel 5.1. Kapitel 5.2. Kapitel 5.3. Kapitel 6.1.1. Kapitel 6.1.2. ADAT_sync1 PLL_steuer ADAT_In2 ADAT_Send2 spdif_send24 MIDI_dekode Steuerramblock_1024 24bitPSum Fader Berechnungscnt/ ADATSchaufler2 Um den Source Code zu lesen, gibt es eine Hilfestellung im Kapitel 3.2. Der Text ist eingefärbt, um die Lesbarkeit zu erhöhen: Blau sind sprachspezifische Schlüsselwörter, grün sind Kommentare und der restliche Code ist in schwarz. Nach den 24 Seiten Source Code folgen einige interessante Datenblätter der verwendeten Bauelemente. Das Datenblatt des FPGAs ist wegen des großen Umfangs in der Literaturliste ([Cyclone Device Handbook]) zu finden. Ebenso würde das Datenblatt der Phase-Locked-Loop 74HC4046AD den Rahmen sprengen. Es ist im Internet unter http://www.nxp.com/acrobat_download/datasheets/74HC_HCT4046A_CNV_2. pdf erhältlich. Das Datenblatt des Optokopplers CNY17 ist unter http://www.fairchildsemi.com/ds/MO/MOC8104.pdf erhältlich. Institut für Breitbandkommunikation 74