Hallo zusammen, hat jemand schonmal irgendwelche Infos darüber gefunden, wie Konfigurations-Bitstream codiert ist? Also welche Bits gehen in welche LUT, welche Bits setzen die Verbindungsmatrix etc. etc.! Ich hab mich schon mehrfach danach zu Tode gegoogelt, aber es gibt keine Doku. Wozu ich das benötige? Ich will eine Hardware-Evolution per Genetischem Algorithmus betreiben, so wie das z.B. A. Thompson gemacht hat, siehe auch: http://www.cogs.susx.ac.uk/users/adrianth/ade.html Es gibt auch komplette Konferenzen zu dem Thema, also irgendwie müssen die Jungens die Kodierung der FPGAs haben (mir schwebt Xilinx Spartan-3 vor). Danke und Gruß Fred
Hm, ich würde vermuten das sie VHDL Designs durch genetische Algorithmen optimieren. Sprich man hat ja als kleinste Bausteine sein Gatter, Schieberegister, Latches, Buffers etc. pp. Die genetische Individuuen stellen in ihren Genen/Alleelen/Chromosomen diese Gatterkombinationen dar + deren Signalverküpfungen. Vor vielen Jahren habe ich an sowas ähnlichem gearbeitet. Dabei wurden aber Formeln optimiert. Die Individuuen bestanden also in ihrer Erbmasse aus mathematischen Operationen wie Addition/Subtraktion/Multiplikationen/Negierungen und zusäzlich noch Konstanten und Variablen. Daraus setzten sich dann Formeln zusammen. Aufgabe war es ein Set von Eingabeparametern durch eine möglichst kompakte und effiziente Formel in ein Set von Ausgabeparamatern zu wandeln. Im grunde also sowas ähnliches wie du es versuchen willst, halt in deinem Falle boolsche Algebra überwiegend. Nur stelle dir das nicht so einfach vor. Das was bei den genetische Algorithmen bzw. Eveolutionsstraegien so schwierig ist sind die Festlegungen der Selektionsfunktionen und der Generationenparameter, sprich Mutationsrate, mehrgeschlechtliche oder ungechlechtiliche Rekombinationen, Chromosomenrekombinationen ect. pp. Das gleiche Problem im übertragenen Sinne hat man mit den Neuronalen Netzen auch. Im besten Falle findet man eine überraschende Lösung nach wenigen Generationen/Trainingszyklen, im schlechtesten Falle findet man garnichts und die Generationen stagnieren zu oft und zu schnell und adaptieren das Problem überhaupt nicht. Auf alle Fälle keine einfache Aufgabenstellung, viel Spaß. Achso: wenn ich nich vollständig falsch informiert bin so ist gerade das physikalisch Routing innerhalb der CPLD/FPGA's das "Geheimnis" der Hersteller. So musst du immer deren Software benutzen, oder hast du schonmal sowas wie zb. Xilinx WEBPack von einem fremden Dritt-Software-Hersteller gefunden ?? Gruß Hagen
Hallo Hagen, ganz bestimmt ist Thompson nicht den Umweg über VHDL gegangen, das findet man auch immer wieder in seinen Publikationen. Deine Bemerkungen zu den Schwierigkeiten bei der Evolution sind berechtigt, aber da ich das seit Jahren mache ist das unproblematisch. Die Lösungen, die man bei Hardware-Evolution erhält sind sehr interessant und nutzen teilweise Quanteneffekte zwischen eng liegenden Datenbahnen innerhalb des FPGAs aus. Ich überlege im nächsten Wintersemester ein konkretes Projekt an engangierte Studenten zu geben, wo so etwas experimentell untersucht wird. Thompson hat seine FPGAs während der Evolution in Kühlschränke, unter Heissluftföns etc. begeben, um "robuste" Individuen zu bekommen, die unter verschiedensten Bedingungen noch funktionieren (Quanteneffekte sind nicht über den gesamten Temperaturbereich gleich). Ich befürchte, dass es irgendwelche Deals zwischen Forschern und den FPGA-Herstellern gibt, dass die benötigten Informationen unter Geheimhaltungsverpflichtung für Forschungszwecke zur Verfügung gestellt werden. Leider habe ich nicht die Kapazität um langfristig ein größeres Projekt hierzu durchzuführen, sonst würde ich mal mit Xilinx in Verbindung treten. Aber für ein 1-semestriges Studentenprojekt brauche ich das sicher nicht versuchen... Gruß Fred
Hm, ich verstehe noch nicht ganz wie du vorgehen möchtest. So wie ich es sehe willst du binär in den FPGA's einfach die Daten, sprich Gene evulieren. Nach meinem Erachten halte ich dies aber nicht für so clever da dies ja auf reiner "Zufalls-Evolution" hinausläuft. In meinen genetischen Algorithmen war die logische Gruppierung der verschiedenen Operationen in Gene->Allele->Chromosomen sehr wichtig um ungültige Formeln von vornherein ausschließen zu können. Erst diese logische Gruppierung ermöglichte es das die Individuuen auch funktionstüchtige Formeln darstellten und somit nicht bei jeder Generation 90% der Individuuen duruch die Selektionsfunktion abgetötet wurden. Die Regeln der Mutation wirkten nur auf die Gene als kleinste Einheit, sprich den verschiedenen Operationen und Konstanten. Bei der geschlechtlichen Rekombination wurde aber auf Allele/Chromosomen Ebene gearbeitet und somit gültige Teilformeln nicht zerrissen. Die Individuuen waren also in jedem Falle immer funktionstüchtig und wurden durch die Regeln der Evolution nicht selber dauernd zerstört. Andererseits wäre es bei deiner Aufgabenstellung von enormer Wichtigkeit das du dirketen Zugriff auf die örtliche Verteilung der Signale/Makrozellenbenutzung/Register bekommst. Ansonsten wäre es tatsächlich nicht möglich die "gegenseitigen Quantenbasierten Beeinflussungen" auszunutzen, auch wenn ich mir das jetzt so schwer vorstellen kann :-) Denn wie soll deine Selektionsfunktion diese Quantenunterschiede im Fitting zur Fitness eines Individuums umrechnen können. Das muß ja erstmal meßbar sein. Scheint ne interesante Sache zu sein, aber bei weitem ausserhalb meiner Reichweite. Gruß Hagen
Na, wenn es Dich interessiert lies doch mal eines der Thompson-Papers - ist sehr spannend und die Methodik wird auch sehr genau beschrieben. Die Fitness wurde definitiv nur nach erzielter Verhaltensleistung berechnet. Beispiel: Evolvieren eines Tongenerators, Fitness umso höher, je genauer an der Zielfrequenz. Die haben das binäre Gen auf den Bereich von ein paar CLBs beschränkt und ein Signal daraus auf einen Pin gelegt, an dem gemessen wurde. Aus der Messung allein wurde die Fitness berechnet. Auf die Quanteneffekte hatten sie's nicht angelegt - aber die spätere Analyse eines Individuums brachte zu Tage, dass die Schaltung eigentlich nicht funktioniert (per Simulator z.B.) - in der Praxis tat sie's aber doch! Genauere Analysen haben dann die Quanteneffekte entdeckt. Wichtig ist also auf jeden Fall, dass man das Ganze nicht durch irgendein Tool schickt, wo der Floorplan bzw. das genaue Layout unklar ist oder sich unkontrolliert verändern kann. Man muss eben aus dem Konfigurationsstream die Bits maskieren, die ausserhalb der Ziel-CLBs liegen. Kann man mühsam auch reverse-engineeren... aber hatte halt die Hoffnung, dass jemand ein Dokument dazu in der Schublade hat. Gruß Fred
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.