Skip to content

Commit e7a5ff1

Browse files
joosthoozJoost Hoozemans
andauthored
Add peek and poke for the 3 other AXI-Lite interfaces (#511)
* Added peek and poke for the BAR1 interface * Added peek and poke for the SDA and PCIS AXI slave interfaces. Now all the 4 slave interface have a specific set of peek/poke functions callable from C. The new cl_peek_ocl and cl_poke_ocl are actually the same as the original cl_peek/cl_poke, which are still needed because they are used internally to configure the DDR controllers and test circuits. Co-authored-by: Joost Hoozemans <[email protected]>
1 parent bc6ff26 commit e7a5ff1

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed

hdk/common/verif/include/sh_dpi_tasks.svh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ import tb_type_defines_pkg::*;
3636
export "DPI-C" task sv_map_host_memory;
3737
export "DPI-C" task cl_peek;
3838
export "DPI-C" task cl_poke;
39+
export "DPI-C" task cl_peek_pcis;
40+
export "DPI-C" task cl_poke_pcis;
41+
export "DPI-C" task cl_peek_sda;
42+
export "DPI-C" task cl_poke_sda;
43+
export "DPI-C" task cl_peek_ocl;
44+
export "DPI-C" task cl_poke_ocl;
45+
export "DPI-C" task cl_peek_bar1;
46+
export "DPI-C" task cl_poke_bar1;
3947
export "DPI-C" task sv_int_ack;
4048
export "DPI-C" task sv_pause;
4149
export "DPI-C" task sv_fpga_pci_peek;
@@ -65,6 +73,38 @@ import tb_type_defines_pkg::*;
6573
task cl_poke(input longint unsigned addr, int unsigned data);
6674
tb.card.fpga.sh.poke(.addr(addr), .data(data), .intf(AxiPort::PORT_OCL));
6775
endtask
76+
77+
task cl_peek_pcis(input longint unsigned addr, output int unsigned data);
78+
tb.card.fpga.sh.peek(.addr(addr), .data(data), .intf(AxiPort::PORT_DMA_PCIS));
79+
endtask
80+
81+
task cl_poke_pcis(input longint unsigned addr, int unsigned data);
82+
tb.card.fpga.sh.poke(.addr(addr), .data(data), .intf(AxiPort::PORT_DMA_PCIS));
83+
endtask
84+
85+
task cl_peek_sda(input longint unsigned addr, output int unsigned data);
86+
tb.card.fpga.sh.peek(.addr(addr), .data(data), .intf(AxiPort::PORT_SDA));
87+
endtask
88+
89+
task cl_poke_sda(input longint unsigned addr, int unsigned data);
90+
tb.card.fpga.sh.poke(.addr(addr), .data(data), .intf(AxiPort::PORT_SDA));
91+
endtask
92+
93+
task cl_peek_ocl(input longint unsigned addr, output int unsigned data);
94+
tb.card.fpga.sh.peek(.addr(addr), .data(data), .intf(AxiPort::PORT_OCL));
95+
endtask
96+
97+
task cl_poke_ocl(input longint unsigned addr, int unsigned data);
98+
tb.card.fpga.sh.poke(.addr(addr), .data(data), .intf(AxiPort::PORT_OCL));
99+
endtask
100+
101+
task cl_peek_bar1(input longint unsigned addr, output int unsigned data);
102+
tb.card.fpga.sh.peek(.addr(addr), .data(data), .intf(AxiPort::PORT_BAR1));
103+
endtask
104+
105+
task cl_poke_bar1(input longint unsigned addr, int unsigned data);
106+
tb.card.fpga.sh.poke(.addr(addr), .data(data), .intf(AxiPort::PORT_BAR1));
107+
endtask
68108

69109
task sv_int_ack(input int unsigned int_num);
70110
tb.card.fpga.sh.set_ack_bit(int_num);

sdk/userspace/include/utils/sh_dpi_tasks.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@ extern void sv_map_host_memory(uint8_t *memory);
3333

3434
extern void cl_peek(uint64_t addr, uint32_t *data);
3535
extern void cl_poke(uint64_t addr, uint32_t data);
36+
extern void cl_peek_pcis(uint64_t addr, uint32_t *data);
37+
extern void cl_poke_pcis(uint64_t addr, uint32_t data);
38+
extern void cl_peek_sda(uint64_t addr, uint32_t *data);
39+
extern void cl_poke_sda(uint64_t addr, uint32_t data);
40+
extern void cl_peek_ocl(uint64_t addr, uint32_t *data);
41+
extern void cl_poke_ocl(uint64_t addr, uint32_t data);
42+
extern void cl_peek_bar1(uint64_t addr, uint32_t *data);
43+
extern void cl_poke_bar1(uint64_t addr, uint32_t data);
3644
extern void sv_int_ack(uint32_t int_num);
3745
extern void sv_pause(uint32_t x);
3846
extern void sv_fpga_start_buffer_to_cl(uint32_t slot_id, uint32_t chan, uint32_t buf_size, uint64_t wr_buffer_addr, uint64_t cl_addr);

0 commit comments

Comments
 (0)