1. A method for providing modular design in a programmable logic device, the method comprising: partitioning a top-level logic design into a plurality of modules; implementing each module using information generated by the partitioning step; and assembling the modules using information generated from the implementing step and the partitioning step.