Blogs

Code reuse

I made a core partitioner that can be used for all vertical and horizontal partitioning. For each partitioning seperate list is there to store the components. I will push these changes to git repo.

Horizontal partitioning

Still working on reusing the partitioning code in horizontal partitioning. However I need four different array lists to store the components of four partitions. Also gain calculation part would be reused for all cases.

Working on horizontal partitioning

Horizontal partitioner takes components from each left and right partitions and divides the PCB layout in four parts. Now I am working on it and aim is to reuse the partitioning code for each case.

New partitioner package

Till now I was experimenting with partitioning code in main method of the placer. Now as its working properly, I have made a new partitioner package and moved the code there. I pushed the code into git repo. Its time to merge two branches.

Node swapping

I implemented node swapping based upon gain matrix considering area constraint. It will compare total gain of current swap with that of last swap. Swapping would be continued till improved gain is obtained and number of swapping is less than number of components.

Improved Partitioning

Repetition of netIds in ComponentToNet data structure has been removed. It has made the gain calculation easier. Also I implemented sorting of component gain for swapping nodes considering area constraint. I will upload the changes in git repo.

Partitioning

Could not work much yesterday except updating the existing partitioning code with ComponentToNet data structure. Will work on gain calculation now.

Continuing placement with new data structure

Now I am working on partitioning based placement with newly added data structure "ComponentToNet". Repetition of net Ids for a single component of this data structure needs to be removed otherwise gain calculation will not be done correctly. The PCB layout would have one vertical and two horizontal partitions for component placement.

Added ComponentToNet

Today I added a new data structure ComponentToNet that contains the component name and a list of net id connected to that component. I uploaded the code in git repo. It extracts data from netlist perser. I will use this in partitioning code.

Some changes in partitioning

I need to make some changes in partitioning code to get the exact gain as per algorithm. I am thinking of a new data structure 'componentToNet' that will hold the list of net Ids connected to a single component. I am working on it and if it works fine I will make the changes in my git repo.

Syndicate content