Designed a Python-based CAD engine tailored for floorplanning and routing in VLSI design, focusing on electromagnetic compatibility and RF signal integrity. Incorporated a simulated annealing algorithm to optimize the placement of components based on realistic physical constraints such as magnetic field effects and parasitic interference. Developed a graphical user interface (GUI) to visualize the layout evolution and final topology, helping better align automated CAD tools with physical electromagnetic considerations. Work culminated in a multi-part simulation pipeline, validated by hand-designed benchmarks and demonstrated visually using color-coded density and field overlap metrics.
The application creates a random layout, with random blocks and randomly assigned pins. Users can add, remove, or change the blocks and pins. Magnetic characteristics of the components can be set. After these steps users can run simulated annealing floorplanning algorithms which include rectangular or wheel placement. For routing, three types of algorithms are available: Manhattan, Euclidean, and Steiner-Tree. After routing and magnetic characterization is complete, users can view the electric field density map and determine if the layout is feasible.
GitHub Repository: https://github.com/CanAfacan/Magnetic-Field-Aware-Floor-Planning-and-Obstacle-Driven-Routing-for-MRAM-MTJ-