1. A method for designing a system on a field programmable gate array (FPGA), comprising: identifying a seed utilizing slack ratios; expanding a cone originating at the seed; and using binary decision diagrams (BDDs) to perform functional decomposition on a design for the system by decomposing components in the cone after synthesis, mapping, and placement of components on a target device have been completed.