Login
Register
Forum
Kontakt
Bitmania
avatar

00Blont

Registriert: 2011-01-04 21:12
Letzter Besuch: 2015-04-26 16:12
Channels: 0
Pages: 2
Alle Beiträge von 00Blont:

Rekonfigurierbare Hardware 2011-05-14 18:22
USB2.0 für Bastler (: 2011-03-08 20:35






So der Rotwein steht bereit, jezz
fang ich mal mit meiner Bitmania-Homepage an..

Hier geht's um
Rekonfigurierbare Hardware. Warum? Weil Alchemy und Bitman
mich dazu gezwungen haben ;-)
Nee - aber Bitman will mehr wissen
und Alchemy die Hardware auf unterster Ebene kontrollieren.

Was
ist Rekonfigurierbare Hardware?
(Wat is ene Dampfmaschien?)
Das
ist ein digitaler Chip (FPGA,
CPLD)
in dem Du Dir selbst Logik und Register zusammen schalten kannst,
d.h. mittels einer Hardwarebeschreibungssprache programmiert werden
kann z.B. Verilog
oder VHDL.

Was
wird das?

FPGAs sind heute die vielfältigsten Bausteine und
haben neben Registern (D-Flipflop)
und Logik (NOT,AND,OR,...)
noch etwas RAM und andere Schaltungen an Board. Diese Schaltungsteile
können über 'Schalter' zu komplexen Schaltungen verbunden werden,
wie Du es gerade brauchst. Z.B. zu einer Servo-Ansteuerung (PWM),
Recheneinheit (CPU),
'Grafikkarte' oder einem ganzen System (SoC),
je nach Chip-'Größe'.

Warum Rekonfigurierbare
Hardware?

Rekonfigurierbare Hardware kann immer wieder anders
verschaltet werden, einige sogar in Betrieb.
Wenn Du also z.B.
Deine 'digital Schaltung' erweitern willst 'einfach'
umprogrammieren.

Wie geht das?
Zuerst Verilog oder
VHDL programmieren, Simulieren und Fehler entfernen, dann wird der
Code per Synthese und Place & Route auf den Chip abgebildet, und
kann anschießend in Hardware getestet werden.
Naja, mit den
Tücken der FPGA-Synthesetools muss man sich erst anfreunden, aber
dann kannst Du Deine selbst erdachte Logik in Hardware testen, z.B.
Deine Robotersteuerung an Servos und Sensoren hängen und
programmieren. Software dafür gibt's sogar gratis (Mein Favorit:
Lattice
und weitere). 


Einen Zähler z.B. kannst Du in Verilog (Favorit) ganz
einfach erstellen:


input Clock;           // unsere Eingangs Clock
output reg [31:0] A; // Ausgang: ein 32-Bit Register (Bestehend aus Bits 0 bis 31)

always @(posegde Clock) // mit dem 0-1 Wechsel des Clocksignals wird
A <= A + 1; // Register A auf den Wert A+1 gesetzt, (Addierer)
 

Das Register A wird hier in jedem Clock-Zyklus um 1 erhöht bis zum
Überlauf, dann geht's bei 0 weiter. Zeitgleich könnten wir
das Register B mit jeder Clock um 2 erhöhen oder etwas anderes
anstellen...

Bei der Hardware Beschreibungssprache Verilog
muss Du aber immer darauf achten das Du nur Synthese-fähige
Anweisungen verwendest, sonst kannst Du Deine Logik später nur
Simulieren und nicht in der Hardware (FPGA,CPLD) laufen
lassen.

Hardware:
Boards mit FPGAs gibt's z.B. hier
(Favorit) oder hier.

Noch
weitere Links zu
Verilog:
-http://www.asic-world.com/verilog/veritut.html
-http://www.mikrocontroller.net/articles/Verilog

So,
nu is der Wein aus. Und ich sach bis bald.
Achja, bitte
Kommentieren! Nur bei Interesse schreib ich weiteres zum
Thema...