# dsPIC30F2021
# DOS: DOS-00629 
# PS:  DS-None
# DS:  DS-None
# Device ID: DOS-00527

format=0.1

# device=dsPIC30F2021
# Variant 0

# Created by MRK on 9/1 to get some preliminary work going with the dspic30f2020

vpp (range=2.000-5.500  dflt=5.000)
vdd (range=2.000-5.500  dfltrange=4.000-5.500  nominal=5.000)
pgming (memtech=ee tries=1)
   wait (pgm=1000 eedata=10000 cfg=10000 userid=10000 erase=600)
   latches(pgm=64 eedata=2 cfg=2)

pgmmem (region=0x0-0x1fff)
    vectors (region=0x04-0x7f altregion=0x84-0xff)
testmem (region=0x800000-0x8005FF appregion=0x800080-0x8005BF)
emulreg (region=0xFD0000-0xFD003C)
cfgmem (region=0xf80000-0xf8000D)
# GI 8/17/04 Removed from programming spec
# userid (region=0x8005C0-0x8005FF)
#
# For the ICD2. This is the top of testmem.
bkbgvectmem (region=0x800000-0x800007)

NumBanks=0
xymem (region=0x800-0x9ff ymem=0x900-0x9ff)

devid (region=0xFF0000-0xFF0003 idmask=0xFFFF0000 id=0x00D10000)

#
# For the ICD2. This is the top of testmem.
bkbgvectmem (region=0x800000-0x800007)

                               # ---------------#
#------------------------------# CORE Registers #------------------------------------------------#
                               # ---------------#

sfr (key=WREG0 addr=0x0 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG0' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG1 addr=0x2 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG1' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG2 addr=0x4 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG2' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG3 addr=0x6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG3' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG4 addr=0x8 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG4' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG5 addr=0xa size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG5' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG6 addr=0xc size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG6' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG7 addr=0xe size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG7' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG8 addr=0x10 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG8' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG9 addr=0x12 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG9' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG10 addr=0x14 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG10' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG11 addr=0x16 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG11' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG12 addr=0x18 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG12' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG13 addr=0x1a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG13' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG14 addr=0x1c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='WREG14' width='16')
    stimulus (scl=r type=int)
sfr (key=WREG15 addr=0x1e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000100000000000' mclr='0000100000000000')
    bit (names='WREG15' width='16')
    stimulus (scl=r type=int)
sfr (key=SPLIM addr=0x20 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SPLIM' width='16')
    stimulus (scl=r type=int)

sfr (key=ACCA addr=0x22 size=5 flags=j)
# The j flag means all these registers together form one larger register 
    stimulus (scl=r type=int)
sfr (key=ACCAL addr=0x22 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ACCAL' width='16')
    stimulus (scl=r type=int)
sfr (key=ACCAH addr=0x24 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ACCAH' width='16')
    stimulus (scl=r type=int)
sfr (key=ACCAU addr=0x26 size=2 access='r r r r r r r r rw rw rw rw rw rw rw rw')
    reset (por='00000000xxxxxxxx' mclr='00000000uuuuuuuu')
    bit (names='SIGNEXT ACCAU' width='8 8')
    stimulus (scl=r type=int)

sfr (key=ACCB addr=0x28 size=5 flags=j)
# The j flag means all these registers together form one larger register
    stimulus (scl=r type=int)
sfr (key=ACCBL addr=0x28 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ACCBL' width='16')
    stimulus (scl=r type=int)
sfr (key=ACCBH addr=0x2a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='ACCBH' width='16')
    stimulus (scl=r type=int)
sfr (key=ACCBU addr=0x2c size=2 access='r r r r r r r r rw rw rw rw rw rw rw rw')
    reset (por='00000000xxxxxxxx' mclr='00000000uuuuuuuu')
    bit (names='SIGNEXT ACCBU' width='8 8')
    stimulus (scl=r type=int)

sfr (key=PC addr=0x2e size=3 flags=j)
# The j flag means all these registers together form one larger register
    stimulus (scl=rb type=pc)
sfr (key=PCL addr=0x2e size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PCL' width='16')
    stimulus (scl=rb)
sfr (key=PCH addr=0x30 size=2 access='u u u u u u u u u r r r r r r r')
# Bit 23 of the PC Register (bit 7 of the PCH) is reserved for Testing.
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - - PCH' width='1 1 1 1 1 1 1 1 1 7')
    stimulus (scl=rb)

sfr (key=TBLPAG addr=0x32 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - TBLPAG' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r type=int)
sfr (key=PSVPAG addr=0x34 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - PSVPAG' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r type=int)
sfr (key=RCOUNT addr=0x36 size=2 access='u u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='--xxxxxxxxxxxxxx' mclr='--uuuuuuuuuuuuuu')
    bit (names='- - RCOUNT' width='1 1 14')
    stimulus (scl=r type=int)
sfr (key=DCOUNT addr=0x38 size=2 access='u u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='--xxxxxxxxxxxxxx' mclr='--uuuuuuuuuuuuuu')
    bit (names='- - DCOUNT' width='1 1 14')
    stimulus (scl=r type=int)

sfr (key=DOSTART addr=0x3a size=3 flags=j)
# The j flag means all these registers together form one larger register
    stimulus (scl=r type=addr)
sfr (key=DOSTARTL addr=0x3a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx0' mclr='uuuuuuuuuuuuuuu0')
    bit (names='DOSTARTL' width='16')
    stimulus (scl=r)
sfr (key=DOSTARTH addr=0x3c size=2 access='u u u u u u u u u rw rw rw rw rw rw rw')
    reset (por='---------xxxxxxx' mclr='---------uuuuuuu')
    bit (names='- - - - - - - - - DOSTARTH' width='1 1 1 1 1 1 1 1 1 7')
    stimulus (scl=r)

sfr (key=DOEND addr=0x3e size=3 flags=j)
# The j flag means all these registers together form one larger register
    stimulus (scl=r type=addr)
sfr (key=DOENDL addr=0x3e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx0' mclr='uuuuuuuuuuuuuuu0')
    bit (names='DOENDL' width='16')
    stimulus (scl=r)
sfr (key=DOENDH addr=0x40 size=2 access='u u u u u u u u u rw rw rw rw rw rw rw')
    reset (por='---------xxxxxxx' mclr='---------uuuuuuu')
    bit (names='- - - - - - - - - DOENDH' width='1 1 1 1 1 1 1 1 1 7')
    stimulus (scl=r)

sfr (key=SR addr=0x42 size=2 access='r r rc rc r rc r rw rw rw rw r rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='OA OB SA SB OAB SAB DA DC IPL RA N OV Z C' width='1 1 1 1 1 1 1 1 3 1 1 1 1 1')
    stimulus (scl=r)
sfr (key=CORCON addr=0x44 size=2 access='u u u rw w r r r rw rw rw rw rc rw rw rw')
    reset (por='---0000000100000' mclr='---0000000100000')
    bit (names='- - - US EDT DL SATA SATB SATDW ACCSAT IPL3 PSV RND IF' width='1 1 1 1 1 3 1 1 1 1 1 1 1 1')
    stimulus (scl=r)
sfr (key=MODCON addr=0x46 size=2 access='rw rw u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='00--000000000000' mclr='00--000000000000')
    bit (names='XMODEN YMODEN - - BWM YWM XWM' width='1 1 1 1 4 4 4')
    stimulus (scl=r)
sfr (key=XMODSRT addr=0x48 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx0' mclr='uuuuuuuuuuuuuuu0')
    bit (names='XS' width='16')
    stimulus (scl=r type=int)
sfr (key=XMODEND addr=0x4a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx1' mclr='uuuuuuuuuuuuuuu1')
    bit (names='XE' width='16')
    stimulus (scl=r type=int)
sfr (key=YMODSRT addr=0x4c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx0' mclr='uuuuuuuuuuuuuuu0')
    bit (names='YS' width='16')
    stimulus (scl=r type=int)
sfr (key=YMODEND addr=0x4e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw r')
    reset (por='xxxxxxxxxxxxxxx1' mclr='uuuuuuuuuuuuuuu1')
    bit (names='YE' width='16')
    stimulus (scl=r type=int)
sfr (key=XBREV addr=0x50 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0xxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='BREN XB' width='1 15')
    stimulus (scl=r)
sfr (key=DISICNT addr=0x52 size=2 access='u u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='--00000000000000' mclr='--00000000000000')
    bit (names='- - DISICNT' width='1 1 14')
    stimulus (scl=r type=int)
UnusedRegs (0x54-0x7f)


                               # -------------------------------#
#------------------------------# Interrupt Controller Registers #------------------------------------------------------#
                               # -------------------------------#

sfr (key=INTCON1 addr=0x80 size=2 access='rw u u u u rw rw rw u u u rw rw rw rw u')
    reset (por='0----000---0000-' mclr='0----000---0000-')
    bit (names='NSTDIS - - - - OVATE OVBTE COVTE - - - MATHERR ADDRERR STKERR OSCFAIL -')
    stimulus (scl=rwb)
sfr (key=INTCON2 addr=0x82 size=2 access='rw u u u u u u u u u u u u rw rw rw')
    reset (por='0------------000' mclr='0------------000')
    bit (names='ALTIVT - - - - - - - - - - - - INT2EP INT1EP INT0EP')
    stimulus (scl=rwb)
sfr (key=IFS0 addr=0x84 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CNIF BCLIF I2CIF NVMIF ADIF U1TXIF U1RXIF SPI1IF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF')
    stimulus (scl=rwb)
sfr (key=IFS1 addr=0x86 size=2 access='u u u u rw u u u rw rw rw u u rw rw rw')
    reset (por='----0---000--000' mclr='----0---000--000')
    bit (names='- - - - C1IF - - - INT2IF T5IF T4IF - - IC8IF IC7IF INT1IF')
    stimulus (scl=rwb)
sfr (key=IFS2 addr=0x88 size=2 access='u u u u rw u u rw rw u u u u u u u')
    reset (por='----0--00-------' mclr='----0--00-------')
    bit (names='- - - - FLTAIF - - QEIIF PWMIF - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x8a-0x8b)
sfr (key=IEC0 addr=0x8c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CNIE BCLIE I2CIE NVMIE ADIE U1TXIE U1RXIE SPI1IE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE')
    stimulus (scl=rwb)
sfr (key=IEC1 addr=0x8e size=2 access='u u u u rw u u u rw rw rw u u rw rw rw')
    reset (por='----0---000--000' mclr='----0---000--000')
    bit (names='- - - - C1IE - - - INT2IE T5IE T4IE - - IC8IE IC7IE INT1IE')
    stimulus (scl=rwb)
sfr (key=IEC2 addr=0x90 size=2 access='u u u u rw u u rw rw u u u u u u u')
    reset (por='----0--00-------' mclr='----0--00-------')
    bit (names='- - - - FLTAIE - - QEIIE PWMIE - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x92-0x93)
sfr (key=IPC0 addr=0x94 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- T1IP - OC1IP - IC1IP - INT0IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC1 addr=0x96 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- T3IP - T2IP - OC2IP - IC2IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC2 addr=0x98 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- ADIP - U1TXIP - U1RXIP - SPI1IP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
##BOMB##    
sfr (key=IPC3 addr=0x9a size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-100-100-100-100' mclr='-uuu-uuu-uuu-uuu')
    bit (names='- CNIP - BCLIP - I2CIP - NVMIP' width='1 3 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC4 addr=0x9c size=2 access='u u u u u rw rw rw u rw rw rw u rw rw rw')
    reset (por='-----100-100-100' mclr='-----uuu-uuu-uuu')
    bit (names='- - - - - IC8IP - IC7IP - INT1IP' width='1 1 1 1 1 3 1 3 1 3')
    stimulus (scl=rwb)
sfr (key=IPC5 addr=0x9e size=2 access='u rw rw rw u rw rw rw u rw rw rw u u u u')
    reset (por='-100-100-100----' mclr='-uuu-uuu-uuu----')
    bit (names='- INT2IP - T5IP - T4IP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC6 addr=0xa0 size=2 access='u rw rw rw u u u u u u u u u u u u')
    reset (por='-100------------' mclr='-uuu------------')
    bit (names='- C1IP - - - - - - - - - - - -' width='1 3 1 1 1 1 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
UnusedRegs (0xa2-0xa3)
UnusedRegs (0xa4-0xa5)
sfr (key=IPC9 addr=0xa6 size=2 access='u rw rw rw u rw rw rw u rw rw rw u rw rw rw')
    reset (por='0100010001000100' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- PWMIP - C2IP - INT4IP - - - -' width='1 3 1 3 1 3 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=IPC10 addr=0xa8 size=2 access='u rw rw rw u u u u u u u u u rw rw rw')
    reset (por='-100---------100' mclr='-uuu---------uuu')
    bit (names='- FLTAIP - - - - - - - - - QEIIP' width='1 3 1 1 1 1 1 1 1 1 1 3')
    stimulus (scl=rwb)
 sfr (key=IPC11 addr=0xaa size=2 access='u u u u u u u u u u u u u rw rw rw')
    reset (por='-------------100' mclr='-------------uuu')
    bit (names='- - - - - - - - - - - - - FLTBIP' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3')
    stimulus (scl=rwb)

UnusedRegs (0xac-0xaf)  # currently no IPC12 or IPC13

sfr (key=INTREG addr=0xb0 size=2 access='r rw u u r r r r u u r r r r r r')
    reset (por='00--0000--000000' mclr='00--0000--000000')
    bit (names='IRQtoCPU TMODE - - ILR - - VECNUM' width='1 1 1 1 4 1 1 6')
    stimulus (scl=rwb)
UnusedRegs (0xb2-0xbf)


                               # --------------#
#------------------------------# ICN Registers #-------------------------------------------------------------------------------------------#
                               # --------------#

sfr (key=CNEN1 addr=0xc0 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - CN7IE CN6IE CN5IE CN4IE CN3IE CN2IE CN1IE CN0IE')
    stimulus (scl=rwb)
UnusedRegs (0xc2-0xc3)
sfr (key=CNPU1 addr=0xc4 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - CN7PUE CN6PUE CN5PUE CN4PUE CN3PUE CN2PUE CN1PUE CN0PUE')
    stimulus (scl=rwb)
UnusedRegs (0xc6-0xc7)
UnusedRegs (0xc8-0xff)

                               # ----------------#
#------------------------------# TIMER Registers #-------------------------------------------------#
                               # ----------------#

sfr (key=TMR1 addr=0x100 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR1' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR1 addr=0x102 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR1' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T1CON addr=0x104 size=2 access='rw u rw u u u u u u rw rw rw u rw rw u')
    reset (por='0-0------000-00-' mclr='0-0------uuu-uu-')
    bit (names='TON - TSIDL - - - - - - TGATE TCKPS - TSYNC TCS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=TMR2 addr=0x106 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR2' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR3HLD addr=0x108 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR3HLD' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR3 addr=0x10a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR3' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR2 addr=0x10c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR2' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR3 addr=0x10e size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR3' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T2CON addr=0x110 size=2 access='rw u rw u u u u u u rw rw rw rw u rw u')
    reset (por='0-0------0000-0-' mclr='0-0------uuuu-u-')
    bit (names='TON - TSIDL - - - - - - TGATE TCKPS T32 - TCS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=T3CON addr=0x112 size=2 access='rw u rw u u u u u u rw rw rw u u rw u')
    reset (por='0-0------000--0-' mclr='0-0------uuu--u-')
    bit (names='TON - TSIDL - - - - - - TGATE TCKPS - - TCS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=TMR4 addr=0x114 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR4' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR5HLD addr=0x116 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR5HLD' width='16')
    stimulus (scl=rwb type=int)
sfr (key=TMR5 addr=0x118 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TMR5' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR4 addr=0x11a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR4' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PR5 addr=0x11c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='PR5' width='16')
    stimulus (scl=rwb type=int)
sfr (key=T4CON addr=0x11e size=2 access='rw u rw u u u u u u rw rw rw rw u rw u')
    reset (por='0000000000000000' mclr='00000000uuuuuuuu')
    bit (names='TON - TSIDL - - - - - - TGATE TCKPS T45 - TCS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=T5CON addr=0x120 size=2 access='rw u rw u u u u u u rw rw rw u u rw u')
    reset (por='0000000000000000' mclr='00000000uuuuuuuu')
    bit (names='TON - TSIDL - - - - - - TGATE TCKPS - - TCS -' width='1 1 1 1 1 1 1 1 1 1 2 1 1 1 1')
    stimulus (scl=rwb)

                               # --------------#
#------------------------------# QEI Registers #----------------------------------------------------------------------------#
                               # --------------#

sfr (key=QEICON addr=0x122 size=2 access='rw rw rw r rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='CNTERR - QEISIDL INDX UPDN QEIM2 QEIM1 QEIM0 SWPAB PCDOUT TQGATE TQCKPS1 TQCKPS0 POSRES TQCS UPDN_CNT')
    stimulus (scl=rwb)
sfr (key=DFLTCON addr=0x124 size=2 access='u u u u u rw rw rw rw rw rw rw u u u u')
    reset (por='-----0000000----' mclr='-----uuuuuuu----')
    bit (names='- - - - - IMV1 IMV0 CEID QEOUT QECK2 QECK1 QECK0 - - - -')
    stimulus (scl=rwb)
sfr (key=POSCNT addr=0x126 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='POSCNT' width='16')
    stimulus (scl=rwb type=int)
sfr (key=MAXCNT addr=0x128 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='uuuuuuuuuuuuuuuu')
    bit (names='MAXCNT' width='16')
    stimulus (scl=rwb type=int)
UnusedRegs (0x12a-0x13f)


                               # ------------------------#
#------------------------------# Input Capture Registers #----------------------------------------------#
                               # ------------------------#

sfr (key=IC1BUF addr=0x140 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC1BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC1CON addr=0x142 size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC2BUF addr=0x144 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC2BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC2CON addr=0x146 size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
UnusedRegs (0x148-0x157)
sfr (key=IC7BUF addr=0x158 size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC7BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC7CON addr=0x15a size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
sfr (key=IC8BUF addr=0x15c size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='IC8BUF' width='16')
    stimulus (scl=rwb type=int)
sfr (key=IC8CON addr=0x15e size=2 access='u u rw u u u u u rw rw rw r r rw rw rw')
    reset (por='--0-----00000000' mclr='--0-----00000000')
    bit (names='- - ICSIDL - - - - - ICTMR ICI ICOV ICBNE ICM' width='1 1 1 1 1 1 1 1 1 2 1 1 3' scltype='b b b b b b b b b i b b i')
    stimulus (scl=rwb)
UnusedRegs (0x160-0x17f)


                               # -------------------------#
#------------------------------# Output Compare Registers #---------------------------------------------#
                               # -------------------------#

sfr (key=OC1RS addr=0x180 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='OC1RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC1R addr=0x182 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='OC1R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC1CON addr=0x184 size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT OCTSEL OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
sfr (key=OC2RS addr=0x186 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='OC2RS' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC2R addr=0x188 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='OC2R' width='16')
    stimulus (scl=rwb type=int)
sfr (key=OC2CON addr=0x18a size=2 access='u u rw u u u u u u u u r rw rw rw rw')
    reset (por='--0--------00000' mclr='--0--------00000')
    bit (names='- - OCSIDL - - - - - - - - OCFLT OCTSEL OCM' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3' scltype='b b b b b b b b b b b b b i')
    stimulus (scl=rwb)
UnusedRegs (0x18c-0x1af)
UnusedRegs (0x1b0-0x1bf)

                               # --------------#
#------------------------------# PWM Registers #--------------------------------------------------------------------------------------#
                               # --------------#

sfr (key=PTCON addr=0x1c0 size=2 access='rw u rw u u u u u rw rw rw rw rw rw rw rw')
    reset (por='0-0-----00000000' mclr='0-0-----00000000')
    bit (names='PTEN - PTSIDL - - - - - PTOPS PTCKPS PTMOD' width='1 1 1 1 1 1 1 1 4 2 2')
    stimulus (scl=rwb)
sfr (key=PTMR addr=0x1c2 size=2 access='r rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PTDIR PTMR' width='1 15' scltype='b i')
    stimulus (scl=rwb)
sfr (key=PTPER addr=0x1c4 size=2 access='u rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-000000000000000' mclr='-111111111111111')
    bit (names='- PTPER' width='1 15' scltype='b i')
    stimulus (scl=rwb)
sfr (key=SEVTCMP addr=0x1c6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SEVTDIR SEVTCMP' width='1 15' scltype='b i')
    stimulus (scl=rwb)
sfr (key=PWMCON1 addr=0x1c8 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----1111qqqqqqqq' mclr='----111100000000')
    bit (names='- - - - PTMOD4 PTMOD3 PTMOD2 PTMOD1 PEN4H PEN3H PEN2H PEN1H PEN4L PEN3L PEN2L PEN1L')
    stimulus (scl=rwb)
sfr (key=PWMCON2 addr=0x1ca size=2 access='u u u u rw rw rw rw u u u u u u rw rw')
    reset (por='----0000------00' mclr='----0000------00')
    bit (names='- - - - SEVOPS - - - - - - OSYNC UDIS' width='1 1 1 1 4 1 1 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=DTCON1 addr=0x1cc size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='DTBPS DTBVAL DTAPS DTAVAL' width='2 6 2 6')
    stimulus (scl=rwb)
sfr (key=DTCON2 addr=0x1ce size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - DTS4A DTS4I DTS3A DTS3I DTS2A DTS2I DTS1A DTS1I')
    stimulus (scl=rwb)

sfr (key=FLTACON addr=0x1d0 size=2 access='rw rw rw rw rw rw rw rw rw u u u rw rw rw rw')
    reset (por='000000000---0000' mclr='000000000---0000')
    bit (names='FAOV4H FAOV4L FAOV3H FAOV3L FAOV2H FAOV2L FAOV1H FAOV1L FLTAM - - - FAEN4 FAEN3 FAEN2 FAEN1')
    stimulus (scl=rwb)

sfr (key=FLTBCON addr=0x1d2 size=2 access='rw rw rw rw rw rw rw rw rw u u u rw rw rw rw')
    reset (por='000000000---0000' mclr='000000000---0000')
    bit (names='FBOV4H FBOV4L FBOV3H FBOV3L FBOV2H FBOV2L FBOV1H FBOV1L FLTBM - - - FBEN4 FBEN3 FBEN2 FBEN1')
    stimulus (scl=rwb)

sfr (key=OVDCON addr=0x1d4 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111100000000' mclr='1111111100000000')
    bit (names='POVD4H POVD4L POVD3H POVD3L POVD2H POVD2L POVD1H POVD1L POUT4H POUT4L POUT3H POUT3L POUT2H POUT2L POUT1H POUT1L')
    stimulus (scl=rwb)
sfr (key=PDC1 addr=0x1d6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PDC1' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PDC2 addr=0x1d8 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PDC2' width='16')
    stimulus (scl=rwb type=int)
sfr (key=PDC3 addr=0x1da size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PDC3' width='16')
    stimulus (scl=rwb type=int)
    
sfr (key=PDC4 addr=0x1dc size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PDC4' width='16')
    stimulus (scl=rwb type=int)


UnusedRegs (0x1de-0x1ff)

                               # --------------#
#------------------------------# I2C Registers #-------------------------------------------------------------#
                               # --------------#

sfr (key=I2CRCV addr=0x200 size=2 access='u u u u u u u u r r r r r r r r')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - I2CRCV' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=I2CTRN addr=0x202 size=2 access='u u u u u u u u w w w w w w w w')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - I2CTRN' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=I2CBRG addr=0x204 size=2 access='u u u u u u u rw rw rw rw rw rw rw rw rw')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - I2CBRG' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb)
sfr (key=I2CCON addr=0x206 size=2 access='rw u rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0-01000000000000' mclr='0-00000000000000')
    bit (names='I2CEN - I2CSIDL SCLREL IPMIEN A10M DISSLW SMEN GCEN STREN ACKDT ACKEN RCEN PEN RSEN SEN')
    stimulus (scl=rwb)
sfr (key=I2CSTAT addr=0x208 size=2 access='r r u u u rc r r rc rc r rc rc r r r')
    reset (por='00---00000000000' mclr='00---00000000000')
    bit (names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2COV D/nA P S R/nW RBF TBF')
    bit (tag=scl names='ACKSTAT TRSTAT - - - BCL GCSTAT ADD10 IWCOL I2COV D_nA P S R_nW RBF TBF')
    stimulus (scl=rwb)
sfr (key=I2CADD addr=0x20a size=2 access='u u u u u u rw rw rw rw rw rw rw rw rw rw')
    reset (por='------0000000000' mclr='------0000000000')
    bit (names='- - - - - - I2CADD' width='1 1 1 1 1 1 10')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# UART1 Registers #----------------------------------------------------------------#
                               # ----------------#

sfr (key=U1MODE addr=0x20c size=2 access='rw u rw u u rw u u rw rw rw u u rw rw rw')
    reset (por='0-0--0--000--000' mclr='0-0--0--000--000')
    bit (names='UARTEN - USIDL - - ALTIO - - WAKE LPBACK ABAUD - - PDSEL STSEL' width='1 1 1 1 1 1 1 1 1 1 1 1 1 2 1')
    stimulus (scl=rwb)
sfr (key=U1STA addr=0x20e size=2 access='rw u u u rw rw r r rw rw rw r r r rc r')
    reset (por='0---000100010000' mclr='0---000100010000')
    bit (names='UTXISEL - - - UTXBRK UTXEN UTXBF TRMT URXISEL ADDEN RIDLE PERR FERR OERR URXDA' width='1 1 1 1 1 1 1 1 2 1 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=U1TXREG addr=0x210 size=2 access='u u u u u u u rw rw rw rw rw rw rw rw rw')
    reset (por='-------xxxxxxxxx' mclr='-------000000000')
    bit (names='- - - - - - - TX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rwb regfiles=w)
sfr (key=U1RXREG addr=0x212 size=2 access='u u u u u u u r r r r r r r r r')
    reset (por='-------000000000' mclr='-------000000000')
    bit (names='- - - - - - - RX' width='1 1 1 1 1 1 1 9')
    stimulus (scl=rb regfiles=rp)
sfr (key=U1BRG addr=0x214 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='BRG' width='16')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# UART2 Registers #-------------------------------------------------#
                               # ----------------#

UnusedRegs (0x216-0x21f)

                               # ---------------#
#------------------------------# SPI1 Registers #------------------------------------------------------------#
                               # ---------------#

sfr (key=SPI1STAT addr=0x220 size=2 access='rw u rw u u u u u u rc u u u u r r')
    reset (por='0-0------0----00' mclr='0-0------0----00')
    bit (names='SPIEN - SPISIDL - - - - - - SPIROV - - - - SPITBF SPIRBF')
    stimulus (scl=rwb)
sfr (key=SPI1CON addr=0x222 size=2 access='u rw rw u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-00-000000000000' mclr='-00-000000000000')
    bit (names='- FRMEN SPIFSD - DISSDO MODE16 SMP CKE SSEN CKP MSTEN SPRE2 SPRE1 SPRE0 PPRE1 PPRE0')
    stimulus (scl=rwb)
sfr (key=SPI1BUF addr=0x224 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='SPI1BUF' width='16')
    stimulus (scl=rwb type=int regfiles=rw pcfiles=rw)

                               # ---------------#
#------------------------------# SPI2 Registers #--------------------------------------------------#
                               # ---------------#

UnusedRegs (0x226-0x22b)
UnusedRegs (0x22c-0x23f)

                               # --------------#
#------------------------------# DCI Registers #---------------------------------------------------#
                               # --------------#

UnusedRegs (0x240-0x25f)
UnusedRegs (0x260-0x27f)


                               # ---------------#
#------------------------------# HADC Registers #---------------------------------------------------------------------------#
                               # ---------------#

sfr (key=ADCBUF0 addr=0x280 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF0' width='1 1 1 1 1 1 10')
    stimulus (scl=rb regfiles=r)
sfr (key=ADCBUF1 addr=0x282 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF1' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF2 addr=0x284 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF2' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF3 addr=0x286 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF3' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF4 addr=0x288 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF4' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF5 addr=0x28a size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF5' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF6 addr=0x28c size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF6' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF7 addr=0x28e size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF7' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF8 addr=0x290 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF8' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUF9 addr=0x292 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUF9' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFA addr=0x294 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFA' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFB addr=0x296 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFB' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFC addr=0x298 size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFC' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFD addr=0x29a size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFD' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFE addr=0x29c size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFE' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCBUFF addr=0x29e size=2 access='u u u u u u r r r r r r r r r r')
    reset (por='------xxxxxxxxxx' mclr='------uuuuuuuuuu')
    bit (names='- - - - - - ADCBUFF' width='1 1 1 1 1 1 10')
    stimulus (scl=rb)
sfr (key=ADCON1 addr=0x2a0 size=2 access='rw u rw u u u rw rw rw rw rw u rw rw rw rc')
    reset (por='0-0---00000-0000' mclr='0-0---00000-0000')
    bit (names='ADON - ADSIDL - - - FORM SSRC - SIMSAM ASAM SAMP DONE' width='1 1 1 1 1 1 2 3 1 1 1 1 1')
    stimulus (scl=rwb)
sfr (key=ADCON2 addr=0x2a2 size=2 access='rw rw rw rw u rw rw rw r u rw rw rw rw rw rw')
    reset (por='0000-0000-000000' mclr='0000-0000-000000')
    bit (names='VCFG OFFCAL - CSCNA CHPS BUFS - SMPI BUFM ALTS' width='3 1 1 1 2 1 1 4 1 1')
    stimulus (scl=rwb)
sfr (key=ADCON3 addr=0x2a4 size=2 access='u u u rw rw rw rw rw rw u rw rw rw rw rw rw')
    reset (por='---000000-000000' mclr='---000000-000000')
    bit (names='- - - SAMC ADRC - ADCS' width='1 1 1 5 1 1 6')
    stimulus (scl=rwb)
sfr (key=ADCHS addr=0x2a6 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CHXNB CHXSB CH0NB CH0SB CHXNA CHXSA CH0NA CH0SA' width='2 1 1 4 2 1 1 4')
    stimulus (scl=rwb)
sfr (key=ADPCFG addr=0x2a8 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='PCFG' width='16')
    stimulus (scl=rwb)
sfr (key=ADCSSL addr=0x2aa size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='CSSL' width='16')
    stimulus (scl=rwb)
UnusedRegs (0x2ac-0x2bf)

                               # ----------------#
#------------------------------# PORTA Registers #-------------------------------------------------#
                               # ----------------#
                               
sfr (key=TRISA addr=0x2c0 size=2 access='u u u u rw rw rw rw u u u u u u u u')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='- - - - TRISA11 TRISA10 TRISA9 TRISA8 - - - - - - - -')
    bit (tag=scl names='TRISA' width='16')
    stimulus (scl=rwb)
sfr (key=PORTA addr=0x2c2 size=2 access='u u u u rw rw rw rw u u u u u u u u')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - RA11 RA10 RA9 RA8 - - - - - - - -')
    bit (tag=scl names='RA' width='16')
    stimulus (scl=rwb)
sfr (key=LATA addr=0x2c4 size=2 access='u u u u rw rw rw rw u u u u u u u u')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - LATA11 LATA10 LATA9 LATA8 - - - - - - - -')
    bit (tag=scl names='LATA' width='16')
    stimulus (scl=rwb)


#UnusedRegs (0x2c0-0x2c5)

                               # ----------------#
#------------------------------# PORTB Registers #-----------------------------------------------------------------------------------------#
                               # ----------------#

sfr (key=TRISB addr=0x2c6 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='- - - - TRISB11 TRISB10 TRISB9 TRISB8 TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB0')
    bit (tag=scl names='TRISB' width='16')
    stimulus (scl=rwb)
sfr (key=PORTB addr=0x2c8 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - RB11 RB10 RB9 RB8 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0')
    bit (tag=scl names='RB' width='16')
    stimulus (scl=rwb)
sfr (key=LATB addr=0x2ca size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - LATB11 LATB10 LATB9 LATB8 LATB7 LATB6 LATB5 LATB4 LATB3 LATB2 LATB1 LATB0')
    bit (tag=scl names='LATB' width='16')
    stimulus (scl=rwb)


                               # ----------------#
#------------------------------# PORTC Registers #---------------------------------------#
                               # ----------------#

sfr (key=TRISC addr=0x2cc size=2 access='rw rw rw u u u u u u u u u u u u u')
    reset (por='1110000000011110' mclr='1110000000011111')
    bit (names='TRISC15 TRISC14 TRISC13 - - - - - - - - - - - - -')
    bit (tag=scl names='TRISC' width='16')
    stimulus (scl=rwb)
sfr (key=PORTC addr=0x2ce size=2 access='rw rw rw u u u u u u u u u u u u u')
    reset (por='xxx00000000xxxx0' mclr='uuuuuuuuuuuuuuuu')
    bit (names='RC15 RC14 RC13 - - - - - - - - - - - - -')
    bit (tag=scl names='RC' width='16')
    stimulus (scl=rwb)
sfr (key=LATC addr=0x2d0 size=2 access='rw rw rw u u u u u u u u u u u u u')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='LATC15 LATC14 LATC13 - - - - - - - - - - - - -')
    bit (tag=scl names='LATC' width='16')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# PORTD Registers #-----------------------------------------------------------------------------------------#
                               # ----------------#

sfr (key=TRISD addr=0x2d2 size=2 access='u u u u u u u u u u u u u u u rw')
    reset (por='1111111111111111' mclr='1111111111111111')
    bit (names='- - - - - - - - - - - - - - - TRISD0')
    bit (tag=scl names='TRISD' width='16')
    stimulus (scl=rwb)
sfr (key=PORTD addr=0x2d4 size=2 access='u u u u u u u u u u u u u u u rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - - - - - - - - - RD0')
    bit (tag=scl names='RD' width='16')
    stimulus (scl=rwb)
sfr (key=LATD addr=0x2d6 size=2 access='u u u u u u u u u u u u u u u rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - - - - - - - - - LATD0')
    bit (tag=scl names='LATD' width='16')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# PORTE Registers #------------------------------------------------------#
                               # ----------------#

sfr (key=TRISE addr=0x2d8 size=2 access='u u u u u u u rw u u rw rw rw rw rw rw')
    reset (por='0000001111111111' mclr='0000001111111111')
    bit (names='- - - - - - - TRISE8 - - TRISE5 TRISE4 TRISE3 TRISE2 TRISE1 TRISE0')
    bit (tag=scl names='TRISE' width='16')
    stimulus (scl=rwb)
sfr (key=PORTE addr=0x2da size=2 access='u u u u u u u rw u u rw rw rw rw rw rw')
    reset (por='000000xxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - RE8 - - RE5 RE4 RE3 RE2 RE1 RE0')
    bit (tag=scl names='RE' width='16')
    stimulus (scl=rwb)
sfr (key=LATE addr=0x2dc size=2 access='u u u u u u u rw u u rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - LATE8 - - LATE5 LATE4 LATE3 LATE2 LATE1 LATE0')
    bit (tag=scl names='LATE' width='16')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# PORTF Registers #-------------------------------------------------#
                               # ----------------#

sfr (key=TRISF addr=0x2de size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='0011000111111111' mclr='0011000111111111')
    bit (names='TRISF15 - - - - - - TRISF8 TRISF7 TRISF6 - - - - - -')
    bit (tag=scl names='TRISF' width='16')
    stimulus (scl=rwb)
sfr (key=PORTF addr=0x2e0 size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='00xx0001xxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='RF15 - - - - - - RF8 RF7 RF6 - - - - - -')
    bit (tag=scl names='RF' width='16')
    stimulus (scl=rwb)
sfr (key=LATF addr=0x2e2 size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='LATF15 - - - - - - LATF8 LATF7 LATF6 - - - - - -')
    bit (tag=scl names='LATF' width='16')
    stimulus (scl=rwb)

                               # ----------------#
#------------------------------# PORTG Registers #-------------------------------------------------#
                               # ----------------#

sfr (key=TRISF addr=0x2e4 size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='0011000111111111' mclr='0011000111111111')
    bit (names='- - - - - - - - - - - - TRISG3 TRISG2 - -')
    bit (tag=scl names='TRISG' width='16')
    stimulus (scl=rwb)
sfr (key=PORTF addr=0x2e6 size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='00xx0001xxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - - - - - - RG3 RG2 - -')
    bit (tag=scl names='RG' width='16')
    stimulus (scl=rwb)
sfr (key=LATF addr=0x2e8 size=2 access='u u u u u u u u u u u u rw rw u u')
    reset (por='0000000000000000' mclr='uuuuuuuuuuuuuuuu')
    bit (names='- - - - - - - - - - - - LATG3 LATG2 - -')
    bit (tag=scl names='LATG' width='16')
    stimulus (scl=rwb)

#UnusedRegs (0x2e4-0x2e9)
UnusedRegs (0x2ea-0x2ff)

                               # ---------------#
#------------------------------# CAN1 Registers #--------------------------------------------------#
                               # ---------------#

sfr (key=C1RXF0SID addr=0x300 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF0EIDH addr=0x302 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF0EIDL addr=0x304 size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x306-0x307)

sfr (key=C1RXF1SID addr=0x308 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF1EIDH addr=0x30a size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF1EIDL addr=0x30c size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x30e-0x30f)

sfr (key=C1RXF2SID addr=0x310 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF2EIDH addr=0x312 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF2EIDL addr=0x314 size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x316-0x317)

sfr (key=C1RXF3SID addr=0x318 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF3EIDH addr=0x31a size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF3EIDL addr=0x31c size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x31e-0x31f)

sfr (key=C1RXF4SID addr=0x320 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF4EIDH addr=0x322 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF4EIDL addr=0x324 size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x326-0x327)

sfr (key=C1RXF5SID addr=0x328 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - EXIDE')
    stimulus (scl=rwb)
sfr (key=C1RXF5EIDH addr=0x32a size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXF5EIDL addr=0x32c size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x32e-0x32f)

sfr (key=C1RXM0SID addr=0x330 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - MIDE')
    stimulus (scl=rwb)
sfr (key=C1RXM0EIDH addr=0x332 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXM0EIDL addr=0x334 size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x336-0x337)

sfr (key=C1RXM1SID addr=0x338 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw u rw')
    reset (por='---xxxxxxxxxxx-x' mclr='---uuuuuuuuuuu-u')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 - MIDE')
    stimulus (scl=rwb)
sfr (key=C1RXM1EIDH addr=0x33a size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RXM1EIDL addr=0x33c size=2 access='rw rw rw rw rw rw u u u u u u u u u u')
    reset (por='xxxxxx----------' mclr='uuuuuu----------')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 - - - - - - - - - -')
    stimulus (scl=rwb)
UnusedRegs (0x33e-0x33f)

sfr (key=C1TX2SID addr=0x340 size=2 access='rw rw rw rw rw u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxxxuuuxxxxxxxx' mclr='uuuuu---uuuuuuuu')
    bit (names='SID10 SID9 SID8 SID7 SID6 - - - SID5 SID4 SID3 SID2 SID1 SID0 SRR TXIDE')
    stimulus (scl=rwb)
sfr (key=C1TX2EID addr=0x342 size=2 access='rw rw rw rw u u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxx----xxxxxxxx' mclr='uuuu----uuuuuuuu')
    bit (names='EID17 EID16 EID15 EID14 - - - - EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1TX2DLC addr=0x344 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw u u u')
    reset (por='xxxxxxxxxxxxx---' mclr='uuuuuuuuuuuuu---')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 TXRTR TXRB1 TXRB0 DLC - - -' width='1 1 1 1 1 1 1 1 1 4 1 1 1')
    stimulus (scl=rwb)
sfr (key=C1TX2B1 addr=0x346 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB2D1 TXB2D0' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX2B2 addr=0x348 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB2D3 TXB2D2' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX2B3 addr=0x34a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB2D5 TXB2D4' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX2B4 addr=0x34c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB2D7 TXB2D6' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX2CON addr=0x34e size=2 access='u u u u u u u u u rw rw rw rw u rw rw')
    reset (por='---------0000-00' mclr='---------0000-00')
    bit (names='- - - - - - - - - TXABT TXLARB TXERR TXREQ - TXPRI' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 2')    
    stimulus (scl=rwb)

sfr (key=C1TX1SID addr=0x350 size=2 access='rw rw rw rw rw u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxxxuuuxxxxxxxx' mclr='uuuuu---uuuuuuuu')
    bit (names='SID10 SID9 SID8 SID7 SID6 - - - SID5 SID4 SID3 SID2 SID1 SID0 SRR TXIDE')
    stimulus (scl=rwb)
sfr (key=C1TX1EID addr=0x352 size=2 access='rw rw rw rw u u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxx----xxxxxxxx' mclr='uuuu----uuuuuuuu')
    bit (names='EID17 EID16 EID15 EID14 - - - - EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1TX1DLC addr=0x354 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw u u u')
    reset (por='xxxxxxxxxxxxx---' mclr='uuuuuuuuuuuuu---')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 TXRTR TXRB1 TXRB0 DLC - - -' width='1 1 1 1 1 1 1 1 1 4 1 1 1')
    stimulus (scl=rwb)
sfr (key=C1TX1B1 addr=0x356 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D1 TXB1D0' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX1B2 addr=0x358 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D3 TXB1D2' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX1B3 addr=0x35a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D5 TXB1D4' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX1B4 addr=0x35c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D7 TXB1D6' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX1CON addr=0x35e size=2 access='u u u u u u u u u rw rw rw rw u rw rw')
    reset (por='---------0000-00' mclr='---------0000-00')
    bit (names='- - - - - - - - - TXABT TXLARB TXERR TXREQ - TXPRI' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 2')    
    stimulus (scl=rwb)

sfr (key=C1TX0SID addr=0x360 size=2 access='rw rw rw rw rw u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxxxuuuxxxxxxxx' mclr='uuuuu---uuuuuuuu')
    bit (names='SID10 SID9 SID8 SID7 SID6 - - - SID5 SID4 SID3 SID2 SID1 SID0 SRR TXIDE')
    stimulus (scl=rwb)
sfr (key=C1TX0EID addr=0x362 size=2 access='rw rw rw rw u u u u rw rw rw rw rw rw rw rw')
    reset (por='xxxx----xxxxxxxx' mclr='uuuu----uuuuuuuu')
    bit (names='EID17 EID16 EID15 EID14 - - - - EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1TX0DLC addr=0x364 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw u u u')
    reset (por='xxxxxxxxxxxxx---' mclr='uuuuuuuuuuuuu---')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 TXRTR TXRB1 TXRB0 DLC - - -' width='1 1 1 1 1 1 1 1 1 4 1 1 1')
    stimulus (scl=rwb)
sfr (key=C1TX0B1 addr=0x366 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D1 TXB0D0' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX0B2 addr=0x368 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D3 TXB0D2' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX0B3 addr=0x36a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D5 TXB0D4' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX0B4 addr=0x36c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D7 TXB0D6' width='8 8')
    stimulus (scl=rwb regfiles=w pcfiles=w)
sfr (key=C1TX0CON addr=0x36e size=2 access='u u u u u u u u u rw rw rw rw u rw rw')
    reset (por='---------0000-00' mclr='---------0000-00')
    bit (names='- - - - - - - - - TXABT TXLARB TXERR TXREQ - TXPRI' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 2')    
    stimulus (scl=rwb)

sfr (key=C1RX1SID addr=0x370 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='uuuxxxxxxxxxxxxx' mclr='---uuuuuuuuuuuuu')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 SRR TXIDE')
    stimulus (scl=rwb)
sfr (key=C1RX1EID addr=0x372 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RX1DLC addr=0x374 size=2 access='rw rw rw rw rw rw rw rw u u u rw rw rw rw rw')
    reset (por='xxxxxxxx---xxxxx' mclr='uuuuuuuu---uuuuu')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 RXRTR RXRB1 - - - RXRB0 DLC' width='1 1 1 1 1 1 1 1 1 1 1 1 4')
    stimulus (scl=rwb)
sfr (key=C1RX1B1 addr=0x376 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D1 TXB1D0' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX1B2 addr=0x378 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D3 TXB1D2' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX1B3 addr=0x37a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D5 TXB1D4' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX1B4 addr=0x37c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB1D7 TXB1D6' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX1CON addr=0x37e size=2 access='u u u u u u u u rc u u u r r r r')
    reset (por='--------0---0000' mclr='--------0---0000')
    bit (names='- - - - - - - - RXFUL - - - RXRTRRO FILHIT' width='1 1 1 1 1 1 1 1 1 1 1 1 1 3')    
    stimulus (scl=rwb)

sfr (key=C1RX0SID addr=0x380 size=2 access='u u u rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='uuuxxxxxxxxxxxxx' mclr='---uuuuuuuuuuuuu')
    bit (names='- - - SID10 SID9 SID8 SID7 SID6 SID5 SID4 SID3 SID2 SID1 SID0 SRR TXIDE')
    stimulus (scl=rwb)
sfr (key=C1RX0EID addr=0x382 size=2 access='u u u u rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='----xxxxxxxxxxxx' mclr='----uuuuuuuuuuuu')
    bit (names='- - - - EID17 EID16 EID15 EID14 EID13 EID12 EID11 EID10 EID9 EID8 EID7 EID6')
    stimulus (scl=rwb)
sfr (key=C1RX0DLC addr=0x384 size=2 access='rw rw rw rw rw rw rw rw u u u rw rw rw rw rw')
    reset (por='xxxxxxxx---xxxxx' mclr='uuuuuuuu---uuuuu')
    bit (names='EID5 EID4 EID3 EID2 EID1 EID0 RXRTR RXRB1 - - - RXRB0 DLC' width='1 1 1 1 1 1 1 1 1 1 1 1 4')
    stimulus (scl=rwb)
sfr (key=C1RX0B1 addr=0x386 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D1 TXB0D0' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX0B2 addr=0x388 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D3 TXB0D2' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX0B3 addr=0x38a size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D5 TXB0D4' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX0B4 addr=0x38c size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='uuuuuuuuuuuuuuuu')
    bit (names='TXB0D7 TXB0D6' width='8 8')
    stimulus (scl=rwb regfiles=r pcfiles=r)
sfr (key=C1RX0CON addr=0x38e size=2 access='u u u u u u u u rc u u u r rw r r')
    reset (por='--------0---0000' mclr='--------0---0000')
    bit (names='- - - - - - - - RXFUL - - - RXRTRRO RXB0DBEN JTOFF FILHIT')
    stimulus (scl=rwb)
sfr (key=C1CTRL addr=0x390 size=2 access='rw r rw rw rw rw rw rw r r r u r r r u')
    reset (por='00000100100-000-' mclr='00000000000-000-')
    bit (names='CANCAP CANFRZ CANSIDL ABAT CANCKS REQOP OPMODE - ICOD -' width='1 1 1 1 1 3 3 1 3 1')
    stimulus (scl=rwb)
sfr (key=C1CFG1 addr=0x392 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - SJW BRP' width='1 1 1 1 1 1 1 1 2 6')
    stimulus (scl=rwb)
sfr (key=C1CFG2 addr=0x394 size=2 access='u rw u u u rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='-x---xxxxxxxxxxx' mclr='-0---00000000000')
    bit (names='- WAKFIL - - - SEG2PH SEG2PHTS SAM SEG1PH PRSEG' width='1 1 1 1 1 3 1 1 3 3')
    stimulus (scl=rwb)
sfr (key=C1INTF addr=0x396 size=2 access='rc rc r r r r r r rw rw rw rw rw rw rw rw')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='RXB0OVFL RXB1OVFL TXBO TXBP RXBP TXWARN RXWARN EWARN IRXIF WAKIF ERRIF TXB2IF TXB1IF TXB0IF RXB1IF RXB0IF')
    stimulus (scl=rwb)
sfr (key=C1INTE addr=0x398 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - IRXIE WAKIE ERRIE TXB2IE TXB1IE TXB0IE RXB1IE RXB0IE')
    stimulus (scl=rwb)
sfr (key=C1EC addr=0x39a size=2 access='r r r r r r r r r r r r r r r r')
    reset (por='0000000000000000' mclr='0000000000000000')
    bit (names='TEC REC' width='8 8')
    stimulus (scl=rwb)
UnusedRegs (0x39c-0x3bf)


                               # ---------------#
#------------------------------# CAN2 Registers #--------------------------------------------------#
                               # ---------------#

UnusedRegs (0x3c0-0x47f)
UnusedRegs (0x480-0x73f)

                               # --------------#
#------------------------------# SIB Registers #----------------------------------------------------------------------------#
                               # --------------#

sfr (key=RCON addr=0x740 size=2 access='rw rw u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='00------00000011' mclr='uu------1uuuuuuu')
    bit (names='TRAPR IOPUWR - - - - - - EXTR SWR SWDTEN WDTO SLEEP IDLE BOR POR' width='1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1')
    stimulus (scl=r)
sfr (key=OSCCON addr=0x742 size=2 access='u u r r u u rw rw rw rw r u rc u rw rw')
    reset (por='--yy--yy000-0-00' mclr='--yy--yy000-0-00')
    bit (names='- - COSC - - NOSC POST LOCK - CF - LPOSCEN OSWEN' width='1 1 2 1 1 2 2 1 1 1 1 1 1')
    stimulus (scl=r)
UnusedRegs (0x744-0x74f)

                               # -------------------#
#------------------------------# Security Registers #----------------------------------------------#
                               # -------------------#

UnusedRegs (0x750-0x755)
UnusedRegs (0x756-0x75f)

                               # --------------#
#------------------------------# NVM Registers #---------------------------------------------------#
                               # --------------#

sfr (key=NVMCON addr=0x760 size=2 access='rw rw rw u u u u u u rw rw rw rw rw rw rw')
    reset (por='000------0000000' mclr='000------0000000')
    bit (names='WR WREN WRERR - - - - - - PROGOP' width='1 1 1 1 1 1 1 1 1 7')
    stimulus (scl=r)
sfr (key=NVMADR addr=0x762 size=2 access='rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw')
    reset (por='xxxxxxxxxxxxxxxx' mclr='0000000000000000')
    bit (names='NVMADR' width='16')
    stimulus (scl=r type=int)
sfr (key=NVMADRU addr=0x764 size=2 access='u u u u u u u u rw rw rw rw rw rw rw rw')
    reset (por='--------xxxxxxxx' mclr='--------00000000')
    bit (names='- - - - - - - - NVMADR' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r)
sfr (key=NVMKEY addr=0x766 size=2 access='u u u u u u u u w w w w w w w w')
    reset (por='--------00000000' mclr='--------00000000')
    bit (names='- - - - - - - - KEY' width='1 1 1 1 1 1 1 1 8')
    stimulus (scl=r)
UnusedRegs (0x768-0x76f)

                               # --------------#
#------------------------------# PMD Registers #-----------------------------------------------------------------------#
                               # --------------#

sfr (key=PMD1 addr=0x770 size=2 access='rw rw rw rw rw rw rw u rw u rw u rw u rw rw')
    reset (por='0000000-0-0-0-00' mclr='0000000-0-0-0-00')
    bit (names='T5MD T4MD T3MD T2MD T1MD QEIMD PWMMD - I2CMD - U1MD - SPI1MD - C1MD ADCM')
    stimulus (scl=rw)
sfr (key=PMD2 addr=0x772 size=2 access='rw rw u u u u rw rw u u u u u u rw rw')
    reset (por='00----00------00' mclr='00----00------00')
    bit (names='IC8MD IC7MD - - - - IC2MD IC1MD - - - - - - OC2MD 0C1MD')
    stimulus (scl=rw)
UnusedRegs (0x774-0x775)
UnusedRegs (0x776-0x7ff)

                               # -------------------#
#------------------------------# Configuration Bits #------------------------------------#
                               # -------------------#

    # See SIB DOS-00616 merge with DOS-00629
cfgbits (key=FOSC addr=0xF80000 unused=0x0000)
    field (key=FCKSMEN mask=0xC000 desc="Clock Switching and Monitor" init=0xC000)
        setting (req=0x8000 value=0x8000 desc="Sw Disabled, Mon Disabled")
        setting (req=0xC000 value=0x4000 desc="Sw Enabled, Mon Disabled")
        setting (req=0xC000 value=0x0000 desc="Sw Enabled, Mon Enabled")
   field (key=BGSEL mask=0x1000 desc="Bandgap Select")
        setting (req=0x1000 value=0x1000 desc="FRC Bandgap Select")
        setting (req=0x1000 value=0x0000 desc="Precise Bandgap B Select")    
    field (key=FGS mask=0x0700 desc="Primary Oscillator Source" init=0x0100)
        setting (req=0x0700 value=0x0000 desc="Fast RC Oscillator (FRC)")
        setting (req=0x0700 value=0x0100 desc="Fast RC Oscillator (FRC) with PLL")
        setting (req=0x0700 value=0x0200 desc="Primary Oscillator (HS, EC)")
        setting (req=0x0700 value=0x0300 desc="Primary Oscillator (HS, EC) with PLL")
    field (key=FRANGE mask=0x0080 desc="Frequency Range Select")
        setting (req=0x0080 value=0x0000 desc="Low Range (FRC 9.57Mhz PLL 301Mhz)")
        setting (req=0x0080 value=0x0080 desc="High Range (FRC 14.1Mhz PLL 451Mhz)")        
   field (key=OSCOEN mask=0x0010 desc="OSCO Pin I/O Function")
        setting (req=0x0010 value=0x0010 desc="OSCO pin has digital I/O function")
        setting (req=0x0010 value=0x0000 desc="OSCO pin defined at CLOCKOUT")         
#    field (key=FG1 mask=0x03 desc="External Oscillator Selection and Control")
#        setting (req=0x03 value=0x03 desc="External HS/EC Mode Disabled")
#        setting (req=0x03 value=0x01 desc="External Clock Mode, OSCO as OSCOEN")
#        setting (req=0x03 value=0x00 desc="HS Oscillator Mode, OSCO as clockout") 
    field (key=FG1 mask=0x03 desc="External Oscillator Selection and Control")
        setting (req=0x03 value=0x03 desc="HS/EC Mode Disabled (FRC selected)")
        setting (req=0x03 value=0x02 desc="HS Oscillator, OSCO as OSCOEN")
#       setting (req=0x03 value=0x01 desc="XT Oscillator, OSCO as OSCOEN")
        setting (req=0x03 value=0x00 desc="EC Oscillator, OSCO as OSCOEN")

cfgbits (key=FWDT addr=0xF80002 unused=0x0000)
    # Using DFAL0 DOS DOS-00629
    field (key=WDT mask=0x8000 desc="Watchdog Timer" min=2)
        setting (req=0x8000 value=0x8000 desc="Enabled")
        setting (req=0x8000 value=0x0000 desc="Disabled")
    field (key=FWPSA mask=0x0030 desc="WDT Prescaler A")
        setting (req=0x30 value=0x00 desc="1:1")
        setting (req=0x30 value=0x10 desc="1:8")
        setting (req=0x30 value=0x20 desc="1:64")
        setting (req=0x30 value=0x30 desc="1:512")
    field (key=FWPSB mask=0x000F desc="WDT Prescaler B")
        setting (req=0xf value=0x0 desc="1:1")
        setting (req=0xf value=0x1 desc="1:2")
        setting (req=0xf value=0x2 desc="1:3")
        setting (req=0xf value=0x3 desc="1:4")
        setting (req=0xf value=0x4 desc="1:5")
        setting (req=0xf value=0x5 desc="1:6")
        setting (req=0xf value=0x6 desc="1:7")
        setting (req=0xf value=0x7 desc="1:8")
        setting (req=0xf value=0x8 desc="1:9")
        setting (req=0xf value=0x9 desc="1:10")
        setting (req=0xf value=0xa desc="1:11")
        setting (req=0xf value=0xb desc="1:12")
        setting (req=0xf value=0xc desc="1:13")
        setting (req=0xf value=0xd desc="1:14")
        setting (req=0xf value=0xe desc="1:15")
        setting (req=0xf value=0xf desc="1:16")
        
cfgbits (key=FBORPOR addr=0xF80004 unused=0x07b0)
    field (key=MCLRE mask=0x8000 desc="Master Clear Enable")
        setting (req=0x8000 value=0x8000 desc="Enabled")
        setting (req=0x8000 value=0x0000 desc="Disabled")
    field (key=RESERVED mask=0x07b0 desc="Reserved" init=0x07b0 flags=h)
        setting (req=0x07b0 value=0x07b0 desc="Reserved")        
        setting (req=0x07b0 value=0x0000 desc="Reserved")        
# JLD 4/5/06: PWRTEN seems to be stuck at 0. Leaving default value as 0
# JLD 4/6/06: Confirmed by Bryan Kris PWRTEN does not exist
#    field (key=PWRTEN mask=0x0008 desc="Power Up Timer Enable" init=0x0000)
#        setting (req=0x0008 value=0x0008 desc="Enable")
#        setting (req=0x0008 value=0x0000 desc="Disable")
    field (key=FPWRT mask=0x0007 desc="POR Timer Value")
        setting (req=0x7 value=0x0 desc="1ms")        
        setting (req=0x7 value=0x1 desc="2ms")        
        setting (req=0x7 value=0x2 desc="4ms")        
        setting (req=0x7 value=0x3 desc="8ms")        
        setting (req=0x7 value=0x4 desc="16ms")        
        setting (req=0x7 value=0x5 desc="32ms")        
        setting (req=0x7 value=0x6 desc="64ms")          
        setting (req=0x7 value=0x7 desc="128ms")

cfgbits (key=FGS addr=0xF8000A unused=0x0000)
    field (key=GCP mask=0x0002 desc="General Code Segment Code Protect")
        setting (req=0x0002 value=0x0002 desc="Disabled")
            checksum (type=0x0 protregion=0x00-0x00)
        setting (req=0x0002 value=0x0000 desc="Enabled")
checksum (type=0x27 protregion=0x0000-0x1FFF)
    field (key=GWRP mask=0x0001 desc="General Code Segment Write Protect")
        setting (req=0x0001 value=0x0001 desc="Disabled")
        setting (req=0x0001 value=0x0000 desc="Enabled")

cfgbits (key=ICD addr=0xF8000C unused=0x4000)
    field (key=BACKBUG mask=0x8000 desc="Background Debug" flags=h)
        setting (req=0x8000 value=0x8000 desc="Disabled")
        setting (req=0x8000 value=0x0000 desc="Enabled")
    field (key=COE mask=0x4000 desc="Set Clip On Emulation Mode" flags=h)
        setting (req=0x4000 value=0x4000 desc="Reset Into Operational Mode")
        setting (req=0x4000 value=0x0000 desc="Reset Into Clip On Emulation Mode")
    field (key=ICS mask=0x0003 desc="Comm Channel Select")
        setting (req=0x0003 value=0x3 desc="Use PGC/EMUC and PGD/EMUD")
        setting (req=0x0003 value=0x2 desc="Use EMUC1 and EMUD1")
        setting (req=0x0003 value=0x1 desc="Use EMUC2 and EMUD2")
        setting (req=0x0003 value=0x0 desc="Use EMUC3 and EMUD3")

                               # ------------#
#------------------------------# Peripherals #------------------------------------#
                               # ------------#

#--------------------------------------------------------------------------------
# Note: nextpin=NONE when next pinfunc is a portpin (eg RB3), CNx, or INTx.
# nextperiph=NONE when nextpin=NONE
#--------------------------------------------------------------------------------


#--------------------------------------------------------------------------------
# 				UARTs
#--------------------------------------------------------------------------------

peripheral (key=UART1 sfrs='U1MODE U1STA U1TXREG U1RXREG U1BRG')
    pinfunc (key=U1RX port=RF2 dir=in nextperiph=SPI1 nextpin=SDI1)
    pinfunc (key=U1TX port=RF3 dir=out nextperiph=SPI1 nextpin=SDO1)
    pinfunc (key=U1ARX port=RC14 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=U1ATX port=RC13 dir=out nextperiph=NONE nextpin=NONE)
    interrupt (name=RXINT1 enreg=IEC0 enmask=0x0200 flgreg=IFS0 flgmask=0x0200 prireg=IPC2 primask=0x0070)
    interrupt (name=TXINT1 enreg=IEC0 enmask=0x0400 flgreg=IFS0 flgmask=0x0400 prireg=IPC2 primask=0x0700)

#--------------------------------------------------------------------------------
# 				PORTB
#--------------------------------------------------------------------------------

peripheral (key=PORTB sfrs='TRISB LATB PORTB INTCON2 CNEN1' type=port)
    iopin (key=RB0 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN2 enreg=CNEN1 enmask=0x0004)
    iopin (key=RB1 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN3 enreg=CNEN1 enmask=0x0008)
    iopin (key=RB2 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN4 enreg=CNEN1 enmask=0x0010)
    iopin (key=RB3 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN5 enreg=CNEN1 enmask=0x0020)
    iopin (key=RB4 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN6 enreg=CNEN1 enmask=0x0040)
        cnpin (key=IC7 notify=IC7)
    iopin (key=RB5 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN7 enreg=CNEN1 enmask=0x0080)
        cnpin (key=IC8 notify=IC8)

#--------------------------------------------------------------------------------
# 				PORTC
#--------------------------------------------------------------------------------

peripheral (key=PORTC sfrs='TRISC LATC PORTC INTCON2 CNEN1' type=port)
    iopin (key=RC13 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN1 enreg=CNEN1 enmask=0x0002)
    iopin (key=RC14 dir=inout)
        cnint (key=CNIRQ enreg=IEC0 enmask=0x8000 flgreg=IFS0 flgmask=0x8000 prireg=IPC3 primask=0x7000)
        cn (key=CN0 enreg=CNEN1 enmask=0x0001)
    iopin (key=RC15 dir=inout)

#--------------------------------------------------------------------------------
# 				PORTD
#--------------------------------------------------------------------------------

peripheral (key=PORTD sfrs='TRISD LATD PORTD INTCON2 CNEN1' type=port)
    iopin (key=RD0 dir=inout)
        extint (key=INT1 enreg=IEC1 enmask=0x0001 flgreg=IFS1 flgmask=0x0001 prireg=IPC4 primask=0x0007)
        cnpin (key=IC1 notify=IC1)
    iopin (key=RD1 dir=inout)
        extint (key=INT2 enreg=IEC1 enmask=0x0080 flgreg=IFS1 flgmask=0x0080 prireg=IPC5 primask=0x7000)
        cnpin (key=IC2 notify=IC2)

#--------------------------------------------------------------------------------
# 				PORTE
#--------------------------------------------------------------------------------

peripheral (key=PORTE sfrs='TRISE LATE PORTE INTCON2 CNEN1' type=port)
    iopin (key=RE0 dir=inout)
    iopin (key=RE1 dir=inout)
    iopin (key=RE2 dir=inout)
    iopin (key=RE3 dir=inout)
    iopin (key=RE4 dir=inout)
    iopin (key=RE5 dir=inout)
    iopin (key=RE8 dir=inout)
        extint (key=INT0 enreg=IEC0 enmask=0x0001 flgreg=IFS0 flgmask=0x0001 prireg=IPC0 primask=0x0007)
	cnpin  (key=FLTA notify=PWM)
        cnpin (key=OCFA notify=OC1)
        cnpin (key=OCFA notify=OC2)
#--------------------------------------------------------------------------------
# 				PORTF
#--------------------------------------------------------------------------------

peripheral (key=PORTF sfrs='TRISF LATF PORTF INTCON2 CNEN1' type=port)
    iopin (key=RF2 dir=inout)
    iopin (key=RF3 dir=inout)

#--------------------------------------------------------------------------------
# 				TIMERs
#--------------------------------------------------------------------------------

peripheral (key=TMR1 sfrs='TMR1 PR1 T1CON')
    pinfunc (key=T1CK port=RC14 dir=in nextperiph=UART1 nextpin=U1ARX)
    interrupt (name=TMR1INT enreg=IEC0 enmask=0x0008 flgreg=IFS0 flgmask=0x0008 prireg=IPC0 primask=0x7000)

peripheral (key=TMR2 sfrs='TMR2 PR2 T2CON TMR3 TMR3HLD PR3 T3CON')
    pinfunc (key=T2CK port=RC13 dir=in nextperiph=UART1 nextpin=U1ATX)
    interrupt (name=TMR2INT enreg=IEC0 enmask=0x0040 flgreg=IFS0 flgmask=0x0040 prireg=IPC1 primask=0x0700)

peripheral (key=TMR3 sfrs='TMR3 TMR3HLD PR3 T3CON')
    interrupt (name=TMR3INT enreg=IEC0 enmask=0x0080 flgreg=IFS0 flgmask=0x0080 prireg=IPC1 primask=0x7000)

peripheral (key=TMR4 sfrs='TMR4 PR4 T4CON TMR5 TMR5HLD PR5 T5CON')
    interrupt (name=TMR4INT enreg=IEC1 enmask=0x0020 flgreg=IFS1 flgmask=0x0020 prireg=IPC5 primask=0x0070)

peripheral (key=TMR5 sfrs='TMR5 TMR5HLD PR5 T5CON')
    interrupt (name=TMR5INT enreg=IEC1 enmask=0x0040 flgreg=IFS1 flgmask=0x0040 prireg=IPC5 primask=0x0700)

#--------------------------------------------------------------------------------
# 				HADC
#--------------------------------------------------------------------------------

peripheral (key=HADC sfrs='ADCON1 ADCON2 ADCON3 ADCHS ADPCFG ADCSSL ADCBUF0 ADCBUF1 ADCBUF2 ADCBUF3 ADCBUF4 ADCBUF5 ADCBUF6 ADCBUF7 ADCBUF8 ADCBUF9 ADCBUFA ADCBUFB ADCBUFC ADCBUFD ADCBUFE ADCBUFF')
    pinfunc (key=AN0 port=RB0 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN1 port=RB1 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=AN2 port=RB2 dir=in nextperiph=SPI1 nextpin=SS1)
    pinfunc (key=AN3 port=RB3 dir=in nextperiph=QEI nextpin=INDX)
    pinfunc (key=AN4 port=RB4 dir=in nextperiph=QEI nextpin=QEA)
    pinfunc (key=AN5 port=RB5 dir=in nextperiph=QEI nextpin=QEB)
    interrupt (name=ADCINT enreg=IEC0 enmask=0x0800 flgreg=IFS0 flgmask=0x0800 prireg=IPC2 primask=0x7000)

#--------------------------------------------------------------------------------
# 				PWM
#--------------------------------------------------------------------------------

peripheral (key=PWM sfrs='PTCON PTMR PTPER SEVTCMP PWMCON1 PWMCON2 DTCON1 FLTACON PDC1 PDC2 PDC3 OVDCON')
    pinfunc (key=PWM1L port=RE0 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWM1H port=RE1 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWM2L port=RE2 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWM2H port=RE3 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWM3L port=RE4 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWM3H port=RE5 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=PWMFLTA port=RE8 dir=in nextperiph=SPI1 nextpin=SCK1)
    interrupt (name=PWMINT enreg=IEC2 enmask=0x0080 flgreg=IFS2 flgmask=0x0080 prireg=IPC9 primask=0x7000)
    interrupt (name=FLTAINT enreg=IEC2 enmask=0x0800 flgreg=IFS2 flgmask=0x0800 prireg=IPC10 primask=0x7000)

#--------------------------------------------------------------------------------
# 				Input Capture
#--------------------------------------------------------------------------------

peripheral (key=IC1 sfrs='IC1CON IC1BUF')
    timers (addr=0x142 mask=0x0080)	 #IC1CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC1 port=RD0 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC1INT enreg=IEC0 enmask=0x0002 flgreg=IFS0 flgmask=0x0002 prireg=IPC0 primask=0x0070)

peripheral (key=IC2 sfrs='IC2CON IC2BUF')
    timers (addr=0x146 mask=0x0080)	 #IC2CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC2 port=RD1 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC2INT enreg=IEC0 enmask=0x0010 flgreg=IFS0 flgmask=0x0010 prireg=IPC1 primask=0x0007)

peripheral (key=IC7 sfrs='IC7CON IC7BUF')
    timers (addr=0x15a mask=0x0080)	 #IC7CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC7 port=RB4 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC7INT enreg=IEC1 enmask=0x0002 flgreg=IFS1 flgmask=0x0002 prireg=IPC4 primask=0x0070)

peripheral (key=IC8 sfrs='IC8CON IC8BUF')
    timers (addr=0x15e mask=0x0080)	 #IC8CON
        setting (val=0 key=TMR3)
        setting (val=1 key=TMR2)
    pinfunc (key=IC8 port=RB5 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=IC8INT enreg=IEC1 enmask=0x0004 flgreg=IFS1 flgmask=0x0004 prireg=IPC4 primask=0x0700)


#--------------------------------------------------------------------------------
# 				Output Compare
#--------------------------------------------------------------------------------

peripheral (key=OC1 sfrs='OC1RS OC1R OC1CON')
    timers (addr=0x184 mask=0x0008)	#OC1CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OC1 port=RD0 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=OCFA port=RE8 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC1INT enreg=IEC0 enmask=0x0004 flgreg=IFS0 flgmask=0x0004 prireg=IPC0 primask=0x0700)

peripheral (key=OC2 sfrs='OC2RS OC2R OC2CON')
    timers (addr=0x18a mask=0x0008)	#OC2CON
        setting (val=0 key=TMR2)
        setting (val=1 key=TMR3)
    pinfunc (key=OC2 port=RD1 dir=out nextperiph=IC2 nextpin=IC2)
    pinfunc (key=OCFA port=RE8 dir=in nextperiph=NONE nextpin=NONE)
    interrupt (name=OC2INT enreg=IEC0 enmask=0x0020 flgreg=IFS0 flgmask=0x0020 prireg=IPC1 primask=0x0070)

#--------------------------------------------------------------------------------
# 				CANs
#--------------------------------------------------------------------------------

peripheral (key=CAN1)
    pinfunc (key=C1RX port=RF2 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=C1TX port=RF3 dir=out nextperiph=NONE nextpin=NONE)

#--------------------------------------------------------------------------------
# 				SPIs
#--------------------------------------------------------------------------------

peripheral (key=SPI1)
# sfrs='SPI1STAT SPI1CON SPI1BUF')
    pinfunc (key=SCK1 port=RE8 dir=inout nextperiph=OC1_4 nextpin=OCFA)
    pinfunc (key=SDI1 port=RF2 dir=in nextperiph=I2C nextpin=SDA)
    pinfunc (key=SDO1 port=RF3 dir=out nextperiph=I2C nextpin=SCL)

#--------------------------------------------------------------------------------
# 				I2C
#--------------------------------------------------------------------------------

peripheral (key=I2C)
# sfrs='I2CRCV I2CTRN I2CBRG I2CCON I2CSTAT I2CADD')
    pinfunc (key=SCL port=RF3 dir=inout nextperiph=CAN1 nextpin=C1TX)
    pinfunc (key=SDA port=RF2 dir=inout nextperiph=CAN1 nextpin=C1RX)

#--------------------------------------------------------------------------------
# 				QEI
#--------------------------------------------------------------------------------

peripheral (key=QEI)
# sfrs='QEICON DFLTCON POSCNT MAXCNT')
    pinfunc (key=INDX port=RB3 dir=in nextperiph=NONE nextpin=NONE)
    pinfunc (key=QEA port=RB4 dir=in nextperiph=IC7 nextpin=IC7)
    pinfunc (key=QEB port=RB5 dir=in nextperiph=IC8 nextpin=IC8)

#--------------------------------------------------------------------------------
# 				OSC
#--------------------------------------------------------------------------------
peripheral (key=OSC sfrs='OSCCON')
    pinfunc (key=OSC2 port=RC15 dir=out nextperiph=NONE nextpin=NONE)
    pinfunc (key=SOSC1 port=RC14 dir=out nextperiph=TMR1 nextpin=T1CK)
    pinfunc (key=SOSC2 port=RC13 dir=out nextperiph=TMR2 nextpin=T2CK)
    pinfunc (key=CLKO port=RC15 dir=out nextperiph=NONE nextpin=NONE)

#--------------------------------------------------------------------------------
# 				CORE SFRs
#--------------------------------------------------------------------------------
peripheral (key=CORE sfrs='INTCON1 INTCON2 IFS0 IFS1 IFS2 IEC0 IEC1 IEC2 IPC0 IPC1 IPC2 IPC3 IPC4 IPC5 IPC6 IPC9 IPC10 INTREG NVMCON NVMADR NVMADRU NVMKEY')
