npu-arm-apb bridge

32
NPU AHB Modules, APB Bridge project! Name: Hung-Jui Wang (Rex), Powen Ko Student ID: 5771, 7478 we can finish the project until Sat. and i'll make the project as powerpoint and then send to pro. ------------------------------------------------------------------------------ ------------------------ *SystemC 2.0 Source Code Main.CPP /***************************************************************************** The following code is derived, directly or indirectly, from Powen Ko and Hung-Jui Wang Copyright (c) 2006 by all NPU. All Rights reserved. *****************************************************************************/

description

Uploaded from Google Docs

Transcript of npu-arm-apb bridge

Page 1: npu-arm-apb bridge

 NPU     AHB Modules, APB Bridge project!   Name:      Hung-Jui Wang (Rex), Powen Ko Student  ID:     5771, 7478       we can finish the project until Sat.and i'll make the project as powerpoint and then send to pro.      ------------------------------------------------------------------------------------------------------

*SystemC 2.0 Source Code    

Main.CPP

/*****************************************************************************  The following code is derived, directly or indirectly, from Powen Ko and  Hung-Jui Wang  Copyright (c) 2006 by all NPU.  All Rights reserved.

 *****************************************************************************//*****************************************************************************

  main.cpp -- This is the top level file instantiating the modules and              binding ports to signals.

  Original Author: Amit Rao, Synopsys, Inc.

 *****************************************************************************/

#include "systemc.h"#include "stage1.h"

Page 2: npu-arm-apb bridge

#include "stage2.h"#include "stage3.h"#include "display.h"#include "numgen.h"#include "AHBBridge.h"#define NS * 1e-9int sc_main(int ac, char *av[]){

  //Clock  sc_signal<bool>          clk;

  //Signals  sc_signal<bool>          HRESETn;  sc_signal<sc_uint<32> >  HADRR;  sc_signal<sc_uint<2> >   HTRANS;  sc_signal<bool>          HWRITE;  sc_signal<sc_uint<32> >  HWDATA;  sc_signal<bool>          HSELAPBif;  sc_signal<sc_uint<32> >  HRDATA;  sc_signal<bool>          HREADin;  sc_signal<bool>          HREADYout;  sc_signal<sc_uint<2> >   HRESP;  sc_signal<sc_uint<32> >  PRDATA;  sc_signal<sc_uint<32> >  PWDATA;  sc_signal<bool>     PENABLE;  sc_signal<bool>     PSELx;  sc_signal<sc_uint<32> >  PADDR;  sc_signal<bool>     PWRITE;

  //Signals  sc_signal<double> in1;  sc_signal<double> in2;  sc_signal<double> sum;  sc_signal<double> diff;  sc_signal<double> prod;  sc_signal<double> quot;  sc_signal<double> powr;

  AHBBridge  AHBBridge1("AHBBridge");  AHBBridge1(clk,HRESETn,HADRR,HTRANS,   HWRITE,HWDATA,HSELAPBif,HRDATA,   HREADin,HREADYout,HRESP,PRDATA,PWDATA,PENABLE,   PSELx,PADDR,PWRITE );

  /*  numgen N("numgen");               //instance of `numgen' module  N(in1, in2, clk );                //Positional port binding

  stage1 S1("stage1");              //instance of `stage1' module  //Named port binding  S1.in1(in1);  S1.in2(in2);  S1.sum(sum);  S1.diff(diff);  S1.clk(clk);

  stage2 S2("stage2");              //instance of `stage2' module  S2(sum, diff, prod, quot, clk );  //Positional port binding  stage3 S3("stage3");              //instance of `stage3' module

Page 3: npu-arm-apb bridge

  S3( prod, quot, powr, clk);       //Positional port binding*/

  display D("display");             //instance of `display' module  D(powr, clk);                     //Positional port binding  sc_initialize();                  //Initialize simulation  for(int i = 0; i < 50; i++){      clk.write(1);      sc_cycle( 10 NS );      clk.write(0);      sc_cycle( 10 NS );  }  return 0;}

  AHBBridge.H

/*****************************************************************************

   AHBBridge.H -- This is the interface file for the stage1 module.

  Original Author: Amit Rao, Synopsys, Inc.

 *****************************************************************************/

#ifndef AHBBRIDGE1_H#define AHBBRIDGE_Hstruct AHBBridge : sc_module {

  //Signals  sc_in<bool>          clk;  sc_in<bool>          HRESETn;  sc_in<sc_uint<32> >  HADRR;  sc_in<sc_uint<2> >   HTRANS;  sc_in<bool>          HWRITE;  sc_in<sc_uint<32> >  HWDATA;  sc_in<bool>          HSELAPBif;  sc_out<sc_uint<32> > HRDATA;  sc_in<bool>          HREADin;  sc_out<bool>         HREADYout;  sc_out<sc_uint<2> >  HRESP;  sc_in<sc_uint<32> >  PRDATA;  sc_out<sc_uint<32> > PWDATA;  sc_out<bool>     PENABLE;  sc_out<bool>     PSELx;  sc_out<sc_uint<32> > PADDR;  sc_out<bool>     PWRITE;

   //u_int

Page 4: npu-arm-apb bridge

//  sc_uint<32>  Memory[0xff];

  //Signals

    sc_in<double> in1;   //input 1    sc_in<double> in2;   //input 2    sc_out<double> sum;  //output 1    sc_out<double> diff; //output 2 //   sc_in<bool>    clk;  //clock //   void addsub();       //method implementing functionality    void Action();

    //Counstructor    SC_CTOR( AHBBridge ) {        SC_METHOD( Action );   //Declare addsub as SC_METHOD and        dont_initialize();        sensitive_pos << clk;  //make it sensitive to positive clock edge    }};#endif

   AHBBridge.cpp

#include "systemc.h"#include "AHBBridge.h"//Definition of addsub method/*  sc_in<bool>          clk;  sc_in<bool>          HRESETn;  sc_in<sc_uint<32> >  HADRR;  sc_in<sc_uint<2> >   HTRANS;  sc_in<bool>          HWRITE;  sc_in<sc_uint<32> >  HWDATA;  sc_in<bool>          HSELAPBif;  sc_out<sc_uint<32> > HRDATA;  sc_in<bool>          HREADin;  sc_out<bool>         HREADYout;  sc_out<sc_uint<2> >  HRESP;  sc_in<sc_uint<32> >  PRDATA;  sc_out<sc_uint<32> > PWDATA;  sc_out<bool>     PENABLE;  sc_out<bool>     PSELx;  sc_out<sc_uint<32> > PADDR;  sc_out<bool>     PWRITE;  */

Page 5: npu-arm-apb bridge

void AHBBridge::Action(){  bool  i_HRESETn;  bool  i_HWRITE;  bool  valid=true;  sc_uint<32> i_PRDATA;  sc_uint<32> i_HWDATA;

 // double b;  i_HRESETn = HRESETn.read();  i_HWRITE  = HWRITE.read();  i_PRDATA  = PRDATA.read();  i_HWDATA  = HWDATA.read();

  if (i_HRESETn==false  && i_HWRITE==false && i_PRDATA!=0)  {   //Read   PWDATA.write(i_PRDATA);   PSELx.write(1);   PWRITE.write(0);  }else  if (i_HRESETn==false  && i_HWRITE==true)  {   //write   PWDATA.write(i_HWDATA);

  }else  {   //Idle   PSELx.write(0);   PENABLE.write(0);  }

} // end of addsub method

  

      

Page 6: npu-arm-apb bridge

      

 

Below is Final Exam               

Main.CPP

//main.cpp#include "systemc.h"#include "fetch.h"#include "decode.h"#include "exec.h"#include "mem_acc.h"#include "wr_back.h"#include "Memory.h"int sc_main(int ac, char *av[]){//Memory

 sc_signal<bool> m_Read_en; sc_signal<int>  m_addressShift; sc_signal<int>  m_address;

 sc_signal<sc_uint<32> > m_MemoryData32;

//fetchsc_signal<int>  nnpc; // out of mem_accsc_signal<int>  npc;sc_signal<int>  ir;//decodesc_signal<int>  mux3_out;sc_signal<int>  A;sc_signal<int>  B;sc_signal<int>  imm;sc_signal<bool> mux0_en;

Page 7: npu-arm-apb bridge

sc_signal<bool> mux1_en;sc_signal<sc_uint<5> > alu_cont;sc_signal<sc_uint<3> > cond_sel;sc_signal<int> dest_out;//execsc_signal<bool> cond_out;sc_signal<int> alu_out;sc_signal<bool> mux3_en;sc_signal<bool> wrd;//mem_accsc_signal<int> lmd;

//wr_back all signals have been already defined//const int delay_cycles = 2;sc_clock clk("Clock", 1, 0.5, 0.0);

Memory MEM ("memory_block");MEM << clk << m_Read_en << m_addressShift << m_address << m_MemoryData32 ;// <<  ir << mux3_out << A << B << imm << mux0_en << mux1_en<<alu_cont << cond_sel << dest_out;decode IDU ("decode_block");IDU << clk << ir << mux3_out << A << B << imm << mux0_en << mux1_en<<alu_cont << cond_sel << dest_out;

/*//initialize nnpcnnpc.write(0);  //***********check it outmux3_out.write(777);//instantiationfetch IFU("fetch_block") ;IFU  <<  nnpc << clk << npc << ir ;

decode IDU ("decode_block");IDU << clk << ir << mux3_out << A << B << imm << mux0_en << mux1_en<<alu_cont << cond_sel << dest_out;

exec IEU("execute_block");IEU << clk << npc << A << mux0_en << B << imm << mux1_en << alu_cont <<cond_sel << cond_out << alu_out << mux3_en << wrd;

mem_acc MU("memory_access_block");MU << clk << dest_out << wrd << alu_out << cond_out << npc << nnpc << lmd ;

wr_back WB("write_back_block");WB <<  lmd << alu_out << mux3_en  << mux3_out;*/

  sc_start(clk, -1); cout << "Time for simulation = " << (time(NULL) - tbuffer) << endl;  return 0; /* this is necessary */}    //end of main

  decode.h

Page 8: npu-arm-apb bridge

//decode header file decode.hSC_MODULE(decode){//input portssc_in_clk clk;//sc_in<int> npc;sc_in<int> ir;sc_in<int> mux3_out;               //for destination register or for LD

//-------------------------/* sc_in<short> i_P; sc_out<short> o_PopP;*/

// sc_uint<4> t_P; //sc_short<>//------------------------

//output portssc_out<int> A;sc_out<int> B;sc_out<int> imm;sc_out<bool> mux0_en;sc_out<bool> mux1_en;sc_out<sc_uint<5> > alu_cont;sc_out<sc_uint<3> > cond_sel;   //branch select to condsc_out<int> dest_out;    //for store// registers 16x32sc_int<32> reg_mem[16];//tempsc_uint<32> ir_temp;sc_uint<32> imm_temp;// inst formatsc_uint<5> opcode;sc_uint<4> dest;sc_uint<4> src_a;sc_uint<4> src_b;sc_uint<16> offset;//constructorSC_CTOR(decode) { reg_mem[0] = 0x1; reg_mem[1] = 0x2; reg_mem[2] = 0x5; reg_mem[3] = 0x4; reg_mem[4] = 0x5; reg_mem[5] = 0x1; reg_mem[6] = 0x7; reg_mem[7] = 0x3; reg_mem[8] = 0xA; reg_mem[9] = 0x7; reg_mem[10] = 0xB; reg_mem[11] = 0x1; reg_mem[12] = 0x1; reg_mem[13] = 0x1; reg_mem[14] = 0x1; reg_mem[15] = 0x1;

SC_CTHREAD(decoder, clk.pos());SC_CTHREAD(sign_extend, clk.pos());SC_CTHREAD(registers, clk.pos());

Page 9: npu-arm-apb bridge

}                                                    //end of constructor//fuctionality of the processvoid  decoder();void  sign_extend();void  registers();

/*void  CodecInitialize();void  CodecPushPixel(); //short p);void CodecPopPixel();//void);void  CodecDoFdct();//void);*/

};     //end of decode.h

  decode.cpp

 // implementation file decode.cpp#include "systemc.h"#include "decode.h"/*--------------------------------------------------------------------------*/static const short COS_TABLE[8][8] = {

    { 32768,  32138,  30273,  27245,  23170,  18204,  12539,   6392 },    { 32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204 },    { 32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245 },    { 32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138 },    { 32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138 },    { 32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245 },    { 32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204 },    { 32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392 }};

static const short ONE_OVER_SQRT_TWO = 23170;/*--------------------------------------------------------------------------*/static short buffer[8][8];static int idx;

void decode :: decoder(){

 int counter=0; while( 1 ) {  counter = counter +1; ir_temp=ir.read(); printf ("ir_temp decoder is %x \n", ir_temp);

Page 10: npu-arm-apb bridge

 opcode = ir_temp.range(31,27); printf ("opcode is %x \n", opcode);

 switch(opcode){  case 0:  {      mux0_en.write(1);     // ld   mux1_en.write(1);   alu_cont.write(0);   cond_sel.write(0);   break; }  case 1: {          mux0_en.write(1);    //st   mux1_en.write(1);   alu_cont.write(1);   cond_sel.write(0);   break;  }  case 2: {          mux0_en.write(1);    //lhi   mux1_en.write(1);   alu_cont.write(2);   cond_sel.write(0);   break;  }  case 3: {         mux0_en.write(1);    //add   cout << " i am in case 3" << endl;   cout << "mux0_en is " << mux0_en << endl;   mux1_en.write(0);   alu_cont.write(3);   cond_sel.write(0);   break;  }  case 4: {         mux0_en.write(1);    //addi   mux1_en.write(1);   alu_cont.write(4);   cond_sel.write(0);   break;  }  case 5: {         mux0_en.write(1);    //sub   mux1_en.write(0);   alu_cont.write(5);   cond_sel.write(0);   break;  }  case 6: {         mux0_en.write(1);    //subi   mux1_en.write(1);   alu_cont.write(6);   cond_sel.write(0);   break;  }  case 7: {         mux0_en.write(1);    //mod   mux1_en.write(0);   alu_cont.write(7);   cond_sel.write(0);   break;  }  case 8: {         mux0_en.write(1);    //mul   mux1_en.write(0);   alu_cont.write(8);   cond_sel.write(0);   break;  }  case 9: {         mux0_en.write(1);    //div   mux1_en.write(0);   alu_cont.write(9);   cond_sel.write(0);   break;  }  case 10: {       mux0_en.write(1);    //and   mux1_en.write(0);   alu_cont.write(10);   cond_sel.write(0);   break;  }  case 11: {       mux0_en.write(1);    //andi   mux1_en.write(1);   alu_cont.write(11);   cond_sel.write(0);   break;  }  case 12: {       mux0_en.write(1);    //or   mux1_en.write(0);   alu_cont.write(12);

Page 11: npu-arm-apb bridge

   cond_sel.write(0);   break;  }  case 13: {       mux0_en.write(1);    //ori   mux1_en.write(1);   alu_cont.write(13);   cond_sel.write(0);   break;  }  case 14: {       mux0_en.write(1);    //xor   mux1_en.write(0);   alu_cont.write(14);   cond_sel.write(0);   break;  }  case 15: {       mux0_en.write(1);    //xori   mux1_en.write(1);   alu_cont.write(15);   cond_sel.write(0);   break;  }  case 16: {       mux0_en.write(1);    //not   mux1_en.write(0);   //don't care   alu_cont.write(16);   cond_sel.write(0);   break;  }  case 17: {       mux0_en.write(1);    //lsl   mux1_en.write(0);   //don't care   alu_cont.write(17);   cond_sel.write(0);   break;  }  case 18: {       mux0_en.write(1);    //lsr   mux1_en.write(0);   //don't care   alu_cont.write(18);   cond_sel.write(0);   break;  }  case 19: {       mux0_en.write(1);    //asr   mux1_en.write(0);   //don't care   alu_cont.write(19);   cond_sel.write(0);   break;  }  case 20: {      mux0_en.write(0);    //jmp   mux1_en.write(1);   alu_cont.write(20);   cond_sel.write(7);   break;  }  case 21: {       mux0_en.write(1);    //jmpr   mux1_en.write(1);   alu_cont.write(21);   cond_sel.write(7);   break;  }  case 22: {       mux0_en.write(0);    //jali   mux1_en.write(1);   alu_cont.write(22);   cond_sel.write(7);   break;  }  case 23: {       mux0_en.write(0);    //beqz   mux1_en.write(1);   alu_cont.write(23);   cond_sel.write(1);   break;  }  case 24: {       mux0_en.write(0);    //bneqz   mux1_en.write(1);   alu_cont.write(24);   cond_sel.write(2);   break;  }  case 25: {       mux0_en.write(0);    //bgtz   mux1_en.write(1);   alu_cont.write(25);   cond_sel.write(3);   break;  }  case 26: {       mux0_en.write(0);    //bgtez   mux1_en.write(1);

Page 12: npu-arm-apb bridge

   alu_cont.write(26);   cond_sel.write(4);   break;  }  case 27: {       mux0_en.write(0);    //bltz   mux1_en.write(1);   alu_cont.write(27);   cond_sel.write(5);   break;  }  case 28: {       mux0_en.write(0);    //bltez   mux1_en.write(1);   alu_cont.write(28);   cond_sel.write(6);   break;  }  case 29: {       mux0_en.write(1);    //trap   mux1_en.write(1);   alu_cont.write(29);   cond_sel.write(0);   break;  }  case 30: {       mux0_en.write(0);    //tret   mux1_en.write(1);   alu_cont.write(30);   cond_sel.write(0);   break;  }  case 31: {       mux0_en.write(1); //don't care   //noop   mux1_en.write(0); //don't care   alu_cont.write(31);   cond_sel.write(0);   break;  }  }  //end of switch stmt  wait();  }

  //  idx = 0;}  //end of decoder

void decode :: registers(){ int counter =0; while ( 1 ) {  counter =counter+1;  ir_temp=ir.read();     opcode = ir_temp.range(31,27);  printf ("opcode in REG %x \n", opcode);  printf("IR is %x \n", ir.read());ir_temp=ir.read();dest = ir_temp.range(26,23);src_a = ir_temp.range(22,19);src_b = ir_temp.range(18,15);cout << " dest is " << dest << endl;cout << " src_a is " << src_a << endl;cout << " src_b is " << src_b << endl;A.write(reg_mem[src_a]);B.write(reg_mem[src_b]);/*if ( (opcode != 0x01) || (opcode != 0x14) || (opcode != 0x15) ||  (opcode != 0x16) || (opcode != 0x17) || (opcode != 0x18) ||  (opcode != 0x19) || (opcode != 0x1A) || (opcode != 0x1B) ||  (opcode != 0x1C) || (opcode != 0x1D) || (opcode != 0x1E) ||  (opcode != 0x1F) ) { reg_mem[dest]=mux3_out.read(); }*/cout << "mux3_out is " << mux3_out << endl;dest_out.write(reg_mem[dest]);  // rd for store

wait(); }}

Page 13: npu-arm-apb bridge

void decode :: sign_extend(){int counter =0;offset=0;imm_temp=0;imm.write(0);while (1) { counter =counter +1;ir_temp=ir.read();printf( "ir_temp is %x \n ", ir_temp);offset = ir_temp.range(15,0);printf( "offset is %x \n ", offset);imm_temp.range(15,0)=offset;printf( "imm_temp is %x \n ", imm_temp);for(int i=31; i>=16; i--)imm_temp[i]=offset[15];printf( "imm_temp1 is %x \n ", imm_temp);imm.write(imm_temp);   //put back from imm_temp to immwait();}}//-----------------------------------------------------------------------------

/*///--------------------------------------------------------------------------static double Y(int a, int b) {

    return COS_TABLE[a][b] / 32768.0;}//-------------------------------------------------------------------------static double C(int h) {

    return h ? 1.0 : ONE_OVER_SQRT_TWO / 32768.0;}//--------------------------------------------------------------------------static int F(int u, int v, short img[8][8]) {

    double s[8], r = 0;    int x;

    for(x=0; x<8; x++) {

        s[x] =            img[x][0] * Y(0, v) +            img[x][1] * Y(1, v) +            img[x][2] * Y(2, v) +            img[x][3] * Y(3, v) +            img[x][4] * Y(4, v) +            img[x][5] * Y(5, v) +            img[x][6] * Y(6, v) +            img[x][7] * Y(7, v);    }

    for(x=0; x<8; x++) {

        r += s[x] * Y(x, u);    }

    return (short)(r * .25 * C(u) * C(v));}

void   decode::CodecInitialize(){    idx = 0;}

void   decode::CodecPushPixel() //short p);{

Page 14: npu-arm-apb bridge

 short t_P=i_P.read();    if( idx == 64 ) {

        idx = 0;    }

    buffer[idx / 8][idx % 8] = t_P;    idx++;}//--------------------------------------------------------------------------void  decode ::CodecPopPixel(){    short p;

    if( idx == 64 ) {

        idx = 0;    }

    p = buffer[idx / 8][idx % 8];    idx++; o_PopP.write(p);}void   decode ::CodecDoFdct(){   int x, y;    short tempBuffer[8][8];

    for(x=0; x<8; x++) {

        for(y=0; y<8; y++) {

            tempBuffer[x][y] = F(x, y, buffer);        }    }    for(x=0; x<8; x++) {

        for(y=0; y<8; y++) {

            buffer[x][y] = tempBuffer[x][y];        }    }    idx = 0;}  */

  

Page 15: npu-arm-apb bridge

   memory.h

SC_MODULE(Memory){ //input ports //sc_in_clk clk;/* sc_in<int> mux3_0; sc_in<int> mux3_1; sc_in<bool> mux3_en;*/

 //input ports sc_in_clk clk; sc_in<bool> i_Read_en; sc_in<int> i_addressShift; sc_in<int> i_address;

 //output ports sc_out<sc_uint<32> > o_MemoryData32; sc_uint<32>          t_MemoryData32; sc_int<32>            t_address;

/* sc_out<int> mux3_out;

 */ SC_CTOR(Memory){SC_METHOD(ReadWriteMemory);//SC_METHOD(mux3);// sensitive << mux3_en ; } //functionality of the process //void mux3(); void ReadWriteMemory();

};      //end of mem_acc.h

  

Page 16: npu-arm-apb bridge

       memory.cpp

 // implementation file wr_back.cpp #include "systemc.h" #include "Memory.h"

/*--------------------------------------------------------------------------*/static const short COS_MemoryTABLE[8*8*8*8] = {//1,1     00001,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,2     00001,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,3     00001,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,4     00001,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170, 

Page 17: npu-arm-apb bridge

-6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,5     00001,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,6     00001,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,7     00001,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//1,8     00001,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,

//2,1     00002,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,2     00002,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,3     00002,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,4

Page 18: npu-arm-apb bridge

     00002,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,5     00002,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,6     00002,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,7     00002,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//2,8     00002,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,1     00003,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,2     00003,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,3     00003,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170, 

Page 19: npu-arm-apb bridge

-6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,4     00003,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,5     00003,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,6     00003,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,7     00003,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//3,8     00003,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,1     00004,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,2     00004,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,3     00004,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -

Page 20: npu-arm-apb bridge

32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,4     00004,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,5     00004,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,6     00004,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,7     00004,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//4,8     00004,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,1     00005,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,2     00005,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,

Page 21: npu-arm-apb bridge

  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,3     00005,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,4     00005,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,5     00005,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,6     00005,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,7     00005,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//5,8     00005,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,1     00006,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,2     00006,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,

Page 22: npu-arm-apb bridge

     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,3     00006,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,4     00006,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,5     00006,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,6     00006,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,7     00006,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//6,8     00006,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,

//7,1     00007,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,

Page 23: npu-arm-apb bridge

  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,2     00007,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,3     00007,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,4     00007,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,5     00007,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,6     00007,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,7     00007,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//7,8     00007,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,

//8,1         8,  00001,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -

Page 24: npu-arm-apb bridge

32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,,2         8,  00002,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,  32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,3         8,  00003,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,4         8,  00004,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,5         8,  00005,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,6         8,  00006,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,7         8,  00007,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,//8,8         8,      8,  30273,  27245,  23170,  18204,  12539,   6392,      32768,  27245,  12539,  -6392, -23170, -32138, -30273, -18204,     32768,  18204, -12539, -32138, -23170,   6392,  30273,  27245,      32768,   6392, -30273, -18204,  23170,  27245, -12539, -32138,     32768,  -6392, -30273,  18204,  23170, -27245, -12539,  32138,      32768, -18204, -12539,  32138, -23170,  -6392,  30273, -27245,

Page 25: npu-arm-apb bridge

     32768, -27245,  12539,   6392, -23170,  32138, -30273,  18204,      32768, -32138,  30273, -27245,  23170, -18204,  12539,  -6392,};

/* void Memory :: mux3(){ cout << " I AM IN MUX3" << endl;  if (mux3_en.read() == 0) {   mux3_out.write(mux3_0.read()); }  else {   mux3_out.write(mux3_1.read()); }}*/void Memory :: ReadWriteMemory(){ cout << " ReadWrite Memory" << endl;  if (i_Read_en.read() == 0)  {   //Write data to Memory

   t_address=i_address.read()+(i_addressShift.read());   t_MemoryData32=COS_MemoryTABLE[t_address];   o_MemoryData32.write(t_MemoryData32);

  }  else  {   //Read data to Memory.

   t_address=i_address.read()+(i_addressShift.read());   t_MemoryData32=COS_MemoryTABLE[t_address];   o_MemoryData32.write(t_MemoryData32);  }}

  

    

Page 26: npu-arm-apb bridge
Page 27: npu-arm-apb bridge