mirror of https://github.com/efabless/caravel.git
enhance gpio_all_i test to include more checkers
This commit is contained in:
parent
11ce4a30eb
commit
e2245ad333
|
@ -51,7 +51,7 @@ async def gpio_all_o(dut):
|
||||||
|
|
||||||
await wait_reg1(cpu,caravelEnv,0XBB)
|
await wait_reg1(cpu,caravelEnv,0XBB)
|
||||||
data_in = 0x8F66FD7B
|
data_in = 0x8F66FD7B
|
||||||
cocotb.log.info(f"[TEST] try send {hex(data_in)} to gpio[31:0]")
|
cocotb.log.info(f"[TEST] try drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
reg2 =0
|
reg2 =0
|
||||||
await wait_reg1(cpu,caravelEnv,0XFF)
|
await wait_reg1(cpu,caravelEnv,0XFF)
|
||||||
|
@ -73,47 +73,82 @@ async def gpio_all_o(dut):
|
||||||
@cocotb.test()
|
@cocotb.test()
|
||||||
@repot_test
|
@repot_test
|
||||||
async def gpio_all_i(dut):
|
async def gpio_all_i(dut):
|
||||||
caravelEnv,clock = await test_configure(dut,timeout_cycles=44980)
|
caravelEnv,clock = await test_configure(dut,timeout_cycles=56837)
|
||||||
cpu = RiskV(dut)
|
cpu = RiskV(dut)
|
||||||
cpu.cpu_force_reset()
|
cpu.cpu_force_reset()
|
||||||
cpu.cpu_release_reset()
|
cpu.cpu_release_reset()
|
||||||
uut = dut.uut
|
|
||||||
await wait_reg1(cpu,caravelEnv,0xAA)
|
await wait_reg1(cpu,caravelEnv,0xAA)
|
||||||
cocotb.log.info(f"[TEST] configuration finished")
|
cocotb.log.info(f"[TEST] configuration finished")
|
||||||
data_in = 0x8F66FD7B
|
data_in = 0xFFFFFFFF
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xBB)
|
await wait_reg1(cpu,caravelEnv,0xBB)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
data_in = 0xFFA88C5A
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
|
data_in = 0xAAAAAAAA
|
||||||
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xCC)
|
await wait_reg1(cpu,caravelEnv,0xCC)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
data_in = 0xC9536346
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
|
data_in = 0x55555555
|
||||||
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xDD)
|
||||||
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
|
data_in = 0x0
|
||||||
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD1)
|
await wait_reg1(cpu,caravelEnv,0xD1)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0x3F
|
data_in = 0x3F
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD2)
|
await wait_reg1(cpu,caravelEnv,0xD2)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[37:32]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datah has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0x0
|
data_in = 0x0
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD3)
|
await wait_reg1(cpu,caravelEnv,0xD3)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[37:32]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datah has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0x15
|
data_in = 0x15
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD4)
|
await wait_reg1(cpu,caravelEnv,0xD4)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[37:32]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datah has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0x2A
|
data_in = 0x2A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg2(cpu,caravelEnv,0xFF)
|
await wait_reg1(cpu,caravelEnv,0XD5)
|
||||||
|
if cpu.read_debug_reg2() == data_in:
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[37:32]")
|
||||||
|
else:
|
||||||
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datah has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
|
caravelEnv.release_gpio((37,0))
|
||||||
|
await wait_reg2(cpu,caravelEnv,0XFF)
|
||||||
|
if caravelEnv.monitor_gpio((37,0)).binstr != "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz":
|
||||||
|
cocotb.log.error(f"[TEST] ERROR: firmware can write to the gpios while they are configured as input_nopull gpio= {caravelEnv.monitor_gpio((37,0))}")
|
||||||
|
else:
|
||||||
|
cocotb.log.info(f"[TEST] [TEST] PASS: firmware cannot write to the gpios while they are configured as input_nopull gpio= {caravelEnv.monitor_gpio((37,0))}")
|
||||||
cocotb.log.info(f"[TEST] finish")
|
cocotb.log.info(f"[TEST] finish")
|
||||||
|
|
||||||
|
|
||||||
|
@ -361,59 +396,59 @@ async def gpio_all_bidir(dut):
|
||||||
await wait_reg1(cpu,caravelEnv,0x2A)
|
await wait_reg1(cpu,caravelEnv,0x2A)
|
||||||
cocotb.log.info(f"[TEST] configuration finished")
|
cocotb.log.info(f"[TEST] configuration finished")
|
||||||
data_in = 0x8F66FD7B
|
data_in = 0x8F66FD7B
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xBB)
|
await wait_reg1(cpu,caravelEnv,0xBB)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xFFA88C5A
|
data_in = 0xFFA88C5A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xCC)
|
await wait_reg1(cpu,caravelEnv,0xCC)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[31:0]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[31:0]")
|
||||||
caravelEnv.drive_gpio_in((31,0),data_in)
|
caravelEnv.drive_gpio_in((31,0),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD1)
|
await wait_reg1(cpu,caravelEnv,0xD1)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
data_in = 0x3F
|
data_in = 0x3F
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD2)
|
await wait_reg1(cpu,caravelEnv,0xD2)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
data_in = 0x0
|
data_in = 0x0
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD3)
|
await wait_reg1(cpu,caravelEnv,0xD3)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
data_in = 0x15
|
data_in = 0x15
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg1(cpu,caravelEnv,0xD4)
|
await wait_reg1(cpu,caravelEnv,0xD4)
|
||||||
if cpu.read_debug_reg2() == data_in:
|
if cpu.read_debug_reg2() == data_in:
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully through gpio[31:0]")
|
||||||
else:
|
else:
|
||||||
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
cocotb.log.error(f"[TEST] Error: reg_mprj_datal has recieved wrong data {cpu.read_debug_reg2()} instead of {data_in}")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
data_in = 0x2A
|
data_in = 0x2A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
cocotb.log.info(f"[TEST] drive {hex(data_in)} to gpio[37:32]")
|
||||||
caravelEnv.drive_gpio_in((37,32),data_in)
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
await wait_reg2(cpu,caravelEnv,0xFF)
|
await wait_reg2(cpu,caravelEnv,0xFF)
|
||||||
cocotb.log.info(f"[TEST] finish")
|
cocotb.log.info(f"[TEST] finish")
|
||||||
|
|
|
@ -7,7 +7,7 @@ void main(){
|
||||||
reg_wb_enable =1; // for enable writing to reg_debug_1 and reg_debug_2
|
reg_wb_enable =1; // for enable writing to reg_debug_1 and reg_debug_2
|
||||||
reg_debug_1 = 0x0;
|
reg_debug_1 = 0x0;
|
||||||
reg_debug_2 = 0x0;
|
reg_debug_2 = 0x0;
|
||||||
|
reg_hkspi_disable = 1;
|
||||||
reg_mprj_io_37 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
reg_mprj_io_37 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_36 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
reg_mprj_io_36 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_35 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
reg_mprj_io_35 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
|
@ -51,20 +51,35 @@ void main(){
|
||||||
reg_mprj_xfer = 1;
|
reg_mprj_xfer = 1;
|
||||||
while (reg_mprj_xfer == 1);
|
while (reg_mprj_xfer == 1);
|
||||||
|
|
||||||
reg_debug_1 = 0XAA; // configuration done wait environment to send 0x8F66FD7B to reg_mprj_datal
|
reg_debug_1 = 0XAA; // configuration done wait environment to send 0xFFFFFFFF to reg_mprj_datal
|
||||||
while (reg_mprj_datal != 0x8F66FD7B);
|
while (reg_mprj_datal != 0xFFFFFFFF);
|
||||||
reg_debug_1 = 0XBB; // configuration done wait environment to send 0xFFA88C5A to reg_mprj_datal
|
reg_debug_2 = reg_mprj_datal;
|
||||||
while (reg_mprj_datal != 0xFFA88C5A);
|
reg_debug_1 = 0XBB; // configuration done wait environment to send 0xAAAAAAAA to reg_mprj_datal
|
||||||
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
while (reg_mprj_datal != 0xAAAAAAAA);
|
||||||
while (reg_mprj_datal != 0xC9536346);
|
reg_debug_2 = reg_mprj_datal;
|
||||||
|
reg_debug_1 = 0XCC; // configuration done wait environment to send 0x55555555 to reg_mprj_datal
|
||||||
|
while (reg_mprj_datal != 0x55555555);
|
||||||
|
reg_debug_2 = reg_mprj_datal;
|
||||||
|
reg_debug_1 = 0XDD; // configuration done wait environment to send 0x0 to reg_mprj_datal
|
||||||
|
while (reg_mprj_datal != 0x0);
|
||||||
|
reg_debug_2 = reg_mprj_datal;
|
||||||
reg_debug_1 = 0XD1;
|
reg_debug_1 = 0XD1;
|
||||||
while (reg_mprj_datah != 0x3F);
|
while (reg_mprj_datah != 0x3F);
|
||||||
|
reg_debug_2 = reg_mprj_datah;
|
||||||
reg_debug_1 = 0XD2;
|
reg_debug_1 = 0XD2;
|
||||||
while (reg_mprj_datah != 0x0);
|
while (reg_mprj_datah != 0x0);
|
||||||
|
reg_debug_2 = reg_mprj_datah;
|
||||||
reg_debug_1 = 0XD3;
|
reg_debug_1 = 0XD3;
|
||||||
while (reg_mprj_datah != 0x15);
|
while (reg_mprj_datah != 0x15);
|
||||||
|
reg_debug_2 = reg_mprj_datah;
|
||||||
reg_debug_1 = 0XD4;
|
reg_debug_1 = 0XD4;
|
||||||
while (reg_mprj_datah != 0x2A);
|
while (reg_mprj_datah != 0x2A);
|
||||||
|
reg_debug_2 = reg_mprj_datah;
|
||||||
|
reg_debug_1 = 0XD5;
|
||||||
|
reg_debug_1 = 0XD5; // for delay insertion for release
|
||||||
|
// trying to inject error by sending data to gpio by firmware where gpios configured as input
|
||||||
|
reg_mprj_datal = 0x5AE1FFB8; // random number
|
||||||
|
reg_mprj_datah = 0x5AE1FFB8; // random number
|
||||||
|
|
||||||
reg_debug_2 = 0xFF;
|
reg_debug_2 = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ void main(){
|
||||||
|
|
||||||
// try to give input
|
// try to give input
|
||||||
reg_debug_1 = 0XBB; // configuration done wait environment to send 0x8F66FD7B to reg_mprj_userl
|
reg_debug_1 = 0XBB; // configuration done wait environment to send 0x8F66FD7B to reg_mprj_userl
|
||||||
int timeout = 1000;
|
int timeout = 100;
|
||||||
while (reg_mprj_userl != 0x8F66FD7B){
|
while (reg_mprj_userl != 0x8F66FD7B){
|
||||||
timeout--;
|
timeout--;
|
||||||
if (timeout==0){
|
if (timeout==0){
|
||||||
|
|
|
@ -15,7 +15,7 @@ reg = Regs()
|
||||||
@cocotb.test()
|
@cocotb.test()
|
||||||
@repot_test
|
@repot_test
|
||||||
async def gpio_all_o_user(dut):
|
async def gpio_all_o_user(dut):
|
||||||
caravelEnv,clock = await test_configure(dut,timeout_cycles=376123)
|
caravelEnv,clock = await test_configure(dut,timeout_cycles=585321)
|
||||||
cpu = RiskV(dut)
|
cpu = RiskV(dut)
|
||||||
cpu.cpu_force_reset()
|
cpu.cpu_force_reset()
|
||||||
cpu.cpu_release_reset()
|
cpu.cpu_release_reset()
|
||||||
|
|
Loading…
Reference in New Issue