Forum Discussion
avalon MM generator read issue
I'm using avalon MM BFM to stimuli my slave avalon interface, however, when doing
- u_avalon_MM_gen.mm_master_bfm_0.set_command_address(addr);
- u_avalon_MM_gen.mm_master_bfm_0.set_command_byte_enable(4'hF, 0);
- u_avalon_MM_gen.mm_master_bfm_0.set_command_request(REQ_READ);
- u_avalon_MM_gen.mm_master_bfm_0.push_command();
- @(u_avalon_MM_gen.mm_master_bfm_0.signal_read_response_complete);
- data = u_avalon_MM_gen.mm_master_bfm_0.get_response_data(0);
- $display("[%0t] READ Addr=0x%08h Data=0x%08h", $time, addr, data);
the data seem delay by 1 register transaction eg.
READ addr=0 data=0
READ addr=4 data=1020001 <- this data should be at addr=0, but get_response_data(0) pop on the next addr
return.data (get_response_data) has 3 ns delay from rising clock edge or from complete.data change
6 Replies
- ShengN_altera
Super Contributor
Hi,
Possible provide design for taking a look?
- s002wjhwen
New Contributor
so i found the issue.
data = u_avalon_MM_gen.mm_master_bfm_0.completed_read_response.data[0];
data2 = u_avalon_MM_gen.mm_master_bfm_0.return_response.data[0];
$display("Data=%0h Data2=%0h", data, data2);
data will show the correct 1020001 , but return_response.data is 0 seem like there are some delay between these two. i'm using quartus 23.4 to generate IP for avalon MM BFM.
- ShengN_altera
Super Contributor
Put a delay before data2?
- ShengN_altera
Super Contributor
May I know does your problem resolved with delay?
- s002wjhwen
New Contributor
i just used completed_read_response.data instead, return_response.data has 3ns, delay, if i pop it, it only get the data from previous push which is 0. so delay dont work
- ShengN_altera
Super Contributor
Understood that. The completed_read_response.data should be enough already