Forum Discussion

sadad's avatar
sadad
Icon for New Contributor rankNew Contributor
6 years ago

Avalon 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 program

Thanks in Advance!

3 Replies

    • BInos's avatar
      BInos
      Icon for New Contributor rankNew Contributor

      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.

  • BoonT_Intel's avatar
    BoonT_Intel
    Icon for Frequent Contributor rankFrequent Contributor

    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.