Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20704 Discussions

Avalon Interconnect Dynamic Bus Sizing and Bursts

sadad
Novice
613 Views

Hello!

 

My Avalon-MM master has 32bit data width and is bursting capable.

Now i connect an Avalon-MM slave with 8bit data width which is also bursting capable.

 

Will a 32bit read or write access to the slave cause the automatically generated Avalon adapter to translate the 1x32bit access to a single burst of 4 x 8bit?

 

Or will there be 4 non bursting transfers of 8bit?

My current testbench using Altera BFM shows a writeburstcount of 4, but when reading there is no readburstcount of 4.

 

The bfm config output is following:

# Loading work.test_program(test_program_arch) # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - Hello from altera_avalon_mm_master_bfm # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - $Revision: #1 $ # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - $Date: 2018/07/18 $ # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_ADDRESS_W = 12 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_SYMBOL_W = 8 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_NUMSYMBOLS = 4 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_BURSTCOUNT_W = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - REGISTER_WAITREQUEST = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_FIX_READ_LATENCY = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_MAX_PENDING_READS = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - AV_MAX_PENDING_WRITES = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_READ = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_WRITE = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_ADDRESS = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_BYTE_ENABLE = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_BURSTCOUNT = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_READ_DATA = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_READ_DATA_VALID = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_WRITE_DATA = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_BEGIN_TRANSFER = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_BEGIN_BURST_TRANSFER = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_WAIT_REQUEST = 1 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_LOCK = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_DEBUGACCESS = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_TRANSACTIONID = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_WRITERESPONSE = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_READRESPONSE = 0 # 0: INFO: tb.dut.master_0.mm_master_vhdl_wrapper.<protected>.<protected>: - USE_CLKEN = 0 # 0: INFO: ------------------------------------------------------------ # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - Hello from altera_avalon_mm_slave_bfm # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - $Revision: #1 $ # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - $Date: 2018/07/18 $ # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_ADDRESS_W = 12 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_SYMBOL_W = 8 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_NUMSYMBOLS = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_BURSTCOUNT_W = 4 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - REGISTER_WAITREQUEST = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_FIX_READ_LATENCY = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_MAX_PENDING_READS = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_MAX_PENDING_WRITES = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_READ_WAIT_TIME = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - AV_WRITE_WAIT_TIME = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_READ = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_WRITE = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_ADDRESS = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_BYTE_ENABLE = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_BURSTCOUNT = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_READ_DATA = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_READ_DATA_VALID = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_WRITE_DATA = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_BEGIN_TRANSFER = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_BEGIN_BURST_TRANSFER = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_WAIT_REQUEST = 1 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_LOCK = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_DEBUGACCESS = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_TRANSACTIONID = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_WRITERESPONSE = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_READRESPONSE = 0 # 0: INFO: tb.dut.slave_0.mm_slave_vhdl_wrapper.<protected>.<protected>: - USE_CLKEN = 0 # 0: INFO: ------------------------------------------------------------ # ** Note: Starting master test program

 

 

 

 

Thanks in Advance!

0 Kudos
3 Replies
BoonT_Intel
Moderator
338 Views

Hi Sir,

Looks like this is duplicate of this thread: https://forums.intel.com/s/feed/0D50P00004OOY1sSAH

0 Kudos
BInos
Beginner
338 Views

Yes, because it was in the wrong forum. Could you move/merge it, but because of the high inactivity in this forum i created a second thread before asking.

This thread has more information in it. I think the answer in the other thread is wrong / kept to simple.

 

0 Kudos
BoonT_Intel
Moderator
338 Views

Hi Sir,

We are unable to merge it.

I will suggest you to add the "more information" in the original thread. And please try to clarify and elaborate if you think the answer is inaccurate in the original post. Thanks for your understanding.

0 Kudos
Reply