``` -@misc{fischer2023floonoc, - title={FlooNoC: A Multi-Tbps Wide NoC for Heterogeneous AXI4 Traffic}, - author={Tim Fischer and Michael Rogenmoser and Matheus Cavalcante and Frank K. Gürkaynak and Luca Benini}, - year={2023}, - eprint={2305.08562}, +@misc{fischer2024floonoc645gbpslink015, + title={FlooNoC: A 645 Gbps/link 0.15 pJ/B/hop Open-Source NoC with Wide Physical Links and End-to-End AXI4 Parallel Multi-Stream Support}, + author={Tim Fischer and Michael Rogenmoser and Thomas Benz and Frank K. Gürkaynak and Luca Benini}, + year={2024}, + eprint={2409.17606}, archivePrefix={arXiv}, - primaryClass={cs.AR} -} + primaryClass={cs.AR}, + url={https://arxiv.org/abs/2409.17606}} +``` + +
++ +``` +@ARTICLE{10225380, + author={Fischer, Tim and Rogenmoser, Michael and Cavalcante, Matheus and Gürkaynak, Frank K. and Benini, Luca}, + journal={IEEE Design & Test}, + title={FlooNoC: A Multi-Tb/s Wide NoC for Heterogeneous AXI4 Traffic}, + year={2023}, + volume={40}, + number={6}, + pages={7-17}, + keywords={Bandwidth;Protocols;Scalability;Routing;Payloads;Complexity theory;Network interfaces;Network-on-chip;Network-On-Chip;AXI;Network Interface;Physical design}, + doi={10.1109/MDAT.2023.3306720}} + ```
diff --git a/floogen/model/graph.py b/floogen/model/graph.py index e9424030..3544e613 100644 --- a/floogen/model/graph.py +++ b/floogen/model/graph.py @@ -194,6 +194,7 @@ def add_nodes_as_tree( tree: List[int], node_type: str, edge_type: str, + *, lvl: int = 0, node_obj=None, edge_obj=None, @@ -213,7 +214,14 @@ def add_nodes_as_tree( node, parent, type=edge_type, obj=edge_obj, src_dir=None, dst_dir=None ) self.add_nodes_as_tree( - node, tree, node_type, edge_type, lvl + 1, node_obj, edge_obj, connect + node, + tree, + node_type, + edge_type, + lvl=lvl + 1, + node_obj=node_obj, + edge_obj=edge_obj, + connect=connect, ) def add_nodes_as_array( @@ -221,6 +229,7 @@ def add_nodes_as_array( name: str, array: Tuple[int], node_type: str, + *, edge_type: str = "", node_obj=None, edge_obj=None, diff --git a/floogen/tests/graph_test.py b/floogen/tests/graph_test.py index 324ee7c5..b4533647 100644 --- a/floogen/tests/graph_test.py +++ b/floogen/tests/graph_test.py @@ -311,7 +311,7 @@ def assert_edge(edge): assert graph.has_edge(*edge[::-1]) assert graph.is_link_edge(edge[::-1]) - graph.add_nodes_as_array("A", [2], "router", "link") + graph.add_nodes_as_array("A", [2], "router", edge_type="link") assert_node("A_0", (0,)) assert_node("A_1", (1,)) assert_edge(("A_0", "A_1")) @@ -329,7 +329,7 @@ def assert_edge(edge): assert graph.has_edge(*edge) assert graph.is_link_edge(edge) - graph.add_nodes_as_array("A", [2, 2], "router", "link") + graph.add_nodes_as_array("A", [2, 2], "router", edge_type="link") assert_node("A_0_0", (0, 0)) assert_node("A_0_1", (0, 1)) assert_node("A_1_0", (1, 0)) diff --git a/util/gen_jobs.py b/util/gen_jobs.py index 877638fb..4a2a669c 100755 --- a/util/gen_jobs.py +++ b/util/gen_jobs.py @@ -38,6 +38,7 @@ def gen_job_str( length: int, src_addr: int, dst_addr: int, + *, max_src_burst_size: int = 256, max_dst_burst_size: int = 256, r_aw_decouple: bool = False, @@ -101,7 +102,7 @@ def gen_nw_chimney2chimney_traffic( bidir: bool, out_dir: str ): - # pylint: disable=too-many-arguments + # pylint: disable=too-many-arguments, too-many-positional-arguments """Generate Narrow Wide Chimney to Chimney traffic.""" num_masters = 2 for i in range(num_masters): @@ -131,7 +132,7 @@ def gen_mesh_traffic( out_dir: str, **_kwargs ): - # pylint: disable=too-many-arguments, too-many-locals, too-many-branches, too-many-statements + # pylint: disable=too-many-arguments, too-many-locals, too-many-branches, too-many-statements, too-many-positional-arguments """Generate Mesh traffic.""" for x in range(0, NUM_X): for y in range(0, NUM_Y):