Hallo liebe Leute,
ich bin ganz frisch in der FPGA-welt und stoße gerade auf eine Situation. Ich habe ADC-Werte aufgenommen und in einem FIFO-Generator IP als Zwischenspeicher gelagert. Da der FIFO-Ausgang kein AXI-Stream ist, kann ich diese Werte nicht in einem zB. DMA schreiben. Meine Frage lautet: Wie kann ich den Übergang erledigen, also von einem 16 Bits Breite kanal zu einem AXI-Stream Bus. Ich habe mehrere Beispiele gesehen und probiert aber bisher ist mir leider nicht gelungen. Anbei hänge ich ein HLS-Beispiel. Ich würde mich auf ihre Hilfe sehr freuen.
Beste Grüße
#include "ap_axi_sdata.h" #include "hls_stream.h"
#define N 512
void example(//hls::stream< ap_axis<32,2,5,6> > &A, hls::stream< ap_axis<32,2,5,6> > &B, int data_s2mm[N]) { //#pragma HLS INTERFACE axis port=A #pragma HLS INTERFACE axis port=B #pragma HLS INTERFACE mode=ap_fifo port=data_s2mm #pragma hls interface s_axilite port=return
ap_axis<32,2,5,6> tmp; int i ; while(1) { A.read(tmp); tmp.data = tmp.data.to_int() ; B.write(tmp); i = i + 1 ; if(tmp.last || i == N) { i = 0 ; break; } }
}