Guten Morgen. Ich möchte serielle Daten von einem A/D-Wandler mit dem FPGA einlesen. Anschließend möchte ich diese mit ChipScope darstellen. Hierzu suche ich Beispiele. Eventuell hat jemand eine brauchbare Quelle für mich. Meine erste Überlegung hierzu wäre wie folgt: 1. Anlegen eines Signalvektors (z.B. standart_logic_vector … input <= '0000000000' bei 10 Bit Auflösung) 2. Anlegen eines Prozesses der auf steigende Flanken auslöst (da werden in meinem Fall die Daten seriell „bit für bit“ übergeben) 3. Bei steigender Flanke das neu eingelesene Bit per Shift-Operation anhängen (input <= 000000001 dann shift ausführen und neues Bit anhängen input <= 0000000011, ..) 4. Ist die Anzahl der Bits erreicht (hier 10), dann kann das Wort "input" ChipScope übergeben werden. So ganz grob gesagt. Somit habe ich zwei Taktraten im FPGA. Einmal die mit der die Bits ankommen f_in und mit der die "zusammengesetzten" Bits (Wort) an ChipScope übergeben werden f_in/10. Sehe ich das so richtig, oder stellt es sich als sehr ineffizient heraus (Ich habe vier Kanäle) ?
User schrieb: > Ich möchte serielle Daten von einem A/D-Wandler mit dem FPGA einlesen. Von WELCHEM in WELCHES? > 1. Anlegen eines Signalvektors (z.B. standart_logic_vector … input <= > '0000000000' bei 10 Bit Auflösung) Ist sinnvoll. Aber eigentlich nur ein klitzekleines unnötiges Detail. > 2. Anlegen eines Prozesses der auf steigende Flanken auslöst (da werden > in meinem Fall die Daten seriell „bit für bit“ übergeben) Prozesse werden nicht "ausgelöst". Du hast eine falsche Denkweise. Die wird dir noch einige Probleme bereiten. Es ist im FPGA kein Prozess, der auf einen "Anschubser" wartet. Im FPGA sind nur Logikzellen (=LUTs) und Flipflops. Darauf muss deine Beschreibung abbildbar sein. Wenn sie das nicht ist, dann bekommst du vom Synthesizer entsprechende Meldungen. > 3. Bei steigender Flanke das neu eingelesene Bit per Shift-Operation > anhängen (input <= 000000001 dann shift ausführen und neues Bit anhängen > input <= 0000000011, ..) Du hast bisther schon (mit) Software programmiert, richtig? Bei einer steigenden Flanke passiert das alles gleichzeitig, es gibt keine Bauteile im FPGA, die das "nacheinander" machen. > 4. Ist die Anzahl der Bits erreicht (hier 10), dann kann das Wort > "input" ChipScope übergeben werden. So ganz grob gesagt. Somit habe ich > zwei Taktraten im FPGA. Einmal die mit der die Bits ankommen f_in und > mit der die "zusammengesetzten" Bits (Wort) an ChipScope übergeben > werden f_in/10. Hast du nicht. Du hast einen Takt, und dierser eine Takt erzeugt (bis das Gegenteil bewiesen ist) einfach nur ein anderes Signal für den ADC, das zufällig den Namen "Takt" hat, aber für das FPGA keiner ist! > Sehe ich das so richtig, oder stellt es sich als sehr ineffizient heraus Ein Schieberegister kann maximal effizient in einem FPGA implementiert werden. > (Ich habe vier Kanäle) ? Dann wird das eben 4 Mal ins FPGA implementiert. Was hast du mit VHDL bisher schon gemacht? Das Blinklicht? Ein Lauflicht? Eine serielle Schnitte?
:
Bearbeitet durch Moderator
Das gehört bestimmt zu dem Fred Beitrag "AD Wandler (> 2 Kanäle) mit parallelem Interface gesucht" Und dort habe ich schon geschrieben .. SERDES ! (Es geht um AD Wandler mit 80Mhz Samplefrequenz und seriellem Ausgang) ChipScope ... das geht aber nicht mit dem Webpack. Als Alternative gibt es Logan, ist ähnlich wie Chipscope, gehört zum LEON Projekt und kann bei http://www.gaisler.com/doc/logan_report.pdf heruntergeladen werden. Der Code steckt im Pdf Dokument: Design and implementation of an On-chip Logic Analyzer. Zum Thema Einsynchronisieren und Taktdomäne solltest du die vielen Beiträge dazu von Lothar Miller lesen.
:
Bearbeitet durch User
Hans-Georg Lehnard schrieb: > Das gehört bestimmt zu dem Fred > Beitrag "AD Wandler (> 2 Kanäle) mit parallelem Interface gesucht" Kann sehr gut sein... > SERDES ! > (Es geht um AD Wandler mit 80Mhz Samplefrequenz und seriellem Ausgang) Das passt aber überhaupt nicht zu der ziemlich anfängerhaften Fragestellung... @User: was soll das werden? Eine Bachelor-/Masterarbeit oder sowas? 40MHz Abtastfrequenz mit 10Bit seriell ist ein gutes halbes GHz. Welche Erfahrung hast du mit Layouts in dieser Geschwindigkeitsklasse?
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.