| 1 |
2 |
sergeykhbr |
{
|
| 2 |
|
|
'GlobalSettings':{
|
| 3 |
|
|
'SimEnable':true,
|
| 4 |
|
|
'GUI':true,
|
| 5 |
|
|
'ScriptFile':'',
|
| 6 |
|
|
'Description':'This configuration instantiates functional RISC-V model'
|
| 7 |
|
|
},
|
| 8 |
|
|
'Services':[
|
| 9 |
|
|
{'Class':'GuiPluginClass','Instances':[
|
| 10 |
|
|
{'Name':'gui0','Attr':[
|
| 11 |
|
|
['LogLevel',4],
|
| 12 |
|
|
['WidgetsConfig',{
|
| 13 |
|
|
'Serial':'port1',
|
| 14 |
|
|
'AutoComplete':'autocmd0',
|
| 15 |
|
|
'SocInfo':'info0',
|
| 16 |
3 |
sergeykhbr |
'PollingMs':250,
|
| 17 |
4 |
sergeykhbr |
'EventsLoopMs':10,
|
| 18 |
|
|
'RegsViewWidget':{
|
| 19 |
|
|
'RegList':[['ra', 's0', 'a0'],
|
| 20 |
|
|
['sp', 's1', 'a1'],
|
| 21 |
|
|
['gp', 's2', 'a2'],
|
| 22 |
|
|
['tp', 's3', 'a3'],
|
| 23 |
|
|
['' , 's4', 'a4'],
|
| 24 |
|
|
['t0', 's5', 'a5'],
|
| 25 |
|
|
['t1', 's6', 'a6'],
|
| 26 |
|
|
['t2', 's7', 'a7'],
|
| 27 |
|
|
['t3', 's8', ''],
|
| 28 |
|
|
['t4', 's9', ''],
|
| 29 |
|
|
['t5', 's10', 'pc'],
|
| 30 |
|
|
['t6', 's11', 'npc']],
|
| 31 |
|
|
'RegWidthBytes':8,
|
| 32 |
|
|
}
|
| 33 |
2 |
sergeykhbr |
}],
|
| 34 |
|
|
['SocInfo','info0'],
|
| 35 |
|
|
['CommandExecutor','cmdexec0']
|
| 36 |
|
|
]}]},
|
| 37 |
4 |
sergeykhbr |
{'Class':'SerialDbgServiceClass','Instances':[
|
| 38 |
|
|
{'Name':'uarttap','Attr':[
|
| 39 |
|
|
['LogLevel',1],
|
| 40 |
|
|
['Port','uartmst0'],
|
| 41 |
|
|
['Timeout',500]]}]},
|
| 42 |
2 |
sergeykhbr |
{'Class':'EdclServiceClass','Instances':[
|
| 43 |
|
|
{'Name':'edcltap','Attr':[
|
| 44 |
|
|
['LogLevel',1],
|
| 45 |
|
|
['Transport','udpedcl'],
|
| 46 |
|
|
['seq_cnt',0]]}]},
|
| 47 |
|
|
{'Class':'UdpServiceClass','Instances':[
|
| 48 |
|
|
{'Name':'udpboard','Attr':[
|
| 49 |
|
|
['LogLevel',1],
|
| 50 |
|
|
['Timeout',0x190]]},
|
| 51 |
|
|
{'Name':'udpedcl','Attr':[
|
| 52 |
|
|
['LogLevel',1],
|
| 53 |
|
|
['Timeout',0x3e8],
|
| 54 |
|
|
['HostIP','192.168.0.53'],
|
| 55 |
|
|
['BoardIP','192.168.0.51']]}]},
|
| 56 |
4 |
sergeykhbr |
{'Class':'TcpServerClass','Instances':[
|
| 57 |
|
|
{'Name':'rpcserver','Attr':[
|
| 58 |
|
|
['LogLevel',4],
|
| 59 |
|
|
['Enable',true],
|
| 60 |
|
|
['Timeout',500],
|
| 61 |
|
|
['BlockingMode',true],
|
| 62 |
|
|
['HostIP',''],
|
| 63 |
|
|
['HostPort',8687]]}]},
|
| 64 |
2 |
sergeykhbr |
{'Class':'ComPortServiceClass','Instances':[
|
| 65 |
|
|
{'Name':'port1','Attr':[
|
| 66 |
|
|
['LogLevel',2],
|
| 67 |
|
|
['Enable',true],
|
| 68 |
|
|
['UartSim','uart0'],
|
| 69 |
|
|
['ComPortName','COM3'],
|
| 70 |
|
|
['ComPortSpeed',115200]]}]},
|
| 71 |
|
|
{'Class':'ElfReaderServiceClass','Instances':[
|
| 72 |
|
|
{'Name':'loader0','Attr':[
|
| 73 |
4 |
sergeykhbr |
['LogLevel',4],
|
| 74 |
|
|
['SourceProc','src0']]}]},
|
| 75 |
2 |
sergeykhbr |
{'Class':'ConsoleServiceClass','Instances':[
|
| 76 |
|
|
{'Name':'console0','Attr':[
|
| 77 |
|
|
['LogLevel',4],
|
| 78 |
|
|
['Enable',true],
|
| 79 |
|
|
['StepQueue','core0'],
|
| 80 |
|
|
['AutoComplete','autocmd0'],
|
| 81 |
|
|
['CommandExecutor','cmdexec0'],
|
| 82 |
|
|
['DefaultLogFile','default.log'],
|
| 83 |
|
|
['Signals','gpio0'],
|
| 84 |
|
|
['InputPort','port1']]}]},
|
| 85 |
|
|
{'Class':'AutoCompleterClass','Instances':[
|
| 86 |
|
|
{'Name':'autocmd0','Attr':[
|
| 87 |
|
|
['LogLevel',4],
|
| 88 |
|
|
['SocInfo','info0']
|
| 89 |
|
|
['HistorySize',64],
|
| 90 |
|
|
['History',[
|
| 91 |
|
|
'csr MCPUID',
|
| 92 |
|
|
'csr MTIME',
|
| 93 |
|
|
'read 0xfffff004 128',
|
| 94 |
|
|
'loadelf helloworld',
|
| 95 |
4 |
sergeykhbr |
'loadelf e:/zephyr.elf nocode',
|
| 96 |
2 |
sergeykhbr |
]]
|
| 97 |
|
|
]}]},
|
| 98 |
|
|
{'Class':'CmdExecutorClass','Instances':[
|
| 99 |
|
|
{'Name':'cmdexec0','Attr':[
|
| 100 |
|
|
['LogLevel',4],
|
| 101 |
|
|
['Tap','edcltap'],
|
| 102 |
|
|
['SocInfo','info0']
|
| 103 |
|
|
]}]},
|
| 104 |
|
|
{'Class':'SocInfoClass','Instances':[
|
| 105 |
|
|
{'Name':'info0','Attr':[
|
| 106 |
|
|
['LogLevel',4],
|
| 107 |
|
|
['PnpBaseAddress',0xFFFFF000],
|
| 108 |
|
|
['GpioBaseAddress',0x80000000],
|
| 109 |
|
|
['DsuBaseAddress',0x80080000],
|
| 110 |
4 |
sergeykhbr |
['ListRegs',[['zero',8,0x08000],['ra',8,0x08008],['sp',8,0x08010],['gp',8,0x08018],
|
| 111 |
|
|
['tp',8,0x08020],['t0',8,0x08028],['t1',8,0x08030],['t2',8,0x08038],
|
| 112 |
|
|
['s0',8,0x08040],['s1',8,0x08048],['a0',8,0x08050],['a1',8,0x08058],
|
| 113 |
|
|
['a2',8,0x08060],['a3',8,0x08068],['a4',8,0x08070],['a5',8,0x08078],
|
| 114 |
|
|
['a6',8,0x08080],['a7',8,0x08088],['s2',8,0x08090],['s3',8,0x08098],
|
| 115 |
|
|
['s4',8,0x080A0],['s5',8,0x080A8],['s6',8,0x080B0],['s7',8,0x080B8],
|
| 116 |
|
|
['s8',8,0x080C0],['s9',8,0x080C8],['s10',8,0x080D0],['s11',8,0x080D8],
|
| 117 |
|
|
['t3',8,0x080E0],['t4',8,0x080E8],['t5',8,0x080F0],['t6',8,0x080F8],
|
| 118 |
|
|
['pc',8,0x08100,'Instruction Pointer'],
|
| 119 |
|
|
['npc',8,0x08108,'Next IP']]],
|
| 120 |
2 |
sergeykhbr |
['ListCSR',[
|
| 121 |
|
|
['MISA',8,0xf10,'Architecture and supported set of instructions'],
|
| 122 |
|
|
['MVENDORID',8,0xf11,'Vecndor ID'],
|
| 123 |
|
|
['MARCHID',8,0xf12,'Architecture ID'],
|
| 124 |
|
|
['MIMPLEMENTATIONID',8,0xf13,'Implementation ID'],
|
| 125 |
|
|
['MHARTID',8,0xf14,'Thread ID'],
|
| 126 |
|
|
['MTIME',8,0x701,'Machine wall-clock time.'],
|
| 127 |
|
|
['MSTATUS',8,0x300,'Machine mode status register.'],
|
| 128 |
|
|
['MIE',8,0x304,'Machine interrupt enable register.'],
|
| 129 |
|
|
['MTVEC',8,0x305,'Machine mode trap vector register.'],
|
| 130 |
|
|
['MSCRATCH',8,0x340,'Machine mode scratch register.'],
|
| 131 |
|
|
['MEPC',8,0x341,'Machine exception program counter'],
|
| 132 |
|
|
['MCAUSE',8,0x342,'Machine cause trap register'],
|
| 133 |
|
|
['MBADADDR',8,0x343,'Machine mode bad address register'],
|
| 134 |
|
|
['MIP',8,0x344,'Machine mode interrupt pending bits register']
|
| 135 |
|
|
]]]}]},
|
| 136 |
|
|
{'Class':'SimplePluginClass','Instances':[
|
| 137 |
|
|
{'Name':'example0','Attr':[
|
| 138 |
|
|
['LogLevel',4],
|
| 139 |
|
|
['attr1','This is test attr value']]}]},
|
| 140 |
4 |
sergeykhbr |
{'Class':'RiscvSourceServiceClass','Instances':[
|
| 141 |
2 |
sergeykhbr |
{'Name':'src0','Attr':[
|
| 142 |
|
|
['LogLevel',4]]}]},
|
| 143 |
|
|
{'Class':'GrethClass','Instances':[
|
| 144 |
|
|
{'Name':'greth0','Attr':[
|
| 145 |
|
|
['LogLevel',1],
|
| 146 |
|
|
['BaseAddress',0x80040000],
|
| 147 |
|
|
['Length',0x40000],
|
| 148 |
4 |
sergeykhbr |
['SysBusMasterID',2,'Hardcoded in VHDL'],
|
| 149 |
2 |
sergeykhbr |
['IP',0x55667788],
|
| 150 |
|
|
['MAC',0xfeedface00],
|
| 151 |
|
|
['Bus','axi0'],
|
| 152 |
|
|
['Transport','udpboard']
|
| 153 |
|
|
]}]},
|
| 154 |
4 |
sergeykhbr |
{'Class':'CpuRiver_FunctionalClass','Instances':[
|
| 155 |
2 |
sergeykhbr |
{'Name':'core0','Attr':[
|
| 156 |
|
|
['Enable',true],
|
| 157 |
4 |
sergeykhbr |
['LogLevel',3],
|
| 158 |
|
|
['SysBusMasterID',0,'Used to gather Bus statistic'],
|
| 159 |
|
|
['SysBus','axi0'],
|
| 160 |
|
|
['DbgBus','dbgbus0'],
|
| 161 |
|
|
['SysBusWidthBytes',8,'Split dma transactions from CPU'],
|
| 162 |
|
|
['SourceCode','src0'],
|
| 163 |
|
|
['ListExtISA',['I','M','A','C']],
|
| 164 |
|
|
['StackTraceSize',64,'Number of 16-bytes entries'],
|
| 165 |
2 |
sergeykhbr |
['FreqHz',60000000],
|
| 166 |
4 |
sergeykhbr |
['VendorID',0x0001,'Hardcoded in CSR mvendorid value: UC Berkeley Rocket repo'],
|
| 167 |
|
|
['VectorTable',0x100,'Hardcoded in CSR mtvec value: interrupts vector table address'],
|
| 168 |
|
|
['ResetVector',0x0040,'Initial intruction pointer value (config parameter)'],
|
| 169 |
2 |
sergeykhbr |
['GenerateRegTraceFile',false,'Generate Registers modification file to compare with SystemC'],
|
| 170 |
|
|
['GenerateMemTraceFile',false,'Generate Memory access file to compare with SystemC'],
|
| 171 |
|
|
]}]},
|
| 172 |
|
|
{'Class':'MemorySimClass','Instances':[
|
| 173 |
|
|
{'Name':'bootrom0','Attr':[
|
| 174 |
|
|
['LogLevel',1],
|
| 175 |
4 |
sergeykhbr |
['InitFile','../../../examples/boot/linuxbuild/bin/bootimage.hex'],
|
| 176 |
2 |
sergeykhbr |
['ReadOnly',true],
|
| 177 |
|
|
['BaseAddress',0x0],
|
| 178 |
|
|
['Length',8192]
|
| 179 |
|
|
]}]},
|
| 180 |
|
|
{'Class':'MemorySimClass','Instances':[
|
| 181 |
|
|
{'Name':'fwimage0','Attr':[
|
| 182 |
|
|
['LogLevel',1],
|
| 183 |
4 |
sergeykhbr |
['InitFile','../../../examples/zephyr/gcc711/zephyr.hex'],
|
| 184 |
2 |
sergeykhbr |
['ReadOnly',true],
|
| 185 |
|
|
['BaseAddress',0x00100000],
|
| 186 |
|
|
['Length',0x40000]
|
| 187 |
|
|
]}]},
|
| 188 |
|
|
{'Class':'MemorySimClass','Instances':[
|
| 189 |
|
|
{'Name':'sram0','Attr':[
|
| 190 |
|
|
['LogLevel',1],
|
| 191 |
4 |
sergeykhbr |
['InitFile','../../../examples/zephyr/gcc711/zephyr.hex'],
|
| 192 |
2 |
sergeykhbr |
['ReadOnly',false],
|
| 193 |
|
|
['BaseAddress',0x10000000],
|
| 194 |
|
|
['Length',0x80000]
|
| 195 |
|
|
]}]},
|
| 196 |
|
|
{'Class':'GPIOClass','Instances':[
|
| 197 |
|
|
{'Name':'gpio0','Attr':[
|
| 198 |
|
|
['LogLevel',3],
|
| 199 |
|
|
['BaseAddress',0x80000000],
|
| 200 |
|
|
['Length',4096],
|
| 201 |
|
|
['DIP',0x1]
|
| 202 |
|
|
]}]},
|
| 203 |
|
|
{'Class':'UARTClass','Instances':[
|
| 204 |
|
|
{'Name':'uart0','Attr':[
|
| 205 |
|
|
['LogLevel',1],
|
| 206 |
|
|
['BaseAddress',0x80001000],
|
| 207 |
|
|
['Length',4096],
|
| 208 |
4 |
sergeykhbr |
['IrqControl',['irqctrl0','irq1']],
|
| 209 |
|
|
['AutoTestEna',false,'Enable/Disable automatic test input via serial interface'],
|
| 210 |
|
|
['TestCases',[[22097,'s'],
|
| 211 |
|
|
[22500,'et'],
|
| 212 |
|
|
[24399,'_mo'],
|
| 213 |
|
|
[25780,'dul'],
|
| 214 |
|
|
[28999,'e s'],
|
| 215 |
|
|
[31599,'oc'],
|
| 216 |
|
|
[32599,'\r\n'],
|
| 217 |
|
|
[48599,'dhr'],
|
| 218 |
|
|
[49599,'y\r\n']]]
|
| 219 |
|
|
|
| 220 |
2 |
sergeykhbr |
]}]},
|
| 221 |
|
|
{'Class':'IrqControllerClass','Instances':[
|
| 222 |
|
|
{'Name':'irqctrl0','Attr':[
|
| 223 |
|
|
['LogLevel',1],
|
| 224 |
|
|
['BaseAddress',0x80002000],
|
| 225 |
|
|
['Length',4096],
|
| 226 |
|
|
['CPU','core0'],
|
| 227 |
|
|
['IrqTotal',4],
|
| 228 |
|
|
['CSR_MIPI',0x783]
|
| 229 |
|
|
]}]},
|
| 230 |
|
|
{'Class':'DSUClass','Instances':[
|
| 231 |
|
|
{'Name':'dsu0','Attr':[
|
| 232 |
|
|
['LogLevel',1],
|
| 233 |
|
|
['BaseAddress',0x80080000],
|
| 234 |
|
|
['Length',0x20000],
|
| 235 |
|
|
['CPU','core0'],
|
| 236 |
|
|
['Bus','axi0']
|
| 237 |
|
|
]}]},
|
| 238 |
|
|
{'Class':'GNSSStubClass','Instances':[
|
| 239 |
|
|
{'Name':'gnss0','Attr':[
|
| 240 |
|
|
['LogLevel',1],
|
| 241 |
|
|
['BaseAddress',0x80003000],
|
| 242 |
|
|
['Length',4096],
|
| 243 |
4 |
sergeykhbr |
['IrqControl',['irqctrl0','irq5']],
|
| 244 |
2 |
sergeykhbr |
['ClkSource','core0']
|
| 245 |
|
|
]}]},
|
| 246 |
|
|
{'Class':'RfControllerClass','Instances':[
|
| 247 |
|
|
{'Name':'rfctrl0','Attr':[
|
| 248 |
|
|
['LogLevel',1],
|
| 249 |
|
|
['BaseAddress',0x80004000],
|
| 250 |
|
|
['Length',4096]
|
| 251 |
|
|
]}]},
|
| 252 |
|
|
{'Class':'GPTimersClass','Instances':[
|
| 253 |
|
|
{'Name':'gptmr0','Attr':[
|
| 254 |
|
|
['LogLevel',1],
|
| 255 |
|
|
['BaseAddress',0x80005000],
|
| 256 |
|
|
['Length',4096],
|
| 257 |
4 |
sergeykhbr |
['IrqControl',['irqctrl0','irq3']],
|
| 258 |
2 |
sergeykhbr |
['ClkSource','core0']
|
| 259 |
|
|
]}]},
|
| 260 |
4 |
sergeykhbr |
{'Class':'UartMstClass','Instances':[
|
| 261 |
|
|
{'Name':'uartmst0','Attr':[
|
| 262 |
|
|
['LogLevel',1],
|
| 263 |
|
|
['Bus','axi0']
|
| 264 |
|
|
]}]},
|
| 265 |
2 |
sergeykhbr |
{'Class':'FseV2Class','Instances':[
|
| 266 |
|
|
{'Name':'fsegps0','Attr':[
|
| 267 |
|
|
['LogLevel',1],
|
| 268 |
|
|
['BaseAddress',0x80008000],
|
| 269 |
|
|
['Length',4096]
|
| 270 |
|
|
]}]},
|
| 271 |
|
|
{'Class':'PNPClass','Instances':[
|
| 272 |
|
|
{'Name':'pnp0','Attr':[
|
| 273 |
|
|
['LogLevel',4],
|
| 274 |
|
|
['BaseAddress',0xfffff000],
|
| 275 |
|
|
['Length',4096],
|
| 276 |
|
|
['Tech',0],
|
| 277 |
|
|
['AdcDetector',0xff]
|
| 278 |
|
|
]}]},
|
| 279 |
|
|
{'Class':'BusClass','Instances':[
|
| 280 |
|
|
{'Name':'axi0','Attr':[
|
| 281 |
|
|
['LogLevel',3],
|
| 282 |
4 |
sergeykhbr |
['DSU','dsu0'],
|
| 283 |
2 |
sergeykhbr |
['MapList',['bootrom0','fwimage0','sram0','gpio0',
|
| 284 |
|
|
'uart0','irqctrl0','gnss0','gptmr0',
|
| 285 |
|
|
'pnp0','dsu0','greth0','rfctrl0','fsegps0']]
|
| 286 |
|
|
]}]},
|
| 287 |
4 |
sergeykhbr |
{'Class':'BusClass','Instances':[
|
| 288 |
|
|
{'Name':'dbgbus0','Attr':[
|
| 289 |
|
|
['LogLevel',3],
|
| 290 |
|
|
['MapList',[['core0','pc'],
|
| 291 |
|
|
['core0','npc'],
|
| 292 |
|
|
['core0','status'],
|
| 293 |
|
|
['core0','csr'],
|
| 294 |
|
|
['core0','regs'],
|
| 295 |
|
|
['core0','stepping_cnt'],
|
| 296 |
|
|
['core0','clock_cnt'],
|
| 297 |
|
|
['core0','executed_cnt'],
|
| 298 |
|
|
['core0','stack_trace_cnt'],
|
| 299 |
|
|
['core0','stack_trace_buf'],
|
| 300 |
|
|
['core0','br_fetch_addr'],
|
| 301 |
|
|
['core0','br_fetch_instr'],
|
| 302 |
|
|
['core0','br_hw_add'],
|
| 303 |
|
|
['core0','br_hw_remove'],
|
| 304 |
|
|
]]
|
| 305 |
|
|
]}]},
|
| 306 |
|
|
{'Class':'HardResetClass','Instances':[
|
| 307 |
|
|
{'Name':'reset0','Attr':[
|
| 308 |
|
|
['LogLevel',4],
|
| 309 |
|
|
['ResetDevices',[
|
| 310 |
|
|
'core0'
|
| 311 |
|
|
]]
|
| 312 |
|
|
]}]},
|
| 313 |
2 |
sergeykhbr |
{'Class':'BoardSimClass','Instances':[
|
| 314 |
|
|
{'Name':'boardsim','Attr':[
|
| 315 |
|
|
['LogLevel',1]
|
| 316 |
|
|
]}]}
|
| 317 |
|
|
]
|
| 318 |
|
|
}
|