The-OpenROAD-Project/OpenROAD

Add library of useful functions for doing manual placement of cells

クローズ

#4,041 opened on 2023/09/25

 (23 件のコメント) (0 件のリアクション) (1 人の担当者)Verilog (903 件のフォーク)auto 404
Stalegood first issue

Repository metrics

Stars
 (2,715 個のスター)
PR merge metrics
 (平均マージ 5d 12h) (30d で 136 merged PRs)

説明

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

コントリビューターガイド