Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DO NOT MERGE] mock-array: use mpl2 to lay out array #1930

Closed

Conversation

oharboe
Copy link
Collaborator

@oharboe oharboe commented Apr 11, 2024

@precisionmoon With macros place automatically in an array, the CTS skew is very large and I get hold violations:

[INFO RSZ-0046] Found 2952 endpoints with hold violations.
Iteration | Resized | Buffers | Cloned Gates |   WNS   |   TNS   | Endpoint
---------------------------------------------------------------------------
        0 |       0 |       0 |            0 | -693.754 | -1158384.500 | ces_0_4/io_ins_up[43]
    final |       0 |    2050 |            0 | -669.989 | -1133901.000 | ces_0_4/io_ins_up[43]
---------------------------------------------------------------------------
[WARNING RSZ-0066] Unable to repair all hold violations.
[INFO RSZ-0032] Inserted 2050 hold buffers.
[ERROR RSZ-0060] Max buffer count reached.
Error: cts.tcl, 101 RSZ-0060

Standalone reproduction case:

  1. untar mock-array-cts-large-skew.tar.gz
  2. Run ./run-me-mock-array-asap7-base.sh

To reproduce with this PR:

make CTS_SNAPSHOTS=1 DESIGN_CONFIG=designs/asap7/mock-array/config.mk cts

Then run:

make CTS_SNAPSHOTS=1 DESIGN_CONFIG=designs/asap7/mock-array/config.mk  gui_4_1_pre_repair_hold_setup.odb

image

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
@oharboe
Copy link
Collaborator Author

oharboe commented Apr 11, 2024

@AcKoucher @maliberty MACRO_PLACE_HALO doesn't allow specifying a different x & y halo, so it is impossible to have horizontal, but not vertical abutment like the manual placement had.

With the most recent commit on this PR, detail_place.tcl gets stuck. Presumably because there's not enough space between the rows of the Elements to place something?

@maliberty
Copy link
Member

This PR says "DO NOT MERGE" but you have requested a review. Are you wanting this merged?

@oharboe
Copy link
Collaborator Author

oharboe commented Apr 11, 2024

This PR says "DO NOT MERGE" but you have requested a review. Are you wanting this merged?

Sorry for confusion: just FYI at this point and request for comments.

@maliberty
Copy link
Member

We could add separate x & y controls; I believe the old mpl had that. Its tedious but not hard. Presumably that would resolve the skew issue.

@oharboe
Copy link
Collaborator Author

oharboe commented Apr 11, 2024

We could add separate x & y controls; I believe the old mpl had that. Its tedious but not hard. Presumably that would resolve the skew issue.

Yes please. I think it would solve the problem here.

@maliberty
Copy link
Member

@AcKoucher please open an issue for yourself for the separate controls

@oharboe
Copy link
Collaborator Author

oharboe commented Apr 25, 2024

@AcKoucher Just FYI, took The-OpenROAD-Project/OpenROAD#4991 for a spin on this PR, but it got stuck in detailed placement.

I think this is because there's no horizontal routing by abutment and because the vertical distance between the elements is too narrow.

image

@AcKoucher
Copy link
Contributor

@oharboe I don't know if you noticed, but some of the macros within the array have a wrong location in your image. As I explained in #4991, #4976 should fix that.

As for the DPL problem I'm not sure.

I haven't finished the work in #4991, however it shouldn't cause the array to be pushed to a certain boundary (in your image the array is close to the top), could you please share the test case you used to generate that?

@oharboe
Copy link
Collaborator Author

oharboe commented Apr 25, 2024

@AcKoucher Thanks! I was just curious about all this mpl2 PRs in progress. The test case is this PR.

@oharboe
Copy link
Collaborator Author

oharboe commented Apr 26, 2024

@AcKoucher In case it is useful, here is a standalone reproduction case:

@AcKoucher
Copy link
Contributor

@oharboe Thanks! It's actually pretty useful :)

@AcKoucher
Copy link
Contributor

@oharboe You've asked me in The-OpenROAD-Project/OpenROAD#4544 (comment) to open a PR for switching the manual macro placement for mpl2 flow. Do you still want me to do it? Is this just a test PR?

FYI with both #4991 and #4976 merged, it's now possible to handle mock-array with different mpl2 halos (I'll open a PR for that).

@maliberty Within that context, now that we'll be allowing different mpl2 x & y halos, should we also consider allowing different placement blockages x & y? Currently block_channels only support width as argument.

@oharboe
Copy link
Collaborator Author

oharboe commented May 17, 2024

@AcKoucher I was just testing, so please go ahead and make a mock-array PR

@oharboe oharboe closed this May 17, 2024
@oharboe
Copy link
Collaborator Author

oharboe commented May 18, 2024

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants