#ifndef _COMMON_H_ #define _COMMON_H_ // Structures used by both the host and the dpu to communicate information typedef struct { uint32_t n_size; uint32_t n_size_pad; uint32_t nr_rows; uint32_t max_rows; } dpu_arguments_t; // Specific information for each DPU struct dpu_info_t { uint32_t rows_per_dpu; uint32_t rows_per_dpu_pad; uint32_t prev_rows_dpu; }; struct dpu_info_t *dpu_info; #define NUM_LAYERS 3 #define max(x, y) (x > y ? x : y) #define min(x, y) (x < y ? x : y) // Transfer size between MRAM and WRAM #ifdef BL #define BLOCK_SIZE_LOG2 BL #define BLOCK_SIZE (1 << BLOCK_SIZE_LOG2) #else #define BLOCK_SIZE_LOG2 8 #define BLOCK_SIZE (1 << BLOCK_SIZE_LOG2) #define BL BLOCK_SIZE_LOG2 #endif // Data type #define T int32_t #ifndef ENERGY #define ENERGY 0 #endif #define PRINT 0 #define ANSI_COLOR_RED "\x1b[31m" #define ANSI_COLOR_GREEN "\x1b[32m" #define ANSI_COLOR_RESET "\x1b[0m" #endif