Skip to content

pzbcm_arbiter

Taichi Ishitani edited this page Dec 26, 2022 · 4 revisions

pzbcm_arbiter

https:/pezy-computing/pzbcm/tree/master/pzbcm_arbiter

Overview

This module implements arbitration methods listed below.

  • round robin
    • prioritized round robin and weighted round robin are also supported.
  • fixed priority
  • least recently used (LRU)
  • most recently used (MRU)
  • incremental round robin
  • decremental round robin

This module is divided into two sub arbiter blocks; one is round robin arbiter and another one is matrix arbiter.

image

The round robin arbiter implements round robin arbitraton method. On the other hand, the matrix arbiter implements other arbitraton methods. See Microarchitecture of Network on Chip Routers: A Designer's Perspective for details of the matrix arbiter and its implemented arbitration methods.

Parameters

name type/width default value
REQUESTS int 2
ONEHOT_GRANT 1 1
ENABLE_ARBITER 2 all bits 1
PRIORITY_WIDTH int 0
WEIGHT_WIDTH int 0
WEIGHT pzbcm_arbiter_weight_list all bits 1
PRIORITY_MATRIX pzbcm_arbiter_priority_matrix all bits 1
KEEP_RESULT 1 1
  • REQUESTS
    • Number of input requests.
  • ONEHOT_GRANT
    • is to specify format of the output grant port.
      • 1: one-hot
      • 0: binary
  • ENABLE_ARBITER
    • This is to specify sub arbiter blocks which are instantiated.
      • If ENABLE_ARBITER[0] is set to 1 the round robin arbiter is instantiated.
      • If ENABLE_ARBITER[1] is set to 1 the matrix arbiter is instantiated.
  • PRIORITY_WIDTH
    • This is specify width of the priority value used for the prioritized round robin arbitration. If set to 0 the prioritized round robin method is disabled.
  • WEIGHT_WIDTH
    • This is specify width of the weight value used for the weighted round robin arbitration. If set to 0 the weighted round robin arbitration is disabled.
  • WEIGHT
    • This is to specify the reset value of each weight values.
  • PRIORITY_MATRIX
    • This is to specify the reset value of the priority matrix used for the matrix arbiter.
  • KEEP_GRANT
    • If this value is set to 1 the output grant signal is kept until the input i_free signal is asserted.

IO Ports

name direction type/width note
i_clk input 1 clock
i_rst_n input 1 async/active low reset
i_config input pzbcm_arbiter_config arbiter configuration
i_request input REQUESTS request
o_grant output GRANT_WIDTH grant
i_free input REQUESTS
  • i_config
    • The i_config input has following fields:
      • arbiter_type
        • Specify which arbiter method is used.
      • reset
        • Internal state is reset when it's asserted.
      • request_priority
        • Priority values used for the prioritized round robin method.
      • weight_valid/weight
        • Weight values used for the weighted round robin method.
      • priority_matrix
        • This value will be set to the priority matrix of the matrix arbiter when reset is asserted.
Clone this wiki locally