diff --git a/rtl/pcie_tag_manager.v b/rtl/pcie_tag_manager.v index e7d0eda..aa63141 100644 --- a/rtl/pcie_tag_manager.v +++ b/rtl/pcie_tag_manager.v @@ -31,8 +31,8 @@ THE SOFTWARE. */ module pcie_tag_manager # ( - parameter PCIE_TAG_WIDTH = 8, parameter PCIE_TAG_COUNT = 256, + parameter PCIE_TAG_WIDTH = $clog2(PCIE_TAG_COUNT), parameter PCIE_EXT_TAG_ENABLE = 1 ) ( diff --git a/rtl/pcie_us_axi_dma.v b/rtl/pcie_us_axi_dma.v index 1e2282f..06d04c2 100644 --- a/rtl/pcie_us_axi_dma.v +++ b/rtl/pcie_us_axi_dma.v @@ -40,8 +40,8 @@ module pcie_us_axi_dma # parameter AXI_MAX_BURST_LEN = 256, parameter PCIE_ADDR_WIDTH = 64, parameter PCIE_CLIENT_TAG = 1, - parameter PCIE_TAG_WIDTH = 8, parameter PCIE_TAG_COUNT = 32, + parameter PCIE_TAG_WIDTH = $clog2(PCIE_TAG_COUNT), parameter PCIE_EXT_TAG_ENABLE = 0, parameter LEN_WIDTH = 20, parameter TAG_WIDTH = 8 diff --git a/rtl/pcie_us_axi_dma_rd.v b/rtl/pcie_us_axi_dma_rd.v index a9eafaf..b42dbdb 100644 --- a/rtl/pcie_us_axi_dma_rd.v +++ b/rtl/pcie_us_axi_dma_rd.v @@ -40,8 +40,8 @@ module pcie_us_axi_dma_rd # parameter AXI_MAX_BURST_LEN = 256, parameter PCIE_ADDR_WIDTH = 64, parameter PCIE_CLIENT_TAG = 1, - parameter PCIE_TAG_WIDTH = 8, parameter PCIE_TAG_COUNT = 32, + parameter PCIE_TAG_WIDTH = $clog2(PCIE_TAG_COUNT), parameter PCIE_EXT_TAG_ENABLE = 0, parameter LEN_WIDTH = 20, parameter TAG_WIDTH = 8 @@ -352,8 +352,8 @@ reg new_tag_ready; wire [PCIE_TAG_COUNT-1:0] active_tags; pcie_tag_manager #( - .PCIE_TAG_WIDTH(PCIE_TAG_WIDTH), .PCIE_TAG_COUNT(PCIE_TAG_COUNT), + .PCIE_TAG_WIDTH(PCIE_TAG_WIDTH), .PCIE_EXT_TAG_ENABLE(PCIE_EXT_TAG_ENABLE) ) pcie_tag_manager_inst ( diff --git a/tb/test_pcie_tag_manager.py b/tb/test_pcie_tag_manager.py index 144163d..fece452 100755 --- a/tb/test_pcie_tag_manager.py +++ b/tb/test_pcie_tag_manager.py @@ -44,8 +44,8 @@ build_cmd = "iverilog -o %s.vvp %s" % (testbench, src) def bench(): # Parameters - PCIE_TAG_WIDTH = 8 PCIE_TAG_COUNT = 256 + PCIE_TAG_WIDTH = (PCIE_TAG_COUNT-1).bit_length() PCIE_EXT_TAG_ENABLE = 1 # Inputs diff --git a/tb/test_pcie_tag_manager.v b/tb/test_pcie_tag_manager.v index df9352e..4121553 100644 --- a/tb/test_pcie_tag_manager.v +++ b/tb/test_pcie_tag_manager.v @@ -32,8 +32,8 @@ THE SOFTWARE. module test_pcie_tag_manager; // Parameters -parameter PCIE_TAG_WIDTH = 8; parameter PCIE_TAG_COUNT = 256; +parameter PCIE_TAG_WIDTH = $clog2(PCIE_TAG_COUNT); parameter PCIE_EXT_TAG_ENABLE = 1; // Inputs @@ -74,8 +74,8 @@ initial begin end pcie_tag_manager #( - .PCIE_TAG_WIDTH(PCIE_TAG_WIDTH), .PCIE_TAG_COUNT(PCIE_TAG_COUNT), + .PCIE_TAG_WIDTH(PCIE_TAG_WIDTH), .PCIE_EXT_TAG_ENABLE(PCIE_EXT_TAG_ENABLE) ) UUT (