mirror of https://github.com/efabless/caravel.git
update input tests to cover the gpio from 32 to 37
This commit is contained in:
parent
a69185dfca
commit
fb34d9a541
|
@ -76,6 +76,14 @@ void main(){
|
||||||
while (reg_mprj_datal != 0xFFA88C5A);
|
while (reg_mprj_datal != 0xFFA88C5A);
|
||||||
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
||||||
while (reg_mprj_datal != 0xC9536346);
|
while (reg_mprj_datal != 0xC9536346);
|
||||||
|
reg_debug_1 = 0XD1;
|
||||||
|
while (reg_mprj_datah != 0x3F);
|
||||||
|
reg_debug_1 = 0XD2;
|
||||||
|
while (reg_mprj_datah != 0x0);
|
||||||
|
reg_debug_1 = 0XD3;
|
||||||
|
while (reg_mprj_datah != 0x15);
|
||||||
|
reg_debug_1 = 0XD4;
|
||||||
|
while (reg_mprj_datah != 0x2A);
|
||||||
|
|
||||||
reg_debug_2 = 0xFF;
|
reg_debug_2 = 0xFF;
|
||||||
|
|
||||||
|
|
|
@ -10,44 +10,44 @@ void main()
|
||||||
reg_debug_1 = 0x0;
|
reg_debug_1 = 0x0;
|
||||||
reg_debug_2 = 0x0;
|
reg_debug_2 = 0x0;
|
||||||
|
|
||||||
reg_mprj_io_37 = 0x1803;
|
reg_mprj_io_37 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_36 = 0x1803;
|
reg_mprj_io_36 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_35 = 0x1803;
|
reg_mprj_io_35 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_34 = 0x1803;
|
reg_mprj_io_34 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_33 = 0x1803;
|
reg_mprj_io_33 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_32 = 0x1803;
|
reg_mprj_io_32 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_31 = 0x1803;
|
reg_mprj_io_31 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_30 = 0x1803;
|
reg_mprj_io_30 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_29 = 0x1803;
|
reg_mprj_io_29 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_28 = 0x1803;
|
reg_mprj_io_28 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_27 = 0x1803;
|
reg_mprj_io_27 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_26 = 0x1803;
|
reg_mprj_io_26 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_25 = 0x1803;
|
reg_mprj_io_25 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_24 = 0x1803;
|
reg_mprj_io_24 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_23 = 0x1803;
|
reg_mprj_io_23 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_22 = 0x1803;
|
reg_mprj_io_22 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_21 = 0x1803;
|
reg_mprj_io_21 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_20 = 0x1803;
|
reg_mprj_io_20 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_19 = 0x1803;
|
reg_mprj_io_19 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_18 = 0x1803;
|
reg_mprj_io_18 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_17 = 0x1803;
|
reg_mprj_io_17 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_16 = 0x1803;
|
reg_mprj_io_16 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_15 = 0x1803;
|
reg_mprj_io_15 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_14 = 0x1803;
|
reg_mprj_io_14 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_13 = 0x1803;
|
reg_mprj_io_13 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_12 = 0x1803;
|
reg_mprj_io_12 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_11 = 0x1803;
|
reg_mprj_io_11 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_10 = 0x1803;
|
reg_mprj_io_10 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_9 = 0x1803;
|
reg_mprj_io_9 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_8 = 0x1803;
|
reg_mprj_io_8 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_7 = 0x1803;
|
reg_mprj_io_7 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_6 = 0x1803;
|
reg_mprj_io_6 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_5 = 0x1803;
|
reg_mprj_io_5 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_4 = 0x1803;
|
reg_mprj_io_4 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_3 = 0x1803;
|
reg_mprj_io_3 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_2 = 0x1803;
|
reg_mprj_io_2 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_1 = 0x1803;
|
reg_mprj_io_1 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_0 = 0x1803;
|
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
|
|
||||||
reg_debug_1 = 0xFF; // finish configuration
|
reg_debug_1 = 0xFF; // finish configuration
|
||||||
|
|
||||||
|
@ -57,7 +57,15 @@ void main()
|
||||||
while (reg_mprj_datal != 0xFFA88C5A);
|
while (reg_mprj_datal != 0xFFA88C5A);
|
||||||
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
||||||
while (reg_mprj_datal != 0xC9536346);
|
while (reg_mprj_datal != 0xC9536346);
|
||||||
|
reg_debug_1 = 0XD1;
|
||||||
|
while (reg_mprj_datah != 0x3F);
|
||||||
|
reg_debug_1 = 0XD2;
|
||||||
|
while (reg_mprj_datah != 0x0);
|
||||||
|
reg_debug_1 = 0XD3;
|
||||||
|
while (reg_mprj_datah != 0x15);
|
||||||
|
reg_debug_1 = 0XD4;
|
||||||
|
while (reg_mprj_datah != 0x2A);
|
||||||
|
|
||||||
reg_debug_2 = 0xFF;
|
reg_debug_2 = 0xFF;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,18 +182,38 @@ async def bitbang_cpu_all_i(dut):
|
||||||
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 = 0x8F66FD7B
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xFFA88C5A
|
data_in = 0xFFA88C5A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
|
data_in = 0x3F
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD2)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x0
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD3)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x15
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD4)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x2A
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
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")
|
||||||
|
@ -298,20 +318,39 @@ async def bitbang_spi_i(dut):
|
||||||
await load_spi(caravelEnv) # load
|
await load_spi(caravelEnv) # load
|
||||||
|
|
||||||
await wait_reg1(cpu,caravelEnv,0xAA)
|
await wait_reg1(cpu,caravelEnv,0xAA)
|
||||||
cocotb.log.info("[TEST] finish configuring using bitbang")
|
cocotb.log.info(f"[TEST] configuration finished")
|
||||||
data_in = 0x8F66FD7B
|
data_in = 0x8F66FD7B
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xFFA88C5A
|
data_in = 0xFFA88C5A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
|
data_in = 0x3F
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD2)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x0
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD3)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x15
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD4)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x2A
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
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")
|
|
@ -56,7 +56,7 @@ 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=45464)
|
caravelEnv,clock = await test_configure(dut,timeout_cycles=44980)
|
||||||
cpu = RiskV(dut)
|
cpu = RiskV(dut)
|
||||||
cpu.cpu_force_reset()
|
cpu.cpu_force_reset()
|
||||||
cpu.cpu_release_reset()
|
cpu.cpu_release_reset()
|
||||||
|
@ -64,19 +64,38 @@ async def gpio_all_i(dut):
|
||||||
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 = 0x8F66FD7B
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xFFA88C5A
|
data_in = 0xFFA88C5A
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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[0:32]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
data_in = 0xC9536346
|
data_in = 0xC9536346
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {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)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
|
data_in = 0x3F
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD2)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x0
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD3)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x15
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
caravelEnv.drive_gpio_in((37,32),data_in)
|
||||||
|
await wait_reg1(cpu,caravelEnv,0xD4)
|
||||||
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[37:32]")
|
||||||
|
data_in = 0x2A
|
||||||
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[37:32]")
|
||||||
|
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")
|
||||||
|
|
||||||
|
@ -102,17 +121,17 @@ async def gpio_all_i_pu(dut):
|
||||||
cocotb.log.info(f"[TEST] configuration finished")
|
cocotb.log.info(f"[TEST] configuration finished")
|
||||||
await wait_reg1(cpu,caravelEnv,0xB1)
|
await wait_reg1(cpu,caravelEnv,0xB1)
|
||||||
data_in = 0x0
|
data_in = 0x0
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:31]")
|
cocotb.log.info(f"[TEST] send {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,0xB2)
|
await wait_reg1(cpu,caravelEnv,0xB2)
|
||||||
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[0:31]")
|
cocotb.log.info(f"[TEST] data {hex(data_in)} sent successfully to gpio[31:0]")
|
||||||
size = 32
|
size = 32
|
||||||
data_in = int(size) * 'z'
|
data_in = int(size) * 'z'
|
||||||
data_in = 0xFFFFFFFF
|
data_in = 0xFFFFFFFF
|
||||||
cocotb.log.info(f"[TEST] send {data_in} to gpio[0:32]")
|
cocotb.log.info(f"[TEST] send {data_in} to gpio[31:0]")
|
||||||
caravelEnv.release_gpio((31,0))
|
caravelEnv.release_gpio((31,0))
|
||||||
await wait_reg1(cpu,caravelEnv,0xB3)
|
await wait_reg1(cpu,caravelEnv,0xB3)
|
||||||
cocotb.log.info(f"[TEST] data {data_in} sent successfully to gpio[0:31]")
|
cocotb.log.info(f"[TEST] data {data_in} sent successfully to gpio[31:0]")
|
||||||
data_in = 0x0
|
data_in = 0x0
|
||||||
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:16]")
|
cocotb.log.info(f"[TEST] send {hex(data_in)} to gpio[0:16]")
|
||||||
caravelEnv.drive_gpio_in((15,0),data_in)
|
caravelEnv.drive_gpio_in((15,0),data_in)
|
||||||
|
|
|
@ -8,45 +8,45 @@ void main(){
|
||||||
reg_debug_1 = 0x0;
|
reg_debug_1 = 0x0;
|
||||||
reg_debug_2 = 0x0;
|
reg_debug_2 = 0x0;
|
||||||
|
|
||||||
reg_mprj_io_37 = 0x1803;
|
reg_mprj_io_37 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_36 = 0x1803;
|
reg_mprj_io_36 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_35 = 0x1803;
|
reg_mprj_io_35 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_34 = 0x1803;
|
reg_mprj_io_34 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_33 = 0x1803;
|
reg_mprj_io_33 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_32 = 0x1803;
|
reg_mprj_io_32 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_31 = 0x1803;
|
reg_mprj_io_31 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_30 = 0x1803;
|
reg_mprj_io_30 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_29 = 0x1803;
|
reg_mprj_io_29 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_28 = 0x1803;
|
reg_mprj_io_28 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_27 = 0x1803;
|
reg_mprj_io_27 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_26 = 0x1803;
|
reg_mprj_io_26 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_25 = 0x1803;
|
reg_mprj_io_25 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_24 = 0x1803;
|
reg_mprj_io_24 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_23 = 0x1803;
|
reg_mprj_io_23 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_22 = 0x1803;
|
reg_mprj_io_22 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_21 = 0x1803;
|
reg_mprj_io_21 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_20 = 0x1803;
|
reg_mprj_io_20 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_19 = 0x1803;
|
reg_mprj_io_19 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_18 = 0x1803;
|
reg_mprj_io_18 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_17 = 0x1803;
|
reg_mprj_io_17 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_16 = 0x1803;
|
reg_mprj_io_16 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_15 = 0x1803;
|
reg_mprj_io_15 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_14 = 0x1803;
|
reg_mprj_io_14 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_13 = 0x1803;
|
reg_mprj_io_13 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_12 = 0x1803;
|
reg_mprj_io_12 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_11 = 0x1803;
|
reg_mprj_io_11 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_10 = 0x1803;
|
reg_mprj_io_10 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_9 = 0x1803;
|
reg_mprj_io_9 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_8 = 0x1803;
|
reg_mprj_io_8 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_7 = 0x1803;
|
reg_mprj_io_7 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_6 = 0x1803;
|
reg_mprj_io_6 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_5 = 0x1803;
|
reg_mprj_io_5 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_4 = 0x1803;
|
reg_mprj_io_4 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_3 = 0x1803;
|
reg_mprj_io_3 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_2 = 0x1803;
|
reg_mprj_io_2 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_1 = 0x1803;
|
reg_mprj_io_1 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_0 = 0x1803;
|
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
reg_mprj_io_0 = 0x1803;
|
reg_mprj_io_0 = GPIO_MODE_MGMT_STD_INPUT_NOPULL;
|
||||||
|
|
||||||
reg_mprj_xfer = 1;
|
reg_mprj_xfer = 1;
|
||||||
while (reg_mprj_xfer == 1);
|
while (reg_mprj_xfer == 1);
|
||||||
|
@ -57,6 +57,14 @@ void main(){
|
||||||
while (reg_mprj_datal != 0xFFA88C5A);
|
while (reg_mprj_datal != 0xFFA88C5A);
|
||||||
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
reg_debug_1 = 0XCC; // configuration done wait environment to send 0xC9536346 to reg_mprj_datal
|
||||||
while (reg_mprj_datal != 0xC9536346);
|
while (reg_mprj_datal != 0xC9536346);
|
||||||
|
reg_debug_1 = 0XD1;
|
||||||
|
while (reg_mprj_datah != 0x3F);
|
||||||
|
reg_debug_1 = 0XD2;
|
||||||
|
while (reg_mprj_datah != 0x0);
|
||||||
|
reg_debug_1 = 0XD3;
|
||||||
|
while (reg_mprj_datah != 0x15);
|
||||||
|
reg_debug_1 = 0XD4;
|
||||||
|
while (reg_mprj_datah != 0x2A);
|
||||||
|
|
||||||
reg_debug_2 = 0xFF;
|
reg_debug_2 = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue