Hallo zusammen,
ich möchte hier unser Projekt vorstellen: es handelt sich um einen
FPGA-basierten Logic Analyzer, welcher auf gängigen FPGA-boards laufen
kann.
Grobe Eckdaten: 32 Kanäle, 200MHz, 128MiB sample memory, Ethernet.
Es handelt sich um eine Erweiterung des "sump".
Ich poste dies hier in der Codesammlung, da der Löwenanteil doch der
VHDL-Code da drin ist. :-)
Alle Details und sources zum Projekts gibts hier:
http://www.bastli.ethz.ch/index.php?page=BitHoundEn
Viel Spass damit!
Herzlichen Gruss aus der Schweiz
Hallo Mario,
schönes Projekt, hat sich eine Menge Zeit gekostet. Toll das ihr es
trotzdem der Community wieder zur Verfügung stellt.
Es würde sich anbieten daraus mal wieder ein mikrokontroller.net Projekt
zu machen.
Gruß
Stephan
Lehrmann Michael schrieb:> Warum?
Vermutlich deswegen, damit er sich nicht extra ein neues (und teures)
Xilinx Board kaufen muss, sonder die bestehenden verwenden kann.
Das Projekt gefällt mir. Müsste sich auch sicher leicht portieren
lassen. Um das für typische Designs zu nutzen, müsste es allerdings
etwas aufgepeppt werden. 32 Bits ist ein bischen wenig.
Hallo Mario und Lukas,
schoenes Projekt, ich hab's gerade mal auf meinem Atlys am laufen (halt
nix an den LA I/Os angeschlossen). Prima vor allem, dass ihr:
* das unter GPL stellt
* klasse dokumentiert habt
* alles auch unter Linux prozessierbar gemacht habt (Skripte, makefile,
...)
Fuer meine Spielereien mit dem Atlys werde ich euer Projekt sicherlich
als weitere Grundlage verwenden, denn es hat alles was ich brauche:
* PC Client zum Zugriff ueber Ethernet
* DHCP
* Einen einfachen, freien uC im FPGA
* ...und noch einiges anderes
Danke!
Hoi Berndl,
schön, dass es klappt! :-)
Wir arbeiten gerade an einer Verbesserung: Trigger und GUI werden stark
verbessert und verändert - danach schafft er auch 400MHz mit dem
Atlys-Board, soviel sei schonmal verraten ;-)
Wir berichten zu gegebener Zeit.
Lg
Mario
jo, schoen dass ihr weiter macht.
Ich werde euren Design mal versuchen komplett runter zu strippen. Daraus
soll irgendwann mal 'Asteroids' mit Netzwerkanbindung fuer die Statistik
werden. Ausgabe von 'Asteroids' natuerlich mit dem HDMI Interface...
Ich hätte dir sonst noch einen "gestrippten" AVR Softcore (derselbe wie
im BitHound, direkt mit Wishbone-Anschluss)
Bei Interesse kann ich ihn dir als Mail schicken.
Lg
Mario
Ah, ich denke mit eurem 'normalen' Code komme ich schon klar. Ich will
ja ausser dem LA alles benutzen. Also muss ich nur wenig von eurem Code
rauswerfen, der Rest kann ja bleiben.
Nochmal danke,
- berndl
Sodele - Version 2.0 von BitHound ist ab sofort online:
http://www.bastli.ethz.ch/index.php?page=BitHoundEn
Es gibt viele tiefgreifende Verbesserungen, u.A. ein cooler Trigger!
==> Viel Spass damit!
Lg
Mario
Hi Mario,
schoen, dass ihr da nochmal nachgelegt habt. Kann es aber sein, dass ihr
manche Sachen fuer Linux (noch) nicht nachgezogen habt? Z.B.
./Project/FPGA/Source/loadFw.sh?
Da wird auf 'xst_13_1/LATop.bit' referenziert, dieses Subdirectory gibt
es aber gar nicht. Ist mir beim ersten drueber gucken aufgefallen, ich
werd's mal bei Gelegenheit durch die Toolchain hier jagen (alles unter
Linux).
Gruss,
- berndl
Hoppla, ja, das wurde wohl vergessen.
Wir haben aber festgestellt, dass Xilinx ISE unter Linux extrem schlecht
bis gar nicht funktioniert... (Unter Ubuntu)...Da lief z.T. gar nichts
und wir mussten alles im Windows machen...
==> Viel Glück!
Lg
Mario
oehm, also hier privat laeuft Xilinx ISE 12.3 unter Ubuntu 10.04
eigentlich besser (mindestens gleich gut) als der ganze Krempel 'auf
Arbeit' unter Windows XP. Wie's mit neuen ISE Versionen und Win7
aussieht weiss ich allerdings nicht...
Gruss,
- berndl
Hallo zusammen,
ich bin der Kollege von Mario.
Also ISE 13.1 geht überhaupt nicht. Das Design braucht um zu kompilieren
die ganzen Optimierungen die standardmässig off sind. Wenn man die im
ISE 13.1 aktiviert bleibt es hängen oder crasht. Unter 12.3 und Linux
traten diese Probleme vereinzelt auch auf, wir haben aber nicht versucht
das zu fixen.
Weil oben von portieren gesprochen wurde: das ist für Version 2.0 (mit
400MHz sampling) wohl nur schwer möglich. Das Design ist sehr stark
optimiert, Teile des FPGA Layout wurden von hand gemacht um maximale
Taktrate zu erhalten. Wenn mal also bei einem low end FPGA wie Spartan
oder Cyclone bleibt ist das sehr mühsam.
LG,
Lukas
Hallo Lukas und Mario,
also ich bin gerade am spielen mit dem Bithound2 FPGA. Was habt ihr denn
da gemacht?
Die .ucf file vom Bithound1 war noch 'geradeaus' und fuer mich
nachvollziehbar. Die vom Bithound2 (ihr habt da angefangen, mit XPS
rumzuspielen, oder?) ist ja eine Katastrophe... Also ich blicke da nicht
mehr durch :o(
Immerhin ist ISE12.3 unter Linux bei mir ohne Fehler durchgelaufen (auch
Timing hat die Toolchain als ok gemeldet). Nur mit der 'Strategy' gab es
eine Warnung, ich habe mal auf 'Performance with IOB Packing'
umgestellt. Das habe ich gerade mal durch die Toolchain 12.3 gejagt, er
meldet mir bzgl. Timing: 'All constraints met', also GRUEN. Aber ich
habe die .ucf nicht wirklich analysiert und verstanden...
Ansonsten hab' ich im Setup nix geaendert, eure Probleme kann ich
erstmal nicht nachvollziehen
Gruss,
- berndl
PS: Eure mitgelieferte .xise (Projektdatei) lief bei mir mit 12.3 ohne
meckern, das scheint ja dann die passende Version zu sein (ISE kann ja
erstmal nicht eine .xise von 13.x in 12.x importieren, das hatte mich
auch gewundert...)
Hallo berndl,
die mitgelieferte .xise ist in Version 12.x erstellt weil 13.1 nicht
funktioniert.
Das UCF ist deshalb so lange weil es nicht von Hand sondern mit
PlanAhead erstellt wurde. Die timing kritischen Logikteile werden dort
auf bestimmte LUTs / FFs im FPGA fixiert. Dadurch ist es möglich
stufenweise alle Timing-Probleme in den Griff zu bekommen. Der Preis
dafür ist halt das endlos lange UCF. Das funktioniert so lange gut so
lange du nicht an der krtischen Logik (alles was mit 200MHz läuft)
rumspielst. Also LA core, Trigger, etc.
Wenn du das änderst musst du entweder im UCF die entsprechenden Einträge
löschen oder im PlanAhead die Fixierungen aufheben. Wenn du das machst
musst du dann wieder in mehrere Implementationsschritten solange
optimieren und rumschieben bis es passt.
MfG,
Lukas
Ich nehme an, ihr werdet eure Gründe haben, warum das so manuell
platziert ist, aber die FPGA-Expertern schwärmen mir doch immer wieder
vor, wie einfach das in der Hochsprachenformulierung ist und sich das
design von alleine platziert.
Wieviel schneller wird der Analyzer durch das händische Routing?
Moin,
Wäre eine Weiterentwicklung mit extra Platinen ohne Evalboard denkbar?
In welchem preislichen Bereich könnte man das relaisieren und ist
Interesse vorhanden, das zu tun?
Mal zur Dokumentation:
Nicht jeder hat Lust, wenn er schon eine "richtige" Layoutsoftware
benutzt, Ki(nder)Cad zu installieren.
Ein paar PDFs oder PNGs sollten da schon noch drin sein...
Hoi Zäme,
klar wäre eine entsprechende Weiterentwicklung ohne Evalboard denkbar.
Wir haben dazu leider keine Zeit... :-)
Und zur Doku: Für CHF50 pro Stunde ergänze ich dir die PDFs gerne ;-)
Gruess!
Thomas Werner schrieb:> Ich nehme an, ihr werdet eure Gründe haben, warum das so manuell> platziert ist, aber die FPGA-Expertern schwärmen mir doch immer wieder> vor, wie einfach das in der Hochsprachenformulierung ist und sich das> design von alleine platziert.
Wer von optimaler Entwicklung allein durch Verwendung von
FPGA-Hochsprachen spricht ist kein FPGA Experte sondern ein
VHDL/Verilog-Programmierer.
Ohne das richtige Architekturkonzept und tiefen KnowHow von Board-design
und FPGA-Interna keine optimale Lösung. Der Lösungsraum ist einfach zu
groß als das dieser durch Optimierungsalgorithmen komplett abgesucht
werden kann. Ohne Clevere Einschränkung (constraints, hier
LOCATION-constraints) ist da nix optimales zu schaffen, wer anderes
verspricht ist ein akademischer Träumer.
MfG,
Solange aber doch das Design in den Chip passt, funzt es doch?
Und wieviel Knowhow vom Chip soll man haben, um eine bessere Lösung zu
finden, als das Tool? Das kennt doch die Resourcen am Besten.