addrmap AndesATCGPIO100 {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="IdRev";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RevMinor[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RevMajor[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=24'b100000001100010000;
            } ID[31:8];
    } IdRev @ 0x0;
    reg {
        name="Cfg";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } ChannelNum[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Debounce[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Intr[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Pull[31:31];
    } Cfg @ 0x10;
    reg {
        name="DataIn";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } DataOut[31:0];
    } DataIn @ 0x20;
    reg {
        name="DataOut";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } DataOut[31:0];
    } DataOut @ 0x24;
    reg {
        name="ChannelDir";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ChannelDir[31:0];
    } ChannelDir @ 0x28;
    reg {
        name="DoutClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } DoutClear[31:0];
    } DoutClear @ 0x2c;
    reg {
        name="DataSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } DoutSet[31:0];
    } DataSet @ 0x30;
    reg {
        name="PullEn";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PullEn[31:0];
    } PullEn @ 0x40;
    reg {
        name="PullType";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PullType[31:0];
    } PullType @ 0x44;
    reg {
        name="IntrEn";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } IntrEn[31:0];
    } IntrEn @ 0x50;
    reg {
        name="IntrMode0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } ChchLocalIntrM[2:0];
    } IntrMode0 [4]@ 0x54 += 4;
    reg {
        name="IntrStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } IntrStatus[31:0];
    } IntrStatus @ 0x64;
    reg {
        name="DeBounceEn";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DeBounceEn[31:0];
    } DeBounceEn @ 0x70;
    reg {
        name="DeBounceCtrl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DeBounceCtrl[31:0];
    } DeBounceCtrl @ 0x74;
} Registers_addrmap;


};