Forum Discussion
Altera_Forum
Honored Contributor
8 years ago --- Quote Start --- I'm not sure I understand what you mean by "clubbing" the data. I presume you mean "combining." And I presume you mean the "input" side is the master" and the "output" side is the slave. For a narrower master writing to a wider slave, it will only write to the lower byte lanes unless you increase the address. Byte enables are added automatically inside the interconnect (you don't have to add them yourself). So your first transfer is correct. For your second transfer, you have to increase the address by 32 (256 bits / 8) to access the upper 256 bits at the slave since masters use byte addressing by default. See page 36 of the Avalon spec: https://www.altera.com/content/dam/altera-www/global/en_us/pdfs/literature/manual/mnl_avalon_spec.pdf --- Quote End --- Here i am doing burst transfer(burst count 2) so that i am passing only base address.Is it necessary to increase address in burst operation also in avalon ? /////////////////////////Task Which I am using ///////////////////// task automatic mm_send_cfg_write; input [63:0] addr; input bit[255:0] data[int]; `MM_BFM.set_command_address(addr); `MM_BFM.set_command_burst_size(2); `MM_BFM.set_command_burst_count(2); `MM_BFM.set_command_init_latency(0); `MM_BFM.set_command_request(REQ_WRITE); for(int i=0;i<2;i=i+1) begin `MM_BFM.set_command_data(data[i],i); `MM_BFM.set_command_byte_enable(32'hffff_ffff, i); end `MM_BFM.set_command_idle(0,0); `MM_BFM.set_command_timeout(0); `MM_BFM.push_command(); @(`MM_BFM.signal_write_response_complete ); `MM_BFM.pop_response(); endtask Thanks Venkat