Giter Site home page Giter Site logo

coloquinte_placement's Introduction

Coriolis Etesian: an analytical VLSI placer

Etesian (formerly Coloquinte) is a framework for placing VLSI circuit. Coloquinte is now part of the Coriolis toolchain. If you are looking for an up-to-date version, please visit the official Coriolis repository.

It targets standard-cell digital circuits, optionally with pre-placed macroblocks. It is now a complete tool, handling all steps of a placement flow. It features exact and approximate wirelength models, and should be updated to do timing- and routing-driven optimization.

It is not standalone: no parsers; currently, it interfaces with the Coriolis CAD toolchain, but you you can follow the example main and interface it with your own tool. It is still a work in progress, and the optimization process could be significantly improved in the coming months. However, all tools are already competitive with other academic placers - and it is the only open source placer using analytical placement techniques.

Principle

Etesian is based on analytical placement: it performs continuous optimization of the objective function with a penalty accounting for overlap. This penalty is currently calculated from a legalized or partially legalized placement. It alternates between continuous optimization and legalization to reach a good solution, then perform local optimizations.

Tools

Global placement

Currently, the global placement is based on a common method: a quadratic local wirelength model that is optimized using conjugate gradient. It is extremely flexible, with the exact Steiner model as well as the classical star and bounding-box models, and takes advantage of parallelism.

Legalization

Legalization is performed in two steps: rough legalization, accounting for placement density, and exact legalization accounting for cell overlaps. Both should be beyond industrial level, although exact legalization only handles standard cells yet.

The rough legalizer models a 2D transportation problem that is optimized using various locally optimal algorithms. They may be run in parallel. The exact legalization places one cell at a time but is able to move previous cells to obtain better solution: it can handle extremely dense placements (>99%) with fixed macroblocks.

Detailed placement

The detailed placement optimizations look for topology (i.e. cell ordering) modifications, and optimize the positions for a given topology. They use specialized algorithms for position optimizations - most of them are not published yet -, and generally brute-force for topology modifications.

Runtime

For ~300,000 cells and a single core at 2 GHz, the runtimes are approximately (depending on solution quality):

  • 10-30s per global placement iteration
  • 10s for a rough legalization
  • 3s to obtain a fully legal placement
  • 400s to perform detailed placement

A typical placement run will usually feature 50 to 200 global placement iterations. Note that global placement and rough legalization can use multiple cores.

coloquinte_placement's People

Contributors

coloquinte avatar jpc-lip6 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.