BitHound - FPGA Logic Analyzer

Gast #2194662
Lesenswert?

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

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!
Gast #2373864
Lesenswert?

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

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

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

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

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,

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