Ich hab bisher hier nur mitgehört und muss doch mal, da ich bisher noch nie mit NI-LV-FPGAs gearbeitet habe, folgende Frage stellen.
' schrieb:Ich schreibe in den FIFO mit 1 kHz und lese über FIFO.Read immer 50 Werte auf einmal aus. D.h. es dauert 50 ms, bis der FIFO so voll ist, dass ich ihn auslesen kann.
Heißt dass, dass der FIFO nur 50 Werte aufnehmen kann und dann überläuft?
Oder ist es doch so, wie ich mir das denke: Der FIFO selbst ist das Doppelte lang, also 100 Werte spricht 100ms (oder so), und soll einmal pro 50ms ausgelesen werden. Wenn dem so ist, spielt es doch gar keine Rolle, wenn das Verarbeiten der 50 Werte maximal 10ms dauert. Diese Verarbeitungszeit hat dann eine obere Streugrenze von 50ms, die ja hoffentlich nie auftritt, was wiederum durch das RT gewährleistet werden soll. Soweit der eine Sachverhalt. Sehe ich das richtig?
Dich interessiert aber mehr, dass das "Warten auf 50 Werte im FIFO" "CPU-Zeit" beansprucht. Ein FPGA sollte doch aber 100% laufen können. Zumal in einem FPGA das "Programm" hardware-verdrahtet ist. Gerade in einem FPGA, also mit Hardware-Verdrahtung, kann ich doch in idealer Weise theoretisch unendlich viele parallele "Prozesse" ablaufen lassen. Da stört es doch die 99 anderen Prozesse nicht, wenn der eine Prozess, der die Anzahl der Zeichen im FIFO prüft, in einer Dauerschleife wartet. Diese meine Gedanken würden natürlich nur stimmen, wenn das FPGA aus "verdrahteten Logikgattern, Macros, Tables etc." besteht - und nicht aus einem "CPU-Kern, der einen Microcode verarbeiten muss".
Kann wer auf letzte (implizite) Frage, CPU-Kern oder Macro, eine kurze Antwort geben?