CPLD und FPGA von Hand konfigurieren

OP #3021964
Lesenswert?

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 ?
OP #3021980
Lesenswert?

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.
Gast #3022003
Lesenswert?

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.
OP #3022052
Lesenswert?

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.
Gast #3022078
Lesenswert?

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!
Persönliche Seite #3022302
Lesenswert?

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.
Gast #3022445
Lesenswert?

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.
OP #3026146
Lesenswert?

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.
Gast #3029030
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren