Field-programmable gate arrays (FPGAs) are integrated circuits (ICs) used for rapid prototyping and low-cost manufacture of digital systems. Technology mapping is the process of transforming a given logic circuit C to a form that can be embedded (mapped) into an FPGA. Most FPGAs contain a large number of logic blocks, each of which can be programmed to implement any logic function of a few variables; the connections between the logic blocks are also programmable. The goal of technology mapping is to map C to minimize either the number of logic blocks (area) or the worst-case signal propagation delay (performance). Prior methods use heuristics that can only handle a few types of FPGAs and produce results that can be far from optimal. This th...