addrmap Quark_SPI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Frame_Format_FRF[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Serial_Clock_Phase_SCPH[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Serial_Clock_Polarity_SCPOL[7:7];
            field {
                sw = rw;
            } Transfer_Mode_TMOD[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Slave_Output_Enable_SLV_OE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Shift_Register_Loop_SRL[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Control_Frame_Size_CFS[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=7'b111;
            } Data_Frame_Size_in_32_bit_mode_DFS_32[22:16];
    } Control0 @ 0x0;
    reg {
        name="Control1";
        regwidth=0x20;
            field {
                sw = rw;
            } Number_of_Data_Frames_NDF[15:0];
    } Control1 @ 0x4;
    reg {
        name="SSIEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } SSI_Enable_SSIENR[0:0];
    } SSIEnable @ 0x8;
    reg {
        name="MicrowireControl";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } MicrowireControl @ 0xc;
    reg {
        name="SlaveEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } No_name_1[3:0];
    } SlaveEnable @ 0x10;
    reg {
        name="BaudRateSelect";
        regwidth=0x20;
            field {
                sw = rw;
            } SSI_Clock_Divider_SCKDV[14:0];
    } BaudRateSelect @ 0x14;
    reg {
        name="TransmitFIFOThresholdLevel";
        regwidth=0x20;
            field {
                sw = rw;
            } Transmit_FIFO_Threshold_TXFTLR[2:0];
    } TransmitFIFOThresholdLevel @ 0x18;
    reg {
        name="ReceiveFIFOThresholdLevel";
        regwidth=0x20;
            field {
                sw = rw;
            } Receive_FIFO_Threshold_RFT[2:0];
            field {
                sw = rw;
            } Reserved[31:3];
    } ReceiveFIFOThresholdLevel @ 0x1c;
    reg {
        name="TransmitFIFOLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Transmit_FIFO_Level_TXTFL[3:0];
    } TransmitFIFOLevel @ 0x20;
    reg {
        name="ReceiveFIFOLevel";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_Level_RXFLR[3:0];
    } ReceiveFIFOLevel @ 0x24;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SSI_Busy_BUSY[0:0];
            field {
                sw = r;
                reset=1'b1;
            } Transmit_FIFO_Not_Full_TFNF[1:1];
            field {
                sw = r;
                reset=1'b1;
            } Transmit_FIFO_Empty_TFE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_Not_Empty_RFNE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_FIFO_Full_RFF[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmission_Error_TXE[5:5];
    } Status @ 0x28;
    reg {
        name="InterruptMask";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                reset=1'b1;
            } Transmit_FIFO_Empty_Interrupt_Mask_TXEIM[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } Transmit_FIFO_Overflow_Interrupt_Mask_TXOIM[1:1];
            field {
                sw = rw;
            } Receive_FIFO_Underflow_Interrupt_Mask_RXUIM[2:2];
            field {
                sw = rw;
            } Receive_FIFO_Overflow_Interrupt_Mask_RXUIM[3:3];
            field {
                sw = rw;
            } Receive_FIFO_Full_Interrupt_Mask_RXFIM[4:4];
    } InterruptMask @ 0x2c;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Transmit_FIFO_Empty_Interrupt_Status_TXEIS[0:0];
            field {
                sw = r;
            } Transmit_FIFO_Overflow_Interrupt_Status_TXOIS[1:1];
            field {
                sw = r;
            } Receive_FIFO_Underflow_Interrupt_Status_RXUIS[2:2];
            field {
                sw = r;
            } Receive_FIFO_Overflow_Interrupt_Status_RXUIS[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_Full_Interrupt_Status_RXFIS[4:4];
    } InterruptStatus @ 0x30;
    reg {
        name="RawInterruptStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Transmit_FIFO_Empty_Raw_Interrupt_Status_TXEIR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_FIFO_Overflow_Raw_Interrupt_Status_TXOIR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_FIFO_Underflow_Raw_Interrupt_Status_RXUIR[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_FIFO_Overflow_Raw_Interrupt_Status_RXUIR[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_Full_Raw_Interrupt_Status_RXFIR[4:4];
    } RawInterruptStatus @ 0x34;
    reg {
        name="TransmitFIFOOverflowInterruptClear";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } TransmitFIFOOverflowInterruptClear @ 0x38;
    reg {
        name="ReceiveFIFOOverflowInterruptClear";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } ReceiveFIFOOverflowInterruptClear @ 0x3c;
    reg {
        name="ReceiveFIFOUnderflowInterruptClear";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } ReceiveFIFOUnderflowInterruptClear @ 0x40;
    reg {
        name="MultiMasterInterruptClear";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } MultiMasterInterruptClear @ 0x44;
    reg {
        name="InterruptClear";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } InterruptClear @ 0x48;
    reg {
        name="DMAControl";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DMAControl @ 0x4c;
    reg {
        name="DMATransmitDataLevel";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DMATransmitDataLevel @ 0x50;
    reg {
        name="DMAReceiveDataLevel";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } DMAReceiveDataLevel @ 0x54;
    reg {
        name="Identification";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Identification @ 0x58;
    reg {
        name="CoreKitVersionID";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CoreKitVersionID @ 0x5c;
    reg {
        name="Data";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } Data @ 0x60;
    reg {
        name="RXSampleDelay";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } RXSampleDelay @ 0xf0;
} Registers_addrmap;


};