  Given a set $P$ of terminals in the plane and a partition of $P$ into $k$
subsets $P_1, ..., P_k$, a two-level rectilinear Steiner tree consists of a
rectilinear Steiner tree $T_i$ connecting the terminals in each set $P_i$
($i=1,...,k$) and a top-level tree $T_{top}$ connecting the trees $T_1, ...,
T_k$. The goal is to minimize the total length of all trees. This problem
arises naturally in the design of low-power physical implementations of parity
functions on a computer chip.
  For bounded $k$ we present a polynomial time approximation scheme (PTAS) that
is based on Arora's PTAS for rectilinear Steiner trees after lifting each
partition into an extra dimension. For the general case we propose an algorithm
that predetermines a connection point for each $T_i$ and $T_{top}$
($i=1,...,k$).
  Then, we apply any approximation algorithm for minimum rectilinear Steiner
trees in the plane to compute each $T_i$ and $T_{top}$ independently.
  This gives us a $2.37$-factor approximation with a running time of
$\mathcal{O}(|P|\log|P|)$ suitable for fast practical computations. The
approximation factor reduces to $1.63$ by applying Arora's approximation scheme
in the plane.
