Squash of Luca Codeluppi's thesis - QoS modes part (RTL)#60
Draft
FrancescoConti wants to merge 4 commits intomasterfrom
Draft
Squash of Luca Codeluppi's thesis - QoS modes part (RTL)#60FrancescoConti wants to merge 4 commits intomasterfrom
FrancescoConti wants to merge 4 commits intomasterfrom
Conversation
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
There was a problem hiding this comment.
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.
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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