Extend support for FlooDMA traffic generation#182
Open
gbellocchi wants to merge 30 commits into
Open
Conversation
added 30 commits
May 7, 2026 15:38
* Floogen is used to populate the traffic model with information concerning the FlooNoC instance.
* The class content match the traffic cfg information, similarly to what floogen also does.
The generator currently loads and compiles floonoc and traffic models.
* Add start, done, and ready control signals to control the execution of floo dma. * Loop execution of floo dma based on control interface. * Access queues with array indexing to preserve dma jobs between different execution runs.
* Handle execution corner case where floo dma is activated without jobs to execute.
* hw: Add floogen makefile recipe. * hw: Add `nw_mesh` to bender compilation. * util: Add makefile arguments for traffic generation. * util: Change default `traffic_type` to `dma_mesh` as `random` type is not supported.
I have removed the ready signal as it was redundant and was creating problems if initialized to 1'b1 at reset-time, which would however make sense from a logical pov. Thus, end_of_sim_o is directly used in place of ready.
* Update interfaces of floo_dma_test_node and axi_bw_monitor. * Add procedural start-wait controls. * Tested in rtl simulation.
Clean the tb procedural block.
* Add support in Makefile. * Add two examples of `traffic_cfg` files for xy-based mesh testbenches (narrow, narrow-wide).
The floonoc protocol type is used to populate the traffic model and distinguish between narrow, wide, or other floonoc channel types. If this is not specified in the floogen configuration, then the job generator will assert warnings.
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.
SUMMARY OF CONTRIBUTIONS
Add FlooDMA traffic generation from YAML configuration files
I have extended the FlooDMA job generator (
gen_jobs.py) to support FlooDMA job generation from traffic configuration files (YAML).This feature simplifies the generation of custom traffic patterns, reusing FlooGen to retrieve the target FlooNoC topology information.
Below are the main contributions:
floogen/examples/) using FlooGen and produce a NoC model;hw/test/traffic_cfg/);Then, I have verified the new feature using the supported testbenches, making use of FlooDMA:
traffic_cfg) have been added underhw/test/traffic_cfg;tb_floo_axi_mesh.svandtb_floo_nw_mesh.sv;axi_bw_monitorto compare traffic generated directly in Python against traffic generated usingtraffic_cfg.Extend the FlooDMA control plane
I have modified the control plane of
floo_dma_test_nodeto launch DMA jobs after triggering astartsignal.This feature enables running FlooDMA multiple times during one simulation run, which might prove useful during design space exploration.
Below are the main contributions:
start_of_sim_isignal to thefloo_dma_test_nodeinterface;floo_dma_test_node;tb_floo_axi_mesh.svandtb_floo_nw_mesh.sv;