 von FPGAs bei Mattia Lasser. Der wird übersetzt von Franz Tee und Farmerfirma. Viel Spaß dabei. Ja, es geht darum, wie man FPGAs für feldprogrammierbare Gate Rays reverse und insbesondere geht es mit Zylings 7 und die Lettes ECE 40 Serie, ECE 40. Und hier kommt Matthias. Hallo. Hallo. Können Sie mich hören? Ja. Die Frage ist, worum geht es in diesem Vortrag überhaupt? In diesem Vortrag werden wir darüber reden, was ein FPGA ist wie es funktioniert, was es macht, wofür steht FPGA überhaupt und dann erzähle ich euch, wie ich es zu reverse ingreniert habe und ein paar Bilder und so weiter. Was dieser Talk nicht darüber beinhaltet. Es geht nicht darum, wie man FPGAs benutzt. Ich kann die überhaupt nicht benutzen. Ich habe Verelog oder VHDL noch nie gelernt und der Vortrag ist auch nicht über High-Level-Synthesie. Kurz Erklärung, warum ich versucht habe, die ECE 40 zurück zu engenieren vor 4 Jahren. Ich wollte eine CPU bauen und ich hatte das Problem, dass das Chipdesign und das Chiperstellung viel zu teuer ist. Der nächste einfache Weg ist, ein FPGA zu verwenden. Aber ich wollte Verelog nicht lernen oder VHDL auch nicht. Also habe ich beschlossen, mich hinzusetzen und den Bitstream-Format und den internen Layout zu dokumentieren. Wie dem auch sei, FPGAs bedeutet Field Programmable Gate Array. Was bedeutet das? Field Programmable bedeutet, dass es im Feld programmiert werden kann. Dort, wo man ist und innerhalb eines existierenden, auf einem existierenden Platine. Das zweite ist Gate. Gate sind durgische Gatter und das Ganze ist ein zweidimensionales Array von diesen Logikgattern. Also wir haben programmierbare Logikgatter. Was ist überhaupt diese Logik? Bevor ich euch erzähle, wie ein FPGA funktioniert, müssen wir die ersten Logikgatter verstehen. Wir haben vier Operatoren. Wir haben nicht, wir haben und, wir haben oder und wir haben Exklusives oder XOR. Unten sieht man die Wahrheitstabellen und wenn wir am Eingang zum Beispiel beim Oder-Gate 0, 0 haben, dann ist das Ergebnis 0. Wenn wir 0, 1 haben, dann kommt 1 bei Oder heraus. Der nächste Punkt ist, wir können viele Logikgatter hintereinander schalten in Kreis. Und hier ist ein Beispiel von einem Ein-Bit-Full-Adira, der kann benutzt werden, um Addition zu implementieren und er benutzt zwei exklusives oder Gatter, zwei und Gatter. Der benutzt drei exklusive oder mehrere Implementationen davon. Wir können Wahrheitstabellen von solchen Gattern benutzen, von dem, was beim Input ist und dem, was beim Output ist. Darüber können wir auch verschiedene Logikgatter zusammen koordinieren in eine einzelne Tabelle. Ich habe die Arbeit für den Full-Adira hier gemacht und hier haben wir unsere drei Inputs und zwei Outputs und wenn wir zum Beispiel A1 haben B0 und wir haben ein Carry von 1, dann wissen wir, dass das Ergebnis 1 ist und der Carry-Out, der Output ist 0 und das Carry-Out ist 1. Wir müssen uns nicht die ganze Logik verstehen. Wir können es durch einen Lookup-Table implementieren und der Lookup-Table ist das kleinste Teil von einem FPGA. Dieses Ding implementiert die Logikgatter. Aber wir brauchen mehr als ein Lookup-Table. Lass uns ein bisschen weiter raussumen und noch ein bisschen weiter. Was wir hier sehen können, ist eine Scheibe in dem siebten Serie Xilings FPGA. Diese sind vier Lookup-Tables mit jeweils sechs Inputs und sie werden von einer Übertrags-Unit gefolgt, weil Additionen mit Lookup-Tables zu lange dauern würden und weil wir das ganze relativ häufig brauchen, ist es viel billiger für den Hersteller eine Übertrags-Einheit zu implementieren. Am Output gibt es Flipflops, weil wir manchmal den Status synchronisieren müssen oder wir müssen ein Information-Bit speichern. Dann nehmen wir einen Lookup-Table, einen Teil der Carry-Katter und den Sieben-Serie 2 Flipflops in eine logische Zelle. Vier logische Zellen sind eine Scheibe und eine Slice. Zwei Slices schreiben zusammen mit einer Switchbox und den Interconnects in eine Fliese eingepasst oder Teil. Wir haben umgebende Teils oder Fliesen und so wird Logik implementiert und so wird das alles verkabelt. Jetzt zoomen wir noch weiter raus. Hier können wir sehen, dass sehr viele von diesen Fliesen in Zeilen zusammen gruppiert werden. Eine Zeile hat 50 Fliesen, das ist ein relativ kleines Gerät, es hat nur 186 Zeilen und das ist equivalent zu 9700 Fliesen. Die Zeilen sind in Gruppen zusammengefasst, dieses Gerät hat 6 Gruppen und das ist wie ein FPGA-Intern aufgebaut. Aber wir verstehen eine Sache noch nicht, wir können immer noch nicht mit der restlichen Welt kommunizieren. Dafür brauchen wir eine Brücke oder Input-Module und außenrum haben wir Input-Output-Fliesen. Aber gibt es da mehr als diese zwei Fliesen? Ja, natürlich. Manchmal ist Logik nicht ausreichend. Manchmal brauchen wir Speicher. Natürlich könnte man Speicher in Logik implementieren und darum werden sogenannte Blockram eingeführt. Hier sind die Zeilen mit Blockram in diesem spezifischen Gerät und jedes kleine 4-Egg beinhaltet 36 Kilo Bits an Speicher und es gibt 140 Arbeitsspeicherblöcke in diesem Gerät. Manchmal ist der Arbeitsspeicher auch nicht genug. Manchmal braucht man ein Prozessor und eine arithmetische Funktion wie Multiplikation, die sehr viele Ressourcen auffressen. Deswegen hat der Verkäufer DSP-Teils implementiert. DSP sind digitale Signalprozesse und in diesem Fall ist es eine sehr kleine Additionseinheit mit einer Multiplikation. Jetzt verstehen wir, wie ein FPGR grundsätzlich aufgebaut ist, aber wie konfigurieren wir diese Teile? Wie weiß jede Lookup-Table ihre Werte? Wie wissen die Flipflops, wie sie initialisiert werden? Wie wird alles hin und her geschaltet, das wird gemacht mit dem sogenannten Bitstream? Das Problem ist, dieser Bitstream ist nicht dokumentiert, konfiguriert alle Switchboxen, die Lookup-Tables. Er macht einen Initial-State des FPGRs, initialisiert das. Das Ziel beim Reverse-Engineeren ist nun, diesen Bitstream zu dokumentieren. Vor vier Jahren habe ich den AIS 40 FPGR reverse-engineered. Hier eine kurze Zusammenfassung. Das AIS 40 FPGR ist ein sehr, sehr kleines FPGR. Es ist optimiert für niedrigende Energieverbrauch. Es hat nur 384 bis 700 Was-Lock-Cup-Tables mit vier Eingang. Auch die RAM-Blocken sind klein, aber es ist gut für Anfänger, das ist sehr günstig. Das ist das, was uns der Hersteller gibt. Es zeigt die programmierbaren Logik-Blocke. Man sieht, dass diese acht Lookup-Tables enthalten und dass das Ganze mit den Input-Output-Kackeln oder Fliesen umgeben ist. Wir wissen aber nichts über den Interconnect, über die Verbindungen zwischen einander und wir wissen auch nicht, wie viele Zeilen und Spalten wie viele Fliesen wir insgesamt haben. Wenn wir das genauer ansehen und den Kontroll-Logik-Block genauer ansehen, so eine Logik-Zelle, dann sehen wir, dass es nur einen Flip-Lock gibt und es kann auch umgangen werden. Man kann direkt die Ausgabe der Lookup-Table nehmen und es hat nur vier Eingang. Das Spezielle daran, dass das Spezielle am Routing im IS-40 ist, wird bidirektional geroutet. Das heißt, man hat mehr als eine Quelle bei jeder Leitung. Wenn man jetzt da etwas... Das kann man jetzt aber potenziell falsch konfigurieren und es gibt einen Kurzschluss im Gerad. Man gibt auch acht global geroutete Signale, welche zu jeder einzelnen Fliese geroutet wird und auf jeder Fliese können wir von diesen einzigen Signalen auswählen. Interconnect zwischen diesen Fliesen besteht eigentlich aus vielen horizontalen und vertikalen Leitungen und jede Fliese ist mit ihren Nachbarn verbunden. Was ist jetzt daran die Herausforderung beim Reverse-Engineering? Wir hatten absolut kein Wissen über das interne Layout, keine Schemaß, keine Ahnung, wie viele Leitungen, wie viele Switchboxes, wie viele Switchboxes es gibt und wie diese verbunden sind, sondern Logik-Blöcken. Auch der Bitstream hat... ...und auch die Kommandos, um den Bitstream in das FPGA zu laden, sind nur teilweise dokumentiert. Das Ziel ist jetzt quasi, die Bitmap-Koordinaten auf die Fliesenorte zu mapen. Ich habe mir die Tools, die der Hersteller gibt, genau angeschaut, vor allem den Bitstream-Generator. Der Bitstream-Generator scheint verschiedene Strings zu enthalten, welche mit den Verbindungen und den Leitungen etwas zu tun haben und diese Namen, die kann man vergleichen. Aber sie sind hinter dem Debug-Flag, welches ich nicht umgehen konnte. Sie haben es halt kommentiert. Sie haben es eigentlich auskommentiert, aber der Compiler hat es nicht rausoptimiert. Und jetzt konnte ich also mit einer Jump Instruktion in den Tools eine kurze Beschreibung von jeder Leitung erhalten. Noch eine tolle Geschichte, wie dieses Werkzeug geschrieben wurde, ist, als ich versucht habe, es zu dekompetieren und ein paar Funktionen davon zu verstehen, konnte man eindeutig sehen, wo sie alles zusammenkuppiert haben. Wenn man eine Funktion hat, die ist in der Verbindung von Print-Fs und C-outs, dann weiß man, sie haben viel zusammenkuppiert. Eine weitere Sache, die ich mitgekriegt habe, ist der Bitstream beinhaltet CRC oder Cyclic Redance Check. Aber nirgendwo wurde achten, dass ich schon mit einem Opcode diese Funktionen ausgeführt, also XOR. Das Ganze hatte gar keinen. Wenn man einen cyklischen Redance Check hat, dann braucht man normalerweise XOR. Das hat mich ein bisschen verwundert. Also habe ich die Bitstream-Generate zufällig angehalten, habe den Arbeitsspeichel mir angeschaut und habe festgestellt, sie generieren den Bitstream in ASCII. Also zu irgendeinem Punkt habe ich gesehen, ein riesiger Strings von 1 und 0 in ASCII da war und dieser Teil wurde nur für die Checksommer generiert. Ich habe keine Ahnung, was in diesen Programmen gemacht wurde. Ich möchte gar nicht wissen, weshalb sie diesen Entscheidungen geführt hat. Aber ... Mit dem Cycling 7-Serie habe ich vor zwei Jahren reverse-engineered und da hatte ich eine andere Herausforderung. Weil die 7-Serie Cycling-Serie sehr schnell, sehr hochperformant ist. Eine einzelne 6-Look-Up-Table benutzt die Hälfte des Arbeitsspeichels einer CLI-Teile im ICE 40. Und selbst der kleinste 7-Series-FPGR hat mehr Look-Up-Tables, die deutlich größer sind als die ICE 46 und mehr als 1,7 Millionen Look-Up-Tables. Das sind ungefähr 140.000 Fliesen. Ja, andere Ressourcen in der 7-Serie. Das ist BlockRAM. Der BlockRAM hat 36 Kilo Bits von Daten, wie ich schon vorher gesagt habe. Wir haben zentrale Clock-Linge. Wir haben DSP-Fliesen und DIO-Fliesen. Das ist nur der unterste Teil des Syncs. Ich werde jetzt mehr über die Syncs, die 2020 erklären. Das ist das spezielle Gerät, das ich reverse ingesigniert habe, weil es zwei ARM Cortex beinhaltet und die konnten das FPGA neu programmieren und damit zugreifen. Ich mochte diese Idee, FPGA mit dem Arbeitsspeicher vom Prozessor zu verbinden und das zu benutzen. Aber andererseits wollte ich VRLock und VHDL nicht lernen. Das habe ich beschlossen. Das zu reverse ingenieren. Mit dieser 7-Serie musste ich meine ganze Umgebung wachsen lassen. Ich habe vorher gesagt, 9.430 Switch-Boxen. Jeder einzelne Switch-Box beinhaltet 216 Multiplexer. Sie haben 3.700 und viele noch ein paar Verbindungs-State. Sie verbinden auch mit 450 Verbindungs- und Nachbarfliesen und haben noch viele weitere Reichweiten. Die ganze Aufgabe wurde viel größer. Das ganze Gerät beinhaltet mehr als 3 Millionen Verbindungen und es gibt mehr als 33 Millionen Konfigurations-Bits. Für jeden musste ich verstehen, was Sie machen. Was waren die Herausforderungen bei der 7-Serie? Das war der sehr komplexe Design. Ich konnte überhaupt keine Debug-Information herausfinden. Außerdem war Ihre Werkzeug viel komplexer als das von Lattice. Es war zuerst in Java geschrieben. Ich kann nur C++ programmieren. Es war auch viel besser geschrieben. Ein anderes Problem, das ich zeichst gleich, ist, dass noch ein kleiner Bereich ist, wo die Bitmap, die man aus dem Bitschirm herausziehen kann, nicht passt. Dieser Teil ist, wie später herausgefunden habe, für den Fehler-Akorriktur-Teil. Außerdem war die ganze Fliese zu den Bitmaps zu übertragen. Ein sehr kleiner Ausschnitt von der Bitmap, die ich generieren kann. Als ich das erste Mal angeschaut habe, habe ich gesagt, fuck. Das sieht wie eine unüberwindbare Mauer aus. Aber ich habe schon. Ihr könnt auch schon sehen, dass es eine Muster gibt. Zum Beispiel können wir sehen, dass es größere Blöcke sind. Wahrscheinlich sind die Konfigurationsdaten für die Lookup-Tables. Jetzt müssen wir nur noch herausfinden, was die anderen Bereiche, die wie dumme Geräusche aussehen, sind. Das sind natürlich die Switchboxen. Aber wie man denen mit den Verbindungskabeln zusammenführen kann, ist sehr schwer. Wie das jetzt mit den Fliesen zu der Bitmap ist. Hier können wir sehen, dass 64 Pixels zu einer Fliese gehören. Dieser Teil scheint zu den anderen Teilen zu gehören. Mit dem Mittelbereich hatte ich keine, natürlich, die kleinen regulären Bitzelblöcke, die wir hier und hier sehen können, die müssen für den Clock-Interconnect benutzt worden sein. Hier sehen wir, dass in der Mitte die Clock ist. Wir wissen, dass es 24 Blöcke auf der einen Seite und auf der anderen Seite gibt. Aber das ist alles, was ich weiß. Das alles vermutlich nicht am Anfang arbeiten konnte. Die Federüberprüfungskode, die wir in der Mitte sehen können, das war eine Herausforderung, aber ich hatte eine Idee. Ich habe einen kleinen Parzer geschrieben, der die Anzahl von Bits in der jeweiligen Zeit die Gesetze waren. Wenn diese Nummer 1 war, dann habe ich die Information über die es in Italien gespeichert. Und daraus konnte ich herausfinden, dieses Hard-Hemmengode verwendet, also Single-Error-Connection, also reine Federerkennung, also Hemmengode. Ich würde so gerne zeigen, weder über Erklären, aber leider habe ich ein kleines Problem mit meiner Festplatte, das ist, wo mein Talk zu früh endet, glaube ich. Was können wir jetzt noch über das Reverse Engineering der 7. Serie sagen? Mit der Toolchain haben wir die Netzliste, die interne Schematik und das können wir automatisch herausrechnen. Wir kriegen Informationen über die Koordinaten der Fliesen, die Namen der Verbindung, aber wir kriegen nicht die Informationen im Bitstream. Aber wenn wir wissen, wo die einzelnen Fliesen im Bitstream sitzen, dann können wir die Daten zusammenführen. Ich habe viele Werkzeuge dafür erstellt, ich würde Sie euch gerne zeigen, aber etwas ist richtig schief gelaufen. Tut mir leid. Was sind die Implimentationen meiner Arbeit, die ich dabei getan habe? Weil ich jetzt eine Netzliste aus den unterschiedlichen Bitstreams erstellen kann und deswegen kann ich Cross-Compile von Bitstreams, von unterschiedlichen Architekturen. Damit können wir extrakte und reverse-engineerte IP-Cores, die ansonsten nicht untersuchtbar sind. Außerdem können wir jetzt anfangen, ein neues Projekt iStorm starten, um ein zweites Ziel seiner offenen Toolshade zu erstellen. Leider, ich bin sehr leid, dass mein Vortrag so kurz wurde, aber naja, gibt es noch irgendwelche Fragen? Okay, okay. This was very short indeed. So, if you have questions for Matthias, please come to the microphone. Oh, sind da irgendwelche Fragen? One, two, three and four. And we can take questions from the IOC-Chat or via Twitter, as well. Alternate. Ja, we have a question here. Tief, wenn ihr im Internet zuhört. Ja, C und Twitter sind auch hilfreich. Was passiert ist, was mit deinem Laptop passiert? Da war es etwas mit MacOS und Export und das Ausstecken. Und das Windows wollte die Disk reparieren und es frisst einfach. Ja, es ist hart. Es ist circa vor einer Stunde passiert, bevor der Vortrag gestartet hat. Zweite Frage. Hast du Weltspartan 6 gearbeitet? Nein, ich habe nie einen Spartan gearbeitet und nie an der 6. Serie. Ich möchte nur die 7. Serie reverse-engineern wegen der Cortex-Prozession. Dankeschön. Microphone 2, bitte. Wir können Sie kurz etwas über den Mittelpunkt in diesem FPGA erklären, weil da gibt es das schwarze Block und diesen weißen Block. Da sind das die Federkorrektionen für die Hälfte des FPG-Aus und die Hälfte des ... Genau, mit Hamming-Codes kann man normalerweise die Paritatsbitz in die Daten hinein mischen. Aber Cylinx will das nicht so, darum nehmen Sie die in die Mitte und die 13-Bits in den Hamming-Codes für eine Zeile. Ich kann euch später Details zeigen, wenn ich sie aus meiner Harddisk rauskriege. Die hat alles mit mehr Details drin. Dankeschön. Microphone 3, bitte. Ich fange ein bisschen überrascht von den Emotionen, weil Java-Toolchain nichts kompilieren kann, weil Java-Vacuum-Maschinen so einfach ist. Das kann sein, aber ich komme halt auseinander in Richtung Dung und ich habe mir alles selber beigebracht. Ich habe keine Ahnung, wie man mit dem Java so etwas machen könnte. Mit der Lattice-Toolchain habe ich zwei ... Ich habe alle Jump Instruktionen abgeandert und den Programm ab plus zu sehen in der Toolchain und den Exception-Handler von Windows abgeandert und jeden Opcode abgeandert, wenn er ausgeführt wurde. Und so konnte ich circa zwei Drittel ... Ich habe keine Ahnung, wie das funktionieren würde. Ich habe immer meine eigene Software geschrieben. Das ist eine der Gründe. Eine Frage aus dem Internet. Welche Architektur wird von FPGAs verwendet? Ich meine, das ist Arm, aber es ist nicht die FPGAs selber. Die FPGAs haben keine Architektur, die sind wie CPUs. Die haben diese Kontrolllogik-Blöcke, wie Blockgram, DSP, Eingabeausgabe fließen. Das ist quasi die Architektur von FPGAs. Jetzt Mikrofon 1. Ich habe mich oft versucht, einen Teil der Datenbank aus Nevada zu importieren. Ich wollte das machen, aber die Binar-Daten sind mehr als 10 GB groß. Ich dachte mir, nee, fuck it. Vivado verschlüsselt die IP-Cores und die machen dasselbe mit XML-Datei die Teil-Deck-Rate-Infusionen benutzen. Das ist ziemlich ähnlich zu dem, was Intel für die macht. Ich brauchte diese Informationen gar nicht, weil ich die gerade Informationen aus 10 bis 20 der Beispielprojekten herauslesen konnte. Wenn du willst, kann ich auch das später zeigen, mehr Details. Mikrofon 2, bitte. Sorry für die Präsentation. Boah, Arbeit. Okay, weil ich die Vorträge herausnehme, du hast die GTX gar nicht angeschaut, die Hochgeschwindigkeits-IP-Cores zu komplexer. Nein, ich hatte keinen Gerät, dass das kann. Okay, I don't have all the hardware in my mind. Ich habe die ganze Hardware im Kopf, vielleicht können wir später darüber reden. Mikrofon 1, bitte. Did you do any work on clocking? Hast du irgendwie mit der Clock gearbeitet? Ja, sure. Ich hab einige Informationen über die verschiedenen Treiber, Zeilentreiber, Spartentreiber, wie das zusammengehört. Ja, das war auch ein Teil des Slides. Ich hatte Detail-Pictures der Schematik, wo ich die Bildung ausdenken konnte. Aber ja, eben, ist passiert. Mikrofon 2, please. Thanks for your talk. My question is regarding programming the FPGA-Fabrik. Neut zu programmieren für die ARM-Projekte-Cores. Ist das auch möglich? Ja, das ist es. Aber etwas anderes, was ich mir interessiert ist, das kleine Ding, das im 20er, wo ich darüber geredet habe, hat zwei Fliesen, welche den FPGA das ganze Ding neu programmieren können. Das heißt, es sollte kein Problem sein, das mit self-made Bitfile einzuwenden? Also, etwas über den Sync. Der Sync ist eine Kombination zwischen CPU und FPGA, aber die sind isoliert. Man muss den FPGA-Teil eigentlich gar nicht starten, aber man muss den ARM-Part starten. Weil der ARM wird halt priorisiert und der konfiguriert dann den ersten Bitstream im FPGA. Das heißt, ich kann einfach deinen Bitstream mit der Einmerkzeit erstellt haben. Ich habe einen kleinen Proof-of-Konzept, das funktioniert und das routet und es platziert die Garte richtig. Wie ist das mit den Zeitinformationen? Hast du dir auch schon reverse-engineert? Ich habe die Zeitinformationen angefangen zu extrahieren, aber ich wollte zuerst die Flieseninformationen fertigstellen, bevor ich da weiter mache. Aber die Tools sind schon am Start und das wird einer von den nächsten Teilen sein, die ich in den Angriff nehme. Das heißt, eventuell können wir das mit Timing an diese benutzten Fahrten zukunft? Ja, ich hoffe, weil eigentlich bin ich da schon sehr motiviert und das macht mir Spaß. Wenn ich etwas Großartiges damit machen könnte, was die Community interessiert, dann würde ich das sehr gerne machen. Aber bis jetzt war ich noch wie niemand in Kontakt. Hast du andere FPG als? Ja, das habe ich. Ich habe ein Utascale angefangen anzuschauen, aber ich wollte zuerst mit der 70er, die fertig werden. Hast du dir auch andere Mehrstelle angeschaut? Ja, Microsemi habe ich zuerst angeschaut, bevor ich den IS-40 angeschaut habe, aber ich halte nicht so viel von denen und dass ich gerne reverse-engineere. Würde ich wäre noch der dritte große Hersteller. Ich habe den Namen leider verpasst. Ich habe eine Frage mit dem Place and Route, den du machst, was die grundlegenden Angriffe, die du benutzt, um die ganzen Kombinationen von Blockplattformen zu reduzieren. Im Moment ist es nur ein Proof of Concept, das macht noch nichts in die Richtung und später soll es das natürlich können und das wird dann ein reduced order binary decision Diagramm. Hast du versucht, die Brücken zwischen der FPG-A und den Amkors zu verstehen und zum Laufen zu bringen? Das war vom FPG-A auf die Hardware-Peripherals zu greifen kann. Da habe ich auch damit begonnen und das ist einfach eine weitere Fliese, die man reverse-engineert. Auch das kann ich später zeigen. Wie wendet der FPG-A den Bitstream an? In what sense? Wie meinst du das? Du schrieb das mit U2 irgendwie? Was passiert da? Es gibt verschiedene Wege. Mit dem Sync hat man keinen Bootlautern und weil es ein Armprozess so hat, kann man das ganze Ding auf eine erste Karte laden und das wird dann automatisch geladen durch den Cortex. Du kannst auch Chai-Tag benutzen oder einen externen SPI-Gerat. Es gibt viele Möglichkeiten. Wir haben noch eine Frage für den Mikrofon 4. Hallo, vielen Dank für den Vortrag. Könntest du den ganzen Vortrag in einer sehr organisierten Session später erklären? Noch mal halten? Das würde ich gerne machen, ja. Ja, ich hatte eine Frage. Darf ich dir das Ganze angeschaut? Hast du eine neue Information? FPG-A sind hinter die Türen gefunden? Ich habe keine Gefunden, aber Wege, wie man sie ausspüren könnte. Ich würde gerne später mit dir darüber reden. Ich würde auch noch etwas sagen über diese Xilinx-Serie, mit der du arbeitest, die FPGA und ein CBO integriert. Ich glaube, dass im Bereich von Cybersecurity keine gute Idee ist. In dem selben Chip ein FPGA und ein CBO zu verwenden. Weil ein Anreifer könnte dann seine eigenen Daten hinzufügen. Nein, das kann eine Attacke nicht einfach so. Ich arbeite zurzeit in einem Proof-of-Konzept für ein nicht veränderbares Gerät. Nicht Tempor-Proof-Gerät. Wir haben eine Frage in der IRC Chat. Was muss noch gemacht werden, um eine freie FPGA-Toolchain zu erstellen? Ah, das Place and Route-Tool. Ah, das Place and Route-Tool fällt noch mit. Als Forty habe ich Clifford meine ja, was ich herausgefunden, gegeben und mit verschiedenen anderen Leuten, welche das Place and Route-Tool, ich habe ihnen einfach die Informationen und Dokumentation zukommen lassen. Ich hoffe, dass das Microphone 2 verantwortet ist. Ja, du sagst, dass du VRL und VHDL nicht benutzt. Was benutzt du als Input für die Design-Tools? Das Beispielprojekt der Hersteller. Dann schiebe ich die Guide, um anderes Place and Route-Tool zu erhalten. Mit Xilinx hat man auch den Block-Design, der war auch in der anderen Präsentation. Noch mal die Nummer 1. Zwischen Xilinx winkt sich ein bestimmter Burs zwischen den FPGA und den Arm-Cross zu benutzen. Es gibt auch einen anderen Weg, um den Xilinx zu erhalten. Ich muss nicht diesen Xilinx-Bass benutzen, es gibt auch GPI-Bass zum Beispiel. Also GPI-Bass kann man auch zwischen dem Arm-Core und dem Rest benutzen. Wenn du möchtest, kann ich dir auch später darüber mehr Details zeigen. Ja, ich habe das Gefühl, dass du den FPGA reverse-engineered hast. Du hast den Bitstream erstellt und geschaut, was er macht. Ich habe nie den Bitstream erstellt. Ich führe die Bitstreams nicht aus, die ich habe nie probiert. Ich habe versucht, einen auszuführen. Das war es. Das machst du, wenn du nicht draußen bist. Ich nehme nur die, was das wissen daraus. Ich versuche, die selbe Netzliste wiederholt zu stellen. Ja, Mikrofon 2. Könntest du noch mal kurz erzählen, wie du den nicht dogischen Teile erzeugt und geniessen wie die PLI-Teile und I-O-Teile, das ist anders als den Logik-Teile. Du hast die Art wie man Informationen erhält. Der Halt darüber ist größtenteils automatisiert. Ich muss auf Schema schauen, was Internet für Switches verwendet werden. Ein neues Image machen, wo der Switch nicht benutzt wird. Dann kann ich Differenz machen usw. Gibt es Schematik von den Herstellern? Bei Xilinx weiß man fast alles über das Gerät. Wann und wo wird die neue Session stattfinden? Wann und wo wollte das stattfinden? Ich mag lieber darüber zu sprechen. Vielleicht kannst du einen Platz fangen oder zu finden. Wir haben ziemlich viel Platz. Gibt es noch mehr Fragen? Das sieht nicht so aus. Dann einen warmen Applaus an Matthias Lasser. Damit verabschieden sich