diff --git a/Calib/sourceCode/Calib.cpp b/Calib/sourceCode/Calib.cpp index 561148d..fe95828 100644 --- a/Calib/sourceCode/Calib.cpp +++ b/Calib/sourceCode/Calib.cpp @@ -6,8 +6,10 @@ void calib( hls::stream &outSubpixCalib ) { +#if !(VITIS_HLS) #pragma HLS DATA_PACK variable=inCalibData #pragma HLS DATA_PACK variable=outSubpixCalib +#endif #pragma HLS INTERFACE axis register both port=inCalibData #pragma HLS INTERFACE axis register both port=outSubpixCalib diff --git a/Calib/sourceCode/calib.h b/Calib/sourceCode/calib.h index 0c714f9..df160b2 100644 --- a/Calib/sourceCode/calib.h +++ b/Calib/sourceCode/calib.h @@ -2,7 +2,7 @@ #ifndef COMPUTE_3D_H #define COMPUTE_3D_H -#include "..\..\globals\algoGlobals.h" +#include "../../globals/algoGlobals.h" void calib( hls::stream &inCalibData, diff --git a/Calib/sourceCode/calib_tb.cpp b/Calib/sourceCode/calib_tb.cpp index ed87981..2b577be 100644 --- a/Calib/sourceCode/calib_tb.cpp +++ b/Calib/sourceCode/calib_tb.cpp @@ -5,7 +5,7 @@ #include "ap_utils.h" #include #include "calib.h" -#include "..\..\globals\tbGlobals.h" +#include "../../globals/tbGlobals.h" std::vector readSubpixDataFile( const char* file, @@ -25,7 +25,11 @@ std::vector readSubpixDataFile( float x; int y, Rid, Flag, pkValue; +#if defined(__linux__) + sscanf(strLineTxt.c_str(), "%f %d %d %x %d", &x, &y, &Rid, &Flag, &pkValue); +#else sscanf_s(strLineTxt.c_str(), "%f %d %d %x %d", &x, &y, &Rid, &Flag, &pkValue); +#endif a_line.x = (float)x; a_line.y = (ap_uint<12>)y; @@ -239,8 +243,13 @@ void writeSubpixCalibData( for (int i = 0; i < i_max; i++) { char data[250]; +#if defined(__linux__) + sprintf(data, "%.2f %.2f %04d %01x %02d", + outData[i].x, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#else sprintf_s(data, "%.2f %.2f %04d %01x %02d", outData[i].x, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#endif sw << data << std::endl; } sw.close(); @@ -250,12 +259,21 @@ void writeSubpixCalibData( int main() { +#if defined(__linux__) const char* InDataPath[TST_GROUP] = { - "E:\\CamTestData\\Subpix\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Subpix/testData.txt" }; const char* OutDataPath[TST_GROUP] = { - "E:\\CamTestData\\Calib\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Calib/testData.txt" }; +#else + const char* InDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Subpix/testData.txt" + }; + const char* OutDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Calib/testData.txt" + }; +#endif for(int n = 0; n < TST_GROUP; n ++) { @@ -292,5 +310,5 @@ int main() writeSubpixCalibData(OutDataPath[n], outData); } - + printf("done!\n"); } diff --git a/compute3D/sourceCode/compute3D.cpp b/compute3D/sourceCode/compute3D.cpp index 26414b2..cb802d3 100644 --- a/compute3D/sourceCode/compute3D.cpp +++ b/compute3D/sourceCode/compute3D.cpp @@ -12,8 +12,10 @@ void compute3D( float plane_c_f ) { +#if !(VITIS_HLS) #pragma HLS DATA_PACK variable=inSubCalib #pragma HLS DATA_PACK variable=outPt3D +#endif #pragma HLS INTERFACE axis register both port=inSubCalib #pragma HLS INTERFACE axis register both port=outPt3D diff --git a/compute3D/sourceCode/compute3D.h b/compute3D/sourceCode/compute3D.h index b37702b..014a233 100644 --- a/compute3D/sourceCode/compute3D.h +++ b/compute3D/sourceCode/compute3D.h @@ -2,7 +2,7 @@ #ifndef COMPUTE_3D_H #define COMPUTE_3D_H -#include "..\..\globals\algoGlobals.h" +#include "../../globals/algoGlobals.h" void compute3D( hls::stream &inSubCalib, diff --git a/compute3D/sourceCode/compute3D_tb.cpp b/compute3D/sourceCode/compute3D_tb.cpp index 2b49ce0..70a86f9 100644 --- a/compute3D/sourceCode/compute3D_tb.cpp +++ b/compute3D/sourceCode/compute3D_tb.cpp @@ -5,7 +5,7 @@ #include "ap_utils.h" #include #include "compute3D.h" -#include "..\..\globals\tbGlobals.h" +#include "../../globals/tbGlobals.h" std::vector readSubpixCalibDataFile( const char* file) @@ -22,8 +22,11 @@ std::vector readSubpixCalibDataFile( float x,y; int Rid, Flag, pkValue; +#if defined(__linux__) + sscanf(strLineTxt.c_str(), "%f %f %d %x %d", &x, &y, &Rid, &Flag, &pkValue); +#else sscanf_s(strLineTxt.c_str(), "%f %f %d %x %d", &x, &y, &Rid, &Flag, &pkValue); - +#endif a_line.x = (float)x; a_line.y = (float)y; a_line.rid = (ap_uint<11>)Rid; @@ -179,8 +182,13 @@ void writeCompute3DData( { char data[250]; uint8_t value = (uint8_t)outData[i].value; +#if defined(__linux__) + sprintf(data, "%.3f %.3f %.3f %02d", + outData[i].x, outData[i].y, outData[i].z, value); +#else sprintf_s(data, "%.3f %.3f %.3f %02d", outData[i].x, outData[i].y, outData[i].z, value); +#endif sw << data << std::endl; } sw.close(); @@ -190,12 +198,21 @@ void writeCompute3DData( int main() { +#if defined(__linux__) const char* InDataPath[TST_GROUP] = { - "E:\\CamTestData\\Calib\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Calib/testData.txt" }; const char* OutDataPath[TST_GROUP] = { - "E:\\CamTestData\\Compute3D\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Compute3D/testData.txt" }; +#else + const char* InDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Calib/testData.txt" + }; + const char* OutDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Compute3D/testData.txt" + }; +#endif for(int n = 0; n < TST_GROUP; n ++) { @@ -236,5 +253,5 @@ int main() &outROI_y); writeCompute3DData(OutDataPath[n], outData); } - + printf("done!\n"); } diff --git a/convolve/sourceCode/convolve.cpp b/convolve/sourceCode/convolve.cpp index c26eb22..a8d1a93 100644 --- a/convolve/sourceCode/convolve.cpp +++ b/convolve/sourceCode/convolve.cpp @@ -5,8 +5,10 @@ void convolve( hls::stream &InRgnPnt, hls::stream &OutConvolvePnt) { +#if !(VITIS_HLS) #pragma HLS DATA_PACK variable=InRgnPnt #pragma HLS DATA_PACK variable=OutConvolvePnt +#endif #pragma HLS INTERFACE axis register both port=OutConvolvePnt #pragma HLS INTERFACE axis register both port=InRgnPnt diff --git a/convolve/sourceCode/convolve.h b/convolve/sourceCode/convolve.h index 165831f..7672c8e 100644 --- a/convolve/sourceCode/convolve.h +++ b/convolve/sourceCode/convolve.h @@ -2,7 +2,7 @@ #ifndef CONVOLVE_H #define CONVOLVE_H -#include "..\..\globals\algoGlobals.h" +#include "../../globals/algoGlobals.h" const int mask_1st[16] = { diff --git a/convolve/sourceCode/convolve_tb.cpp b/convolve/sourceCode/convolve_tb.cpp index b17ff28..ba04b72 100644 --- a/convolve/sourceCode/convolve_tb.cpp +++ b/convolve/sourceCode/convolve_tb.cpp @@ -5,7 +5,7 @@ #include "ap_utils.h" #include #include "convolve.h" -#include "..\..\globals\tbGlobals.h" +#include "../../globals/tbGlobals.h" std::vector readTestFile( const char* file, @@ -214,12 +214,25 @@ void writeConvolveData( for (int i = 0; i < i_max; i++) { char data[250]; +#if defined(__linux__) + sprintf(data, "%04x %04x %04x %01x %02x", + outData[i].WinRdx, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#else sprintf_s(data, "%04x %04x %04x %01x %02x", outData[i].WinRdx, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#endif sw << data << std::endl; +#if defined(__linux__) + sprintf(data, "%d",outData[i].nD1); +#else sprintf_s(data, "%d",outData[i].nD1); +#endif sw << data << std::endl; +#if defined(__linux__) + sprintf(data, "%d",outData[i].nD2); +#else sprintf_s(data, "%d",outData[i].nD2); +#endif sw << data << std::endl; } sw.close(); @@ -229,13 +242,21 @@ void writeConvolveData( int main() { +#if defined(__linux__) const char* InDataPath[TST_GROUP] = { - "E:\\CamTestData\\PkCentering\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/PkCentering/testData.txt" }; const char* OutDataPath[TST_GROUP] = { - "E:\\CamTestData\\Convolve\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Convolve/testData.txt" }; - +#else + const char* InDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/PkCentering/testData.txt" + }; + const char* OutDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Convolve/testData.txt" + }; +#endif for(int n = 0; n < TST_GROUP; n ++) { int winSize = 0; @@ -270,5 +291,5 @@ int main() writeConvolveData(OutDataPath[n], outData); } - + printf("done!\n"); } diff --git a/globals/algoGlobals.h b/globals/algoGlobals.h index 857776b..10bc6d6 100644 --- a/globals/algoGlobals.h +++ b/globals/algoGlobals.h @@ -5,6 +5,8 @@ #include "ap_int.h" #include "hls_stream.h" +#define VITIS_HLS 0 + #define RGN_DATA_WIN_SIZE 16 #define RGN_DATA_PIXEL_WIDTH 2 //output 2 pixels per clock #define MAX_PT_NUM 4096 diff --git a/globals/tbGlobals.h b/globals/tbGlobals.h index 741bbf1..b39a57d 100644 --- a/globals/tbGlobals.h +++ b/globals/tbGlobals.h @@ -2,7 +2,7 @@ #ifndef TB_GLOBALS_H #define TB_GLOBALS_H -#include "..\globals\algoGlobals.h" +#include "../globals/algoGlobals.h" #include #include #include diff --git a/peakCentering/sourceCode/peakCentering.cpp b/peakCentering/sourceCode/peakCentering.cpp index ffc1b7b..f25d632 100644 --- a/peakCentering/sourceCode/peakCentering.cpp +++ b/peakCentering/sourceCode/peakCentering.cpp @@ -6,8 +6,10 @@ void peakCentering( hls::stream &OutCenteringPnt ) { +#if !(VITIS_HLS) #pragma HLS DATA_PACK variable=OutCenteringPnt #pragma HLS DATA_PACK variable=InRgnPnt +#endif #pragma HLS INTERFACE axis register both port=OutCenteringPnt #pragma HLS INTERFACE axis register both port=InRgnPnt @@ -55,9 +57,18 @@ void peakCentering( RgnPix HSyncData_d1 = {0,0,0,0,0,0,0}; ap_uint<12> LazerWinX_d1 = 0; ap_uint<8> lineBuff_0[RGN_DATA_WIN_SIZE * 2]; +#if VITIS_HLS +#pragma HLS BIND_STORAGE variable=lineBuff_0 type=RAM_2p +#else //#pragma HLS RESOURCE variable=lineBuff_0 core=RAM_2P +#endif + ap_uint<8> lineBuff_1[RGN_DATA_WIN_SIZE * 2]; +#if VITIS_HLS +#pragma HLS BIND_STORAGE variable=lineBuff_0 type=RAM_2p +#else //#pragma HLS RESOURCE variable=lineBuff_1 core=RAM_2P +#endif //initialize buffer for(int m = 0; m < RGN_DATA_WIN_SIZE * 2; m ++) diff --git a/peakCentering/sourceCode/peakCentering.h b/peakCentering/sourceCode/peakCentering.h index 487ac9c..bd9b72a 100644 --- a/peakCentering/sourceCode/peakCentering.h +++ b/peakCentering/sourceCode/peakCentering.h @@ -2,7 +2,7 @@ #ifndef PEAK_CENTERING_H #define PEAK_CENTERING_H -#include "..\..\globals\algoGlobals.h" +#include "../../globals/algoGlobals.h" void peakCentering( hls::stream &InRgnPnt, diff --git a/peakCentering/sourceCode/peakCentering_tb.cpp b/peakCentering/sourceCode/peakCentering_tb.cpp index 9f9e2f9..09bc5af 100644 --- a/peakCentering/sourceCode/peakCentering_tb.cpp +++ b/peakCentering/sourceCode/peakCentering_tb.cpp @@ -5,14 +5,18 @@ #include "ap_utils.h" #include #include "peakCentering.h" -#include "..\..\globals\tbGlobals.h" +#include "../../globals/tbGlobals.h" void save_bmp_2( const char* filename, std::vector& testSamples) { FILE* file; +#if defined(__linux__) + file = fopen(filename, "wb"); +#else fopen_s(&file, filename, "wb"); +#endif if (!file) { printf("无法打开文件 %s\n", filename); return; @@ -282,18 +286,31 @@ void writepeakCenteringData( { std::ofstream sw(fileName); char str[250]; +#if defined(__linux__) + sprintf(str, "0x10"); +#else sprintf_s(str, "0x10"); +#endif sw << str << std::endl; int i_max = outData.size(); for (int i = 0; i < i_max; i++) { char data[250]; +#if defined(__linux__) + sprintf(data, "%04x %04x %04x %01x %02x", + outData[i].WinRdx, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].PeakRltvRdx); +#else sprintf_s(data, "%04x %04x %04x %01x %02x", outData[i].WinRdx, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].PeakRltvRdx); +#endif sw << data << std::endl; for (int j = 0; j < RGN_DATA_WIN_SIZE; j++) { +#if defined(__linux__) + sprintf(data, "%02x", outData[i].data[j]); +#else sprintf_s(data, "%02x", outData[i].data[j]); +#endif sw << data << std::endl; } } @@ -306,12 +323,21 @@ void writepeakCenteringData( int main() { +#if defined(__linux__) const char* InDataPath[TST_GROUP] = { - "E:\\CamTestData\\RgnPixData\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/RgnPixData/testData.txt" }; const char* OutDataPath[TST_GROUP] = { - "E:\\CamTestData\\PkCentering\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/PkCentering/testData.txt" }; +#else + const char* InDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/RgnPixData/testData.txt" + }; + const char* OutDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/PkCentering/testData.txt" + }; +#endif for(int n = 0; n < TST_GROUP; n ++) { @@ -347,5 +373,6 @@ int main() writepeakCenteringData(OutDataPath[n], outData); } + printf("done!\n"); } diff --git a/subPix/sourceCode/subPix.cpp b/subPix/sourceCode/subPix.cpp index 92d0080..f97c178 100644 --- a/subPix/sourceCode/subPix.cpp +++ b/subPix/sourceCode/subPix.cpp @@ -6,8 +6,10 @@ void subpix( hls::stream &OutSubpixPnt ) { +#if !(VITIS_HLS) #pragma HLS DATA_PACK variable=InConvolvePnt #pragma HLS DATA_PACK variable=OutSubpixPnt +#endif #pragma HLS INTERFACE axis register both port=OutSubpixPnt #pragma HLS INTERFACE axis register both port=InConvolvePnt diff --git a/subPix/sourceCode/subPix.h b/subPix/sourceCode/subPix.h index 885e940..174a0ba 100644 --- a/subPix/sourceCode/subPix.h +++ b/subPix/sourceCode/subPix.h @@ -2,7 +2,7 @@ #ifndef SUBPIX_H #define SUBPIX_H -#include "..\..\globals\algoGlobals.h" +#include "../../globals/algoGlobals.h" void subpix( hls::stream &InConvolvePnt, diff --git a/subPix/sourceCode/subPix_tb.cpp b/subPix/sourceCode/subPix_tb.cpp index 85194f4..b0476cf 100644 --- a/subPix/sourceCode/subPix_tb.cpp +++ b/subPix/sourceCode/subPix_tb.cpp @@ -5,7 +5,7 @@ #include "ap_utils.h" #include #include "subPix.h" -#include "..\..\globals\tbGlobals.h" +#include "../../globals/tbGlobals.h" std::vector readConvolveDataFile( const char* file){ @@ -196,8 +196,13 @@ void writeSubpixData( for (int i = 0; i < i_max; i++) { char data[250]; +#if defined(__linux__) + sprintf(data, "%.2f %04d %04d %01x %02d", + outData[i].x, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#else sprintf_s(data, "%.2f %04d %04d %01x %02d", outData[i].x, outData[i].y, outData[i].Rid, outData[i].Flag, outData[i].pkValue); +#endif sw << data << std::endl; } sw.close(); @@ -207,12 +212,21 @@ void writeSubpixData( int main() { +#if defined(__linux__) const char* InDataPath[TST_GROUP] = { - "E:\\CamTestData\\Convolve\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Convolve/testData.txt" }; const char* OutDataPath[TST_GROUP] = { - "E:\\CamTestData\\Subpix\\testSample\\testData.txt" + "/home/zengHQ/CamTestData/testSample/Subpix/testData.txt" }; +#else + const char* InDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Convolve/testData.txt" + }; + const char* OutDataPath[TST_GROUP] = { + "E:/CamTestData/testSample/Subpix/testData.txt" + }; +#endif for(int n = 0; n < TST_GROUP; n ++) { @@ -248,5 +262,6 @@ int main() writeSubpixData(OutDataPath[n], outData); } + printf("done!\n"); }