Forum: Projekte & Code 100/200 MHz Logikanalysator (Spartan 3, SRAM)


von Michael P. (sump)


Lesenswert?

Hallo,

ich möchte hier kurz einen Logikanalysator vorstellen, den ich bereits
vor einiger Zeit im Wiki eingetragen habe. Inzwischen hat er eine
2-monatige Entwicklungsgeschichte hinter sich. Als Hardware dient ein
Spartan 3 Experimentierboard. (Kostenpunkt 100 Euro)

Eckdaten:
- 16 Kanäle bei 200MHz Abtastfrequenz (experimentell)
- 32 Kanäle bis 100MHz Abtastfrequenz
- 256KSamples Speicher
- Störungsfilter
- Trigger (steigende/fallende Flanke)
- Serielle Schnittstelle
- Java Auswertungssoftware (für alle gängigen OS)

Details und Downloads (vhdl & java) hier:

http://www.sump.org/projects/analyzer/

Freu mich über Feedback.

von Dirk (Gast)


Lesenswert?

Hi,

ich hab dein LA schon vor ein paar Wochen getestet. Einen kleinen
Verbesserungsvorschlag:

Der LA bietet im moment nur eine Timinganalyse. Eine Stateanalyse waere
vielleicht sehr hilfreich.

Ansonsten gefaellt mir das alles sehr gut insbesondere der
Eingangsfilter.


Liege ich richtig damit das man mit dem Starterkit nur 3,3V Systeme
analysieren kann, weil der FPGA keine 5V Toleranten I/O's hat?


Gruß,
Dirk

von gerhard (Gast)


Lesenswert?

hallo,
wer sich den selbstbau sparen möchte hier ein tipp für eine ähnliche
aber kommerzielle lösung:
http://www.pctestinstruments.com/
ist in europa über demotech (http://www.demotech.dk/) zu beziehen.

habe den analyzer seit einigen wochen in verwendung und bin sehr
zufrieden damit. vorallem die sog. interpreter (f. rs232, i2c, spi) ist
sehr praktisch.

gruss
gerhard

von Dirk (Gast)


Lesenswert?

Hi,

379 Dollar bzw 350 Euro ist nicht gerade billig ;)

Gruß,

Dirk

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Hallo Michael,

das Projekt gefaellt mir gut.
Ich habe letztens auch genau das Gegenstueck zu deinem Projekt hier
veroeffentlicht. Ein langsamen billigen Logik Analysator.


Eventuell koennte ich meine Hardware an deine Oberflaeche
anschliessen.

http://www.ixbat.de/index.php?page_id=92

Wir bieten eigentlich die gleichen Features an, d.h. ich habe keinen
Noise Filter, aber noch verschiedene andere Abtastmodi.

Kann dein Tool die Daten "Online" anzeigen, oder holst du erst alle
Daten nach der Messung von deinem Geraet ab?


Gruss Bene

von Michael P. (sump)


Lesenswert?

Hallo,

danke für eure Anmerkungen.

@Dirk:
State-Analyse ist ein nettes Feature. Wenn sich das elegant nachrüsten
lässt, werd ich das noch einbauen.
Die einfachen kommerziellen Geräte scheinen da ja auch nur mit sehr
einfachen Mitteln mit dem internen Takt zu synchronisieren. Zumindest
vermute ich das, weil da immer die halbe Samplingrate im Vergleich zur
Timinganalyse angegeben ist.

Und besonderen Dank für den Hinweis, dass das Board nur 3,3V-Signale
verträgt. Ich war fälschlicherweise der Meinung, die Spartan 3 Familie
wäre (generell) 5V-tolerant. 5V verträgt der Chip aber nur, wenn man
den Strom auf 10mA begrenzt, der durch die Schutzdiode zu VCCO fließt.

Werde das in den nächsten Tagen auf der Webseite noch einarbeiten.
(Inklusive Work Around)

@Benedikt:
Die Software ist sehr spartanisch. Ich wollte nur mit minimalem Aufwand
etwas funktionierendes in der Hand haben. Aber wenn du sie nutzen
möchtest, nur zu. :)
Es sollte nicht weiter schwer sein, einfach die Device-Klasse
auszutauschen bzw. noch ein Interface dazwischen zu hängen, um
verschiedene Devices zu unterstützen.

Das Fehlen eines Filters ist das kleinste Problem. Device hat eine
Methode isFilterAvailable(), die darüber Auskunft gibt, ob mit den
momentanen Einstellungen der Filter genutzt werden kann. Davon hängt
ab, ob das Häckchen ausgegraut wird.
Aber im DeviceController ist manches noch hardcodiert, zB. die Liste
der Samplingraten. (Auch wenn das Device über getMaximumRate() darüber
bereits Auskunft geben könnte.)

Eine andere (flexiblere) Möglichkeit wäre, dass du auch einen eigenen
DeviceController baust. Solange da dann ein CapturedData-Objekt
rauspurzelt, ist das dem Rest der Software egal. (Interface?)

Falls du sie noch nicht kennst, hier ist die (karge) API-Doku:

http://www.sump.org/projects/analyzer/client/doc/

"Online" kann die Software nicht. Im FPGA wäre dieser Modus aber sehr
leicht nachzurüsten, weswegen mich interessiert, wie du dir die
"Online"-Darstellung im Client vorstellst. Dazu reicht meine Fantasie
im Moment nicht aus. :) Wie beim Oszi? Oder Wasserfall? Oder Lämpchen?
Oder ganz anders?

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Also beim Online Modus meine ich mehr lange Daten mit der
Speicherkapazitaet eines PC aufzeichnen.

Wenn man mal etwas laenger mitschneiden moechte (also die max interne
Speichertiefe)

von Michael P. (sump)


Lesenswert?

Achso. Mit einem eigenen DeviceController könntest du das transparent
machen, sofern die Daten nicht schon während der Aufnahme angezeigt
werden sollen.

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Nein das muss nicht sein, macht ja nicht viel Sinn.
Hast du Erfahrung mit usb und java?


Gruss Bene

von Dirk (Gast)


Lesenswert?

Hi,

ihr solltet auch mal das Frontend vom MiniLA anschaun. Die Frontend
Software finde ich persönlich schon sehr ausgereift.

Die beste Funktion an der Software sind schon die 3 Protokollanalyzer
(SPI,I²C und RS232).

Ich bin gerade dabei und route eine PCB für ein Logic Analyzer auf
Basis des MiniLA. Leider gibt es nirgends mehr diese NOBL bzw ZBT
synchron SRAM's, deshalb hab ich gestern mal ein SDRAM Controller Core
getestet und war positiv ueberrascht.

Für drei Prototypen haette ich noch ein paar passende SSRAM's, aber
die mindestabnahme spaeter (175 Stk) übersteigt auch mein Budget.

Gruß,

Dirk

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Gibts einen Link zu dem MiniLA ?

von Dirk (Gast)


Lesenswert?

http://www.mikrocontroller.net/forum/read-9-365037.html

Das Design hab ich mir auch schonmal sehr genau angeschaut (VHDL) und
die Frontend Software und ich muss ganz ehrlich sagen das ich Sie
besser finde.

Das einzige was mir bei dem Core nicht gefaellt ist das der Noise
Filter fehlt.

Zum testen hab ich den Core schon um zwei Funktionen erweitert. Sumps
Noisefilter ist implementiert und dann habe ich das design auf FPGA
umgeaendert mit PLL / DLL Stufen.

Gruß,

Dirk

von Daniel M. (usul27)


Lesenswert?

@Dirk: Würde mich interessieren, wie es bei dir weitergeht. MiniLA finde
ich sehr interessant, aber die Bauteilbeschaffung ist halt
problematisch. Daher würde mich ein LA interessieren, dessen
Bestandteile leicht zu beschaffen sind und der auch 5V-taugliche
Eingänge hat. VHDL kapiere ich selbst irgendwie nicht, daher fällt eine
Eigenentwicklung aus :(

von Dirk (Gast)


Lesenswert?

Hi,

im Moment besteht nur das Problem das synchrone SRAM zukaufen. Bei
Anfragen bei Distri's wurde mir eine Mindestabnahme von 175 Stk
mitgeteilt. Der Preis von 5 Euro war schon ganz ok, aber nicht die
Mindestmenge. Ein anderer Distri hatte eine Mindestabnahme von 72 Stk
zu 9 Euro das Stk, aber das sind mir auch zuviele.

Ich hab bei RS Components zwei Stueck bestellt, aber die Lieferzeit
betraegt 12 Wochen.

Der FPGA ist zubeschaffen und da koennte ich mir auch locker 20 Stk.
von auf Lager legen. Der FPGA haette auch 5V Tolerante I/O's und waere
im TQ144 Gehaeuse (leicht zuloeten).

Ich hab heute bei Cypress Sample's geordert und hoffe die liefern
schnell.

Laut Sythesize Report ist noch genug Platz im FPGA frei um noch mehr zu
implementieren.

Ich hoffe Cypress liefert an mein Gewerbe die Sample's, dann lass ich
erstmal nen Prototyp bauen und schaue weiter, falls ich das Problem mit
dem SSRAM hingekriege werde ich die Platinen in meinem Shop anbieten,
aber erstmal abwarten und Tee trinken.

Gruß,

Dirk
www.myevertool.de

von Gast (Gast)


Lesenswert?

@dirk
Hast du vor das Projekt als Bausatz zu erstellen?
MfG

von Stephan (Gast)


Lesenswert?

Hallo Michael,

nettes Project. Hast du eine testbench zur Verifikation erstellt
oder nur auf dem Target getestet ?

Gruss
Stephan

von Michael Poppitz (Gast)


Lesenswert?

@Benedikt:
Nein, mit USB habe ich noch nichts gemacht. Aber irgendwo hier im Forum
oder Wiki wurde schon ein Package vorgestellt, das USB in Java nutzbar
macht.

@Daniel M:
Wenn du 5V-Signale messen willst, reicht im einfachsten Fall ein
Widerstand in Reihe, um den Strom ausreichend zu begrenzen. Nur wenn
viele 5V-Signale gemessen werden, könnte das in der Summe für
Messobjekt und Spannungsregulierung auf dem Analyzer stressig werden.

Gestern schlug jemand in einer Mail noch eine andere Lösung vor. Ich
bin nur leider noch nicht dazu gekommen, mir das anzuschauen. Mehr dazu
später.

@Dirk:
Stimmt, die MiniLA Software macht einen ausgereifteren Eindruck. Leider
nur unter Windows. Aber für die meisten Leute ist das sicher akzeptabel.
Werde mir deren Schnittstelle bei Gelegenheit mal anschauen.

@Stephan:
Nein, Testbenches gibt es nicht.

Die Mails werde ich bald beantworten. Sorry.

von Dirk Büttner (Gast)


Lesenswert?

Hallo Michael,

schau Dir bitte mal meine Email an koennte Interessant werden.

Gruß,
Dirk

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

warum muss immer alles ueber Email gehen?
Ist das hier ein Forum oder eine Plattform um Geheimnisse
auszutauschen?

Gruss Bene

von Gast ein Anderer (Gast)


Lesenswert?

Erstmal Respekt für dein Projekt - find ich auch sehr interessant.
Das mit den emails finde ich auch schade.
Meine derzeitige Überlegung ist ein (je 16 Kanal) 74ALVT16245 direkt
hinter den Anschlussklemmen (also noch vor den Kabeln zum eigentlichen
LA). Vorteile: 5V tolerante Eingänge, ESD Schutz, und ich erwarte auch
weniger Probleme mit parasitären Kapazitäten durch die Kabel, da das IC
Treiberfähigkeiten mitbringt (+64/-32 mA). Das Ding scheint wirklich
recht schnell zu  sein T  PLH und T PHL je 1,5 nSec.  . Nachteil Preis
und Verfügbarkeit DigiKey 2,45 EURO + MwSt Versand .
Wahrscheinlich gibt’s noch schnellere Logik oder jemand hat ne Idee für
ne echte Eingansstufe/Probe mit schnellen Komparatoren oder so. Krieg
ich ja nicht mit wenn Ihr euch  nur per email  unterhaltet.

Ich hab ein Problem mit den 115Kbaud (nicht nur beim LA mein
Arbeitsplatz ist der reinste EMV Testplatz). Eine Com über USB zu
simulieren (FTDI chip)  bringt bei mir meist Abhilfe - braucht aber
wieder extra Hardware. Könnte aber auch was für Benedikt sein. Rufus
hat hier:  http://www.mikrocontroller.net/forum/read-8-342392.html#new
dazu was geschrieben. Das scheint unter Windows und unter Linux zu
funktionieren fragt sich, ob das auch mit seinem USB IC funktioniert
wenn ja bräuchte er nicht mal deinme Software zu ändern/ an zu passen .
Trotzdem würde ich mir eine Baudraten Einstellung wünschen. Die Software
bricht nicht mit no „connect “ oder „time out“ ab,  sonder tut so als ob
sie ewig auf einen Trigger wartet.  Auf der anderen Seite werden  mit
19k2 baud  gesendeten ASCII zahlen 0 bis 5000 (steht für mV - von einem
AVR AD-Wandler) als wunderbares Logikfile  fehl- interpretiert und
grafisch dargestellt. Vielleicht sollte die Software auch abfragen ob
an dem com port überhaubt ein geeignetes Gerät hängt. Soll keine Kritik
sein. Ich schreib hier nur was mir aufgefallen ist. Wie gesagt ich finde
dein Projekt toll.
Viel Erfolg noch.

von Benedikt S. (Firma: embedded projects GmbH) (flopper)


Lesenswert?

Also mit USB kann ich dienen.
Ich habe das Projekt http://usbn2mc.berlios.de/
ins Leben gerufen.

Mit diesem wollte ich echtes USB in Projekte kriegen. Also ohne
Schnittstellenwandler.

Man kann ganz einfach die komplette Bandbreite von USB nutzen.
Und das ganze fuer nur 5 EUR (soviel kostet der USBN9604).

Wobei ich um das ganze einfacher zu gestalten zu einem kleinen
Mikrocontroller raten wuerd, der die Steuerung fuer den USB Chip
macht.

Gerne kann ich an dieser Baustelle helfen.

von Gast ein Anderer (Gast)


Lesenswert?

ohe Datenraten werden aber bei einem Projekt mit Offlinebetrieb nicht
zwingend gebraucht. Mir wäre es halt lieber langsamer aber zuverlässig.
Ich will USB vermeiden wegen der extra Hardware. Ich dachte dein Problem
wäre USB>Java deswegen die Idee mit der virtuellen COM. Ich wusste nicht
das du wirklich so hohe Datenraten erreichst (muss ich mir auch noch mal
anschauen).
Gruß

von Holger Mößinger (Gast)


Lesenswert?

Hallo

das Projekt sieht sehr Interessant aus. Ich überlege es mir
nachzubauen.

Es sind aber noch ein paar Fragen offen.

Welche externe Beschaltung muss denn noch an das Entwicklerboard dran?
Oder ist das bisher alles einfach so angeschlossen und es gehen nur 3,3
Volt Pegel?

Die Kriterien für 5 Volt Eingangsspannung bei Begrenzung des Stroms auf
10 mA sollten sich sicherlich mit Vorwiderständen erfüllen lassen.
Wie sieht es überhaupt mit dem Eingangswiderständ des Systems aus?
Kommen da noch Signale an, wenn ich da z.B. ein MegaOhm
Eingangswiderstand vorschalte?

Wie viele Reserven sind denn noch im FPGA vorhanden?

Evt. könnte man das ganze auch als einfaches zweikanal
(Nur-)Speicheroszilloskop nehmen, wenn man an je 16 der Eingänge einen
AD Wandler schalten würde. Die passende konvertierung und Anzeige der
Signalverläufe müsste dann halt die Software am PC machen.
Dazu wären aber noch ein Taktausgang für die AD Wandler, ein Eingang
für nen externen Trigger und zwei "Steuerausgänge" zur Einstellung
der vorgeschalteten Elektronik (Verstärkungsfaktor am OP per seriellem
AD Wandler, oder so ähnlich) nötig.

Ginge so etwas prinzipiell noch in den FPGA rein?

Gruß Holger

von Michael P. (sump)


Lesenswert?

Hallo Holger,

bin leider grad im Prüfungsstress, deshalb nur ganz kurz zu deinen
Fragen:

Es gibt noch keine externe Beschaltung. 3,3V Signale kannst du direkt
über die Pfostenleisten messen. Was Vorwiderstände angeht: Die
Eingangskapazität des FPGA war soweit ich mich erinnere mit 3pF
angegeben. D.h. wenn man auch hohe Frequenzen messen will, muß man die
10mA schon ausschöpfen. Im Forum und via Mail wurde aber schon eine
elegantere Lösung via IC vorgeschlagen. Die habe ich aber noch nicht
ausprobiert.

Die Testschaltung mit dem Atmel habe ich erstmal von der Seite
entfernt. Als ich die gebaut habe, war ich noch der Meinung, der
Spartan wäre 5V tolerant. :)

Der FPGA ist soweit ich mich erinnere zu ca. 25% gefüllt.
Nur bei belegten IOBs war der Anteil höher (in erster Linie
Speicherinterface), aber da sind auch noch jede Menge frei.

Mit entsprechend schnellen AD-Wandlern könnte man das sicher auch als
Speicheroszi nutzen. Aber bei 16bit pro Sample ist die Übertragung über
die serielle effektiv 16mal langsamer als jetzt.
D.h. da sollte man dann auch gleich noch USB oder Ethernet nachrüsten.

(Eine neue Version, die ein paar der Probleme/Ideen adressiert, die in
Beiträgen weiter oben eingebracht wurden, wird in 2-3 Wochen kommen.
Was bereits umgesetzt ist, steht hier:
http://www.sump.org/projects/analyzer/history/
)

von Ulrich (Gast)


Lesenswert?

Ich bin gerade auf das Projekt hier gestoßen. Ich überlege mir das
aufzubauen, weil das macht den besten Eindruck von allen bisherigen
LA-Projekten.

Leider habe ich bisher noch nix mit VHDL gemacht. Räumt ihr mir
trotzdem Chancen auf Machbarkeit ein?

Sind noch andere Bereit da mit einzusteigen? Gemeinsam erreichen wir
das Ziel schneller bzw. aufjedenfall.

Kann ich mit folgendem in der Software rechnen bzw. selbermachen:
(Kenne ich halt von "Siemens S7")

- Beliebige Eingänge z.B. Bit0-Bit7 werden zusammengefasst um Werte
zwischen 0-255 anzuzeigen. Somit könnte man auch AD-Wandler
anschließen
- Beliebige Eingänge als Bus kennzeichnenund die Daten automatisch
interpretieren lassen
- Triggern auf Kommandos bei seriellen Kommunikationen
- Setzen von Ausgängen bei bestimten eingangsmustern
usw.
-Java ist mir zu unsympatisch.....

Hoffentlich gehts vorran das Projekt ist zu gut um es einschlaffen zu
lassen.

von Holger M. (nezaya)


Lesenswert?

Hallo Ulrich

Zum Einstieg würde ich dir empfehlen dir mal die ISE Software von
Xilinx herunterzuladen. Der Webpack ist frei erhältlich. Nur
registrieren musst du dich.
Damit kannst du die ganze Logik erstellen. Der Einstieg ist eigentlich
nicht schwer.
VHDL brauchst du nicht unbedingt. Das ganze geht auch als Schaltplan
oder als State Machine. Wobei letztere in diesem Fall wohl weniger
geeignet ist, außer evt. für die Kommunikationsschnittstelle mit dem
PC.

Die Punkte die du aufzählst, sollten sich alle in Software, bzw. als
Erweiterung auf dem FPGA realisieren lassen.
Das mit den Anschluss von AD Wandlern hab ich ja weiter oben schon mal
angesprochen. Ich bin im Moment dabei das ganze so zu erweitern, dass
es prinzipiell als Oszilloskop nutzbar ist. Theoretisch sollten da 4
Kanäle a 8 bit bei 100 MHz Samplerate drin sein. Passende AD Wandler
hab ich schon gefunden. Die analoge Vorschaltung ist im Moment noch der
begrenzende Faktor, was die Bandbreite betrifft. Weiter als 10 MHz werd
ich da wohl mit vertretbarem Aufwand nicht kommen.

> -Java ist mir zu unsympatisch.....
Das dürfte ein Streitpunkt werden. :-)

Ich hoffe auch, dass das Projekt nicht einschlafen wird. Leider hab ich
grade nicht viel Zeit um daran weiterzuarbeiten. Es wird also dauern.

Holger

von Dirk (Gast)


Lesenswert?

Hi,

>Theoretisch sollten da 4 Kanäle a 8 bit bei 100 MHz Samplerate drin
>sein.

8bit sind ein bischen wenig, weil man die letzten zwei Bit verwerfen
sollte. Ihr solltet aus diesen Grund einen 10 Bit AD Wandler nehmen und
nur 8Bit als ADC Wert benutzen.

Gruß,

Dirk

PS.: Ich hab die Blockram Stage komplett fertig mit Testbench und hab
diese in Modelsim verifiziert.  Aus diesem Grund werde ich komplett auf
externene Speicher verzichten. Bei einem XC3S400 sind es bei einem 8
Kanal LA 32768 Samples und in meinen Augen reicht es aus. Die Platinen
gehen Montag in Auftrag. Ich versuche gerade die Blockram Stage in
Michael's Design einzupflegen. Leider stellt sich das alles als
schwieriger herraus als erst gedacht, weil sein ganzes Design fuer
einen 16 LA ausgelegt ist und ich erstmal nur eine 8 Kanal Version ohne
State Analyse implementiert habe.
Falls jemand mich unterschuetzen moechte braeuchte ich ein bischen
Hilfe bei der Programmierung des FPGA ueber FT2232. Die Software
muesste in Delphi realisiert werden, weil ich gerne einen grossen Teil
der Frontend Software vom MiniLA uebernehmen moechte.

von Holger M. (nezaya)


Lesenswert?

Hallo Dirk

dass von den 8 bit meist nur noch 6-7 Bit übrig bleiben liegt am
Rauschen, das von der vorgeschalteten Analogelektronik kommt. Das macht
sich vorallem bei hoher Abtastrate bemerkbar. Einfach einen 10 Bit
wandler zu nehmen, bringt da wohl auch nichts, denn das Rauschen bleibt
gleich. Ich muss dann aber statt zwei Bit vier "wegschmeißen".

Außerdem sind 10 Bit AD wandler in passender Geschwindigkeit um einiges
teuerer. Und die wenigsten Oszis haben mehr als einen 8 Bit Wandler. 8
Bit sollen also ausreichen.

Gruß Holger

>8bit sind ein bischen wenig, weil man die letzten zwei Bit verwerfen
>sollte. Ihr solltet aus diesen Grund einen 10 Bit AD Wandler nehmen
>und nur 8Bit als ADC Wert benutzen.

von Dirk (Gast)


Lesenswert?

Hi,

ich hab einige Speicheroszilloskope aufgeschraubt und mir den AD
Wandler Part angeschaut und hab festgestellt das auch bei 8Bit
Oszilloskopeaufloesung ein 10Bit oder sogar 12Bit drin war.

Gruß,
Dirk

von Ulrich (Gast)


Lesenswert?

Wenigstens ist der aktuelle Stand des Projektes schon soweit
fortgeschritten das es Funktioniert. Selbst wenn es jetzt komplett
einschläft und keiner entwickelt weiter, hat man einen Stand mit dem
man arbeiten kann......

Was ist eine günstige Bezugsquelle? Auser dem Starterkit und der
Eingangsbeschaltung brauche ich nichts weiter oder?

von Ulrich (Gast)


Lesenswert?

Gibts hier eigenltich so Personen wie mich die frisch mit FPGA anfangen
und das nachbauen wollen?

von Thorsten (Gast)


Lesenswert?

@Ulrich: Hi,

ich bin einer der gerade mit FPGA anfängt und gerne dieses Projekt
nachbauen möchte...

Mal schauen was wird.

Gruß
Thorsten

von Michael P. (sump)


Lesenswert?

Seit gestern gibt es auf meiner Website die Version 0.6 zum Download:

http://www.sump.org/projects/analyzer/

Von den Vorschlägen, die hier gemacht wurden, sind drin:

- State-Analyse (jeweils rising oder falling edge)
  - in Hardware über externe Clock (geht direkt auf IOBs)
  - in Software um nachträglich Timing-Analysen zu konvertieren
- Device-Identifikation um sicherzustellen, dass das Gerät auch
wirklich da ist
- Übertragungsgeschwindigkeit ist einstellbar

Für Erweiterungen (insbesondere das vorgeschlagene Speicheroszi) habe
ich vorbereitet:

- die 32 Signaleingänge liegen alle auf einem Connector (B1, 4-35)
- der interne Sampling-Takt wird über Pin 40 auf B1 ausgegeben
  (damit könnte man zum Beispiel externe ADCs triggern)
- "Oszi-Darstellung" von Kanalgruppen in der Software

Damit sollte man zumindest erstmal ein Proof-of-Concept hinbekommen.

Was sich darüber hinaus noch geändert hat, steht hier:

http://www.sump.org/projects/analyzer/history/

Gruß
Micha

von Ulrich (Gast)


Lesenswert?

Ich habe jetzt mal die Sourcen heruntergeladen und ein neues Projekt
angelegt. Ich konnte das Projekt dann auch fehlerfrei mit 5 Warnungen
übersetzen.
Ich habe mir jetzt aber nicht das "Xilinx FPGA XC3S200-4" bestellt
sondern das "Xilinx FPGA XC3S1000-4". Wenn ich dies im Projekt
umänder und neu übersetze (wieder 5 Warnungen) kann ein "timing
constraint" von 10ns nicht mehr eingehalten werden. Was bedeutet das
jetzt? Was kann ich da machen? Funktioniert das jetzt trotzdem?

Mfg
Ulrich

von Holger M. (nezaya)


Lesenswert?

Hallo Ulrich,

leider kann ich zu dem geschilderten Problem nix sagen. Was hast du
denn geändert?
Was mich aber interessiert. Wo hast du denn das "Xilinx FPGA
XC3S1000-4" Board bestellt und zu welchem Preis? Ich hab bisher
niemanden gefunden, der das liefern konnte.

Holger

von Stephan H. (stephan-)


Lesenswert?

@Michael,

ist denn eine Standalone Lösung in Sicht, ohne das Eval Board ???
Oder macht das keinen Sinn ( Preis, Platine, Lötbarkeit ) ??
Klingt ja alles sehr vielversprechend !!

Also viel Spaß noch.

Stephan

von Holger M. (nezaya)


Lesenswert?

Hallo Stephan

Das Problem bei einer Standalone-Lösung dürfte die Lötbarkeit des FPGA
sein. Das ist ein BGA mit mehr als 200 Pins. Außerdem würde wohl ne
Platine dafür machen zu lassen und die nötigen Teile zu kaufen, in
Kleinserien, auch nicht viel billiger werden, als das Eval Board. Ich
lass mich aber gerne vom Gegenteil überzeugen.

Holger

von Stephan H. (stephan-)


Lesenswert?

na das macht wohl ehr wenig Sinn.
Trotzdem Danke

von Ulrich (Gast)


Lesenswert?

Ich habe es direkt vom Hersteller bezogen. Ich hoffe der liefert auch.
Laut dem Traking von USPS.com wurde das Paket noch nichtmal abgeholt.
Und das seit 5 Tagen. Obwohl sie es am gleichen Tag der Bestellung
wegschicken.....

Das Board alleine wird mich 116 Euro kosten. Der Dollar-Kurs ist nicht
schlecht....

Jetzt denkt ihr natürlich das wird teuerer wegen zoll usw. aber auch
dafür habe ich eine Lösung:
Ich bin gerade in Amerika. Und werde es auf dem Rückflug mitnehmen. Das
ist dann völlig legal(stimmt doch?) und die günstigste Lösung.

von Holger M. (nezaya)


Lesenswert?

Ja, das ist eine gute Lösung.

Hier kostet ja schon das einfache (XC3S200) Board 115 Euro incl. MwSt.
Bei anderen Sachen ist das genauso. Der Dollar wird da 1 zu 1 zu Euro
und dann kommt noch was drauf.  Da muss ich wohl auch mal jemanden
rüber schicken. :)

von Ulrich (Gast)


Lesenswert?

Aber bevor noch jemand anderes das 1000er Teil kauft sollte mir mal
jemand erklären warum ein größerer FPGA langsamer ist. Ich dachte das
wäre exact andersrum..... Wie finde ich die Stelle wo es hängt?

von Michael P. (sump)


Lesenswert?

@ulrich:
Die 5 Warnungen dürften alle nix weiter zu bedeuten haben. Die
Timing-relevanten hängen mit der Behandlung des externen Taktes
zusammen. (negierender Pfad an dem einen BUFGMUX sowie Synchronisation
mit internem Takt)
Dein Constraint-Problem kann ich nicht reproduzieren, auch dann nicht,
wenn ich das Target auf XC3S1000 umstelle. Benutze hier 8.1.03i. Schick
mir doch mal das komplette Log via PM.

@stephan:
Der Aufwand für ein eigenes Board scheint mir kaum lohnend. Zumal man
das Eval-Board auch für andere FPGA-Experimente nehmen kann. (Ich hab
bei mir den LA im Flash, kann aber jederzeit mal fix was anderes in den
FPGA laden.)
Wenn es dir zu groß ist: Es gibt zB. bei Trenz Eletronic auch ein
Miniboard mit USB und wahlweise sogar reichlich SDRAM. (Ob der von der
Geschwindigkeit und der Busbreite her geeignet ist, weiss ich nicht.)
Da müßtest du dann aber einiges am Code anpassen.

von Ulrich (Gast)


Lesenswert?

Wärst du auch mit dem kompletten Projektverzeichnis zufrieden? Ich bin
leider noch nicht soweit dir die relevanten Dateien rauszufischen.

von Ulrich (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt ein neues Projekt angelegt.
Ich habe synthese, place&route und clock report angeklickt
Ich habe das "Webpack 8.2i". Ich hoffe das hilft weiter.

PS: Grundsätzlich ist doch ein größerer FPGA nicht langsamer?

von Stephan H. (stephan-)


Lesenswert?

@Michael,
wie es so ist im Leben. Ich brauche ja kein Eval Board, da ich mit FPGA
nichts mache. Ist bei mir nur Hobby. Habe mal in VHDL reingeschnuppert
und mal mit "Galileo" rumgespielt, aber sowas brauche ich für meine
Spielerein nicht.
Auf der anderen Seite bekommt man für ca.120 EUR keinen so schnellen
LA
geschweige einen 2 oder 4 Kanal dig. Oszi.
Obwohl es ja nur die halbe Wahrheit ist. Da kommt ja noch einiges für
die A/D Wandler und Kleinteile. War ja "nur" ne fixe Idee, und
spontane jedoch fesselnd Begeisterung.
Also schaun mer mal, wie´s weiter geht.

Gruß Stephan

von Ulrich (Gast)


Lesenswert?

Vielleicht hilfts:

======================================================================== 
========
Timing constraint: TS_clock1 = PERIOD TIMEGRP "clock1" TS_xtalClock /
2 HIGH 50%;

 8667 items analyzed, 1 timing error detected. (1 setup error, 0 hold
errors)
 Minimum period is  10.186ns.
------------------------------------------------------------------------ 
--------
Slack:                  -0.093ns (requirement - (data path - clock path
skew + uncertainty))
  Source:               Inst_filter/input180Delay_17 (FF)
  Destination:          Inst_filter/input180_17 (FF)
  Requirement:          5.000ns
  Data Path Delay:      5.070ns (Levels of Logic = 0)
  Clock Path Skew:      -0.023ns
  Source Clock:         clock180 rising at 5.000ns
  Destination Clock:    sampleClock rising at 10.000ns
  Clock Uncertainty:    0.000ns
  Timing Improvement Wizard
  Data Path: Inst_filter/input180Delay_17 to Inst_filter/input180_17
    Delay type         Delay(ns)  Logical Resource(s)
    ----------------------------  -------------------
    Tiockiq               0.259   Inst_filter/input180Delay_17
    net (fanout=1)        4.608   Inst_filter/input180Delay<17>
    Tdick                 0.203   Inst_filter/input180_17
    ----------------------------  ---------------------------
    Total                 5.070ns (0.462ns logic, 4.608ns route)
                                  (9.1% logic, 90.9% route)

------------------------------------------------------------------------ 
--------

======================================================================== 
========
Timing constraint: TS_clock1801 = PERIOD TIMEGRP "clock1801"
TS_xtalClock / 2 PHASE 5 ns HIGH
        50%;

 0 items analyzed, 0 timing errors detected.
------------------------------------------------------------------------ 
--------


1 constraint not met.


Data Sheet report:
-----------------
All values displayed in nanoseconds (ns)

Clock to Setup on destination clock exClock
---------------+---------+---------+---------+---------+
               | Src:Rise| Src:Fall| Src:Rise| Src:Fall|
Source Clock   |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall|
---------------+---------+---------+---------+---------+
exClock        |    5.976|         |         |         |
xtalClock      |    5.976|         |         |         |
---------------+---------+---------+---------+---------+

Clock to Setup on destination clock xtalClock
---------------+---------+---------+---------+---------+
               | Src:Rise| Src:Fall| Src:Rise| Src:Fall|
Source Clock   |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall|
---------------+---------+---------+---------+---------+
exClock        |    6.777|         |         |         |
xtalClock      |    9.243|         |         |         |
---------------+---------+---------+---------+---------+


Timing summary:
---------------

Timing errors: 1  Score: 93

Constraints cover 8667 paths, 0 nets, and 2543 connections

von Michael P. (sump)


Lesenswert?

@ulrich:
Mein älteres ISE schafft das. :) Mußt du mal schauen, ob du bei dir
Optimierung auf Geschwindigkeit aktiviert hast. (Rechtsklick auf
Synthesize / Properties)
Abgesehen davon sind 0.1ns nicht viel. Da gibt es irgendwo noch eine
Option um extra gründlich zu optimieren, die für solche ärgerlichen
Fälle gedacht ist, wo es fast passt. Evtl. hilft vielleicht auch
zusätzlich noch ein Constraint für den Pfad input180Delay -> input180
mit 5ns Maximum zu definieren.

von Ulrich (Gast)


Lesenswert?

1. Zusätzliche Einstellungen waren schon drinnen oder haben nix gebracht
oder ich hab die nicht gefunden.
2. Constraint setzen bekomme ich noch nicht hin. Ich hoffe das diese
Woche noch das bestellte VHDL-Buch kommt
3. Zum Thema Probes:
Irgendwie gibts da nix günstiges außer "ML 6028 PRO" von Reichelt.
Kann man sehr leicht an flachbandkabel umlöten. Jeder Hacken kostet so
umgerechnet 1,50Euro.
4. Zum Thema Eingangsbeschaltungsschutz: Könnte man  aus Gründen der
Beschaffbarkeit usw. nicht auch den "XC 9536XL VQ44" von Reichelt für
1.90Euro verwenden? Der ist 5V tolerant. Und läßt sich gerade noch
löten.....
5. Man kann ja von 32Kanälen bereits auf 16 runterschalten und damit
die Auflößung verdoppeln. Ist es da auch möglich dafür die "Messzeit"
zu verdoppeln? Wäre auch an einem 8Kanal Modus interessiert.
6. Eventuell die Speicherimplementierung von Stack auf Fifo abändern?
Dann könnte man leichter einen Live-Modus einbauen.

7. Man könnte doch auch ohne das timing des LA zu beeinträchtigen auf
die "Messwerte" zugreifen und einen zusätzlichen trigger laufen
lassen der an die Messchaltung Signale zurückschickt?

@Michael:
Das von mir geschriebene (Punkt 5, 6 und 7) soll nicht als Aufgaben an
speziell dich sein. Es ist ja deine Zeit die du "Opferst". Es sind
halt meine Wünsche an das System. Es ist an alle Entwickler gerichtet.
Dazu sehe auch ich mich in nächster Zeit.

von Holger M. (nezaya)


Lesenswert?

>3. Zum Thema Probes:
>Irgendwie gibts da nix günstiges außer "ML 6028 PRO" von Reichelt.
>Kann man sehr leicht an flachbandkabel umlöten. Jeder Hacken kostet
>so umgerechnet 1,50Euro.

Wenn du die Klemmen einzeln bestellst und das Stück Kabel selbst dran
machst, kommst du mit 50 ct pro Klemme oder weniger raus. Außerdem
kannst du dir dann die Klemmen besser an den bevorzugten Einsatz
anpassen, z.B. kleine Spitzen für SMD ICs. Bei Reichelt kenn ich jetzt
leider keine, aber Conrad  #100435 und #190500 sind da ganz brauchbar.

von Ulrich (Gast)


Lesenswert?

Danke für die Tipps:
1. Also für die Artikelnummer 100435 wollen die 5Euro das Stück. Das
ist ja mal wieder Typisch Conrad ;-) 50Cent wäre doch viel zu billig
gewesen ;-)
2. Das sieht schon interesannter aus. Aber sind das nur Spitzen oder
wirklich Klemmen? Die sehen so aus wie die vom Reichelt. Merk ich mir
auf jedenfall mal...

von Holger M. (nezaya)


Lesenswert?

Die 100435 sind aber auch 7 Klemmen in der Packung (verschiedene Farben)
also unter 50ct pro Stück. Und die sind wirklich gut geeignet um auch an
SMD Pins zu messen. Gibts aber sicherlich auch woanders.

von Gast ein Anderer (Gast)


Lesenswert?

Simple Mini-Klips gibt es z.B. bei ETT (nur Geschäftskunden)
In rot oder schwarz

http://ett-online.de/article.jsp?artId=39255&gid=Online+Shop904590458090

Einzelpreis:
0.50 €
Ab 10 Stk:
0.45 €
Ab 100 Stk:
0.35 €

zZgl. MwSt. und Versand.
Ich glaub ich habe sie aber auch schon bei Ebay etwas günstiger
gesehen.
Ob die was taugen weis ich nicht.

Die von Conrad sehen für mich besser aus.

von Gast ein Anderer (Gast)


Lesenswert?

Kleiner Hinweis für Window Nutzer
BZ2 Entpacker gibt es hier:
http://www.bzip.org/downloads.html

bzip2-102-x86-win32 -d *.bz2

in Comandozeile oder .Bat Datei entpackt alle BZ2 Dateien im
Verzeichnis

Gruß

von Ulrich (Gast)


Lesenswert?

So kompliziert? Ich installiere auf jedem Rechner den ich unter Windows
hochziehe sofort und nur WinRAR. Das entpackt so gut wie alles was man
auspacken kann. Auch *.exe Es entpackt auch Archive ohne dateiendung wo
man den Typ nicht kennt.....

von Michael P. (sump)


Lesenswert?

ISE 8.2 scheint tatsächlich irgendwas anders zu machen als 8.1.
Bei mir fehlt jetzt bei XC3S1000 auch 0.07ns.

Hab mal mit einem komplexeren Projekt getestet, da ist das Ergebnis
anders. (Passwortcracker, 3 Crypt Cores, 120MHz Takt als Constraint)

Das ist das Ergebnis des Static Timing Reports für den maximalen Takt
des Crackers:

               ISE 8.1       ISE 8.2
XC3S200-4      111MHz        101MHz
XC3S1000-4     108MHz        119MHz

Hier ist die neuere Version mit größeren Chips besser als mit
kleineren. Das Projekt nutzt im Gegesatz zum LA fast kein IO.
Sehr interessant. Die haben scheinbar an ihren Algorithmen geschraubt.

P.S.: Die 0.07ns ist der Chip vielleicht auch besser als die Specs. ;)
Sonst könnte man da höchstens noch durch manuelles Platzieren was
erreichen. Die Problemstrecke ist direkt FlipFlop auf FlipFlop, da kann
man im VHDL selbst afaik nicht mehr viel machen.
Physikalisch möglich sein müßte es aber, die 8.1 hat es ja auch
geschafft, das Ding so zu belegen, dass die 5ns eingehalten werden.

von Ulrich (Gast)


Lesenswert?

Ich könnte mir vorstellen das zusätzliche Constraints oder so bei der
Sythese helfen könnten. Da es technisch möglich ist müsste man es dem
Chip nur erklären können....

Was haltet ihr von der Idee mit dem "XC 9536XL VQ44" als 16Kanal
Levelshifter?

Habt ihr noch eine Idee wie man dem Board eine günstige und einfache
Speichererweiterung verpassen könnte? Ich habe da eine Idee, aber mus
erst ausrechnen wie teuer das wird(Außerdem muss ich erst checken ob
man das überhaupt technisch funktioniert.......will mich ja hier nicht
dummen Ideen "blamieren")

von Andreas P. (andreas_p)


Lesenswert?

Ich habe mir auch mal die Mühe gemacht und ein wenig probiert.

Euer problem scheint das Placement zu sein. Im Fpga sind nur 6% der
Logik benutzt aber das Design geht durch alle Clock Domains.
Dadurch werden die Wege zwichen den FF recht lang.

Das zweite sind die schnellen Clocks. Diese scheint die Software so
nicht richtig zu erkennen. Als folge plaziert die Software die FF an
die falsche Stelle.
(s.o.)(0.462ns logic, 4.608ns route)

Die Logik benötigt keine ns aber der weg einmal durchs FPGA doch schon
fast 5ns.

durch ändern der Place Anweisung und optimieren der schnelln Clocks im
VHDL Code komme ich dann auf 15ns für XTALClk


------------------------------------------------------------------------ 
------------------------------
  Constraint                                | Requested  | Actual     |
Logic  | Absolute   |Number of
                                            |            |            |
Levels | Slack      |errors
------------------------------------------------------------------------ 
------------------------------
  TS_Inst_clockman_realclk0 = PERIOD TIMEGR | 7.500ns    | 7.430ns    |
4      | 0.070ns    | 0
  P "Inst_clockman_realclk0"         TS_xta |            |
|        |            |
  lClock / 2 HIGH 50%                       |            |            |
       |            |
------------------------------------------------------------------------ 
------------------------------
  TS_xtalClock = PERIOD TIMEGRP "xtalClock" | N/A        | N/A
| N/A    | N/A        | N/A
   15 ns HIGH 50%                           |            |            |
       |            |
------------------------------------------------------------------------ 
------------------------------


All constraints were met.

von Michael P. (sump)


Lesenswert?

@Andreas:

Was genau bedeutet "optimieren der schnellen Clocks im VHDL Code"?
Geht es dabei um den kritischen FF-FF Pfad im Filter oder um andere
Stellen?

Wenn du die veränderten Files posten könntest, wäre das für mich sehr
hilfreich.

Für Leute, die nicht den 10ns SRAM des Boards benutzen wollen, sondern
den BRAM des FPGA, könnten Takte über 100MHz (clock) durchaus
interessant sein - so der BRAM dafür schnell genug ist. :)

von Andreas P. (andreas_p)


Angehängte Dateien:

Lesenswert?

@ Michael Poppitz

Ich habe die clock180 entfernt und bei clock eine clockbuffer
eingefügt. Dafür habe ich die EingansFF von clock180 auf die negative
Flanke von Clock gesetzt.

Der BRAM ist eigentlich schnellgenug laut Datenblatt beim -4 bis
400Mhz. (Das schaft man aber nur mit Plazierungsanweisungen)

Wenn jemand eine Platine zeichnet sollten die 32 Input Pins neu
verteilt weden, so das sie in einer Clock-Domain liegen. Damit komme
ich dann schon auf über 200Mhz.


Was ich noch eingestellt hab ist "Perform Timing-Driven Packing and
Placement" auf on.

von Ulrich (Gast)


Lesenswert?

Freude Freude

Mein Spartan3 ist nun da.................

von Ulrich (Gast)


Lesenswert?

Ich hatte gerde noch ein Problem mit RXTX. Das wurde einfach nicht
gefunden.. mit den Dateien von:
http://www.jcontrol.org/download/files/rxtx-2.1-7-bins-r2.zip
funktioniert rxtx nun....

von Holger M. (nezaya)


Lesenswert?

Nachdem ich jetzt mal wieder etwas zeit habe mich mit dem LA-Projekt zu 
beschäftigen, folgende Frage.

Funktioniert der LA auch auf dem Xilinx Spartan-3E Starter Kit [1]?
Das alte Kit, mit dem Spartan 3 ,ist ja leider nur noch sporadisch 
erhältlich, weil "discontinued".

Ich habe schon nach den Unterschieden zwischen Spartan 3 und Spartan 3E 
gesucht. Hauptsächlich sind da ja weniger IOs dran [2]. Laut Datenblatt 
[3] besitzt das Teil insgesamt mindestens 92 IO-Ports.

Das 3E Board hat 35 IO-Ports (und 5 nur-Input Ports) auf dem 
Anschlussstecker FX2 liegen [4]. Das sollte doch eigentlich genügen?

Gruß Holger


[1] Spartan-3E Starter Kit (HW-SPAR3E-SK-US)
http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=HW-SPAR3E-SK-US

[2] Unterschied Spartan-3/ Spartan-3E
Beitrag "Unterschied Spartan-3/ Spartan-3E"

[3]Spartan-3E Datenblatt
http://direct.xilinx.com/bvdocs/publications/ds312.pdf

[4]Spartan-3E Starter Kit (HW-SPAR3E-SK-US)
http://www.xilinx.com/bvdocs/userguides/ug230.pdf

von mario (Gast)


Lesenswert?

Hi,

der Frage von Holger möchte ich mich anschließen, zusätzlich wollte ich 
fragen ob mir jemand sagen kann wie lange ungefähr die Einarbeitungszeit 
ist um den LA aufbauen zu können , habe bisher nur Erfahrung mit 8-Bit 
uC


guten Rutsch
Mario

von Michael P. (sump)


Lesenswert?

@All:
Gesundes neues Jahr.
Es gibt mal wieder eine neue Version (0.7):

http://www.sump.org/projects/analyzer/

Die einzelnen Seiten werde ich in den nächsten Tagen aktualisieren.

Wesentliche Neuerungen:

- vierstufiger serieller und paralleler Trigger
- die VHDL Module sind neu (und hoffentlich besser) strukturiert;
  der LA-Core ist von der Steuerlogik für boardspezifische Hardware
  getrennt; das soll Portierungen erleichtern
- einfaches Test Bench Gerüst
- es wird nur noch ein Takt für DDR input verwendet
  (Dank an Andreas Pi)

- die Software hat jetzt einen SPI-Analyzer (Dank an Frank Kunz)
- alle Einstellungen können in Project Files gespeichert werden

@Holger:
Am problematischsten erscheint mir am 3E-Starterkit der DDR-SDRAM. Ich 
habe neulich mal das Datenblatt zu diesem Speicher [1] überflogen. Die 
Anbindung scheint schwieriger, wenn nicht sogar mit Leistungseinbußen 
verbunden. Der Datenbus zum Speicher ist nämlich nur 16 bit breit und 
gleichzeitig ist die Ansteuerung komplex. Man müsste also zunächst 
untersuchen, ob es überhaupt möglich ist, kontinuierlich zwei mal 16bit 
pro Takt zu übertragen. (Also ob Bursts nahtlos aufeinander folgen 
können und ob der Refresh stört.)

Vielleicht hat ja hier schon jemand Erfahrung mit DDR-SDRAM und kann 
dazu etwas sagen?

Bei opencores.org gibt es ein DDR-Interface für einen ähnlichen Chip 
[2], das sich eventuell verwenden ließe.

@mario:
Um den LA auf dem alten Spartan3-Kit zum Laufen zu bringen, musst du 
eigentlich nur das Image in den FPGA oder den Flash übertragen. Wenn du 
die Tools von Xilinx (ISE) noch nie benutzt hast, kann aber selbst das 
Bastelspaß bedeuten.
Falls du mit deiner Frage auf die Portierung des LA auf das neue Board 
abzielst: Da wirst du schon einige Zeit und Geduld investieren müssen. 
Bei VHDL helfen dir imho eher Digitalschaltungskenntnisse als 
(Software-)Programmierkenntnisse.


[1] DDR-SDRAM data sheet
http://download.micron.com/pdf/datasheets/dram/ddr/512MBDDRx4x8x16.pdf

[2] DDR-SDRAM interface
http://www.opencores.org/projects.cgi/web/ddr_sdr/overview

Gruß
Micha

von Xilinxuser (Gast)


Lesenswert?

Der LA wäre mir auch ein interessantes Projekt, aber auch für mich ist 
der DDR ein Hindernis. Da es baer schon mehrere hier im Forum gibt, die 
danach gefragt haben, müsste man das so langsam mal lösen und einen 
schnellen DDR-controller herzaubern, der für alle nutzbar ist.

von Torben (Gast)


Lesenswert?

Hallo,

@ Michael

Der neue Core ist sehr gut geworden und die neuen Erweiterungen sehr 
hilfreich.

Hat jemand schonmal an eine kleinere Version mit 16 Kanälen gedanken 
gemacht oder eine Generic Version der Trigger / Sampler Stage ?

Bei der Trigger Stage scheitere ich an der Generic Version oder 
Anpassung auf 16 Kanäle.

Torben

von manuel1139 (Gast)


Lesenswert?

Hallo!

Auf der Suche nach Ideen für einen DIY Logic Analyzer bin ich auf euer 
Projekt hier gestossen und würde es gerne "nachbauen".

Bei Digilent gibt's das Board hier:

http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD

ist das das richtige? Scheint ja verfügbar zu sein.


Gruß,

  Manuel

von Jonas Diemer (Gast)


Lesenswert?

Hi,

ich habe Michael's Design mal auf das Spartan 3E board "portiert". 
Hierauf nutze ich das interne BlockRAM als Samplespeicher (die 
Samplingtiefe ist dann auf 8k beschränkt). Zusätzlich gibt es noch ne 
Lauflängenkompression, wodurch der Samplingspeicher bei sich langsam 
ändernden Signalen (bez. des Sample-Taktes) effektiver genutzt wird.

Meine Änderungen gibt's bisher nur über's CVS auf 
https://sourceforge.net/projects/jlac.

Gruß

von Der erste Frager (Gast)


Lesenswert?

Wieder nur was für Boardbesitzer. Lohnt sich nicht, wenn man nur einen 
LA möchte...
Kann man den Spartan auch auf eine eigene Platine zaubern?

von Ulrich (Gast)


Lesenswert?

Wenn du es hinbekommst ein Board zu designen das am Ende folgende 
Anforderungen genügt, dann hättest du ein paar käufer
-max 80Euro
-fertig bestückt
-eventuell mehr Speicher
-usb oder ethernet drauf

Vermutlich geht das eh nicht von demm her ist es billiger wenn wir alle 
unsre wertvolle Bastelzeit nicht verschwenden ;-)

von Der erste Frager (Gast)


Lesenswert?

80 Euro, wo denn?
Ich habe nur ca. 170 Euro (160 + Versand) gefunden
http://froogle.google.de/froogle?=Spartan+3E+board&hl=de&rls=GGLJ,GGLJ:2006-47,GGLJ:de&um=1&sa=X&oi=froogle&ct=title

Schöne Ostern noch

von Ulrich (Gast)


Lesenswert?

@Der erste Frager:
Du hast nach Spartan 3E gesucht. Ich dachte eher an Spartan 3 (ohne E)

@Rest:
Sehr schön die Sache mit I2C und SPI

Ich wünsche mir noch:
- Hardware komprimierung
- Kommunikation Board-Client mit 1MBit
- CAN
- UART

Danke ;-)

von Der erste Frager (Gast)


Lesenswert?

läuft das Projekt denn auf dem Spartan-3 Starter Board und nicht nur auf 
dem Spartan-3E Board ?

von Ulrich (Gast)


Lesenswert?

Irgendjemand hat das auch auf einen Spartan 3E portiert. Da ich kein 
Spartan 3E habe glaube ich das jetzt einfach mal so.

Aber wenn du der aller ersten Post durchließt wirst du rausfinden das 
dies für Spartan 3 entwickelt wird....

von Jonas Diemer (Gast)


Lesenswert?

Also ursprünglich wurde der LA für das Spartan 3 StarterKit entwickelt. 
Ich war der jemand, der das auf das Spartan 3E StarterKit portiert hat - 
es läuft also auf beiden, mit einigen Unterschieden:

Z.B. hat das S3SK SRAM onboard, welcher als Samplespeicher dient. Auf 
dem S3ESK habe ich das fehlende SRAM durch internen BlockRAM ersetzt, 
sodass hier weniger Samplingtiefe zur Verfügung steht.

@Ulrich: Hardware-Komprimierung habe ich implementiert (RLE), was auf 
dem S3ESK recht hilfreich ist. Allgemein bringt die von mir gewählte 
run-length encoding den Vorteil, dass man die Samplingfrequenz beliebig 
hoch wählen kann, da der Speicherverbrauch nicht mehr von der 
Samplingfrequenz, sondern von der "Signaländerungsrate" abhängt.

@Der erste Frager: Ich habe auch mal überlegt, das alles auf eine 
Platine zu gießen. Als Ultra-Low Budget-Variante (also z.B. nur internes 
BRAM oder wenig Speicher, keine aufwändige Zusatz-Beschaltung (einfache 
Pegelkonverter, keine Komparatoren, kein Ethernet, höchstens USB)) auf 2 
Layer (wird dann wahrscheinlich Hakelig mit Signalen >20MHz) könnte sich 
eine Eigenkonstruktion lohnen. Sobald man aber mehr möchte, wirds auf 
jeden Fall teurer als ein StarterKit. Insbesondere hat man mit z.B. 
http://www.pctestinstruments.com/index.htm einen relativ preiswerten und 
leistungsfähigen "Konkurrenten"...

Soweit, Gruß

von Ulrich (Gast)


Lesenswert?

Kann man die Hardwarekomprimierung auch in das "Orginal" einfließen 
lassen?

von chaoscreator (Gast)


Lesenswert?

Also erstmal danke für das gute stück....gefällt mir wirklich gut :)
habs bis jetzt leider noch net mit echten signalquellen ausprobiert(werd 
ich morgen nachohlen) , aber halt mit unbeschalteten eingängen scheints 
richtig zu funktionieren...

hab hier ein paar kleinere anmerkungen....

auf der webseite steht jre 1.4.2 , die neueste verison 0.8 läuft aber 
nur mit 1.5 und bricht mit einer für den nicht-javaprofi erstmal 
unverständlichen fehlermeldung ab , wär gut wenn auf der website die 
passende jre stehn würd ;)

ich hab auch den 1000er spartan3 auf dem board und die ISE 9.1i software 
, auch da gibts timingprobleme...scheinbar sogar noch mehr wie bei den 
früheren versionen...
wärs möglich auf der website für die 3 gängigen versionen (200/400/1000) 
schon fertige binärversionen bereitzustellen ?
oder könnt jemand seine version für den 1000er mit richtigem timing hier 
hochladen ?
werd jetzt auf jeden fall mal weiterprobieren und falls ichs hinkrieg 
meine version hier posten...

gruß
chaos

von Frank K. (frank)


Lesenswert?

Hallo,

in den neuesten Java Sourcen sind mittlerweile generische Datentypen 
drinne, die jedoch erfordern Java 1.5

Es wurde schon nach Protokoll Decodern für CAN und UART gefragt. Ich 
habe aber keine CAN Hardware... falls also Jemand eine CAN Hardware zur 
Verfügung hat wäre es nett wenn er mir ein paar *.sla Dateien mit einer 
kurzen Beschreibung (Baudraten, etc.) zukommen lassen könnte. Entweder 
hier posten oder per Email an qmichl ät web de. Auch mit UART oder USB 
Daten könnte ich was anfangen ;-)

Gruß
Frank

von Jonas Diemer (Gast)


Lesenswert?

@Ulrich: Die Hardwarekomprimierung kann auch in der Originalversion 
verwendet werden, die beiden Versionen unterscheiden sich nur an 2 
stellen; Meine Experimental-Version sollte sich also auch (inkl 
optionaler RLE) auf dem Spartan3(ohne E) StarterKit nutzen lassen.

Gruß

von ups (Gast)


Lesenswert?

Hallo!

Erstmal danke an alle, die bei dem Projekt mitwirken. Ich bin auch 
gerade auf der Suche nach einem bezahlbaren LA und der LOGICPORT ist mit 
über 300 Euro ja nicht gerade billig. Daher würde ich gerne den hier 
vorgestellten LA nachbauen.

Weiter oben wurde ja schon einmal gefragt, ob dies das richtige Board 
ist:
http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD

Leider gab es bis dato noch kein Statement dazu. Wenn ja, macht es Sinn 
den -400 oder -1000 zu nehmen oder handelt man sich damit nur die oben 
beschriebenen Timingprobleme ein?

Vielleicht hat ja auch wer Interesse an einer Sammelbestellung des 
Spartan3 Boards oder der Adapterplatine für 5V Messungen?

MfG

von Ulrich (Gast)


Lesenswert?

Am 11.04.2007 17:23
schrieb ich dass das Projekt für den Spartan 3 gemacht wurde.

Es gibt keine Timingprobleme. Bei mir lief das auch auf einem 1000er 
Spartan. Gab halt nur ein paar Warnungen beim "syhntetisieren"

von ups (Gast)


Lesenswert?

Ach so, gut zu wissen. Aber es ist schon das richtige Board oder? Konnte 
leider nirgendwo "DO-SPAR3-DK" finden um jeglichen Zweifel 
auszuschließen.

Könnte vielleicht wer 1-2 Dateien für den Java-Client hier einstellen? 
Würde mir die Software gerne mal genauer ansehen und ohne Daten kann man 
da leider wenig machen... Danke!

von Frank K. (frank)


Angehängte Dateien:

Lesenswert?

Mit Testdateien kann ich dienen.

Im ZIP File sollten sich befinden

arm_007.sla --> ARM mit SPI an MMC Karte
labels.sll --> zu arm_007.sla passende Labels
i2c_1.sla --> I2C Sample mit Channel 0 und Channel 2 als SCL/SDA 
Leitungen

von hoerni (Gast)


Lesenswert?

das DO-SPAR3-DK wurde zwischenzeitlich durch das spartan 3e dev board[1] 
ersetzt, welches eigentlich auch besser ist, wenn der logikanalysator 
bloss mit dem ddr-ram zusammenarbeiten würde, denn die paar samples die 
in den blockram passen sind leider relativ nutzlos (wenn auch besser als 
garkeine ;).

[1] 
http://www.xilinx.com/xlnx/xebiz/designResources/ip_product_details.jsp?key=HW-SPAR3E-SK-US

von ups (Gast)


Lesenswert?

@hoerni: Das mit dem Spartan 3E ist mir bekannt, aber genau wegen dem 
RAM Problem versuche ich ja Quellen für das DO-SPAR3-DK aufzutreiben und 
würde dann halt direkt aus USA bestellen. Rein optisch sieht das Board 
(http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD) ja gleich 
aus und die Spezifikationen passen auch, nur leider wird nirgendwo die 
genaue Bezeichnung verwendet. Werde den Hersteller mal anschreiben und 
dort nochmal nachfragen.

@Frank: Danke, werde mir die Daten mal ansehen!

von Dirk (Gast)


Lesenswert?

@Ups das ist es.

von SiO2 (Gast)


Lesenswert?

Ich haette das Spartan3 board (unbenutzt) zu verkaufen. Wenn interesse 
besteht, einfach melden. Ich hab nur etwas mit dem CPLD-Board gespielt, 
welches zuletzt in dem bundle bei war.

von Mirko K. (ups)


Lesenswert?

@Dirk: Danke für die Info, schon mal gut zu wissen.

@SiO2: Klar hätte ich Interesse, schreib mir doch mal ne Email
(jasf98joifjasd03r@temporaryforwarding.com) mit Deiner Preisvorstellung.

von Ulrich (Gast)


Lesenswert?

Hi,
ich wollte heute mal den Trigger in der einstellung komplex verwenden. 
Aber er triggerte nicht. Wie geht das was muss ich einstellen?

Ich benötige 2 Stufen.
1.Stufe ich warte auf ein Signal
2.Stufe ich ware auf ein anderes Signal

von Bingo (Gast)


Lesenswert?


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.