La lecture à portée de main
Description
Informations
Publié par | Unna |
Nombre de lectures | 65 |
Langue | Deutsch |
Extrait
Software-Orientierter
Programmierstil bei VHDL
Harald Richter
IfI Technical Report Series IfI-10-07
Impressum
Publisher: Institut für Informatik, Technische Universität Clausthal
Julius-Albert Str. 4, 38678 Clausthal-Zellerfeld, Germany
Editor of the series: Jürgen Dix
Technical editor: Michael Köster
Contact: michael.koester@tu-clausthal.de
URL: http://www.in.tu-clausthal.de/forschung/technical-reports/
ISSN: 1860-8477
The IfI Review Board
Prof. Dr. Jürgen Dix (Theoretical Computer Science/Computational Intelligence)
Prof. Dr. Klaus Ecker (Applied Computer Science)
Prof. Dr. Sven Hartmann (Databases and Information Systems)
Prof. i.R. Dr. Gerhard R. Joubert (Practical Computer Science)
apl. Prof. Dr. Günter Kemnitz (Hardware and Robotics)
Prof. Dr. Ingbert Kupka (Theoretical Computer Science)
Prof. Dr. Wilfried Lex (Mathematical Foundations of Computer Science)
Prof. Dr. Jörg Müller (Business Information Technology)
Prof. Dr. Niels Pinkwart (Business Inform
Prof. Dr. Andreas Rausch (Software Systems Engineering)
apl. Prof. Dr. Matthias Reuter (Modeling and Simulation)
Prof. Dr. Harald Richter (Technical Computer Science)
Prof. Dr. Gabriel Zachmann (Computer Graphics)
Prof. Dr. Christian Siemers (Hardware and Robotics)
PD. Dr. habil. Wojciech Jamroga (Theoretical Computer Science)
Dr. Michaela Huhn (Theoretical Foundations of Computer Science)
Software-Orientierter
Programmierstil bei VHDL
Prof. Dr. Harald Richter
Technische Universität Clausthal
Julius-Albert-Str. 4, D-38678 Clausthal-Zellerfeld, Germany
E-Mail: richter@in.tu-clausthal.de
All rights are reserved by the author
Inhaltsverzeichnis
Abstract .................................................................................................................................... 1
Einleitung ................................................................................................................................. 1
Stand der Technik ................................................................................................................... 1
Fortschritte bei FPGAs ......................................................................................................... 1
Stagnation bei CPUs ............................................................................................................. 2
Probleme bei der Multicore-Programmierung .....................................................................2
Algorithmen in Hardware ..................................................................................................... 3
FPGAs für eingebettete Systeme .......................................................................................... 3
Software für FPGAs ............................................................................................................. 3
Grenzen der Softcore-Programmierung ...............................................................................4
VHDL und Verilog ............................................................................................................... 4
VHDL/Verilog versus System C .......................................................................................... 5
Hardware-orientierter Stil versus Software-orientierter Stil ................................................ 6
Zusammenfassung ................................................................................................................ 7
Allgemeine Regeln des Software-orientierten Stils .............................................................. 7
Register oder Compiler-Interne Größe? ...............................................................................7
Regeln zur Registersynthese ................................................................................................ 7
Ausnahmen bei der Registersynthese ................................................................................... 9
Compiler-basierte Auswertung ........................................................................................... 10
Notwendiger Ausgangsport ................................................................................................ 10
Spezielle Regeln des Software-orientierten Stils ................................................................. 11
Zähler .................................................................................................................................. 11
Prozedur und Funktion ....................................................................................................... 13
Taktzähler ........................................................................................................................... 13
Abschnittszähler ................................................................................................................. 14
Ergänzende Regeln des Software-orientierten Stils ...........................................................14
Mnemonische Namensgebung ...........................................................................................14
Kein for und while .............................................................................................................. 14
Viele Prozeduren und Funktionen ...................................................................................... 15
Viele Module ...................................................................................................................... 15
Mehrere Abschnittszähler ................................................................................................... 15
Warten bis das Ergebnis fertiggestellt ist ........................................................................... 15 Konsequenzen bei Nichtverwendung eines Taktzählers und Abschnittszählers ................ 16
Deklarationen ..................................................................................................................... 16
Kommentare ....................................................................................................................... 17
Gültigkeitsbereich von Variablen und Signalen ................................................................. 17
Verkettete Zuweisungen und Operationen ......................................................................... 17
Initialisierung und Terminierung ........................................................................................ 18
Mehrfache Zuweisungen an Signale und Variable ohne if ................................................ 19able mit if ................................................... 19
Taktsynchrone Ausführung von Prozessen im Software-Orientierten Stil ..................... 20
Zählen und Abprüfen von Takten ...................................................................................... 21
Parallele Abarbeitung von Befehlen in einem Prozess ...................................................... 23
Mehr als ein Takt Bearbeitungszeit pro Befehl oder Aufruf .............................................. 24
Realisierung durch Abfrage eines Taktzählers .......................................................................... 24
Realisierung durch gekoppelte endliche Automaten.................................................................. 25
Programmschleifen beim Software-Orientierten Stil ........................................................ 26
Synplify-Schleife mit Endloszähler und Zählvariable ....................................................... 28
Synplify-Schleife mit Endloszähler und Zählsignal ........................................................... 29
xst-Schleife mit Endloszähler und Zählvariable ................................................................30
xst-Schleife Endloszähler und Zählsignal ..........................................................................30
Synplify-Schleife mit endlichem if-Zähler und Zählvariable ............................................ 31
Synplify-Schleife mit endlichem if-Zähler und Zählsignal ................................................ 32
xst-Schleife mit endlichem if-Zähler und Zählvariable ..................................................... 32
xst-Schleife mit endlichem if-Zähler und Zählsignal ......................................................... 33
Zusammenfassung .............................................................................................................. 34
Programmierbeispiele ...........................................................................................................34
Abschnitts- und Taktzählung und deren Abprüfung .......................................................... 34
Gekoppel