← Back
Home › Systems › Hardware and datacenter

chip-design-flow

chip design flow from synthesis to place and route

OpenROAD, Vivado

SystemTechniques · 12Primitives · 22 chip-design-flow Graph partitioninggraphs · medium: Split a graph into k balanced parts with few edges between them; multilevel coarsen-partition-refine (METIS, KaHIP) for quality, streaming heuristics (LDG, Fennel) for one-pass scale.›Analytical placementhardware-os · medium: Quadratic or nonlinear wirelength minimization with density penalties to place millions of cells, then legalizeClock tree synthesishardware-os · medium: Build a balanced buffered clock network (H-tree, DME) with minimal skewEvent driven logic simulationhardware-os · medium: RTL and gate simulation with event wheels, delta cycles and 4-state logicMaze routinghardware-os · medium: Lee and A*-based grid routing with rip-up and reroute for detailed routingStatic timing analysishardware-os · medium: Propagate latest/earliest arrival forward and required times backward through a DAG; slack = required - arrival, and the minimum-slack path is the critical one.›Steiner treeshardware-os · medium: Rectilinear Steiner minimal tree heuristics (FLUTE) for wirelength estimationConjugate gradientnumerics · low: Krylov iteration for symmetric positive definite Ax = b using one matrix-vector product and two dot products per step; converges in about √κ iterations.›A* searchgraphs · low: Dijkstra ordered by cost-so-far plus an admissible estimate of the remaining cost; optimal paths while exploring far fewer nodes toward the goal.›And inverter graphshardware-os · low: AIGs: logic as 2-input AND nodes with complemented edges, structural hashing, rewriting and balancingInterval treedata-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.›R-treegeometry · low: A balanced tree of nested bounding boxes that indexes rectangles and points, answering window and nearest-neighbour queries by pruning whole subtrees.›Binary decision diagramsoptimization · low: A reduced ordered BDD stores a Boolean function as a shared DAG that is unique per variable order, so equivalence is one integer compare and counting is one pass.›d-ary heapdata-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.›PRNGs (PCG, xoshiro)numerics · low: Small, fast, statistically strong non-cryptographic generators: PCG32 and xoshiro256**, with seeding, parallel streams and unbiased ranges.›Sparse matrices (CSR)numerics · low: Compressed sparse row stores only nonzeros as row pointers, column indices and values; SpMV streams them once, so it is memory-bandwidth bound.›Fast Fourier transformnumerics · low: Computes the DFT in O(n log n) by recursively splitting into even and odd halves; the basis of fast convolution and spectral methods.›Hierarchical timing wheelsystems · low: Timers bucketed by expiry into wheels of slots, coarser wheels for far deadlines: O(1) insert and cancel for millions of timeouts.›BFS and DFSgraphs · low: The two basic graph traversals; BFS gives hop distances and levels, DFS gives discovery/finish order for cycles, components and topological order.›Topological sortgraphs · low: Order the vertices of a DAG so every edge points forward; the core of build systems, schedulers and dependency resolution, with cycle detection for free.›Minimum spanning treegraphs · low: Cheapest set of edges connecting all vertices; Kruskal sorts edges and joins components with union-find, Prim grows one tree, Boruvka merges in parallel rounds.›Union-findgraphs · low: Disjoint-set forest with union by size and path compression; merges sets and answers same-set queries in effectively constant time.›Tree pattern matchingcompilers · low: Matching AST patterns with metavariables+ 5 more techniques+ 6 more primitives

Similar systems

Share the most building blocks with this one.