Forum: FPGA, VHDL & Co. Signalsequenz speichern


von Hi (Gast)


Lesenswert?

Hallo,

ich möchte ein ZF-Signal mit 20 MHz abtasten (12 Bit) und die 
entsprechenden Digitalwerte in einem SRAM speichern. Die Dauer der 
Aufzeichnung sollte 30 ms sein. Anschließend möchte ich die Daten mit 
meinem FPGA verarbeiten. Zur Verfügung steht mir ein Altera Board mit 
einem ADC, Stratix II und 1 MB SDRAM.

Ist es möglich, die ADC-Werte so schnell im SRAM zu speichern? Wenn ja, 
wie könnte ich das machen?

Danke für die Hilfe.

von Wolfgang M. (womai)


Lesenswert?

Fuer dieses FPGA sind 20 MHz kein Problem. Das SDRAM sollte das auch 
ohne Probleme schaffen. Eventuell einfacher waere es aber, das 
FPGA-Interne Block-RAM zu verwenden, sofern dessen Groesse ausreicht; 
das ist normalerweise schneller im Zugriff, sowie einfacher anzusteuern.

Die Frage ist jetzt, kann der ADC schnell genug arbeiten? Die meisten 
ADCs auf solchen boards arbeiten mit successive approximation, d.h. 
Konvertierung in einen 12-bit-Wert dauert mindestens 12 Taktzyklen (oft 
ein, zwei Zyklen mehr weil man die Konvertierung starten muss o.ae.), 
das FPGA muss den Baustein mit mindestens 240 MHz takten. Eine 
Alternative ist ein half-Flash-ADC, die liefern ueblicherweise ein 
volles Datenwort pro Zyklus; Analog Device, TI und andere haben 
geeignete Bausteine.

Wolfgang

von Hi (Gast)


Lesenswert?

Könnte man auch mit NIOS ein System (SOPC) aufbauen, wobei von NIOS die 
Aufzeichnung gestartet wird? Wie müsste man das in der Software 
schreiben, damit Daten mit der Geschwindigkeit vom ADC in der SRAM 
transportiert werden?

von Wolfgang M. (womai)


Lesenswert?

Ein Mikrocontroller (auch als Softcore) stoert da eher, als er hilft. Zu 
grosser Overhead, und schwieriger (nicht unmoeglich), das Timing 
hinzubekommen. Sowas loest man wirklich am besten mit purer Logik, und 
der Aufwand dafuer (wenn Du internes oder externes SRAM (nicht SDRAM!) 
verwendest) haelt sich in engen Grenzen.

Ich habe vor ein paar Monaten mal ein einfaches Oszilloskop aufgebaut, 
das das Prinzip zeigt, mit bloss vier 74xx-Logikbausteinen, Flash-ADC 
und SRAM:

http://www.pdamusician.com/lcscope/

Die Schaltung ist voll beschrieben; siehe insbesondere

http://www.pdamusician.com/lcscope/design_schematic3.html
und
http://www.pdamusician.com/lcscope/design_schematic4.html

Das laesst sich ganz einfach in ein FPGA konvertieren; mit einem 
schnelleren Half-FLash-ADC (meiner begrenzt die Samplerate auf 1 MS/s, 
die Logik koennte auch viel schneller) sind 20 MS/s ohne weitere 
moeglich.

Wolfgang

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.