LabVIEWForum.de - FPGA Problem

LabVIEWForum.de

Normale Version: FPGA Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

ich habe ein NI PCI-7811R FPGA und hätte einige Fragen, wie ich mein Programm umsetzen könnte.

Was soll das Programm können:

Ich habe 9 Signalquellen an die DIO Ports des FPGAs angeschlossen:

1. Das FPGA VI soll DIO 0 so lange überwachen bis das Signal eine steigende Flanke aufweist. Wenn eine steigende Flanke vorliegt soll zu Schritt 2 gesprungen werden.

2. Das FPGA VI soll DI0 1 so lange überwachen bis das Signal eine steigende Flanke aufweist. Wenn eine steigende Flanke vorliegt soll zu Schritt 3 gesprungen werden.

3. Das FPGA VI soll nun den Bitwert an DI0 2-9 erfassen. Anschließend soll wieder zu Schritt 2 gesprungen werden bis man 100 mal die Bitwerte an DIO 2-9 erfasst hat.

Meine Fragen/Probleme zur Umsetzung:

1. Wie kann ich eine steigende Flanke im FPGA VI abfragen? Ich habe bis jetzt abgefragt wann das Signal Low ist und dann auf High wechselt. Gibt es da eine Möglichkeit das elegant in einem Schritt zu machen?

2. Die Signale müssen alle in Echtzeit erfasst werden und Schritt 2 und 3 darf nicht länger als 150 ns dauern. Es darf keine steigende Flanke verpasst werden, sonst schlägt mein Vorhaben fehl! Wie kann man Dauerhaft ein Signal in Echtzeit betrachten, bis es eine steigende Flanke aufweist? Wie sag ich dem Programm das Schritt 2 und 3 nicht länger als 150 ns dauern darf?

Wäre für jede Hilfe dankbar! MFG
(06.11.2012 19:54 )ITStudent schrieb: [ -> ]1. Wie kann ich eine steigende Flanke im FPGA VI abfragen? Ich habe bis jetzt abgefragt wann das Signal Low ist und dann auf High wechselt. Gibt es da eine Möglichkeit das elegant in einem Schritt zu machen?
Würde ich auch so machen.
(06.11.2012 19:54 )ITStudent schrieb: [ -> ]2. Die Signale müssen alle in Echtzeit erfasst werden und Schritt 2 und 3 darf nicht länger als 150 ns dauern. Es darf keine steigende Flanke verpasst werden, sonst schlägt mein Vorhaben fehl! Wie kann man Dauerhaft ein Signal in Echtzeit betrachten, bis es eine steigende Flanke aufweist? Wie sag ich dem Programm das Schritt 2 und 3 nicht länger als 150 ns dauern darf?
Fasse Schritt 2&3 zusammen, z.B. in einer Timed-Loop. Einfach DIO1-9 gleichzeitig auslesen, dann den Wechsel von DIO1 überprüfen, DIO2-9 hast du dann schon.

Timed-Loop ist wahrscheinlich gar nicht nötig, denn 150ns entsprechen zwecks 40Mhz FPGA-Takt 6 Taktzyklen, das ist schon eine ganze Menge.

Gruß, Jens
Referenz-URLs