Network-on-Chip (NoC) Latency & Throughput Simulator

Model whether the on-chip network keeps up with the cores it connects — then run it: the simulation executes on the ChipFoundryServices distributed compute pool. Cores, caches and memory controllers talk over a packet-switched fabric, usually a k×k mesh or torus of routers. A packet crossing H hops pays, per hop, a router pipeline plus a link traversal; its tail then serializes one flit per cycle — zero-load latency T₀ = H·(t_r + t_w) + L. As offered load rises, contention adds queueing delay ≈ T₀/(1 − ρ), the classic latency hockey stick that shoots up near saturation. Throughput under uniform traffic is bottlenecked at the network bisection: a mesh cuts into 2k channels, so the per-node saturation injection rate falls like ~1/k — bigger fabrics saturate at lower per-node bandwidth. A torus wraps around, doubling the bisection (and roughly the throughput) at the cost of longer links, while virtual channels and buffering recover a fraction of the ideal limit that head-of-line blocking would waste. Reduced-order educational model. See also the clock-tree, place-and-route, power-delivery network, electromigration, interconnect RC, SerDes link, chiplet / CoWoS, HBM bandwidth and systolic array simulators and the compute-pool status.

Edge SoC Many-core CPU Torus · AI accelerator
Average packet latency vs offered load (flits/node/cycle) — the classic hockey stick. Zero-load latency is flat; as load nears the saturation injection rate (dashed amber) queueing delay diverges. It crosses the dashed red budget line where the network is too slow; the marker (●) is your operating point
Left: saturation injection rate vs mesh radix — the bisection caps per-node throughput at ~1/k, so larger fabrics saturate lower (marker ● = your k). Right: the latency budget — zero-load and average latency as a share of the budget, and offered load as a share of saturation (100 % = at the edge)
Developer API — same simulation over HTTP (load-balanced across the pool):
curl -X POST https://www.chipfoundryservices.com/edge/noc \
  -H "Content-Type: application/json" \
  -d '{"mesh_radix_k":8,"torus_enable":0,"injection_rate":0.15,"packet_size_flits":5,
       "link_width_bits":128,"router_freq_mhz":1500,"router_stages":3,"link_cycles":1,
       "virtual_channels":4,"buffer_depth_flits":8,"latency_budget_ns":100}'
Returns JSON with outputs (num_nodes, avg_hops, diameter_hops, zero_load_latency_ns, avg_latency_ns, serialization_latency_ns, hop_latency_ns, queueing_latency_ns, load_percent, saturation_injection_rate, accepted_injection_rate, routing_efficiency_percent, flit_bytes, link_bandwidth_gbps, bisection_channels, bisection_bandwidth_gbps, injected_bw_per_node_gbps, aggregate_throughput_gbps, meets_budget, latency_headroom_percent, dominant_component, topology, verdict), the full profile (48-point latency_vs_load sweep [injection_rate, avg_latency_ns] and 48-point sat_vs_radix sweep [mesh_radix_k, saturation_injection_rate]), the serving node, and compute_ms. Endpoint aliases /edge/networkonchip, /edge/interconnectfabric, /edge/meshnetwork, /edge/torus, /edge/routerlatency, /edge/bisection.