The-OpenROAD-Project/OpenROAD

Add library of useful functions for doing manual placement of cells

已關閉

#4,041 建立於 2023年9月25日

 (23 則留言) (0 個反應) (1 位負責人)Verilog (903 個分叉)auto 404
Stalegood first issue

倉庫指標

星標
 (2,715 顆星)
PR 合併指標
 (平均合併 5天 12小時) (30 天內合併 136 個 PR)

描述

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

貢獻者指南