The-OpenROAD-Project/OpenROAD

Add library of useful functions for doing manual placement of cells

Fermée

#4 041 ouverte le 25 sept. 2023

 (23 commentaires) (0 réaction) (1 personne assignée)Verilog (903 forks)auto 404
Stalegood first issue

Métriques du dépôt

Stars
 (2 715 étoiles)
Métriques de merge PR
 (Merge moyen 5j 12h) (136 PRs mergées en 30 j)

Description

Description

It would be nice if the OpenROAD tool provides a set of functions to the TCL & Python scripting interface which made it quick and easy to do manual placement of a certain sets of cells.

Some ideas include;

  • place_column -- Place the selected cells into a vertical column. Options could include;
    • packed for placing them as close together as possible.
    • equal for placing them equally distributed between top and bottom coordinates.
    • global for placing them in the rough locations which need to be legalized into actual valid positions.
    • legalize (or maybe detailed) for placing them directly into legalized positions.
  • place_row -- Place the selected cells into a horizontal row
    • Same as place_column.
  • place_array -- Place the selected cells into a grid / array pattern.
    • Same as place_column.

Some related functions could include;

  • legalize_cells -- Legalize the set of cells into correct placements.
  • route_net -- Route the selected set of nets.

This are likely to be very useful in things like;

  • Automated analog like OpenFASoC
  • Building blocks like DFFRAM does
  • Distributing cells for wave style computation
  • Placing input / output flops in certain locations
  • Other things I haven't thought of

Suggested Solution

No response

Additional Context

No response

Guide contributeur