Hallo, kennt jemand von euch gute Dokumente im Netz oder Literatur, die sich mit dem Thema "Mikrocode-Programmierung" für IP-Cores beschäftigt. Speziell interessieren mich Herangehensweisen, Konzepte, "Best Practices", Excel-Sheets für die Microcode-Erzeugnung etc. Mich würde auch interessieren, wie ihr die Mikrocode-Programmierung in der Praxis angeht. Danke!
Als erstes poste ich immer erstmal boss-like ein paar Buzzwords in Foren, und gucke, wie die Welt so drauf reagiert. Excel ist auf jeden Fall DAS Top-Werkzeug meiner Wahl, das keinem Entwickler fehlen sollte.
kolabier schrieb: > Als erstes poste ich immer erstmal boss-like ein paar Buzzwords in > Foren, und gucke, wie die Welt so drauf reagiert. > Excel ist auf jeden Fall DAS Top-Werkzeug meiner Wahl, das keinem > Entwickler fehlen sollte. Mir kommen diese Begriffe auch Boss-like oder Berater-like vor, nicht Programmierer...
Hä... Ich bin weder Boss noch Berater, sondern Programmierer! Warum kriege ich eigentlich so blöde Antworten auf eine vernünftige Frage? Falls die Frage nicht "vernünftig" sein sollte, dann erklärt mir bitte warum! Ich habe schon die oben angegebenen "Buzzwords" gegoogelt, konnte aber nichts finden. Und da ich bisher noch keine (hilfreichen) Antworten bekommen habe, gehe ich mal davon aus, dass es dazu - im Gegensatz zu anderen FPGA-Themen - tatsächlich nicht allzu viele Infos im Netz gibt...
Hi, viel zum Thema Microcode-Entwicklung findet sich wirklich nicht - unter dem Stichwort "Microprogramming" kommt man teilweise weiter. Viele Arbeiten zu dem Thema kommen eher aus den 70er/80er Jahren, wie z.B. (shameless plug) unser "MIMOLA"-System: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.2653&rep=rep1&type=pdf Zum Einstieg in Microcode-Programmierung ist vielleicht der MikroSim nicht übel, mit dem u.a. die Studenten in Marburg "gequält" wurden (leider nur eine Windows-Anwendung): http://en.wikipedia.org/wiki/MikroSim Beim Free-6502 core (eine Implemetierung des guten alten MOS6502) ist ein Spreadsheet für den Microcode dabei, das vielleicht ganz interessant ist. Leider ist free-ip.com schon seit ein paar Jahren offline (bzw. eine Spammerdomain), aber archive.org hat die letzte Release des Cores noch: http://replay.waybackmachine.org/20011216121838/http://www.free-ip.com/6502/Free6502_v07.ZIP Unter "microcode" findet sich das entsprechende Excel-Sheet und eine csv-Datei. Zu state machine-Entwurf mit Mikroprogrammierung und Excel gibt es hier noch ein paar Informationen: http://www.grimmeissen.com/page.aspx?ID=21 Die Uni Toronto hat Microprogramming Notes unter http://www.dgp.toronto.edu/~ajr/258/notes/micro/ Ein paar ganz interessante Blogartikel zum Thema "Spreadsheets für Hardwareentwurf" finden sich unter http://fpgacomputing.blogspot.com/2007/09/replacement-for-von-neumann-model.html (und Folgeartikel). Nicht direkt Microcode-bezogen, aber vielleicht auch ganz interessant. Vielleicht helfen dir die paar Links schonmal weiter...
Mikrocode-Programmierer schrieb: > Warum kriege ich eigentlich so blöde Antworten auf eine vernünftige Frage? Weil die meisten, so wie ich, die beiden Begriffe Microcode und IP-Core nicht so recht unter einen Hut kriegen und Du einfach nicht genügend Informationen gegeben hast, was Du eigentlich brauchst und willst. Da hätte ich z.B. einmal vermutet, dass Du nicht genau weisst, wovon Du sprichst. Unter Microcode verstehe ich eine Low Level Programmiersprache gewisser CISC Prozessoren wie die Intel Familie und hat mit IP-Cores so im ersten gar nichts zu tun. IP-Cores werden mit VHDL oder Verilog geschrieben, das ist etwas ganz anderes.
Danke Michael für den ersten hilfreichen Beitrag und die Links. Ich werde mir die gleich nochmal genauer anschauen. Klaus Falser schrieb: > Unter Microcode verstehe ich eine Low Level Programmiersprache gewisser > CISC Prozessoren wie die Intel Familie und hat mit IP-Cores so im ersten > gar nichts zu tun. > IP-Cores werden mit VHDL oder Verilog geschrieben, das ist etwas ganz > anderes. Okay, vielleicht habe ich mich da missverständlich ausgedrückt. Auf CISC-Prozessoren wollte ich nicht hinaus. Ich benötige die Mikroprogrammierung um einen komplexen Datenpfad zu steuern. Es handelt sich dabei um einen einen Algorithmus aus der Bildverarbeitung, den ich auf einen FPGA (bzw. als IP-Core) implementieren möchte.
Mikrocode-Programmierer schrieb: > Ich benötige die Mikroprogrammierung Was verstehst Du unter Microprogrammierung? Du willst einen Algorithus in einem FPGA realisieren, ok. Dazu hast Du 3 Möglichkeiten : - Du realisierst den Algorithmus in Hardware des FPGA. Dazu musst Du den Algorithmus in VHDL oder Verilog umsetzen. Das ergibt (meistens) die schnellste Abarbeitung des Algorithmus, aber man ist limitiert in Bezug auf Speicher, Floating Point Berechnung usw. - Du realisierst mit dem FPGA eine embedded Prozessor, und der arbeitet den in C geschriebenen Algorithmus ab. Das ergibt aber keine Geschwindigkeitsvorteile gegenüber einem PC. - Man verwendet einen Mischung der oben genannten Methoden, indem man bestimmte Teile, z.B. die FFT in Hardware realisiert und andere Teile des Algorithmus vom embedded Prozessor rechnen läßt.
Hi, falls noch anderen Leute auf diesen Thread gestoßen sind: Ich habe zwei interessante Dokumente zum Thema Mikrocode-Programmierung gefunden: 1. http://ati.ttu.ee/~alsu/EK_2008_MicrProgr_RTL.pdf 2. "Implementation of Microprogrammed Control in FPGAs", Bruce W. Bomar, April 2002 (Gefunden bei IEEE)
Klaus Falser schrieb: > Dazu hast Du 3 Möglichkeiten : 4) Er implementiert einen anwendungsspezifischen Prozessor mit genau den Befehlen die er für seine Aufgabe benötigt, so ähnlich wie in dem Projekt Audio-DSP mit Spartan 3-FPGA. Und dafür kann man schon mal nachfragen was sich so anbietet für die Erstellung der Programme. Ich verstehe nicht wieso diese Frage hier so "heruntergemacht" wird.
Andreas Schwarz schrieb: > Ich verstehe nicht wieso diese Frage hier so "heruntergemacht" wird. Ich hoffe nicht, hier jemanden oder etwas heruntergemacht zu haben. Wenn jemand aber, und ich denke, das war hier leider der Fall, 2 oder 3 Stichworte hinschmeisst, und man sich schwer tut, Wissenstand oder Hintergründe der Fragestellers einzuschätzen, dann müssen die Antworten halt auch ein bisschen nebulös ausfallen. Wie soll man jemandem korrekt helfen, wenn man nicht weiss, ob der Fragesteller ein größenwahnsinniger 14jähriger ist, der ein, zwei Artikel gelesen hat und jetzt seine eigene CPU schreiben will oder ob es ein Uni-Diplpomand mit konkreten Vorstellungen ist, der noch auf ein paar Ideen hofft?
Andreas Schwarz schrieb: > verstehe nicht wieso diese Frage hier so "heruntergemacht" wird. Vielleicht aufgrund der in diesem Kontext auf den ersten Blick etwas deplaciert wirkenden Erwähnung von Excel-Sheets, mit denen man gemeinhin andere Sphären assoziiert (Stichwort BWL ;-). Wobei ich aber für möglich halte, dass jemand das mal als Editor/Assembler für die Entwicklung von Mikrocode verwendet hat, so absurd ist das nicht.
Beitrag #5444541 wurde von einem Moderator gelöscht.
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.