Download presentation
Presentation is loading. Please wait.
Published byἈνδρομάχη Ευταξίας Modified over 6 years ago
1
ESP: A new Standard Cell Placement Package using Simulated Evolution
Ralph-Michael Kling and Prithviraj Bannerjee ECE 556 John Lindlof
2
Objectives Implement the ESP Standard Cell Placement Package using C programming language. Achieve results comparable to the Simulated Annealing algorithm, but with faster performance.
3
Methods: The Algorithm
Read input data and parameters Floor planning to allocate space for rows in which cells will be placed Generate an initial placement Start the mutation procedure Select two modules at random & exchange them without regard to effects on placement values Collision resolving routine called in case of unequal sized modules
4
Methods: The Algorithm cont.
Evaluate the current placement Establish placement value for every cell Determine global goodness Calculate total wire length of current placement Determine whether a cell will retain current position for next generation Compare placement value with random number Sort the queue to be newly allocated Modules with most connections place first
5
Methods: The Algorithm cont.
Remove all modules scheduled for allocation from placement grid Test the first module at each empty location Best placement value is retained & module placed at this location Repeat with each additional module until queue is empty Repeat overall loop until
6
Methods: Flow chart Parameter Input Mutate Read Input File Evaluate
Initialize Data Structures Judge Chip Floorplanning Sort Initial Placement Allocate Precomputations I/O
7
Highlight of code Structures: Example:
Rows, Module, Floorplan, ModuleQueue Example: The Floorplan structure contains: The total number of rows An array of row structures The max row length The average row length
8
Highlight of code cont. Functions Example: exchangeModules( )
collisionRoutine( ) evaluateModule( ) getGlobalGoodness( ) getTotalWireLength( ) addModuleToQueue( ) sortQueue( ) getNextModuleFromQueue( ) removeScheduledModulesFromGrid( ) testModuleInGrid( ) Example: int evaluateModule(Module* module){ //this function sets an individual //module’s placement value by //evaluating the cell’s cost with a wire //length based function. //returns -1 if unsuccessful }
9
Results Expected format: 5 30 10 75 20 200 Circuit SA ESP Wire length
Rows Cells Time Time 5 30 10 75 20 200
10
Discussion Challenges: Implementing cost and allocation algorithms
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.