sadad
New Contributor
6 years agoAvalon Interconnect Dynamic Bus Sizing and Bursts
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 programThanks in Advance!