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
> 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
Viel mehr wird wahrscheinlich aber auf Simulation gesetzt - damit kann man einfach mehr Testfälle abfangen wie bei einer Synthetisierung auf einem FPGA.
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.
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 :)
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...)
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.
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,
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.
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?)
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.