Normalerweise schreibt man ein Design in VHDL, simuliert es in ModelSim, synthetisiert es in der Xilinx-ISE-Design-Suite und schreibt das Hexfile per USB in ein CPLD oder FPGA. Ich möchte jetzt eine einfache Schaltung, zum Beispiel einen 1-Bit-Volladdierer, auf Papier entwickeln, auf Papier übersetzen (in eine Art Hexfile), dieses Hexfile in meinen C64 eingeben und über den Userport das CPLD oder FPGA programmieren/konfigurieren. Leider finde ich nirgendwo Angaben, wie man das Hexfile selber erzeugen kann. Kann mir da jemand weiterhelfen ?
Soweit mir bekannt ist, sind die Programmieralgorithmen für GALs nicht veröffentlicht worden. Ich hatte letztens http://www.mikrocontroller.net/articles/Low_Cost_FPGA_Konfiguration gelesen und hatte mir gedacht, daß ich statt eines Attiny meinen C64 verwenden könnte. Die Ansteuerung über USB ist aber etwas kompliziert. Vielleicht kann man eine einfache Schaltung ja auch selber in das Hexfile übersetzen, nur habe ich dazu in den Datenbüchern nicht viel gefunden.
Oliver Kroll schrieb: > Leider finde ich nirgendwo Angaben, wie man das Hexfile selber erzeugen > > kann. Da wirst Du Pech haben! Solche Files sind FPGA-spezifisch und nur speziell ausgesuchte Partner der FPGA-Hersteller bekommen diese Infos unter NDA, um z.B. an partial reconfig zu forschen. Das Ganze ist dann noch schwer platzierungsbahängig. Du musst Dir ja vorstellen, dass ganz bestimmte LUTs zu ganz bestimmten Interconnections passen, die dann alle geschaltet werden müssen. Du musst also alle Randbedinungen und Topologieaspekte einfliessen lassen, um zu einem solche file zu gelangen, dass dann etwas einfaches tut. Ich sehe auch den Sinn nicht ganz ein, warum man vom enfachen VHDL auf die unterste Bit-Ebene gehen soll.
Das problem wird sein, das kein FPGA/CPLD Hersteller Informationen zum internen Aufbau und somit die Erzeugung der HEX Datei zur verfügung stellt
Daß die Daten nur unter http://de.wikipedia.org/wiki/Geheimhaltungsvertrag vergeben werden, beantwortet meine Frage schon. Kann man dann eben leider nicht selber. Die Mühe des Plazierens hätte ich mir für eine kleine Schaltung (1-Bit-Volladdierer) schon gemacht. Ich hätte es wichtig gefunden, ein FPGA einmal ganz selber konfiguriert zu haben.
Also hier werden die GAL-Programmieralgorithmen beschrieben: http://www.armory.com/~rstevew/Public/Pgmrs/GAL/algo.htm
Wenn Du das unbedingt testen willst: Nimm den FPGA-Editor. Dort kannst Du Logik einbauen und direkt das Prog file generieren. Das entspricht in etwa der Eingabeebene von früher, als es noch kein VHDL gab.
Mirco schrieb: > Wenn Du das unbedingt testen willst: Nimm den FPGA-Editor. Dort kannst > Du Logik einbauen und direkt das Prog file generieren. Das entspricht in > etwa der Eingabeebene von früher, als es noch kein VHDL gab. Der FPGA-Editor (www.xilinx.com/support/sw_manuals/2_1i/download/fpedit.pdf) ist ein graphisches Programm. Ich hatte eher an die Instruction set summary von Mikrocontrollern gedacht. Aber scheint ja geheimgehalten zu werden.
Der Schritt von der Netlist zum physical placement im FPGA ist schon nicht klein, aber von dort in Richtung Programmierfile sicher gewaltig. Kennst DU Dich mit den internen Strukturen aus? Weisst Du, welche FFs und Schalter zu setzen musst, um alleine eine LUT zu ins Laufen zu bekommen, wie Du es brauchst? Dasselbe gilt für IOs-ZEllen und die vielen Schaltzentren. Die musst Du alle irgendwie setzen, damit ein Signal von links nach rechts durch den Chip läuft. Da werden auch bei Xilinx einie 10 Leute dran sitzen, um das zu pflegen. Einarbeitsungausfwand 5 Jahre!
Oliver Kroll schrieb: > Soweit mir bekannt ist, sind die Programmieralgorithmen für GALs nicht > veröffentlicht worden. Link: http://www.s-line.de/homepages/bosch/indexen.html C-Source-Code: galasm.tar.gz http://www.s-line.de/homepages/bosch/galasm/galasmen.txt Somit ist das was für das Project. Architektur und Position der Fuse Matrix ist bei Lattice zu holen. Viel Erfolg. Gruss Holger.
Na gut. GALs könnte man dann vielleicht programmieren. Aber CPLDs und FPGAs anscheinend eben leider nicht. Vielen Dank an alle.
Bei kleinen+alten Xilinx FPGAs hast du eine relativ gute Doku über die Architektur. Dazu noch ein "sehr" kleines Programmierfile. Mit etwas rev.eng. lässt sich da eineiges entschlüsseln. Du must ja nicht jedes Feature verwenden, IO und interne Zellen (FF+LUTs) und deren Verschaltung untereinander sind schon genug für den Anfang. Bei Xilinx CPLD (XC9000/XL) werden z.B. Progfiles im JEDEC Format erzeugt. Deren Dekodierung ist relativ simple. Einfach mal schauen, was sich bei einzelnen IOs verändert, schon hat man einen Algo für IOs. Für die interne Struktur ist es ein wenig komplizierter, aber auch machbar.
http://www.xilinx.com/support/documentation/application_notes/xapp151.pdf http://www.xilinx.com/support/documentation/application_notes/xapp137.pdf http://www.xilinx.com/support/documentation/application_notes/xapp138.pdf http://www.xilinx.com/support/documentation/application_notes/xapp139.pdf Hab ich mich früher mal mit beschäftigt. Self reconfigurable computing Stichwort JBits
Für GALS reicht übrigens das Datenblatt dafür aus ! Neben und über den Logikdiagrammen stehen die Bits die gebrannt werden müßen im JEDEC file. Je nach Modus. Und wie die OLMC konfiguriert werden muß. http://www.latticesemi.com/lit/docs/datasheets/pal_gal/16v8.pdf
Warum denn die Mühe? Wäre es nicht sinnvoller, so etwas wie ein XSVF zu erzeugen und dann im C64 den XSVF-Player zu implementieren? http://www.xilinx.com/support/documentation/application_notes/xapp503.pdf
Ich habe vielleicht doch etwas gefunden: In www.xilinx.com/support/documentation/application_notes/xapp452.pdf wird beschrieben: Bitstream Composition und Configuration Frame Addressing Ist erst einmal eine Menge zu lesen. Aber damit könnte man dann vielleicht doch eine kleine Schaltung selber auf Papier übersetzen (und in ein FPGA hineinschreiben). Und Geheimhaltungsverträge gibt es dann anscheinend für diesen Teil nicht.
Naja, da steht aber nicht sehr viel über Routing der Interconnects drin (der Aufbau der Verdrahtungsmatrix). Also wenn du das wirklich machen willst geht eigentlich nur Virtex 1 und E. Für die Theorie kannst du auch mal nach CAL1024 bzw. XC6200
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.