29 #include <TimedModel.h> 36 Signal<uint8_t>* stall, Signal<uint8_t>* dma_start, Signal<uint32_t>* burst_size, Signal<uint32_t>* nn_size,
37 Signal<uint32_t>* out_size, uint32_t base_mac_out_addr, Memory* main_mem) : TimedModel(name) {
65 printf(
"NN CONFIGURATION:\n\n");
67 printf(
" SIMD_SIZE = %d\n",SIMD_SIZE);
71 printf(
" DMA_MAC_OUT_ARRAY = 0x%x\n\n",base_mac_out_addr);
105 #pragma GCC diagnostic push 106 #pragma GCC diagnostic ignored "-Wswitch" 134 #pragma GCC diagnostic pop 171 s << this->GetName() <<
": burst size exedded the NN memory capacity.";
172 throw std::runtime_error(s.str());
188 int8_t * w_ptr, * i_ptr;
192 _op1[i] = *(
float*)w_ptr;
194 _op2[i] = *(
float*)i_ptr;
Signal< uint8_t > * _sig_dma_prog
Signal< uint32_t > * _sig_out_size
uint32_t _memI[SIMD_SIZE]
TDmaMult(std::string name, Signal< uint8_t > *stall, Signal< uint8_t > *dma_start, Signal< uint32_t > *burst_size, Signal< uint32_t > *nn_size, Signal< uint32_t > *out_size, uint32_t base_mac_out_addr, Memory *main_mem)
ctor
Signal< uint32_t > * _sig_nn_size
T Read()
Get the last value writen to the bus.
uint8_t _mul_loaded
pipeline signals.
uint32_t _remaining
count number of data to be read.
void Write(T val)
Writes some value to the bus.
uint32_t _mem_idx
memory idx used to access both the input and weight memories.
float _reg_mac[SIMD_SIZE]
float _reg_mul[SIMD_SIZE]
void ReadData()
Internal processes – 3 stage pipeline.
Signal< uint32_t > * _sig_burst_size
uint32_t _memW[SIMD_SIZE]
#define TOTAL_NN_MEM_SIZE
Signal< uint8_t > * _sig_stall
uint32_t _base_mac_out_addr
#define NN_MEM_SIZE_PER_CHANNEL