fixed gpr_ram bug + io bus arbitration

This commit is contained in:
Blaise Tine
2020-06-13 05:26:29 -07:00
parent d6b0ef2b3c
commit 4fa540575c
15 changed files with 542 additions and 377 deletions

View File

@@ -74,30 +74,35 @@ struct scope_signal_t {
static const scope_signal_t scope_signals[] = {
{ 32, "icache_req_addr" },
{ 2 , "icache_req_tag" },
{ 2, "icache_req_warp_num" },
{ 2, "icache_req_tag" },
{ 32, "icache_rsp_data" },
{ 2 , "icache_rsp_tag" },
{ 2, "icache_rsp_tag" },
{ 32, "dcache_req_addr" },
{ 2 , "dcache_req_tag" },
{ 2, "dcache_req_warp_num" },
{ 2, "dcache_req_tag" },
{ 32, "dcache_rsp_data" },
{ 2 , "dcache_rsp_tag" },
{ 32, "dram_req_addr" },
{ 29, "dram_req_tag" },
{ 29, "dram_rsp_tag" },
{ 2 , "icache_req_warp_num" },
{ 2 , "dcache_req_warp_num" },
{ 29, "dram_rsp_tag" },
{ 32, "snp_req_addr" },
{ 1, "snp_req_invalidate" },
{ 16, "snp_req_tag" },
{ 16, "snp_rsp_tag" },
{ 2, "decode_warp_num" },
{ 32, "decode_curr_PC" },
{ 5 , "execute_rd" },
{ 2 , "execute_warp_num" },
{ 1, "decode_is_jal" },
{ 5, "decode_rs1" },
{ 5, "decode_rs2" },
{ 2, "execute_warp_num" },
{ 5, "execute_rd" },
{ 32, "execute_a" },
{ 32, "execute_b" },
{ 5 , "writeback_rd" },
{ 2 , "writeback_warp_num" },
{ 32, "writeback_data" },
{ 2 , "decode_warp_num" },
{ 1 , "decode_is_jal" },
{ 5 , "decode_rs1" },
{ 5 , "decode_rs2" },
{ 2 , "writeback_wb" },
{ 32, "execute_b" },
{ 2, "writeback_warp_num" },
{ 2, "writeback_wb" },
{ 5, "writeback_rd" },
{ 32, "writeback_data" },
{ 1, "icache_req_valid" },
{ 1, "icache_req_ready" },
@@ -111,6 +116,10 @@ static const scope_signal_t scope_signals[] = {
{ 1, "dram_req_ready" },
{ 1, "dram_rsp_valid" },
{ 1, "dram_rsp_ready" },
{ 1, "snp_req_valid" },
{ 1, "snp_req_ready" },
{ 1, "snp_rsp_valid" },
{ 1, "snp_rsp_ready" },
{ 4, "decode_valid" },
{ 4, "execute_valid" },
{ 4, "writeback_valid" },

View File

@@ -66,6 +66,11 @@ int run_memcopy_test(vx_buffer_h sbuf,
((uint64_t*)vx_host_ptr(sbuf))[i] = shuffle(i, value);
}
// clear dbuf data
for (int i = 0; i < (64 * num_blocks) / 8; ++i) {
((uint64_t*)vx_host_ptr(dbuf))[i] = 0;
}
// write buffer to local memory
std::cout << "write buffer to local memory" << std::endl;
RT_CHECK(vx_copy_to_dev(sbuf, address, 64 * num_blocks, 0));
@@ -112,6 +117,11 @@ int run_kernel_test(vx_device_h device,
((uint64_t*)vx_host_ptr(sbuf))[i] = shuffle(i, seed);
}
// clear dbuf data
for (int i = 0; i < (64 * num_blocks) / 8; ++i) {
((uint64_t*)vx_host_ptr(dbuf))[i] = 0;
}
// write buffer to local memory
std::cout << "write buffer to local memory" << std::endl;
RT_CHECK(vx_copy_to_dev(sbuf, src_dev_addr, 64 * num_blocks, 0));
@@ -175,11 +185,11 @@ int main(int argc, char *argv[]) {
RT_CHECK(vx_alloc_shared_mem(device, 4096, &dbuf));
// run tests
/*if (0 == test || -1 == test) {
if (0 == test || -1 == test) {
std::cout << "run memcopy test" << std::endl;
RT_CHECK(run_memcopy_test(sbuf, dbuf, DEV_MEM_SRC_ADDR, 0x0badf00d00ff00ff, 1));
RT_CHECK(run_memcopy_test(sbuf, dbuf, DEV_MEM_SRC_ADDR, 0x0badf00d40ff40ff, 64));
}*/
}
if (1 == test || -1 == test) {
std::cout << "run kernel test" << std::endl;

Binary file not shown.