Remove xbar/noc remnants, rule-based cube-view connectors

- Delete xbar.py and noc.py (TwoDMeshNocComponent) — unused since router mesh
- Remove xbar_v1/noc_2d_mesh_v1 from components.yaml
- Fix pe_to_xbar → pe_to_router in routing exclusion set
- Fix xbar_to_hbm_bw_gbs → hbm_to_router_bw_gbs in report.py
- Update all docstrings/comments referencing xbar/bridge → router mesh
- Cube-view connectors: rule-based _connector_points helper
  - PE↔router: single diagonal line (not chevron)
  - UCIe N/S: 45°→horizontal→45°
  - UCIe E/W: 45°→vertical→45°
  - HBM ports: 45°→horizontal→45°

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 23:59:12 -07:00
parent 7640635f90
commit eb792e6212
17 changed files with 163 additions and 571 deletions
+4 -6
View File
@@ -37,7 +37,7 @@ def _hbm_pa(pe_id: int = 0) -> int:
def _node(impl: str, overhead_ns: float = 0.0) -> Node:
return Node(id="test", kind="xbar", impl=impl, attrs={"overhead_ns": overhead_ns}, pos_mm=None)
return Node(id="test", kind="noc_router", impl=impl, attrs={"overhead_ns": overhead_ns}, pos_mm=None)
# ── 1. unknown impl → error ──────────────────────────────────────────
@@ -55,7 +55,7 @@ def test_registry_unknown_impl_raises_error():
def test_transit_component_yields_overhead_ns():
"""TransitComponent.run() yields exactly node.attrs['overhead_ns'] ns."""
node = _node("xbar_v1", overhead_ns=3.0)
node = _node("forwarding_v1", overhead_ns=3.0)
comp = TransitComponent(node)
env = simpy.Environment()
@@ -119,10 +119,9 @@ def test_engine_component_model_latency():
"""MemoryRead D2H latency for local cube0 (4096B).
Bypass path (m_cpu bypass): pcie_ep → io_noc → conn → io_ucie → cube_ucie
→ conn → noc → xbar_top → hbm_ctrl.slice0
→ conn → router mesh → hbm_ctrl
Path goes through xbar_top (overhead_ns=2.0) instead of per-PE xbar.
Latency must be positive and reasonable.
Path goes through router mesh. Latency must be positive and reasonable.
"""
graph = _graph()
engine = GraphEngine(graph)
@@ -134,7 +133,6 @@ def test_engine_component_model_latency():
h = engine.submit(msg)
engine.wait(h)
_, trace = engine.get_completion(h)
# Verify positive latency; exact value depends on path through xbar_top
assert trace["total_ns"] > 0