Hadir Khan
12/20/2021, 10:27 PMHadir Khan
12/20/2021, 10:29 PMAnish
12/20/2021, 11:04 PM*((volatile uint32_t*)(0x8000000)) = 0x32;
Anish
12/20/2021, 11:04 PMTim Edwards
12/21/2021, 2:34 AMcaravel_user_project
repository the testbench verilog/dv/wb_port/wb_port.c
. The example project only defines one register which it references by the C definition found in caravel verilog/dv/caravel/defs.h
defined as "`reg_mprj_slave`" (and is equal to address 0x30000000). The slave module verilog is defined in caravel_user_project
at verilog/rtl/user_proj_example.v
. It's rather overly-simple and doesn't even decode the address, so the single register is effectively mapped to every address in the range 0x30000000 to 0x3fffffff.Tim Edwards
12/21/2021, 2:42 AM#define reg_mprj_myreg (*(volatile uint32_t *)0x30000004)
and then read/write it simply using x = reg_mprj_myreg;
or reg_mprj_myreg = 0x01;
, for example.Tim Edwards
12/21/2021, 2:45 AMHadir Khan
12/21/2021, 4:37 AMMatt Venn
12/21/2021, 9:31 AM