Forum: Projekte & Code BitHound - FPGA Logic Analyzer


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mario M. (Gast)


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

von Stephan G. (greeny)


Lesenswert?

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

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Wenn ich etwas Zeit hätte, würde ich es auf meine Alteraboards 
portieren.

von Lehrmann M. (ubimbo)


Lesenswert?

Juergen Schuhmacher schrieb:
> Wenn ich etwas Zeit hätte, würde ich es auf meine Alteraboards
> portieren.

Warum?

von Timmo H. (masterfx)


Lesenswert?

Lehrmann Michael schrieb:
> Warum?
Vermutlich deswegen, damit er sich nicht extra ein neues (und teures) 
Xilinx Board kaufen muss, sonder die bestehenden verwenden kann.

von Marian Kopecky (Gast)


Lesenswert?

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.

von berndl (Gast)


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!

von Mario (Gast)


Lesenswert?

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

von berndl (Gast)


Lesenswert?

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...

von Mario (Gast)


Lesenswert?

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

von berndl (Gast)


Lesenswert?

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

von Mario M. (Gast)


Lesenswert?

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

von Dennis (Gast)


Lesenswert?

Saubere Arbeit!!

von berndl (Gast)


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

von Mario M. (Gast)


Lesenswert?

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

von berndl (Gast)


Lesenswert?

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

von Lukas (Gast)


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

von berndl (Gast)


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...)

von Lukas (Gast)


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

von Tom W. (Gast)


Lesenswert?

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?

von Mario (Gast)


Lesenswert?

Ohne händisches Routing schafft er das timing nicht... :-)
Jaja, so gut ist ISE noch nicht, dass es das von alleine schafft...

von moeb (Gast)


Lesenswert?

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?

von ./. (Gast)


Lesenswert?

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...

von Tom W. (Gast)


Lesenswert?

Dokumentieren ist den meisten Ingenieren nicht gegeben. Ist auch 
beruflich meistens so,,,

von Mario M. (Gast)


Lesenswert?

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!

von Ronald Realo (Gast)


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,

von Tom W. (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.