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 usT 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=28ns10ns=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

Documentos relacionados