Hallo, ich bin derzeit dabei mich in die Welt der FPGAs einzuarbeiten. Zur Verfügung steht mir ein Xilinx Spartan 3A Starter Kit mit dem ISE WEebPack 9.1. Das langfristige Ziel ist es, mehrere analoge Regelkreise zu ersetzen. Der erste Schritt soll sein, die onboard adc und dac zu nutzen, um das Signal eines Funktionsgenerators einzuspeisen und wieder auszugeben. Nun ist es mir mit Hilfe der Xilinx Tutorials die Stopuhr sowie den LED Counter ans laufen zu bekommen. Allerdings hänge ich jetzt relativ lange daran, die beiden externen Resourcen einzubinden. Ich weis nicht, welche Komponenten mein Design unbedingt benötigt (dcm, clock divider, state machine?) und kann vor allem trotz stundenlanger suche kein Tutorial in der Richtung finden, daher denke ich suche ich einfach falsch. Ich wäre für jeden Hinweis dankbar, open source ip, tutorial egal alles kann helfen. Christoph
Vielleicht hilft der Blick ins Datenblatt? Mach Dir doch erstmal klar, in welchem Format Deine (Audio-)Daten ein- und ausgegeben werden. Rick
Das Datenblatt liegt mir vor, ich kenne die entsprechenden Pin-Belegungen und habe das ganze so verstanden: Es geht der Befehl zum Wandler mit dem Sampeln zu starten. Beide Wandler erzeugen simultan eine Zweierkomplementzahl, dann werden die bits seriell an den FPGA gesendet mit Pausen zwischen den beiden Zahlen. Problem: Was muss ich da an Timing beachten und wie setze ich das um?
> Was muss ich da an Timing beachten und wie setze ich das um?
Da sich Datenblätter bei diesen Angaben bedeckt halten, mußt auf
Insiderwissen für die minimale Pulsdauer (in ns) zurückgreifen:
3.2 * IC-Gehäuselänge (in Seemeilen !) + Raumtemperatur * IQ des
Benutzers
Mag ja für den ein oder anderen lustig sein, aber ich habe als Anfänger da nunmal Schwierigkeiten mit ...
Antworter will Dir damit auf seine etwas fragwürdige Art sagen das Du das Timing in den Datenblättern findest. Das ist nämlich der Sinn von Datenblättern.
Dann habe ich mich wohl falsch ausgedrückt: Ich habe die Angaben, wieviele Clock Cycle welcher Prozess dauert, aber Probleme, den FPGA entsprechend zu programmieren. Was mir fehlt ist ein ganz konkreter Ansatz, das Inputsignal zu verarbeiten. Bisher habe ich es geschafft, einfache binäre Zähler zu realisieren, auf Schaltereingaben zu reagieren und die LEDs anzusteuern, aber jetzt geht es ja um einen kontinuierlichen input. Ich will hier auch gar nichts vorgekaut bekommen, wenn mir einer sagt, wonach ich da suchen muss, reicht mir das. Bisher habe ich nach adc, vhdl, fpga, ip core gesucht, aber ich habe nichts gefunden, was mir dabei hilft, ein einfaches Signal aus einem Funktionsgenerator erst AD und dann wieder DA zu wandeln.
Also ich vermute jetzt mal ein bißchen, da Dich ausschweigst, welchen A/D Wandler nun genau einsetzt: Höchst wahrscheinlich wird er eine serielle Schnittstelle besitzen - diese fällt dann entweder simple aus (I2S-Format bei A/D-Wandlern mit sukzessiver Approximation) oder etwas komplizierter (Delta-Sigma). Bei den Delta-Sigma hast Du typischerweise recht hohe "Hilfstakte" (256*Sample-Frequenz und so). Beiden Ausprägungen ist gemein, daß Du ein Shiftregister benötigst, um die seriellen Daten zu parallelisieren. Ich denke mal (habe keine VHDL-Erfahrung) Du solltest unter Deiner Workbench schon fertige Module finden. (Als einzelne IC's heißen die SIPO (serial-in-parallel-out))
Hallo, Meines Wissens sind auf dem 3A und 3E Board die gleichen Wandler drauf. Unter http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm gibt es mehrere Reference Desings für das S3E Board, darunter auch eins für den AD und den DA (PicoBlaze Amplifier and A/D Converter Controller bzw. PicoBlaze D/A Converter Controller). Beide Beispiele benutzen den Picoblaze-Softcoreprozessor von Xilinx zur Kommunikation mit den Wandlern. Du müsstes also nur diese Beispiele auf den 3A Portieren (Typenbezeichnung für den FPGA richtig einstellen und Pinbelegung in den Constraints ändern). Ach ja den Sourcecode für den Picoblaze musst du extra von Xilinx runterladen. Grüsse Michael
@ Christoph (Gast) >wieviele Clock Cycle welcher Prozess dauert, aber Probleme, den FPGA >entsprechend zu programmieren. Was mir fehlt ist ein ganz konkreter >Ansatz, das Inputsignal zu verarbeiten. Ja welche Kenntnisse hast du denn überhaupt bezüglich Digitalentwurf? >Bisher habe ich es geschafft, einfache binäre Zähler zu realisieren, auf >Schaltereingaben zu reagieren und die LEDs anzusteuern, aber jetzt geht Du hast fertige Beispiele auf des FPGA gespielt, das hat wenig mit Kenntnissen zu tun. >es ja um einen kontinuierlichen input. >Ich will hier auch gar nichts vorgekaut bekommen, wenn mir einer sagt, >wonach ich da suchen muss, reicht mir das. Bisher habe ich nach adc, Nach Grundlagen für Logikentwurf. State Machines, Dekoder, Schieberegister etc. MfG Falk Deine State Machine sieht in Prinzip so aus. Beitrag "Automat-Anzeigemodul"
Hallo Christoph, hast du es schon geschafft, dein analoges signal zu verarbeiten, ich sitze gerade mit meinem Spartan-3AN mit dem selben problem... Kannst du mir ein paar Tipps geben oder hilfreiche links?
Meine Fresse! Ihr wollt doch nicht im Ernst dem armen Würsten empfehlen, einen PICO reinzuschmeissen um schnöde Wandler zu bedienen. Du brauchst einen Zähler für die Bits und einen Dekoder, der anhand der Zähhlerstandes die Signale für den Wandler produziert. Den 1407 (der ist gleube ich drauf) kann man mit 40MHz fahren. Am Besten nutzt Du 60-70 MHz FPGa Frequenz und fährst mit dem niedrigen Bit als Takt. Dann bekommst Du vom Wandler die Daten genau so wieder rein. Bei den dann 30MHz liefert er ohne Delaytricks auf der vollen Taktflanke. Bei 40Meg musste ich da schonmal etwas schieben.
@Axel deine Beschreibung hört sich verständlich und einfach an, habe jetzt aber mal das Forum durchgeschaut und bis auf den PicoBlaze nichts brauchbares gefunden. Hat irgend jemand einen VHDL Core für das oben genannte Problem gefunden?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.