FPGAIntegrationTest: Truncate number of test images

This commit is contained in:
2024-05-07 14:00:15 +02:00
parent 3693cae440
commit 89cf520e52
40 changed files with 24 additions and 31 deletions

View File

@@ -87,21 +87,19 @@ TEST_CASE("HLS_C_Simulation_internal_packet_generator_custom_frame", "[FPGA][Ful
}
TEST_CASE("HLS_C_Simulation_check_raw", "[FPGA][Full]") {
std::vector<uint16_t> raw_frames(RAW_MODULE_SIZE*20);
std::vector<uint16_t> raw_frames(RAW_MODULE_SIZE);
for (int i = 0; i < 20; i++) {
LoadBinaryFile("../../tests/test_data/mod5_raw" + std::to_string(i)+".bin", raw_frames.data() + i * RAW_MODULE_SIZE, RAW_MODULE_SIZE);
}
LoadBinaryFile("../../tests/test_data/mod5_raw0.bin", raw_frames.data(), RAW_MODULE_SIZE);
const uint16_t nmodules = 4;
DiffractionExperiment x((DetectorGeometry(nmodules)));
uint16_t data[4096];
x.Mode(DetectorMode::Raw);
x.PedestalG0Frames(0).ImagesPerTrigger(5).NumTriggers(1);
x.PedestalG0Frames(0).ImagesPerTrigger(1).NumTriggers(1);
HLSSimulatedDevice test(0, 64);
test.CreateJFPackets(x, 1, 5, 0, raw_frames.data());
test.CreateJFPackets(x, 1, 1, 0, raw_frames.data());
test.CreateFinalPacket(x);
REQUIRE_NOTHROW(test.StartAction(x));
REQUIRE_NOTHROW(test.WaitForActionComplete());
@@ -111,15 +109,14 @@ TEST_CASE("HLS_C_Simulation_check_raw", "[FPGA][Full]") {
REQUIRE_NOTHROW(test.OutputStream().read());
REQUIRE(test.OutputStream().size() == 0);
REQUIRE(test.GetBytesReceived() == 5 * 128 * JUNGFRAU_PACKET_SIZE_BYTES);
REQUIRE(test.GetBytesReceived() == 128 * JUNGFRAU_PACKET_SIZE_BYTES);
uint64_t diffs = 0;
for (int image = 0; image < 5; image++) {
for (int j = 0; j < RAW_MODULE_SIZE; j++) {
if (raw_frames[image*RAW_MODULE_SIZE+j] != ((uint16_t *) test.GetDeviceOutput(image, 0)->pixels)[j]) {
diffs++;
std::cout << raw_frames[image*RAW_MODULE_SIZE+j] << " " << ((uint16_t *) test.GetDeviceOutput(image, 0)->pixels)[j] << std::endl;
}
for (int j = 0; j < RAW_MODULE_SIZE; j++) {
if (raw_frames[j] != ((uint16_t *) test.GetDeviceOutput(0, 0)->pixels)[j]) {
diffs++;
std::cout << raw_frames[j] << " " << ((uint16_t *) test.GetDeviceOutput(0, 0)->pixels)[j] << std::endl;
}
}
@@ -919,13 +916,11 @@ TEST_CASE("HLS_C_Simulation_check_2_trigger_convert", "[FPGA][Full]") {
LoadBinaryFile("../../tests/test_data/mod5_pedeG1.bin", pedestal_g1.data(), RAW_MODULE_SIZE);
LoadBinaryFile("../../tests/test_data/mod5_pedeG2.bin", pedestal_g2.data(), RAW_MODULE_SIZE);
std::vector<uint16_t> raw_frames(RAW_MODULE_SIZE*20);
std::vector<float> conv_frames(RAW_MODULE_SIZE*20);
std::vector<uint16_t> raw_frames(RAW_MODULE_SIZE);
std::vector<float> conv_frames(RAW_MODULE_SIZE);
for (int i = 0; i < 20; i++) {
LoadBinaryFile("../../tests/test_data/mod5_raw" + std::to_string(i)+".bin", raw_frames.data() + i * RAW_MODULE_SIZE, RAW_MODULE_SIZE);
LoadBinaryFile("../../tests/test_data/mod5_conv" + std::to_string(i)+".bin", conv_frames.data() + i * RAW_MODULE_SIZE, RAW_MODULE_SIZE);
}
LoadBinaryFile("../../tests/test_data/mod5_raw0.bin", raw_frames.data(), RAW_MODULE_SIZE);
LoadBinaryFile("../../tests/test_data/mod5_conv0.bin", conv_frames.data(), RAW_MODULE_SIZE);
const uint16_t nmodules = 4;
DiffractionExperiment x((DetectorGeometry(nmodules)));
@@ -933,7 +928,7 @@ TEST_CASE("HLS_C_Simulation_check_2_trigger_convert", "[FPGA][Full]") {
uint16_t data[4096];
x.Mode(DetectorMode::Conversion);
x.PedestalG0Frames(0).NumTriggers(2).ImagesPerTrigger(5);
x.PedestalG0Frames(0).NumTriggers(1).ImagesPerTrigger(1);
HLSSimulatedDevice test(0, 64);
@@ -946,7 +941,7 @@ TEST_CASE("HLS_C_Simulation_check_2_trigger_convert", "[FPGA][Full]") {
REQUIRE_NOTHROW(test.InitializeCalibration(x, c));
// send some frames without trigger (to be ignored)
test.CreateJFPackets(x, 1, 10, 0, raw_frames.data());
test.CreateJFPackets(x, 1, 1, 0, raw_frames.data());
test.CreateFinalPacket(x);
REQUIRE_NOTHROW(test.StartAction(x));
@@ -961,25 +956,23 @@ TEST_CASE("HLS_C_Simulation_check_2_trigger_convert", "[FPGA][Full]") {
REQUIRE((uint64_t) test.GetDeviceOutput(0,0)->pixels % 128 == 0);
REQUIRE(test.Counters().GetSlowestFrameNumber() == 0);
REQUIRE(test.Counters().GetCurrFrameNumber(0) == 9);
REQUIRE(test.Counters().GetCurrFrameNumber(0) == 0);
REQUIRE_NOTHROW(test.OutputStream().read());
REQUIRE(test.OutputStream().size() == 0);
REQUIRE(test.GetBytesReceived()== 128 * 10 * JUNGFRAU_PACKET_SIZE_BYTES);
REQUIRE(test.GetBytesReceived()== 128 * JUNGFRAU_PACKET_SIZE_BYTES);
double mean_error = 0.0;
for (int image = 0; image < 10; image++) {
auto img = test.GetDeviceOutput(image, 0)->pixels;
for (int j = 0; j < RAW_MODULE_SIZE; j++) {
if ((img[j] < 30000) && (img[j] > -30000)) {
float diff = (conv_frames[image * RAW_MODULE_SIZE + j] - (float) img[j]);
mean_error += diff * diff;
}
auto img = test.GetDeviceOutput(0, 0)->pixels;
for (int j = 0; j < RAW_MODULE_SIZE; j++) {
if ((img[j] < 30000) && (img[j] > -30000)) {
float diff = (conv_frames[j] - (float) img[j]);
mean_error += diff * diff;
}
}
mean_error = sqrt(mean_error/ (10*RAW_MODULE_SIZE));
mean_error = sqrt(mean_error/ (RAW_MODULE_SIZE));
std::cout << "Mean error " << mean_error << std::endl;
REQUIRE(mean_error < 0.30);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.