Patent ID: 8793636

Claim:
A method, in a data processing system comprising a processor and a memory, for performing placement of cells in a design of a semiconductor device, comprising: generating, by the data processing system, an initial design of the semiconductor device, the initial design comprising a first placement of cells; determining, by the data processing system, a preferred direction of placement associated with the cells, wherein the preferred direction is a direction along which spreading of the cells is preferred; and generating, by the data processing system, a second design of the semiconductor device by modifying the first placement of the cells to generate a second placement of cells, different from the first placement cells, based on the preferred direction of placement associated with the cells, wherein modifying the placement of cells comprises applying weights to nets of the initial design based on the preferred direction of placement, wherein generating the second design of the semiconductor device comprises performing directional weighting and insertion on the initial design to insert pseudonets into the initial design and assign weights to the pseudonets based on the preferred direction of placement associated with the cells, wherein the method is performed repeatedly in an iterative manner, and wherein, for each subsequent iteration of the method, the weights assigned to the inserted pseudonets are increased, and wherein the increasing of the weights assigned to the inserted pseudonets causes a spreading of the placement of the cells in the design of the semiconductor device, and wherein the pseudonets are representations of real nets between cells of the design of the semiconductor device but are not real nets of the semiconductor device and are used for placement purposes only.