Skip to content

Conversation

FrancescoConti
Copy link
Member

initial commit

multi-hwpe extension

adjustment in write check

corrected few errors

push test

QoS: bandwidth

adjusted an error in read check

few tests

handled the scenario with 0 hwpe, core, ext, or dma

waveform to check

few modifies

debug waveform

correct the previous commit: debug this waveform

PATH: corrected list of forbidden addresses, assign correct data during read transaction, create path if does't exist

modified the makefile to automatically generate the stimuli

corrected a small error in the python code

small error in the upper bound (address generation)

parametric number of HWPE_WIDTH

added latency

TEST

QoS arbitration multi-hwpe: debug

photo of waveforms for arbitration problem

Enriched the makefile: setup targets

updated python documentation

corrected an error in tb_top: PRIORITY_CHECK and RANDOM_REQ macros

adjusted QoS metrics

example config

modified hci_arbiter, added mode 1

cleaned the code

eliminated task check_hwpe_read_task: redundant

cleaned the code

changed the description of the arbiter

added another mode for the hci_arbiter

changed description of the hci_arbiter

removed unnecessary from tb_top.sv

modified a name in the makefile

removed nested generate in the arbiter

propagate arbiter mode through the hci

added TEST_RATIO: ratio between the number of transactions in the two branches

debug

corrected small error in tb_top

Improved the makefile and changed the python script accordingly

Eliminate few targets from makefile

Eliminated the following targets: setup_bandwidth, setup_data_integ, setup_arbiter_stall, setup_arbiter_no_stall. Replaced with test_1.mk, test_2.mk, test_3.mk, test_4.mk in config folder

forgot to add makefile to the staging area in the previous commit

Clean makefile

Fix MACRO_TB in the Makefile

Eliminate unnecessary in tb_top.sv

Change few messages in tb_top.sv

Change name N_TEST in config files to N_TRANSACTION and add EXACT_OR_MAX_OFFSET

Adapt python script to support EXACT_OR_MAX_OFFSET parameter

Implement hci_inteconnect_wrap.sv and fix small error in hci_arbiter.sv

Set default value for memory access pattern

Eliminate WIDTH_OF_MEMORY and improve readability of sim_time metric

Fix few comments

Add module queue_stimuli.sv

Add modules: queues_out and queues_rdata

Add comments to write transaction checker

Create verificaion_hci_package

Define parameters, structs and tasks in the package

Add arbiter_checker module

Add macro in hci_package.sv and set ecc to 0

Add progress bar

Modularize logic to compute QoS metrics

Add end_simulation, progress_bar modules and fix bugs in hci_wrapper

Add assignment modules between masters and hci

Eliminate data_for_read_transaction method from python class stimuli_generator

Fix output warning

Add comments to tb_top for clarity

Fix error in previous commit

[Update] python documentation

[Update] process_txt.py and class_stimuli_generator.py documentation

[Clean] verification_hci_package.sv

[Clean] the code

[Clean]

[FIX] small error in stimuli generation

[Documentation] Update

[FIX] README.md

[Documentation] Update

[Removed] unnecessary print

initial commit

multi-hwpe extension

adjustment in write check

corrected few errors

push test

QoS: bandwidth

adjusted an error in read check

few tests

handled the scenario with 0 hwpe, core, ext, or dma

waveform to check

few modifies

debug waveform

correct the previous commit: debug this waveform

PATH: corrected list of forbidden addresses, assign correct data during read transaction, create path if does't exist

modified the makefile to automatically generate the stimuli

corrected a small error in the python code

small error in the upper bound (address generation)

parametric number of HWPE_WIDTH

added latency

TEST

QoS arbitration multi-hwpe: debug

photo of waveforms for arbitration problem

Enriched the makefile: setup targets

updated python documentation

corrected an error in tb_top: PRIORITY_CHECK and RANDOM_REQ macros

adjusted QoS metrics

example config

modified hci_arbiter, added mode 1

cleaned the code

eliminated task check_hwpe_read_task: redundant

cleaned the code

changed the description of the arbiter

added another mode for the hci_arbiter

changed description of the hci_arbiter

removed unnecessary  from tb_top.sv

modified a name in the makefile

removed nested generate in the arbiter

propagate arbiter mode through the hci

added TEST_RATIO: ratio between the number of transactions in the two branches

debug

corrected small error in tb_top

Improved the makefile and changed the python script accordingly

Eliminate few targets from makefile

Eliminated the following targets: setup_bandwidth, setup_data_integ, setup_arbiter_stall, setup_arbiter_no_stall.
Replaced with test_1.mk, test_2.mk, test_3.mk, test_4.mk in config folder

forgot to add makefile to the staging area in the previous commit

Clean makefile

Fix MACRO_TB in the Makefile

Eliminate unnecessary  in tb_top.sv

Change few  messages in tb_top.sv

Change name N_TEST in config files to N_TRANSACTION and add EXACT_OR_MAX_OFFSET

Adapt python script to support EXACT_OR_MAX_OFFSET parameter

Implement hci_inteconnect_wrap.sv and fix small error in hci_arbiter.sv

Set default value for memory access pattern

Eliminate WIDTH_OF_MEMORY and improve readability of sim_time metric

Fix few comments

Add module queue_stimuli.sv

Add modules: queues_out and queues_rdata

Add comments to write transaction checker

Create verificaion_hci_package

Define parameters, structs and tasks in the package

Add arbiter_checker module

Add macro in hci_package.sv and set ecc to 0

Add progress bar

Modularize logic to compute QoS metrics

Add end_simulation, progress_bar modules and fix bugs in hci_wrapper

Add assignment modules between masters and hci

Eliminate data_for_read_transaction method from python class stimuli_generator

Fix output warning

Add comments to tb_top for clarity

Fix error in previous commit

[Update] python documentation

[Update] process_txt.py and class_stimuli_generator.py documentation

[Clean] verification_hci_package.sv

[Clean] the code

[Clean]

[FIX] small error in stimuli generation

[Documentation] Update

[FIX] README.md

[Documentation] Update

[Removed] unnecessary print
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds QoS (Quality of Service) arbitration modes to the HCI interconnect system. The main purpose is to introduce multiple arbitration strategies that provide better control over bandwidth allocation and starvation prevention in the HWPE (Hardware Processing Engine) interconnect.

  • Adds three arbitration modes (0, 1, 2) with different stall counting mechanisms
  • Propagates the arbiter mode parameter through the interconnect hierarchy
  • Creates a wrapper module to simplify interconnect instantiation
  • Makes default data width and address width configurable via compile-time macros

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
rtl/interco/hci_arbiter_tree.sv Adds MODE parameter and passes it to hci_arbiter instances
rtl/interco/hci_arbiter.sv Implements three arbitration modes with different stall counting logic
rtl/hci_interconnect_wrap.sv New wrapper module providing simplified interface to hci_interconnect
rtl/hci_interconnect.sv Adds ARBITER_MODE parameter and propagates it to arbiter instances
rtl/common/hci_package.sv Makes default data and address widths configurable via macros

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

FrancescoConti and others added 3 commits August 28, 2025 18:20
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant