 Willkommen zu meinem Vortrag. Es geht über FPGAs, dass alle FPGAs benutzen können sollen. Ich möchte damit anfangen, damit ich bin. Ich arbeite bei der Universität von Hamburg. Ich mache immer Sache mit FPGAs. Ich versuche FPGAs mit Betriebssystemen zu verschließen. Ich versuche Netzwerk auf Chips, auf den FPGAs Engine. Ich mache viele Sachen mit Systemen, die während diese FPGAs noch laufen, sie umkonfiguriert werden können. Ich will auch viele Hecker-Events gewesen, seit 2007. Ich habe auch schon ein paar Vorträge darüber gegeben. Wenn Sie mich rüssen wollen, dann gibt es die Informationen auf der Folie einzusehen. Jetzt fangen wir an, wenn Sie mich reden wollen, damit es wenig auf Giraffe Village, auf der Ende des Zeltes sind, wo niemand zuhören kann. Ich habe ein paar FPGAs dabei, wenn irgendjemand daran interessiert ist, damit jeder einfach vorbeikommt und wir können ein bisschen darüber reden. So, worüber rede ich jetzt hier? Dieser Vortrag ist darüber, wie man FPGAs mit Standardcomputern zusammenschließen kann. So dass Leute, die nichts über FPGAs wissen, auch den Erfolg von FPGAs genießen können. Wenn ich von einem FPGA mit einem Eltern gehe, dann können sie damit überhaupt nichts machen, weil ich nicht wissen, wie man damit einen Computer anschließen soll. Dieser Vortrag ist darüber, wie ich eine Idee habe, wie FPGAs benutzt werden sollen, dass sie von einem Computer benutzt werden können. Ich habe ein paar Lösungen, die ich in den letzten Monaten erarbeitet habe und ich zeige nur ein paar grundlegende Implementationsdetails und wenn Sie noch vorbeikommen können, dann können Sie den ganzen Quakehut sich anschauen. Der Rest des Vortrags ist organisiert, dass ich Ihnen zuerst über FPGAs erzähle und die Leute, die da überhaupt nichts wissen, dann zeige ich Ihnen die Probleme, die ich gefunden habe, wenn man mit Ihnen ein FPGA verbinden möchte, mit einem Standardcomputer und wenn wir im letzten, es hätte ich über die Lösung, die ich gefunden habe. Ich habe auch ein kleines Demo dabei, wo ich Ihnen etwas zeigen kann. Okay, was sind FPGAs? Sie sehen das Bild auf dem Monitor und FPGAs, das ist ein Chip, der als produziert wird und es ist nicht statisch. Wenn man normalerweise eine CPU hat oder ein Chip der Festplatten ansteuert, die Daten, die Hardware im Chip ist statisch, die kann man nicht einfach ändern und an einem FPGA kann man diese Hardware ein bisschen verändern, nachdem sie produziert wurde und dadurch kann man eigene Chips zu Hause produzieren. Kann sie so oft ändern, wie man möchte, es gibt keinen Limit oder wie oft man sie ändern kann. Das sind die grundlegenden Sachen über FPGAs, um die Vorteile davon zu sehen. größere Meditäts können nach dem Vorteil bei mir erfragt werden, einfach vorbeikommen. Standard Benutzer sind nachher, zum Beispiel Prototypen erstellen. Wenn man irgendetwas benutzen möchte, einen Chip produzieren möchte, dann kann man den ersten Mal die Bergen erstellen, bevor man die Hardware-Beschreibung zu dem Hersteller geben muss. Es sind weniger Fehler dabei, also wenn man einen Fehler macht, dann findet man den Fehler früher und billiger. Während man noch dabei ist, ihn zu designen. Man kann einfach nur einen Prototypen haben. Eine andere Bereich, wo FPGAs häufig benutzt werden, sind Herstellung von geringen Stückmengen. Wenn man es für eine Hardware erstellen möchte und nur 1000 herstellen möchte, dann benutzt man einen ganz einfachen FPGA, weil der viel billiger ist, als einen eigenen Chip zu produzieren. Man kann sogar die Hardware-Updaten, während er beim Kunden ist. Das ist auch eine sehr wichtige Sache, dass wenn man die Hardware ausdiefert, dann kann der Kunde sie kaufen. Danach kann man noch eine Firma veröffentlichen, die die Hardware in den Produkt ändert. Das wird sogar gemacht. Vielleicht kennt jemand was. Die ist die Endkarte. Die wurde von AVM veröffentlicht. Die haben einen aktiven SDN-Karte mit einem FPGR drauf und sie für öffentlichen Updates für die Firma. Eine andere Bereich, wo FPGRs sehr wichtig benutzt werden, sind High-Performance Computing. Da gibt es viele High-Performance Computing Centers. Sie haben einfach nur viele FPGRs, wo sie berechnen. Es gibt ein paar Firmen, die entwickeln spezialisierte Server-Systeme mit integrierten FPGRs, zum Beispiel um Death Cracking durchzuführen und der MD5 Cracking zu machen. Zum Beispiel gibt es Sci-Engine, den Kuba-Kubaner-System. Das ist nur ein Server-System mit 128 FPGRs drin. Und sie können Death in wenigen Stunden cracken und mit sehr wenig Stromverbrauch. Warum sollten wir über uns um FPGRs kümmern? Zum Beispiel die Hacker-Gerellschaft oder die Leute zu Hause. Normalerweise ist das ein sehr komplizierter System, die FPGRs herzustellen oder die FPGRs zu programmieren. Warum sollten wir uns darum kümmern als Hacker? Können wir sie benutzen, um kryptographische Verbeschleunigungen zu machen? Wir können sie benutzen, um VPA oder WPA2-Schlüsse schneller zu kracken. Wir können unser AIS beschleunigen und zum Beispiel, wenn es möglich wäre, wäre es cool, wenn man den Open VPN öffnet und die Kryptografie schneller von einem FPGR gemacht wird. So dass der Prozesse auf dem System weniger machen muss. Man kann sogar Hardware-Festplanten-Verschüsselung auf dem FPGR erstellen. Man könnte eine normale SATA-Festhatter auf einen FPGR anschüssen. Man könnte die Verschlüsselung auf dem FPGR machen. Man könnte sehr schnelle Verschlüsselungen durchführen. Man kann auch natürlich Bitcoin-Mining draufmachen. Da ist man im Moment ein bisschen zu spät. Die meisten Bitcoin-Mining sind auf ASICs. Also, wir machen es nicht auf einem FPGR. Das ist nicht mehr sinnvoll. Wenn man auch noch machen kann, kann man gerade ein Video oder Grafikbeschleuniger darauf bauen. Ich hatte eine nächste Redung mit jemandem. Ein HDMI-USB-Projekt gemacht hat, wo viel HDMI-Sachen auf einem FPGR gemacht. Es beschleunigt die Grafik auf einem FPGR. Man könnte sogar Bilder bearbeiten. Man könnte ein paar Filter machen. Man lädt die auf einen FPGR. Dann wird das alles schneller. Eine andere Sache, die ich versucht habe zu Hause zu machen, ist eine Hardware-Firewalling. Zum Beispiel Netzwerksicherheit. Man könnte einen FPGR benutzen. Zum Beispiel auf diesem Bild sehen Sie den auf einem 4-Port-One-Gigabit-Internet-Bord. Mit einem FPGR drauf. Man könnte Hardware-Firewalling machen. Das heißt, man löscht die Pakete, bevor sie überhaupt angraben. Man könnte eine Idee auf ein anderes Interface kopieren. Oder man könnte auch sein eigenes Switch durchstellen. Das Gesetz, das man in FPGRs machen kann, ist, man kann sie benutzen, um als besondere Geräte zu benutzen. Zum Beispiel kann man ein USB-Gerät nach draußen ausführen. Irgend ein Gerät darauf erstellen. Zum Beispiel soll es aussehen, eine CPU und als weitere CPU in dem Prozessor im Betriebssystem zu verwenden. Man kann es auch verwenden, um einen Analog zur Digitalkonverter zu benutzen. Man kann sogar Software-Defined-Radio damit machen, wenn man die richtige Hardware zum FPGR anschließt. Ein übliches Design, wenn man versucht, ein FPGR zu einem Standardcomputer anzuschließen, ist, dass man einen HostPC hat, der hat das Betriebssystem, wir haben einen rundlegenden Sachen, wir haben eine FPGR-Zugriffsschicht und wir haben die Applikation. Der FPGR-Anschluss ist in der Regel über Beschreien gemacht, also Libraries. Und der HostPC macht nichts. Das HostPC-Betriebssystem weiß nichts darüber, dass ein FPGR angeschlossen ist. Auf der anderen Seite hat man das FPGR, wo die Hardware drauf ist, die Komponenten, die man erstellen möchte, die irgendwas besteunigen soll. Von dem, der auf dem PC läuft. Und dazwischen hat man unterschiedliche Verbindungsmöglichkeiten, z.B. Ethernet oder viele andere. Noch mehr als auf dieser Folie zu sehen sind. In diesem Design hat man unterschiedliche Probleme, z.B. hat man das Problem mit der Hardware. Er hat eine sehr komplizierte Erklärung, was auf dem FPGR läuft und braucht VHDL und die Beredung mit Tim sagt, dass es auch viele Sprachen gibt, wo man die Hardware in Python schreibt und der Python wird dann zu VHDL umgewandelt. Und die Dateien, die man für FPGRs erstellt, sind anhängig von welchem FPGR es ist. Man kann es immer nur auf einer einzigen FPGR-Typ draufladen und nicht auf irgendeines. Und das letzte ist, es gibt keine Standardinterfaces. Wenn man einen Komponenten auf dem FPGR erstellt, dann muss man immer darüber nachdenken, wie man die Daten vom FPGR herunterbekommt. Es gibt im Moment kein Standard, wie man einen FPGR zu einem ganz normalen Computer anschließt. Es gibt ein paar Standards, wie ein FPGR mit einem Server-System verbunden werden kann. Man hat Probleme mit der Verbindung. Zum Beispiel kann man AS 32 benutzen, oder 232, das ist sehr einfach, aber sehr langsam. Manche Lizanz ist ausreichend, aber in den meisten Fällen braucht man eine höhere Geschwindigkeit. Man kann Ethernet, PCI, Express oder USB benutzen, um etwas auf den FPGR zu laden. Die sind sehr schnell, aber in den vielen Fällen sind sie relativ komplex. Zum Beispiel bei der Hardware-Implementation, aber auch auf der Software-Implementation. Dann gibt es JPEG. Viele FPGRs können in den JPEG zu benutzen, aber es ist sehr langsam und sehr unbekannt. Das ist das bemeist benutzte Protokoll, mit dem man benutzt, ein FPGR zu konfigurieren, um die Hardware darauf zu laden. Das letzte ist General Purpose I.O., da kann man irgendwas definieren, dann einen Kabel, drei Kabel anschließen oder irgendwas, aber es gibt keine Standards. Man kann das nur selber benutzen, wenn man sie selber entwickelt hat, oder definiert hat. Insgesamt kann man sagen, wir können nicht ein Design, wie zum Beispiel ein AES-Beschleuniger, und wir können ihn nicht einfach mit irgendeinem FPGR anschließen. Man muss immer darüber wissen, was man FPGR-Beschleuniger benutzen möchte, muss man schließen, welchen Anschluss man benutzen, man muss es selber implementieren. Da gibt es auch viele Probleme mit der Software. Wenn man sich ein normales Betriebssystem anschaut, hat man die grundlegenden Treiber unten, und man hat das Betriebssystem, die sie benutzt, um alles zu funktionieren zu bringen. Dann kommt FPGR-Zugriff, der normalerweise eine software-Bischerei benutzt, oder Software-Library, darauf die Anwendung. Wenn man zum Beispiel einen AES-Beschleuniger benutzen möchte mit OpenVPN, dann macht die Anwendung OpenVPN, die eine spezielle Bücherei braucht, um den FPGR zu brauchen, also der FPGR-Schicht. JTAC ist die häufigste Weg, einen FPGR zu programmieren. Es ist sehr wichtig, dass ein Betriebssystem FPGR-JTAC unterstützen muss. Im Moment braucht man eine spezielle Software für jeden FPGR-Hersteller, um den FPGR zu programmieren. Es gibt ein paar Open Source-Projekte, wo sie grundlegende JTAC-Programmierer entwickeln, aber die sind immer nur für wenige spezielle Geräte, aber keine für alle. Das Betriebssystem in dem PC weiß überhaupt nichts über FPGR. Selbst wenn man den FPGR mit dem Computer verbindet und den Bitlight-Fall drauf lädt, dann macht das Betriebssystem in der Regel gar nichts. Es sieht dies nicht um eine Übersteunigungsmöglichkeit an. Und die ganzen FPGR-Zugriffs-Libraries sind immer abhängig vom Chip. Also wenn man einen Design zu einem anderen FPGR-Bord weiterleiten und porten möchte, dann muss die FPGR-Zugriffs-Schicht im Software verändert werden. Das größte Problem, dass wir sehen, ist, dass es keine Standard-FPGRs sind oder irgendeinen Standard. Also muss ein Standard erstellt werden, sodass der Entwickler diesen Standard benutzen kann. Auf der Folie ist jetzt etwas von XKCD. Das darüber redet, dass wenn man einen neuen Standard entwickelt, dann wird in der Regel einfach ein neuer Standard, der aber nicht die anderen Werte weiterhin funktionieren oder weiter benötigt werden. Und so ist es auch in diesem Fall, dass wir können nicht einfach einen neuen Standard entwickeln, sondern kriegen einfach nur noch einen weiteren. Meine Antwort zu das Ganze ist, dass wir zum Beispiel für das Teil, dass wir entwickeln, eine Beschleunige auf einem FPGR, dann müssen wir den Beschleuniger zu einem Standard-Netzwerk verbinden, um mit dem FPGR kommunikieren zu können. Ich habe einen OCSN-Netzwerk entwickelt. Ein anderer Teil ist ein Linux JTAC-Subsystem. Normalerweise hat man einen Linux Grundkörner und dann hat man einen PCI oder USB oder serielle Treiber drauf. Und dann hat man einen USB-Programmierer. USB-Programmierer sind die Geräte, wo man den FPGR anschließt und man kann konfigurieren, wie der Bitstream auf das FPGR läuft. Also ich habe einen JTAC Host-Treiber erstellt und das ist der Moment für JTAP-Cabels und Xilinx-Programmierkabel, die auch kaufbar sind, die man sich auch kaufen kann. Ich habe sogar den DIGILINX Host-Treiber erstellt und ein Student von mir benutzt den Xilinx Host-Treiber. Im JTAC-Untersystem sind die ganzen Komponenten, die wir brauchen, um mit den Komponenten innerhalb von JTAC zu kommunizieren. Die sind abstrahiert und dadurch kann man unterschiedliche Arten von Geräte anschließen. Zum Beispiel ein FPGR-Treiber für SWATAN-Geräte, aber kann man FPGR konfigurieren. Da ist man einfach nur die Bitstreams in einen Ninox-Geräte-Treiber kettet, also weiterleitet. JTAC ist sehr langsam, ist eine riesige Registerkette, wo man diese Geräte, wie auf diesem Bild zu sehen ist, die Systeme TMS und TCK werden direkt zu allen Geräten verbunden, die werden benutzt, um den State innerhalb der Geräte zu ändern. Also jedes Gerät hat eine finite State-Maschine und über TMS und TCK-Signalen kann man die Geräte zu unterschiedlichen Statti bringen, um sie dort zu konfigurieren, um Stattesituationen zu bekommen. Die TDI und TDO-Pins werden benutzt, um Shift in Bitwise, in die Geräte reinzuschieben oder rauszuschieben. Also es ist sehr komplex, um Informationen in diese Geräte reinzukriegen. Das sind die finite, die endliche Statti-Maschinen in den JTAC-Treiber. Es gibt zwei Wege. Der eine Weg ist, Daten in ein Restruct in Aufgabenregister zu schieben. Man erzählt, was ich mit dem Gerät machen möchte. Dann gibt es Dataregister, wo man Daten außerhalb dem Gerät auslesen kann oder in das Gerät reinschreiben kann. Das ist sehr komplex. Während ich den JTAC-Host-Treiber programmiert habe, hatte ich damit viele Probleme. Ich habe einen JTAC-Bus-Interface entwickelt, sodass Gerätetreiber mit Geräten innerhalb der Kette reden können, sodass man z.B. die Funktionen wie JTAC an-aus, um einfach nur die JTAC-Ketten ein- und auszuschalten, muss man eine spezielle Funktion um sie zurückzusetzen. Man kann auch den Datenregister oder Instructionregister auswählen. Wenn man z.B. eine Aufgabe in den Instructionregister reinschreiben möchte, dann sage ich JTAC-Select Instructionregister und man kann zu sieben Bits reinschreiben. Dann ruft man JTAC-Update und dann wird der JTAC-Register abgedatet oder neu gelesen, genau dasselbe mit den Datenregistern. Der Gerätetreiber für den FPGR muss nicht wissen, wie man Daten in dieser Kette rumschieben kann. Es kann einfach nur diese Funktionen benutzen, um das Ganze einfacher zu machen. Im Moment funktioniert es grundlegend. Der Host-Treiber für Xilinx-Platform USB-Kabel 1 und 2 funktioniert meistens. Ich habe einen funktionierenden Digitalen-JTAC-Geräten, z.B. Nexus, FPGRs, Atlas und das Digitalen-Kabel. Ich habe Gerät-Treiber für die Vortex 5 FPGRs, um Bitfire zu konfigurieren und auch für Spartan 6 FPGRs. Bevor ich jetzt veröffentlichen möchte, möchte ich den Code ein bisschen aufräumen. Ich möchte ein paar Memory-Leaks fixen, die ich hier identifiziert habe. Ich möchte automatische Firmware-Loading für die Gigant-Geräte. Wir brauchen eine spezielle Firmware, die deren Werkzeuge mitbringen als Teil des Qued-Codes. Wenn man einen Kernetreiber benutzt, muss man sicherstellen, dass diese spezielle Firmware, die der Host-Treiber benutzt, reinhält, bevor man ihn wirklich benutzen kann. Das möchte ich machen. Noch ein Teil der Lösung ist, ich habe einen On-Chip-Sitching-Netzwerk, also auf die FPGR entwickelt. Aber dieser Not braucht auch ein Teil im Linux-Kernel, das man mit dem innerhalb von Linux kommunizieren kann. Also es ist sehr ähnlich zum JTX-Subsystem, aber eine wichtige Sache ist, dass man auf der einen Seite Geräte innerhalb von NetDev-Subsystem hat. Das heißt, man könnte eine FPGR anschließen über Ethernet zum PC-Computer. Dann gibt es ein spezielles Paket vom FPGR, das reinkommt. Dann muss das OutCSN-Subsystem erkennen und erstellen, dass er in erstes ESN unter System ist und kann ein bisschen Netzwerk darüber verwenden. Und das ähnliche wie PC-Eis und USB. Da kann man dann Geräte-Treiber daraufladen auf die FPGR. Und durch die Benutzung dieses Subsystems. Eine andere wichtige Unterschied ist, dass ich einen Netzwerk-Treiber erstellt habe, sodass man ganz einfach Socket-Programmierung benutzen kann, um Komponenten auf dem FPGR benutzen zu können. Wenn man damit nur kommunizieren möchte, dann benutzt man ein einfaches C-Programm, dass man sagt, ich möchte ein Socket öffnen, ich möchte ein OCSN-Socket öffnen und dann kann man sagen, hey, ich möchte ein Paket zu dieser Adresse schicken und zu diesem Zielport und das Subsystem macht es, stellt sicher, dass das Paket zum FPGR gekommen ist und dort richtig ankommt. Die Bus-Appi ist viel einfacher als das JTEC-Bus-Appi, wenn man nur Paket senden und Paket empfangen ist. Also weil ich Frames auf diesem Level benutze. Die meisten Daten werden in diesen Frames reingesteckt über diese OCSN-Frames. Das Transmit-Frame und das Empfangs-Frame sind im Gerätetreiber vorhanden, sodass ein Gerät nach Frames führt, zum Beispiel einen speziellen Port hören können. Das bedeutet auch, dass man Treiber schreiben kann oder ein einfaches C-Programm auf dem Host-Computer, dass ein RAM-Komponent, außerhalb des Gerätes auf einen Detail simuliert, dass Geräte vom FPGR diese Geräte von dem Host-System aufrufen können und die müssen auch nur das einfache OCSN-Frames benutzen. Ja, der aktuelle Start-up ist, dass die meisten grundlegenden Geräten funktionieren. Ich habe einen speziellen Treiber für PCI Express-Geräte. Die werden normalerweise von normalen Benutzern verwendet. Das ist ein militär FPGR-Board, das ist sehr teuer. Und ich habe einen Host-Treiber für Internet-Connection für 10 und 100 Megabits und 1 Gigabits. Und Geräte-Treiber für Blockgram-Komponenten und für die OCSN-Switch, wo man Statistik und Daten abfragen kann und zurücksetzen kann. Ich muss den Code aufräumen. Ich habe ein Problem mit Netzwerkdurchsatz. Wenn ich den PCI Express-Interface benutze, kriege ich nur 200 KB von Daten durch. Aber ich sollte mindestens 8 Gigabits durchkriegen. Also muss ich mal schauen, wo das Problem ist. Ich möchte Digi-Land-Adapt-Support dazu führen, dass man alle Atlas-Sports benutzen kann. Ganz einfach. So, was ich versuche zu machen, versuche ich Erfahrungen zu sammeln. Das Entwickler und Benutzer sind meine Hardware-Entwickler-Entwicklungen, sodass der Benutzer einfach ist, die Hardware zu unterschiedlichen FPGA-Boards zu veröffentlichen. Es gibt viele Komponenten, wo man nur die Geräte wechseln kann. Man muss die Arbeiten, die Komponenten stecken, die einen interessiert. Ich möchte, dass es einfach ist, den Code von anderen zu benutzen. Der Regelmachen Hardware-Developers im Moment, schreiben sie im Moment Hardware einfach neu, dass es einfach schwer zu verstehen ist, was andere Leute darüber gedacht haben. Und ich möchte es auch so haben, dass niemand darüber nachdenken möchte, wie mein Netzwerke, also Intellektions-Netzwerke, gebaut, nur, wenn sie darüber nachdenken wollen, dass man die ganz einfach benutzen kann. Man muss die einfach vorhandene Netzwerke verwenden können und ihre IES oder Cha1 Komponente entwickeln. Ich möchte das Software-Entwickler erst zugreifen können, ohne viel darüber zu wissen. Also, dass man einfach immer sockend über Stecker oder sockend Programmierung die Geräte verwenden kann, ohne dass man verstehen muss, was der FPGA oder die Verbindungs-Netzwerke macht. Man sollte die Software-Entwickler noch mal bekannte Zugreifsmöglichkeiten benutzen, wie zum Beispiel Gerätetreiber. Das ist das Software-Entwickler sehr einfach die Realität haben, Hardware-Beschleunigung in ihren Produkten oder Quellcodes zu verwenden. Zum Beispiel kann man immer im Bilderprozess oder Filter, zum Beispiel GIMP, auf einem FPGR zu beschleunigen. Das möchte ich in der Zukunft ausprobieren. Und dann die entwickelte Benutzer-Experienzen. Ich möchte als Benutzer, der keine Idee von FPGR hat, einfach eine Datei in eine Software startet und Hardware-Beschleunigung verwendet, wenn ein FPGR angeschlossen ist. Und der Betriebssystem soll sie benutzen können. Das Betriebssystem sieht da, da ist ein FPGR und der Benutzer möchte die Verschlüsselung machen. Dann lad ich ganz einfach die Verschlüsselungssoftware auf dem FPGR und der Benutzer wird da einfach angeschlossen werden. Es soll so einfach sein, wie USB für den Endbenutzer. Ja, und jetzt versuche ich zu zeigen, wie das aktuell aussieht über eine kleine Demo von meinem System. Okay, jetzt lade ich den Linux JTEC-Unterstützung. Ich lade nur den JTEC-Bus-Treiber. Passiert im Moment gar nichts, dann lade ich den Host-Treiber für die Digital-Geräte. Im Moment muss ich das Ganze noch mal noel machen, um die Firmware in die Digital-Geräte-Bord hochzuladen und jetzt lade ich den Digital-Treiber. Und jetzt sieht man hier, der Digital-Treiber hat ein Digital-Gerät mit der Firmware-Version 10.3 gefunden und identifiziert das Produkt und registriert es zum JTEC-Bus-Treiber. Und der JTEC-Bus-Treiber sucht diese Kette und fand genau ein JTEC-Gerät mit sechs Instructions. Das ist eine Größe von sechs, also da auf dem Trachtgröße von sechs. Und jetzt lade ich den JTEC-Spartan 6-Treiber und man kann sehen, dass der Treiber ein Spartan 6-FPGR identifiziert hat auf dem Board und jetzt möchte ich ihn programmieren. Also kette ich ein Bitfall-Inlass-Gerät rein, der vom Gerät der Treiber stellt, und dann sehen, dass es anfängt, die Konfiguration anfängt, es identifiziert das Datei und er schaut, dass die Datei wirklich für dieses FPGR ist und dann näht es, dass dieser Datei beendet ist, sagt zum FPGR-Gerät, das soll neu starten und danach funktioniert das FPGR. Im Moment ist es auf dem FPGR nicht zu machen. Es gibt jetzt einfach nur ein paar LED-Splinken und hier zu sagen, hey, FPGR ist die LED-Splinken, aber das ist hier nichts Besonderes. Mit diesen Leuten, die hier auch auf dem Camp sind. Dann ist jetzt der JTEC-Treiber und ich kann euch zeigen, aber im Moment läuft das nicht auf meinem Laptop, also muss ich das mit einem anderen Server verbinden. So, jetzt bin ich auf einem Server bei meiner Universität, wo ich das implementiert habe und ich kann jetzt ganz einfach die ganzen Geräte anzeigen auf dem FPGR, der dran eingestoßen ist und da sind ein paar Switches vorhanden und ein paar Echo-Server. Echo-Server sind nur Komponenten, die das Paket einfach zurück schicken, das ist gut für die Bugging. Und jetzt kann ich auch sagen, hey, OCSN ping und ich pinge diese Komponenten auf dem FPGR und das pingt es wie bei TCP-IP. Ich kann sogar Informationen von einem Switch anfordern. Ich werde jetzt diesen Switch benutzen und die Verbindung ist verloren gegangen. Ah ja, man kann einfach sehen, welche Reports online sind und wie viele Pakete schon durchgegangen sind durch den Switch und ja, nicht wirklich ja, nicht mal im Endeffekt wirklich viel sehen. Jetzt muss ich zu meinen Folien zurückgehen. Sie sind nicht mehr da. Okay, noch eine Folie, das ganze Saison ein bisschen langsam. Okay, also was ich euch gezeigt habe, ist meine Idee, wie die Entwickler- und Benutze-Experienz-Erfahrung bei Server, und ich hoffe, dass ich viele unterschiedliche Ideen von anderen bekomme, wie ich weitermachen soll und wie ich vielleicht ein paar Sachen ändern soll. Im Moment habe ich dieses JTAG-Untersystem vorhanden und ich habe das OCSN-Untersystem für Kommunikation und wenn irgendjemand helfen möchte, bin ich sehr, bin ich sehr froh darum und auch wenn ihr Ideen habt, wie man was ändern sollte. Wir sehen uns dann nicht mehr jetzt im Ende meines Vortrags. Vielen Dank, dass Sie gekommen sind. Dass Sie beim Vortrag waren und habt ihr irgendwelche Fragen. Hallo. Ja, bitte, einfach anfangen. Ja, vielen Dank für Ihren Vortrag. Der Vortrag erinnert mich an eine Idee aus dem 2004, die ich hatte. Das war Köln bescheuniger Gerät und ich habe einen Vortrag auf dem 21 C3 gemacht und das war in Berlin. Es war eine Idee, dass man ein Gerät macht und das ist eine Idee, die untereinander verbunden sind. Damals waren das noch parallel, später wollten wir es zum Serial umwandeln und das hat niemand interessiert, weil niemand, was auch kein Bitcoin gab und es hat keine Interesse daran gegeben, weil alles gestorben ist. Aber ich würde auch sagen, dass das Projekt ist einfach gestorben, weil niemand daran interessiert war. Die Idee mit dem Netzwerken war, ein spezielles Internet-Protokoll und darüber ein Netzwerken-Protokoll durchführen können über Fischbauen. Man hat auch ein spezielles Host-Interface, dass wenn man nur dumme Switcher hat, die nur Macs Switching macht, dann kann man die Mac-Adressen abhängig vom Gerät machen, vor den Geräten in dem Fischbauen Fischknochenbus. Ein Netzwerkbus sieht wie ein Fisch, also wie Fisch-Skelett. Darüber kann man auch sehr gute Informationen machen. Vielleicht ist das eine bessere Sache. Vielleicht könnte man die Quail-Code benutzen und dann könnte man die zusammen mit denen zusammen machen. Die Antwort ist, mein Gerät kann durch normale Internet-Switches benutzt werden. Die Brücken, die ich benutze, sind in der Lage, einen normalen Switch zu benutzen. Hätte ich Interesse daran, könnte ich mindestens 10 von diesen FBG-Herbbauts mit einem Ethernet an meinen Host-Computer anschließen. Fischbauen habe ich auch überlegt, mein Vortrag ist aber, ich wollte etwas, was sehr einfach zu benutzen ist. Und Fischbauen fängt relativ in einer bestimmten Zeitung an, sehr kompliziert zu werden. Darum habe ich beschlossen, Fischbauen momentan nicht zu benutzen. Im Moment kann man darüber reden, die Netzwerke auf Komponenten auf dem Chip zu verändern, aber für Entwicklung. Im frühen Status ist es sehr gut, ein sehr einfaches System zu benutzen, dass man die Feder früher erkennt. Über Fischbauen, über Internet, kann man einen speziellen Korn haben, die die Fischbauen Translator sein sendet. Man kann das irgendwo auf dem FPGA-Board machen und man kann auch die Verbindungen auf dem FPGA zu benutzen. Wenn man zur FPGA aus auf einem Gerät hat, dann kann man einen seriellen Link achten. Dann kann man eine Architektur machen mit ein paar Fischbauenkurs, dass man von einem Karte zu den nächsten über Internet macht. Und der Vorteil ist, dass es viel schneller, ein bisschen besser mehrere Geräte anschließen kann. Man kann die alle miteinander verbinden Ich glaube es ist schneller, wäre eine guten Datenrate, wäre anstelle ein USB Anschluss zu machen und USB zu benutzen. Die Antwort ist, ja, wir müssen die Ports benutzen, die für den Endbenutzer sind. Aber wenn man diese Ports, die sind zum Beispiel Nexus 3 benutzt, dann ist sogar ein Internet-Port angeschlossen. Aber die meisten Benutzer haben keinen Switch zu Hause. Die haben ein Internet-Kart in dem PC und dann kann man diesen Internet-Karte wirklich benutzen, dass sie das mit ihrem Computer zu Hause anschließen können. Darum müssen wir in der Lage sein, USB zu unterstützen. Benutzer wollen nicht unbedingt sehr große Flexibilität haben. Wir wollen eventuell Flexibilität haben. Als Entwickler möchte ich diese ganze Flexibilität haben, die alle Flexibilität haben, die ich benutze. Ich bin nicht der Endbenutzer. Warum macht man nicht ein Internet-Port bei Linux? Ja, das kann man machen. Vielleicht kann man Studenten finden, wie er das macht. Ja, wäre interessant. Vielleicht können wir später darüber reden. Ja, wir können später darüber reden. Okay, ich habe gerade realisiert, wir sind ein bisschen zu spät. Für die nächsten, dann, ist eine sehr schöne Frage. Es sind zwei Fragen, und es könnte sehr einfach sein. Arbeitet ihr mit Bunny Wang auf dem Nueva-Projekt? Das enttoller Laptop, der auf dem Saus ist, und der hat auf dem Mainboard eine FPGA, und die zweite Frage ist, könnt ihr darüber reden, wie die Bitfiles entwickelt werden, was man da benutzt? Ja, ich kenne Bunny. Ja, ich habe mit ihm geredet auf dem letzten Kongress, aber im Moment aber ich möchte das mir näher anschauen, und das versuchen zu integrieren, in meinem System, weil es sehr interessante Anschluss ist, wie man FPGRs in die Community bringt. Und meine Bitfiles, ich entwickle die Designs im Moment, also letztes Jahr habe ich es mit Eclipse entwickelt, mit ein paar Mac-Files, mit einem neuen Xilings- Command Line Tools, um die Ende gerade zu adden, zum VHDL editieren. Nette zu dem Mikrofon kommen, das Betriebssystem, das ich benutze, ist ein Debian-Lenox. Aber ihr merkt immer noch, die Propride, die ...