Ein serieller Hochgeschwindigkeits Bus Controller ASIC

Transcrição

Ein serieller Hochgeschwindigkeits Bus Controller ASIC
TAP – Ein universell einsetzbares
Analysewerkzeug für den Entwurf digitaler
Signalprozessoren
H. Nachtnebel1, N. Kerö1 und W. Kausel2
1
Technische Universität Wien, Institut für Allgemeine Elektrotechnik und Elektronik,
Gußhausstraße 27/359-10, A-1040 Wien
E-Mail: {nachtneb, keroe}@iaee.tuwien.ac.at
2
Universität für Musik und darstellende Kunst Wien, Institut für Wiener Klangstil,
Singerstraße 26, A-1010 Wien.
E-Mail: [email protected]
Abstract
Diese Arbeit beschreibt die Entwicklung eines universell einsetzbaren CADWerkzeugs zur Analyse und Verifikation von digitalen Signalprozessoren. Bei der
Entwicklung der Transfer Analysis Package wurde besonderes Augenmerk auf
den modularen Aufbau sowie die möglichst einfache Einbindung von unterschiedlichen Digitalsimulatoren gelegt. Es stehen Programme zur Signalgenerierung,
zur Datenkonversion sowie zur digitalen Datenanalyse im Zeit und Frequenzbereich zur Verfügung. Der Einsatz von TAP in der Entwicklung von Signalprozessoren wird an zwei Beispielen kurz beschrieben.
EINLEITUNG
Durch die rasante Entwicklung der Mikroelektronik hat sich die digitale Signalverarbeitung
gegenüber der analogen auf vielen Gebieten durchgesetzt. Die Halbleiterindustrie bietet
immer leistungsfähigere digitale Signalprozessoren (DSPs) an, für deren effizienten Einsatz
ausgereifte Entwicklungswerkzeuge wie Assembler, Debugger, Hochsprachencompiler und
Simulatoren zur Verfügung stehen. Um sowohl eine möglichst hohe Rechengeschwindigkeit
zu erreichen als auch die Vielseitigkeit des Prozessoren nicht einzuschränken, verfügen DSPs
über zum Teil sehr aufwendige Architekturen. Sie enthalten mehrere Datenbusse, parallele
Multiplizierer-Akkumulierer-Einheiten, sowie eigene Module für spezielle Operationen. Die
den Erfolg eines Produktes maßgeblich bestimmende Entwicklungszeit kann zwar durch den
Einsatz von Standard-DSPs entscheidend verkürzt werden, die Produktionskosten sind jedoch
im Vergleich zu einer applikationsspezifischen Lösung deutlich höher.
Falls die Produktionsstückzahlen es erfordern, wird daher statt eines DSPs ein eigener IC für
die Lösung einer digitalen Signalverarbeitungsaufgabe – ein sogenannter applikationsspezifischer digitaler Signalprozessor (ASSP) – entwickelt. Es wird eine auf die Applikation
optimierte Architektur entworfen und dadurch die den Preis maßgeblich bestimmende
Chipfläche im Vergleich zu Standard-DSPs wesentlich verringert. Der Entwurf von ASSPs
wird zwar durch moderne CAD-Programme immer besser unterstützt, erfordert aber
wesentlich mehr Entwicklungsschritte als die Programmierung eines DSPs. In Abb.1 ein
typischer Entwurfsablauf dargestellt.
5.) Gate Level
N li
4.) Silicon Compilation
Technologie
3.) RTL Beschreibung
Architektur
2.) Architektursynthese
1.) Systembeschreibung
Idee
Abb. 1 Entwurfsablauf eines ASSP
Zuerst wird der Algorithmus auf Systemebene beschrieben und durch Simulation verifiziert.
Anschließend wird eine geeignete Architektur entworfen und eine Beschreibung auf RegisterTransfer-Level (RTL) des ASSP erstellt. Dieser Schritt kann durch Synthese-Programme wie
den Behavioural-Compiler von Synopsys® zwar schon teilweise automatisiert werden, die
Ergebnisse sind jedoch denen erfahrener ASSP-Designer noch deutlich unterlegen. Die in
einer Hardware-Beschreibungssprache (Verilog oder VHDL) erstellte Architektur wird
neuerlich durch Simulation verifiziert. Mittels eines Silicon-Compilers wird eine Gate-LevelNetzliste erzeugt und der Entwurfsablauf mit dem automatischen Layout den ICs abgeschlossen. Selbstverständlich müssen auch die Ergebnisse aller automatisch durchgeführten
Entwurfsschritte mittels Simulation verifiziert werden.
Für die Überprüfung werden je nach Entwurfsschritt unterschiedliche Simulationsprogramme
verwendet. Im Idealfall wird die Korrektheit des Algorithmus (die Übereinstimmung mit der
Spezifikation) nur auf Systemebene manuell überprüft. In allen weiteren Schritten werden
lediglich die Simulationsergebnisse automatisch mit denen der Systemsimulation verglichen.
Dieser Ansatz ist in der Praxis aber nur selten anwendbar, weil ein Algorithmus für die
digitale Signalverarbeitung, je nach dem auf welcher Ebene man ihn beschreibt, unterschiedliche Anfangsbedingungen aufweist, die sich beispielsweise im Einschwingverhalten von
digitalen Filtern bemerkbar machen. Ein automatischer Vergleich von Simulationsergebnissen
wird dadurch sehr erschwert bzw. sogar teilweise unmöglich gemacht.
Für eine effiziente Verifikation wird daher statt der oben beschriebenen „bit-true“ Methode in
jeder Beschreibungsstufe lediglich überprüft, ob die Spezifikationen erfüllt werden („data
sheet compliant“). Im Rahmen dieser Arbeit wurde mit der Transfer Analysis Package (TAP)
ein Analysesystem entwickelt, das diese Art der Verifikation weitestgehend automatisiert. In
der Folge werden die Anforderungen an so ein System beschrieben und die einzelnen Programmgruppen sowie deren Aufbau vorgestellt. Schließlich wird an Hand von zwei Beispielen der Einsatz der TAP-Package im praktischen ASSP-Entwurf gezeigt.
ANFORDERUNGEN AN EIN ANALYSESYSTEM
Der Entwicklung von TAP ging eine eingehende Untersuchung des Programmpakets Ptolemy
[1] voraus. Die daraus gewonnene Erkenntnisse über die Unzulänglichkeiten von Ptolemy als
universelles Analyseprogramm für den ASSP-Entwurf waren ausschlaggebend, eine eigne
Entwicklung zu beginnen. Ptolemy ermöglicht es innerhalb einer graphischen Benutzeroberfläche ein Design auf Systemebene zu modellieren und sein Verhalten genau zu analysieren.
Ptolemy verfügt zwar über sehr ausgereifte Analysemethoden – es stehen Funktionen zur
Signalgenerierung, zur Signalauswertung im Zeit- und Frequenzbereich sowie zur
graphischen Darstellung zur Verfügung – hat aber folgende entscheidende Nachteile: Die
Verarbeitungsgeschwindigkeit ist einerseits im interpretierenden Modus (SDF-Domain) viel
zu langsam, andererseits ist auch der Übergang auf kompilierte C-Programme nicht ohne
größere Einschränkungen und Schwierigkeiten möglich. Schließlich ist die Einbindung
externer Simulatoren unzureichend unterstützt, weil der Benutzer für jeden Simulator eigene
Interfaceprogramme erstellen und in Ptolemy einbinden müßte.
Die Transfer Analysis Package erfüllt folgende Anforderungen:
Plattformunabhängigkeit
Moderne Digitalsimulatoren sind nicht mehr auf UNIX-Workstations beschränkt sind sondern
werden –wie zum Beispiel V-System von Model Technology – vermehrt unter Windows-NT®
angeboten. Es war daher unbedingt notwendige Forderung, daß alle Programme sowohl unter
UNIX als auch unter Windows-NT lauffähig sein müssen. Es wurde daher C++ als
Programmiersprache gewählt und soweit wie möglich auf betriebssystemspezifische Erweiterungen verzichtet.
Modularer Aufbau mit einheitlichem Struktur
TAP besteht aus eine Vielzahl von einzelnen Programmen die alle über ein einheitliches
Command-Line Interface verfügen. Der Datenaustausch zwischen den Programmen erfolgt
über Streams (stdin und stdout), wodurch „Pipes“ verwendet werden können. Dadurch ist es
nicht mehr notwendig, die Ergebnisse jedes Berechnungsschritts in zum Teil sehr großen
Dateien zwischenzuspeichern.
Leichte Erweiterbarkeit
Besonderer Wert wurde auf die leichte Erweiterbarkeit der Programmsammlung gelegt. Um
die Erstellung neuer Programme so weit wie möglich zu vereinfachen, wurde ein eigener
Command-Line Parser Generator entwickelt, auf den in der Folge noch kurz eingegangen
werden soll.
PARSER-GENERATOR FÜR DAS COMMAND-LINE INTERFACE
Für jedes Programm der TAP werden zum Teil zahlreiche Optionen benötigt. Als Beispiel
seien die Eingabeparameter des Signalgenerators stim aufgeführt:
Usage: stim [options] < infile > outfile
Options:
-help
-freq double
-adjust int
-periods int
-phase double
[Hz]
[rad]
generates this help screen
signal frequency (approximate)
adjust frequency for
0=any, 1=int, 2=odd
number of periods
number of signal periods in buffer
initial phase for sine wave
<act>
(1023.44 Hz)
(2)
<off>
(0 rad)
-lev double
-ovlev double
-vpeak double
-sample double
-dc double
-noise double
-step double
-Alaw
-Ulaw
-lin int
-square vpeak freq
double vpeak
double freq
-rep int
-len int
-extend int
-merge
-query
-info
-stat char*
[dBm0]
[dBm0]
[V|units]
[Hz]
[V]
[V]
[V]
signal level relative to vpeak
(0 dBm0)
overflow level corresponding to vpeak
(0 dBm0)
peak value (corresponding to 3.14/3.17 dB)(1 V|units)
sampling rate
(8000 Hz)
dc offset
(0 V)
white noise RMS (normal distributed)
(0 V)
ramp generator step
(0 V)
enable A-law quantiser G.711
<off>
enable U-law quantiser G.711
<off>
linear PCM representation
(0)
sqare wave
<off>
peak value
frequency
[times]
repeat each sample
(1 times)
[samples] buffer length
(1024 samples)
[samples] extend buffer length with settling time (0 samples)
merge (add) with data from standard input<off>
output actual frequency and periods
<off>
print actual settings to statistic
<off>
write program statistics to file
<off>
Neben einer Titelzeile und einer Programmbeschreibung müssen für ein TAP-Programm
folgende Elemente für jede Option definiert werden:
Name,
Typ der Argumente der Option,
Variablenname innerhalb des Programms,
Text, der die Option kurz beschreibt,
Text der die physikalische Einheit des Arguments beschreibt,
Funktionen zur Überprüfung der Eingabewerte der Option (zB. Wertebereich)
Initialisierung (default value)
Um die Bedienung zu vereinfachen, sollten alle Optionen abgekürzt werden können.
Es wurden einige Lösungen wie beispielsweise OPTGEN von Panagiotis Tsirigotis untersucht. Da von keinem Werkzeug alle Anforderungen erfüllt werden konnten, wurde ein
eigener Parser-Generator entwickelt. Für alle Programme werden die oben genannten Informationen in einer Beschreibungsdatei spezifiziert, mit der das Programm dsc2clp einen
vollständige Command-Line-Parser für ein TAP-Programm erzeugt. Für das oben genannte
Signalgenerator-Programm ist ein Teil der Beschreibungsdatei nachfolgend angeführt:
Beschreibung eines Programms in Textform
application Stim {
message "Testprogramm 1.0, Copyright (c) 1997 by BARRY. All rights reserved";
description "Dieses Programm erzeugt eine Schwingung und schreibt sie in die Ausgabedatei";
option Länge {
description "Gibt die Länge der Ausgabe an";
argument Buffer {
description "[Samples]";
type int;
}
}
option Amplitude {
description "Gibt die Amplitude der Schwingung an";
argument Value {
description "[Volt]";
type double;
}
}
}
Eine genaue Beschreibung des Parser-Generators ist in [2] zu finden. Es ist geplant, den
Parser-Generator als Public-Domain-Programm verfügbar zu machen.
ELEMENTE DER TAP
Die TAP besteht folgenden Gruppen von Programmen
Signalgeneratoren
Programme zur Modellierung analogen Schaltungsteile (zB: Σ∆-Wandler)
Datenkonversions- und Skalierungsprogramme
Programme für die Analyse im Zeitbereich (Digitale Filter: FIR, IIR, SINC...) [4]
Programme für die Analyse im Frequenzbereich (FFT und Fensterfunktionen [5])
Programme zur Datenauswertung und graphischen Darstellung (zB rms, plot)
Für die graphische Darstellung wurde unter Windows-NT das Programm gnuplot [3] unter
UNIX pxgraph [1] eingesetzt. Für den ASSP-Entwurf werden typischerweise weitere TAPProgramme zur Generierung von Daten oder zur Modellierung von analogen Komponenten
von Entwickler erstellt.
VERIFIKATION EINES MEHRKANAL-CODEC MITTELS TAP
Für einen mehrkanaligen Codec-ASIC für Telekommunikationsanwendungen wurde die
komplette Verifikation auf allen Entwurfschritten mittels TAP durchgeführt. Es wurden alle
Übertragungscharakteristika sowohl auf RTL-Ebene als auch auf Gate-Level mit einer Serie
von Einzelsimulationen verifiziert. Es waren dies unter anderem die Verzerrung als Funktion
der Aussteuerung und die relative Verstärkung als Funktion der Eingangsfrequenz. Für
letztere ist ein typisches Blockdiagramm in Abb. 2 dargestellt.
Sine Wave
Freq 1031.25 Hz
Clip
Remove DC
Remove Prolog
DUT
VHDL
Sigma Delta Modulator
Window
Psopho
Window
NUTALL
DFT
Band Pass Filter
300 - 3400Hz
Ideal Band Rej. Filter
1031.25Hz +/- 156Hz
Ideal Band Pass Filter
1031.25Hz +/- 156Hz
rms
rms
dB - dBref
Rms Noise
rms
dB - dBref
dB - dBref - Level
dB - dBref
dB - dBref - Level
Rms Selective
Rms Selective
Deviation
Rms Wideband
Rms Wideband
Deviation
Scale Factor
_
+
Distortion
Selective
_
+
Distortion
Wideband
Abb. 2 Verifikation eines ASSP mittels TAP
ENTWURF EINES ASIC FÜR EINEN KAPAZITIVEN WINKELSENSOR
Am Institut für Allgemeine Elektrotechnik und Elektronik der TU-Wien wurde ein neuartiger
kapazitiv messender Drehwinkelsensor entwickelt [6, 7]. Für den Einsatz im KFZ ist es aus
Kosten- und Zuverlässigkeitsgründen unbedingt notwendig, die komplette Elektronik zur
Ansteuerung und Auswertung in einen ASIC zu integrieren. Für diese Aufgabe wurde ein
eigener µController, der im Rahmen dieser Tagung vorgestellt wird [8], entworfen.
Um die Verifikation des Entwurfs zu vereinfachen, wurde TAP sowohl um ein Modell des
Sensors selbst als auch in der ersten Entwicklungsphase um ein C-Modell des Auswertealgorithmus erweitert. Weiters konnte der Einfluß von verschiedenen Dezimationsfiltern auf
das Ausgangssignal genau studiert werden. Sobald der Entwurf auf RTL-Ebene fertiggestellt
war, wurde zur Verifikation das C-Modell gegen den Verilog-Simulator ausgetauscht. Es
mußten lediglich die Ein- und Ausgangsdaten entsprechend formatiert bzw. skaliert werden.
ZUSAMMENFASSUNG
Mit der Transfer Analysis Package steht dem DSP- und ASSP-Entwickler ein sehr leistungsfähiges Werkzeug zur Verfügung, mit dem eine einheitliche Verifikation während aller
Entwurfsschritten durchgeführt werden kann. Durch den modularen Aufbau sowie die Möglichkeit, in einfacher Weise neue Module zu entwickeln, können selbst komplexe digitale
Systeme mit der TAP analysiert und verifiziert werden.
Es ist geplant, die TAP um ein graphisches User-Interface zu erweitern und dieses Werkzeug
anschließend mit allen Grundmodulen der Allgemeinheit als Public-Domain-Package zur
Verfügung zu stellen.
LITERATURVERWEISE
1. “Ptolemy: A Framework for Simulating and Prototyping Heterogeneous Systems”,
J. Buck, S. Ha, E. A. Lee, D. G. Messerschmitt, Int. Journal of Computer Simulation,
Jan. 1994
2. “Entwurf eines portablen Analysesystems für anwendungsspezifische Signalprozessoren”,
H. Nachtnebel, Diplomarbeit, TU-Wien, 1997.
3. “GNUPLOT – An Interactive Plotting Program”, T. Williams, C. Kelley, Version 3.5,
ftp://ftp.dartmouth.edu/pub/gnuplot, 1993
4. “Fast Algorithms for Digital Signal Processing”, R. E. Blahut, Addison-Wesley
Publishing Company, New York 1985
5. “Some Windows with Very Good Sidelobe Behavior”, A. H. Nuttall, IEEE Transactions
on Acoustics, Speech, and Signal Processing, Vol. ASSP-29, No. 1, pp. 84-90, Feb. 1981
6. “A Capactive Finger-Type Angular-Position and Angluar-Speed Sensor”, G. Brasseur,
Proceedings of the IMTC`98, May 18-20 1998
7. “A Measurement Algorithm for Capacitive Speed Encoder with a Modified Front-End
Topology”, T. Fabian and G. Brasseur, submitted for publication in IEEE Transactions
on Instrumentation and Measurement Technology.
8. “Ein skalierbarer µController-Core für die digitale Signalverarbeitung ”, H. Pommer, N.
Kerö und W. Kausel, Austrochip´98