Forum: FPGA, VHDL & Co. µC Entwurf/Prozessor Entwurf mittels VHDL/Verilog und FPGAs?


von Martin (Gast)


Lesenswert?

Hallo,

ich habe Fragen zum Entwurf von µC und Prozessoren. An der Uni kann man 
bei uns Pratikas machen, in denen man ganze µC mittels VHDL entwirft um 
diesen auf einem FPGA laufen zu lassen. Ich weiß wie FPGAs funktionieren 
und der Entwurf ist mir in etwa klar, aber macht man das in der Praxis 
auch so? Entwerfen Hersteller wie Texas Instruments ihre µC ebenfalls in 
VHDL?
Was machen Prozessorhersteller wie INtel und AMD? Werden die Prozessoren 
ebenfalls in VHDL oder Verilog entworfen und auf FPGAs getestet?

Danke für eure Hilfe,
Beste Grüße

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Entwerfen Hersteller wie Texas Instruments ihre µC ebenfalls in VHDL?
Oder in Verilog...

> Was machen Prozessorhersteller wie INtel und AMD? Werden die Prozessoren
> ebenfalls in VHDL oder Verilog entworfen und auf FPGAs getestet?
Ja. Allerdings nicht in Echtzeit....
http://www.copacobana.org/index.html
http://techresearch.intel.com/UserFiles/en-us/File/terascale/posters/MCEMU.pdf
http://www-inst.eecs.berkeley.edu/~cs150/sp10/Collections/Papers/nehalemFPGA.pdf
http://portal.acm.org/citation.cfm?id=1216919.1216927

von Mine Fields (Gast)


Lesenswert?

Viel mehr wird wahrscheinlich aber auf Simulation gesetzt - damit kann 
man einfach mehr Testfälle abfangen wie bei einer Synthetisierung auf 
einem FPGA.

von Purzel H. (hacky)


Lesenswert?

Grafikprozessoren sollen heutzutage als FPGA laufen. Da sind die 
Produkteabfolgen viel schneller wie bei einer HauptCPU. Deshalb ist ein 
FPGA auszuliefern guenstiger wie maskenprogrammiete CPUs.

von Hugo R. (Gast)


Lesenswert?

Hey noch Was schrieb:
> Grafikprozessoren sollen heutzutage als FPGA laufen.

Das glaube ich aber nicht.
Soviele Gatter wie eine GPU braucht. Da währe die GPU so groß wie ein 
Pizza Blech :)

von ein_unwissender (Gast)


Lesenswert?

Es werden natürlich auch Prozessoren auf FPGAs getestet. Wenn es nicht 
passt/funktioniert ist auch die Aufteilung auf mehrere FPGAs sowie die 
Verlangsamung des Designs auf einen Bruchteil der Zieltaktes möglich um 
es trotzdem auf FPGA testen zu können.

Die Simulation deckt zwar viele Probleme auf, in echter Hardware verhält 
sich ein Design dennoch oft völlig anders. Das hängt z.B. in VHDL mit 
den "sensitivity lists" zusammen, die ein Simulator natürlich anders 
auswertet als echte Hardware.
Bei Ablauf auf FPGA kann auch ein Fehler in der Synthesesoftware 
entdeckt werden, der bei Simulation natürlich nicht passiert. (Ok, es 
gibt auch Netzlistensimulation, die ist aber wesentlich langsamer...)

von EinGast (Gast)


Lesenswert?

Während der Entwicklung verwendet man RTL-Simulationen. Sobald es 
richtung Tapeout geht werden die Netzlisten simuliert, inklusive den 
Delays des beabsichtigten Prozesses.
Zusätzlich wird die funktionale Equivalenz der Netzliste und des 
RTL-codes mithilfe spezieller Software geprüft (formale Verifikation).

Wenn das alles funktioniert wie gewünscht (und beim Testen nichts 
übersehen wurde) kann man schon davon ausgehen dass das Design im ASIC 
am Schluss auch genau so funktioniert.
Als ich bei einem einschlägigen Unternehmen war, wurden FPGAs nur 
gemacht wenn der Kunde das gewünscht hat, zwingend notwendig ist es 
jedoch nicht wenn die Kompetenz und die richtige Software vorhanden ist.

von Fpgakuechle K. (Gast)


Lesenswert?

Martin schrieb:
> Hallo,
>
> ich habe Fragen zum Entwurf von µC und Prozessoren. An der Uni kann man
> bei uns Pratikas machen, in denen man ganze µC mittels VHDL entwirft um
> diesen auf einem FPGA laufen zu lassen. Ich weiß wie FPGAs funktionieren
> und der Entwurf ist mir in etwa klar, aber macht man das in der Praxis
> auch so? Entwerfen Hersteller wie Texas Instruments ihre µC ebenfalls in
> VHDL?
> Was machen Prozessorhersteller wie INtel und AMD? Werden die Prozessoren
> ebenfalls in VHDL oder Verilog entworfen und auf FPGAs getestet?

Ja, das ist gängig, nennt sich Prototypen für ASIC. Das macht man um
- das eigene design zu prüfen
- für die Softwareentwickler Hardware bereits vor der langwierigen ASIC 
fertigung zu haben
- schnell sich wandelnde Standards (LTE) evaluieren zu können
-für Kunden die auf das eigene produkt aufsetzen, schon mal ein Art 
testmustergenerator zu haben (z.B. fertigt Erikson Handy-Prototypen aus 
FPGA's für die BaseStation-Entwicklung)

Diese Dinger sind u. U. schon in Küchenblechgröße und lauf schon recht 
schnell im Vergleich zu einer Simulation (Taktfrequ. FPGA typ 50 ... 500 
MHz).

AMD in der Sachsenmetropole beispielsweise liess seinen Chipsatz auch 
auf FPGA's bauen, damit die LinuxTruppe schon mal Treiber stricken 
konnte.

MfG,

von Panzer H. (panzer1)


Lesenswert?

Hey noch Was schrieb:
> Grafikprozessoren sollen heutzutage als FPGA laufen. Da sind die
> Produkteabfolgen viel schneller wie bei einer HauptCPU. Deshalb ist ein
> FPGA auszuliefern guenstiger wie maskenprogrammiete CPUs.

Was ist für Dich ein Grafikprozessor?

Eine HighEnd-Gamer-Grafikkarte ist ja wohl Massenware.
Entsprechend wird das ein ASIC/SOC.
Wer sollte die Dinger sonst bezahlen können, wenn sie auf FPGA(s)
liefen.

Industrie/Med mit ihren homöopathischen Stückzahlen läuft eher auf
FPGA, weil die Stückzahlen gering sind und die NRE für ein paar ASICs
unbezahlbar wären.

von Martin (Gast)


Lesenswert?

Erstmal vielen Dank für eure Antworten.
Werden die Prozessoren und µC dann noch per Hand "optimiert"? Meine 
Frage zielt darauf, dass ich mir nicht vorstellen kann, dass diese Art 
von Design wirklich "sauber" ist. Wenn man beispielsweise µC in C 
programmiert, wird wohl nicht so optimiert sein, wie wenn man das Gerät 
in Assembler programmieren würde. Findet hier also noch eine Optimierung 
der Schaltung per "Hand" statt? (Also wirklich auf Transistor bzw. 
Gatterebene?)

von Fpgakuechle K. (Gast)


Lesenswert?

Martin schrieb:
> Erstmal vielen Dank für eure Antworten.
> Werden die Prozessoren und µC dann noch per Hand "optimiert"? Meine
> Frage zielt darauf, dass ich mir nicht vorstellen kann, dass diese Art
> von Design wirklich "sauber" ist. Wenn man beispielsweise µC in C
> programmiert, wird wohl nicht so optimiert sein, wie wenn man das Gerät
> in Assembler programmieren würde. Findet hier also noch eine Optimierung
> der Schaltung per "Hand" statt? (Also wirklich auf Transistor bzw.
> Gatterebene?)

Der Vergleich mit c_Compiler und assembler führt dich eher in die Irre.
Verkürzt ist es so:
Man entwirft die CPU auf mehreren Abstraktionsebenen, also RTL, Gatter, 
Transistor. Auf jeder Ebene prüft man ob die auch das macht was, was sie 
soll, also man vergleicht sie mit der nächsthöheren. Den Übergang von 
einer höheren zu einer niedrigeren nennt man Synthese. Das können tools 
machen, da kann man per Hand eingreifen, oder man macht es komplett neu.
So ne CPU wird zuerst modelleirt, das kann ein Algorythmus in C sein, 
oder in einer Hardwarebeschreibungssprache (HDL). Hat man die 
Beschreibung in der HDL kann man die auf verschiedenen "Architekturen" 
umsetzen. z:B. FPGA, ASIC-Gatarray oder komplettdie Transitoren selbst 
zeichnen (Full Costum).

Für einen FPGA wird man ein Nand-Gatter mit einer LookUp-table 
realisieren, ebenso OR etc.. Dan man mit einer LUT verschiedenste 
Gatterfunktionen realisierenkann ist sie auch größer und langsamer als 
eine klassischen CMOS-NOR Gatter. Intel wird also bei der Synthese aus 
RTL ein Element NAND aus seiner Bauteibibliothek nehmen. etc also 
optimierte Elemente. Dann muss dann noch extra Kram rein, für Tests 
(Scan-Path. JTAG-BSCAN) und um Fehler bei der Fertigung auszugleichen 
(sewing gates). hat das dann alles zusammengeschaltet (als Netzliste) 
fällt Platzierung und Routing an (so wie beim PCB).

Optimierung wurde ich das nicht nennen, es ist eher ein kompletter 
neuentwurf aus den gleichen VHDL-Code. So also ob du einen tollen 
Algorithmus zum Kantenglatten hast (als Formel beschrieben) und denn 
setzt du einmal in Basic zur Ausgabe auf einer superschnellen GraKa um, 
und dann nochmal , dann läuft er auf einem LowPower Mikrocontroller und 
kleckst Tinte sparend auf einem Drücker glatte Linien.
 MfG

von Bitschubser (Gast)


Lesenswert?

Mir hatte das Buch "CPU-Design - Entwurf eines RISC-Prozessors in VHDL" 
( ISBN 978-3-8442-6666-5) als Einstieg in diese Materie sehr geholfen. 
Der Author beschreibt darin Schritt für Schritt den Entwurf einer CPU in 
einer Hardwarebeschreibungssprache.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.