We present GAD, a compiler for arithmetic datapaths, i.e., systems Characterized by the absence of conditional branches and abundance of arithmetic operations. GAD'a inputs are the functional specification of the datapath in the form of a signal flow graph, as well as the required throughput rate. A netlist is generated for the synthesized datapath, which is optimized for the number of gates used.The synthesis problem is formulated into two parts: (1) Pipeline design, where machine cycles are organized into pipeline stages according to operator delays.(2) Scheduling, where operators are assigned to cycles so as to mazimize resource sharing. Heuristics have been developed for these problems which, by ezploiting the characteristics of arithmetic datapaths, manage t o systematically and efficiently ezplore a large part of the design apace.