.definition

csr_misa =          [001100000001]
csr_mvendorid =     [111100010001]
csr_marchid =       [111100010010]
csr_mimpid =        [111100010011]
csr_mhartid =       [111100010100]
csr_mstatus =       [001100000000]
csr_mtvec =         [001100000101]
csr_mip =           [001101000100]
csr_mie =           [001100000100]
csr_mcyclel =       [101100000000]
csr_mcycleh =       [101110000000]
csr_minstretl =     [101100000010]
csr_minstreth =     [101110000010]
csr_mscratch =      [001101000000]
csr_mepc =          [001101000001]
csr_mcause =        [001101000010]
csr_mscause =       [011111111111]
csr_mtval =         [001101000011]
csr_mrac =          [011111000000]
csr_dmst =          [011111000100]
csr_mdeau =         [101111000000]
csr_mdseac =        [111111000000]
csr_meivt =         [101111001000]
csr_meihap =        [111111001000]
csr_meipt =         [101111001001]
csr_meicpct =       [101111001010]
csr_meicurpl =      [101111001100]
csr_meicidpl =      [101111001011]
csr_dcsr =          [011110110000]
csr_dpc =           [011110110001]
csr_dicawics =      [011111001000]
csr_dicad0h =       [011111001100]
csr_dicad0 =        [011111001001]
csr_dicad1 =        [011111001010]
csr_dicago =        [011111001011]
csr_mtsel =         [011110100000]
csr_mtdata1 =       [011110100001]
csr_mtdata2 =       [011110100010]
csr_mhpmc3 =        [101100000011]
csr_mhpmc4 =        [101100000100]
csr_mhpmc5 =        [101100000101]
csr_mhpmc6 =        [101100000110]
csr_mhpmc3h =       [101110000011]
csr_mhpmc4h =       [101110000100]
csr_mhpmc5h =       [101110000101]
csr_mhpmc6h =       [101110000110]
csr_mhpme3 =        [001100100011]
csr_mhpme4 =        [001100100100]
csr_mhpme5 =        [001100100101]
csr_mhpme6 =        [001100100110]
csr_micect =        [011111110000]
csr_miccmect =      [011111110001]
csr_mdccmect =      [011111110010]
csr_mpmc =          [011111000110]
csr_mcgc =          [011111111000]
csr_mcpc =          [011111000010]
csr_mfdc =          [011111111001]
csr_mitctl0 =       [011111010100]
csr_mitctl1 =       [011111010111]
csr_mitb0 =         [011111010011]
csr_mitb1 =         [011111010110]
csr_mitcnt0 =       [011111010010]
csr_mitcnt1 =       [011111010101]
csr_perfva =        [101100000111]
csr_perfvb =        [101100001...]
csr_perfvc =        [10110001....]
csr_perfvd =        [101110000111]
csr_perfve =        [101110001...]
csr_perfvf =        [10111001....]
csr_perfvg =        [001100100111]
csr_perfvh =        [001100101...]
csr_perfvi =        [00110011....]
csr_mcounteren =    [001100000110]
csr_mcountinhibit = [001100100000]
csr_mfdht =         [011111001110]
csr_mfdhs =         [011111001111]
csr_menvcfg =       [001100001010]
csr_menvcfgh =      [001100011010]
csr_pmpcfg =        [00111010....]
csr_pmpaddr0 =      [00111011....]
csr_pmpaddr16 =     [00111100....]
csr_pmpaddr32 =     [00111101....]
csr_pmpaddr48 =     [00111110....]
csr_cyclel =        [110000000000]
csr_cycleh =        [110010000000]
csr_instretl =      [110000000010]
csr_instreth =      [110010000010]
csr_hpmc3 =         [110000000011]
csr_hpmc4 =         [110000000100]
csr_hpmc5 =         [110000000101]
csr_hpmc6 =         [110000000110]
csr_hpmc3h =        [110010000011]
csr_hpmc4h =        [110010000100]
csr_hpmc5h =        [110010000101]
csr_hpmc6h =        [110010000110]
csr_mseccfgl =      [011101000111]
csr_mseccfgh =      [011101010111]

.input

csr = {
        dec_csr_rdaddr_d[11]
        dec_csr_rdaddr_d[10]
        dec_csr_rdaddr_d[9]
        dec_csr_rdaddr_d[8]
        dec_csr_rdaddr_d[7]
        dec_csr_rdaddr_d[6]
        dec_csr_rdaddr_d[5]
        dec_csr_rdaddr_d[4]
        dec_csr_rdaddr_d[3]
        dec_csr_rdaddr_d[2]
        dec_csr_rdaddr_d[1]
        dec_csr_rdaddr_d[0]
}

.output

csr = {
     csr_misa
     csr_mvendorid
     csr_marchid
     csr_mimpid
     csr_mhartid
     csr_mstatus
     csr_mtvec
     csr_mip
     csr_mie
     csr_mcyclel
     csr_mcycleh
     csr_minstretl
     csr_minstreth
     csr_mscratch
     csr_mepc
     csr_mcause
     csr_mscause
     csr_mtval
     csr_mrac
     csr_dmst
     csr_mdseac
     csr_meihap
     csr_meivt
     csr_meipt
     csr_meicurpl
     csr_meicidpl
     csr_dcsr
     csr_mcgc
     csr_mfdc
     csr_dpc
     csr_mtsel
     csr_mtdata1
     csr_mtdata2
     csr_mhpmc3
     csr_mhpmc4
     csr_mhpmc5
     csr_mhpmc6
     csr_mhpmc3h
     csr_mhpmc4h
     csr_mhpmc5h
     csr_mhpmc6h
     csr_mhpme3
     csr_mhpme4
     csr_mhpme5
     csr_mhpme6
     csr_mcounteren
     csr_mcountinhibit
     csr_mitctl0
     csr_mitctl1
     csr_mitb0
     csr_mitb1
     csr_mitcnt0
     csr_mitcnt1
csr_perfva
csr_perfvb
csr_perfvc
csr_perfvd
csr_perfve
csr_perfvf
csr_perfvg
csr_perfvh
csr_perfvi
     csr_mpmc
     csr_mcpc
     csr_meicpct
     csr_mdeau
     csr_micect
     csr_miccmect
     csr_mdccmect
csr_mfdht
csr_mfdhs
csr_dicawics
csr_dicad0h
csr_dicad0
csr_dicad1
csr_dicago
     csr_menvcfg 
     csr_menvcfgh
     csr_pmpcfg
     csr_pmpaddr0
     csr_pmpaddr16
     csr_pmpaddr32
     csr_pmpaddr48
     csr_cyclel
     csr_cycleh
     csr_instretl
     csr_instreth
     csr_hpmc3
     csr_hpmc4
     csr_hpmc5
     csr_hpmc6
     csr_hpmc3h
     csr_hpmc4h
     csr_hpmc5h
     csr_hpmc6h
     csr_mseccfgl
     csr_mseccfgh
     valid_only
     presync
     postsync
}

.decode

csr[ csr_misa      ] = {  csr_misa      }
csr[ csr_mvendorid ] = {  csr_mvendorid }
csr[ csr_marchid   ] = {  csr_marchid   }
csr[ csr_mimpid    ] = {  csr_mimpid    }
csr[ csr_mhartid   ] = {  csr_mhartid   }
csr[ csr_mstatus   ] = {  csr_mstatus postsync   }
csr[ csr_mtvec     ] = {  csr_mtvec postsync}
csr[ csr_mip       ] = {  csr_mip       }
csr[ csr_mie       ] = {  csr_mie       }
csr[ csr_mcyclel   ] = {  csr_mcyclel   }
csr[ csr_mcycleh   ] = {  csr_mcycleh   }
csr[ csr_minstretl ] = {  csr_minstretl presync }
csr[ csr_minstreth ] = {  csr_minstreth presync }
csr[ csr_mscratch  ] = {  csr_mscratch  }
csr[ csr_mepc      ] = {  csr_mepc postsync}
csr[ csr_mcause    ] = {  csr_mcause    }
csr[ csr_mscause   ] = {  csr_mscause   }
csr[ csr_mtval     ] = {  csr_mtval     }
csr[ csr_mrac      ] = {  csr_mrac postsync     }
csr[ csr_dmst      ] = {  csr_dmst postsync}
csr[ csr_mdseac    ] = {  csr_mdseac    }
csr[ csr_meipt     ] = {  csr_meipt     }
csr[ csr_meihap    ] = {  csr_meihap    }
csr[ csr_meivt     ] = {  csr_meivt     }
csr[ csr_meicurpl  ] = {  csr_meicurpl  }
csr[ csr_mdeau     ] = {  csr_mdeau    }
csr[ csr_meicpct   ] = {  csr_meicpct   }
csr[ csr_mpmc      ] = {  csr_mpmc      }
csr[ csr_mcpc      ] = {  csr_mcpc presync postsync }
csr[ csr_meicidpl  ] = {  csr_meicidpl  }
csr[ csr_mcgc      ] = {  csr_mcgc      }
csr[ csr_mcountinhibit] = {  csr_mcountinhibit presync postsync }
csr[ csr_mfdc      ] = {  csr_mfdc presync postsync }
csr[ csr_dcsr      ] = {  csr_dcsr      }
csr[ csr_dpc       ] = {  csr_dpc       }
csr[ csr_mtsel     ] = {  csr_mtsel     }
csr[ csr_mtdata1   ] = {  csr_mtdata1  presync postsync }
csr[ csr_mtdata2   ] = {  csr_mtdata2  postsync }
csr[ csr_mhpmc3    ] = {  csr_mhpmc3  presync }
csr[ csr_mhpmc4    ] = {  csr_mhpmc4  presync }
csr[ csr_mhpmc5    ] = {  csr_mhpmc5  presync }
csr[ csr_mhpmc6    ] = {  csr_mhpmc6  presync }
csr[ csr_mhpmc3h   ] = {  csr_mhpmc3h presync  }
csr[ csr_mhpmc4h   ] = {  csr_mhpmc4h presync  }
csr[ csr_mhpmc5h   ] = {  csr_mhpmc5h presync  }
csr[ csr_mhpmc6h   ] = {  csr_mhpmc6h presync  }
csr[ csr_mhpme3    ] = {  csr_mhpme3    }
csr[ csr_mhpme4    ] = {  csr_mhpme4    }
csr[ csr_mhpme5    ] = {  csr_mhpme5    }
csr[ csr_mhpme6    ] = {  csr_mhpme6    }
csr[ csr_micect    ] = {  csr_micect    }
csr[ csr_miccmect  ] = {  csr_miccmect  }
csr[ csr_mdccmect  ] = {  csr_mdccmect  }
csr[ csr_dicawics  ] = {  csr_dicawics  }
csr[ csr_dicad0h   ] = {  csr_dicad0h   }
csr[ csr_dicad0    ] = {  csr_dicad0    }
csr[ csr_dicad1    ] = {  csr_dicad1    }
csr[ csr_dicago    ] = {  csr_dicago    }
csr[ csr_mitctl0   ] = {  csr_mitctl0   }
csr[ csr_mitctl1   ] = {  csr_mitctl1   }
csr[ csr_mitb0     ] = {  csr_mitb0     }
csr[ csr_mitb1     ] = {  csr_mitb1     }
csr[ csr_mitcnt0   ] = {  csr_mitcnt0   }
csr[ csr_mitcnt1   ] = {  csr_mitcnt1   }
csr[ csr_mfdht     ] = {  csr_mfdht }
csr[ csr_mfdhs     ] = {  csr_mfdhs }
csr[ csr_menvcfg   ] = {  csr_menvcfg }
csr[ csr_menvcfgh  ] = {  csr_menvcfgh }
csr[ csr_mcounteren ] = { csr_mcounteren }
csr[ csr_mcountinhibit] = {  csr_mcountinhibit presync postsync }

csr[ csr_perfva    ] = { valid_only }
csr[ csr_perfvb    ] = { valid_only }
csr[ csr_perfvc    ] = { valid_only }
csr[ csr_perfvd    ] = { valid_only }
csr[ csr_perfve    ] = { valid_only }
csr[ csr_perfvf    ] = { valid_only }
csr[ csr_perfvg    ] = { valid_only }
csr[ csr_perfvh    ] = { valid_only }
csr[ csr_perfvi    ] = { valid_only }

csr[ csr_pmpcfg    ] = { csr_pmpcfg    }
csr[ csr_pmpaddr0  ] = { csr_pmpaddr0  }
csr[ csr_pmpaddr16 ] = { csr_pmpaddr16 }
csr[ csr_pmpaddr32 ] = { csr_pmpaddr32 }
csr[ csr_pmpaddr48 ] = { csr_pmpaddr48 }

csr[ csr_cyclel    ] = {  csr_cyclel   }
csr[ csr_cycleh    ] = {  csr_cycleh   }
csr[ csr_instretl  ] = {  csr_instretl presync }
csr[ csr_instreth  ] = {  csr_instreth presync }
csr[ csr_hpmc3     ] = {  csr_hpmc3    presync }
csr[ csr_hpmc4     ] = {  csr_hpmc4    presync }
csr[ csr_hpmc5     ] = {  csr_hpmc5    presync }
csr[ csr_hpmc6     ] = {  csr_hpmc6    presync }
csr[ csr_hpmc3h    ] = {  csr_hpmc3h   presync }
csr[ csr_hpmc4h    ] = {  csr_hpmc4h   presync }
csr[ csr_hpmc5h    ] = {  csr_hpmc5h   presync }
csr[ csr_hpmc6h    ] = {  csr_hpmc6h   presync }

csr[ csr_mseccfgl  ] = {  csr_mseccfgl }
csr[ csr_mseccfgh  ] = {  csr_mseccfgh }

.end
