From b2975c36fe962e4395bfaabe8d9c44571cb646e9 Mon Sep 17 00:00:00 2001 From: Vipin Thomas <vipin.thomas@stud.th-deg.de> Date: Thu, 24 Jun 2021 18:49:42 +0000 Subject: [PATCH] Update pixel_original.cpp --- pixel_original.cpp | 231 +++++++++++++++++++++++---------------------- 1 file changed, 118 insertions(+), 113 deletions(-) diff --git a/pixel_original.cpp b/pixel_original.cpp index 0a8a89b..0b13e8e 100644 --- a/pixel_original.cpp +++ b/pixel_original.cpp @@ -1,116 +1,121 @@ - -#include <hls_stream.h> -#include <ap_axi_sdata.h> - -void pixel(ap_int<32> selector, - ap_int<32> position1, - ap_int<32> position2, - ap_int<32> stream_count, - ap_int<32> &ascii, - hls::stream< pkt_t > &din, - hls::stream< pkt_t > &dout -) { - #pragma HLS INTERFACE ap_ctrl_none port=return - #pragma HLS INTERFACE s_axilite port=selector - #pragma HLS INTERFACE s_axilite port=position1 - #pragma HLS INTERFACE s_axilite port=position2 - #pragma HLS INTERFACE s_axilite port=stream_count - #pragma HLS INTERFACE s_axilite port=ascii - #pragma HLS INTERFACE axis port=din - #pragma HLS INTERFACE axis port=dout - - pkt_t pkt=din.read(); - - switch(selector) - { - case 0: - - if (count_streams == 0){ - charIn=convert(ascii); - final_char=0; - } - - if((count_streams >= 3 * (position1 - 1)) && (count_streams < 3 * (position2) - 1)){ - addNum=0; - if(charIn!=0){ - addNum=charIn%10; - charIn=(int)charIn/10; - } - - if(pkt.data % 2 == 0 && addNum == 1){ - pkt.data += 1; - }else if(pkt.data % 2 != 0 && addNum == 0){ - pkt.data -= 1; - } - - } - - break; - - case 1: - - if((count_streams >= 3 * (position1 - 1)) && (count_streams < 3 * (position2)-1)){ - - - decrypt(pkt.data); - - } - break; - - default: - break; - } + #include "pixel.hpp" - count_streams++; - - if (count_streams == stream_count){ - count_streams = 0; - charIn=0; - addNum=0; - ascii=0; - if(selector == 1){ - ascii= convertBinInt(final_char); - final_char=0; - } - + static int count_streams = 0; + static long long charIn=0; + static long long final_char=0; + int addNum=0; + + void pixel(ap_int<32> selector, + ap_int<32> position1, + ap_int<32> position2, + ap_int<32> stream_count, + ap_int<32> ascii, + stream &din, + stream &dout + + ) { + #pragma HLS INTERFACE ap_ctrl_none port=return + #pragma HLS INTERFACE s_axilite port=selector + #pragma HLS INTERFACE s_axilite port=position1 + #pragma HLS INTERFACE s_axilite port=position2 + #pragma HLS INTERFACE s_axilite port=stream_count + #pragma HLS INTERFACE s_axilite port=ascii + #pragma HLS INTERFACE axis port=din + #pragma HLS INTERFACE axis port=dout + + pkt_t pkt=din.read(); + + switch(selector) + { + case 0: + + if (count_streams == 0){ + charIn=convert(ascii); + final_char=0; + } + + if((count_streams >= 3 * (position1 - 1)) && (count_streams < 3 * (position2) - 1)){ + addNum=0; + if(charIn!=0){ + addNum=charIn%10; + charIn=(int)charIn/10; + } + + if(pkt.data % 2 == 0 && addNum == 1){ + pkt.data += 1; + }else if(pkt.data % 2 != 0 && addNum == 0){ + pkt.data -= 1; + } + + } + + break; + + case 1: + + if((count_streams >= 3 * (position1 - 1)) && (count_streams < 3 * (position2)-1)){ + + + decrypt(pkt.data); + + } + break; + + default: + break; + } + + count_streams++; + + if (count_streams == stream_count){ + count_streams = 0; + charIn=0; + addNum=0; + ascii=0; + if(selector == 1){ + ascii= convertBinInt(final_char); + final_char=0; + } + + } + + dout.write(pkt); } - - dout.write(pkt); -} - - -long long convert(int n) { - long long bin = 0; - int rem, i = 1, step = 1; - while (n != 0) { - rem = n % 2; - n /= 2; - bin += rem * i; - i *= 10; - } - return bin; -} - -void decrypt(int data) { -int bit; -if(data % 2 == 0){ - bit = 0; -}else if(data % 2 != 0){ - bit=1; -} -final_char= final_char*10+bit; - -} - -int convertBinInt(long long n) { -int dec = 0, i = 7, b=0,rem=0; - while (n != 0) { - b=pow(10,i); - rem = n / b; - n =n % b; - dec += rem * pow(2, 7-i); - --i; - } - return dec; -} + + + long long convert(int n) { + long long bin = 0; + int rem, i = 1, step = 1; + while (n != 0) { + rem = n % 2; + n /= 2; + bin += rem * i; + i *= 10; + } + return bin; + } + + void decrypt(int data) { + int bit; + if(data % 2 == 0){ + bit = 0; + }else if(data % 2 != 0){ + bit=1; + } + final_char= final_char*10+bit; + + } + + int convertBinInt(long long n) { + int dec = 0, i = 7, b=0,rem=0; + while (n != 0) { + b=pow(10,i); + rem = n / b; + n =n % b; + dec += rem * pow(2, 7-i); + --i; + } + return dec; + } + -- GitLab