1*** Variables *** 2${URI} @https://dl.antmicro.com/projects/renode 3${UART} sysbus.uart 4${CPU_IBEX_NATIVE_LINUX} ${URI}/libVcpu_ibex-Linux-x86_64-13112907851.so-s_2251128-ab2dcb1801188d7f934bdeafa93f9c1edc60ad39 5${CPU_IBEX_NATIVE_WINDOWS} ${URI}/libVcpu_ibex-Windows-x86_64-13112907851.dll-s_3426669-58d11ffc81ea755c1d1151e6b33fc13164bb13d5 6${CPU_IBEX_NATIVE_MACOS} ${URI}/libVcpu_ibex-macOS-x86_64-13112907851.dylib-s_336528-7677f09f18bfb2937ad2bffdd63ed7d76bb15d56 7 8*** Keywords *** 9Create Machine 10 Execute Command using sysbus 11 Execute Command mach create 12 Execute Command machine LoadPlatformDescription @platforms/cpus/verilated/verilated_ibex.repl 13 Execute Command sysbus.cpu SimulationFilePathLinux ${CPU_IBEX_NATIVE_LINUX} 14 Execute Command sysbus.cpu SimulationFilePathWindows ${CPU_IBEX_NATIVE_WINDOWS} 15 Execute Command sysbus.cpu SimulationFilePathMacOS ${CPU_IBEX_NATIVE_MACOS} 16 Execute Command logLevel 3 17 Execute Command $bios=@https://dl.antmicro.com/projects/renode/litex_ibex--bios.bin-s_20712-80d064cf8ab28801b78c0e5a63cac4830016f6c8 18 Execute Command showAnalyzer ${UART} 19 Execute Command sysbus LoadBinary $bios 0x0 20 Execute Command cpu PC 0x0 21 Create Terminal Tester ${UART} 22 Start Emulation 23 24Get Virtual Time 25 ${out}= Execute Command emulation GetTimeSourceInfo 26 ${match}= Get Regexp Matches ${out} Elapsed Virtual Time: 00:00:([0-9]+).([0-9]+) 1 2 27 ${mc}= Convert To Integer ${match[0][1]} 28 ${se}= Convert To Integer ${match[0][0]} 29 ${t}= Evaluate ${mc} + ${se} * 1000000 30 RETURN ${t} 31 32Sleep And Measure 33 ${t1}= Get Virtual Time 34 Sleep 4s 35 ${t2}= Get Virtual Time 36 Should Be Equal ${t1} ${t2} 37 38 39*** Test Cases *** 40Should Pause And Resume 41 [Tags] skip_host_arm 42 Create Machine 43 44 Wait For Line On Uart Build your hardware, easily! pauseEmulation=true 45 Sleep And Measure 46 Execute Command start 47 Wait For Line On Uart CPU:\\s+Ibex treatAsRegex=true 48 49Should Pause And Resume Cpu 50 [Tags] skip_host_arm 51 Create Machine 52 53 Wait For Line On Uart Build your hardware, easily! 54 Execute Command cpu Pause 55 Sleep And Measure 56 Execute Command cpu Resume 57 Wait For Line On Uart CPU:\\s+Ibex treatAsRegex=true 58 59Should Enter Single Step Blocking 60 [Tags] skip_host_arm 61 Create Machine 62 63 Wait For Line On Uart Build your hardware, easily! 64 Execute Command cpu ExecutionMode SingleStep 65 Sleep And Measure 66 Execute Command cpu ExecutionMode Continuous 67 Wait For Line On Uart CPU:\\s+Ibex treatAsRegex=true 68 69Should Enter Single Step Non Blocking 70 [Tags] skip_host_arm 71 Create Machine 72 Execute Command emulation SingleStepBlocking false 73 74 Wait For Line On Uart Build your hardware, easily! 75 Execute Command cpu ExecutionMode SingleStep 76 ${t1}= Get Virtual Time 77 Test If Uart Is Idle 4 78 ${t2}= Get Virtual Time 79 Should Be True ${t2} - ${t1} >= 4000000 80 Execute Command cpu ExecutionMode Continuous 81 Wait For Line On Uart CPU:\\s+Ibex treatAsRegex=true 82 83Should Reset 84 [Tags] skip_host_arm 85 Create Machine 86 87 Wait For Line On Uart Build your hardware, easily! 88 89 Execute Command cpu Reset 90 Execute Command cpu PC 0x0 91 Execute Command cpu Resume 92 93 Wait For Line On Uart Build your hardware, easily! 94