Skip to content
Snippets Groups Projects
pixel.cpp 690 B
Newer Older
#include <iostream>
#include <hls_stream.h>
#include <ap_axi_sdata.h>

using namespace std;

Vipin Thomas's avatar
Vipin Thomas committed
typedef ap_axis<32,0,0,0> pkt_t;
Majd Hafiri's avatar
Majd Hafiri committed
static int counter = 0;
Vipin Thomas's avatar
Vipin Thomas committed
static bool flag=false;
Vipin Thomas's avatar
Vipin Thomas committed
		ap_int<32> w,
		hls::stream< pkt_t > &din,
Vipin Thomas's avatar
Vipin Thomas committed
		hls::stream< pkt_t > &dout
) {
	#pragma HLS INTERFACE ap_ctrl_none port=return
Vipin Thomas's avatar
Vipin Thomas committed
	#pragma HLS INTERFACE s_axilite port=w
	#pragma HLS INTERFACE axis port=din
	#pragma HLS INTERFACE axis port=dout

Vipin Thomas's avatar
Vipin Thomas committed
	pkt_t pkt=din.read();
Vipin Thomas's avatar
Vipin Thomas committed
	if(counter==w){
Vipin Thomas's avatar
Vipin Thomas committed
		pkt.data*=2;
Vipin Thomas's avatar
Vipin Thomas committed
		flag=true;
Vipin Thomas's avatar
Vipin Thomas committed
		counter=0;
Vipin Thomas's avatar
Vipin Thomas committed

Vipin Thomas's avatar
Vipin Thomas committed
	}
Vipin Thomas's avatar
Vipin Thomas committed
	else if(!flag){
Majd Hafiri's avatar
Majd Hafiri committed
	counter++;
Vipin Thomas's avatar
Vipin Thomas committed
	}
Vipin Thomas's avatar
Vipin Thomas committed
	// pending: have to make count=0 when TLAST signal is active -  for w not in the range of 0 to n(size of the array) 
Vipin Thomas's avatar
Vipin Thomas committed


	dout.write(pkt);
Vipin Thomas's avatar
Vipin Thomas committed