feat(agent): add agent supported features - #256
Closed
YihangQiu wants to merge 64 commits into
Closed
Conversation
Lift the legalization owner check so Timing Opt can reuse DreamPlace legalize-only, load ECC from explicit DEF/Verilog, and skip the pre-sizer input DB.
Stage Sizer DEF/Verilog under data/to, rebuild ECC from those files, run DreamPlace legalize-only, and publish only the post-legalize layout. Drop the cached EngineDB after any sizer terminal state.
Honor read_def failure, close abandoned engines, and load explicit sources once. Fill the workspace DreamPlace config path before inner legalization if the map is empty.
Clear previous staging before launching Sizer, and delete published Timing Opt files on every unsuccessful save, including exceptions.
Raise if staging or published artifacts cannot be deleted, and reset Timing Opt subflow stages at the start of every Sizer attempt.
Register Timing Opt/sizer workspace configs so `ecc config` can inspect the db and DreamPlace files the inner legalize path actually reads. Split the oversized sizer runner tests into runner, cleanup, and EngineFlow modules.
Restore create_db_engine(workspace, step). Timing Opt inner legalize now replace()s a local step with staging DEF/Verilog and db=None instead of adding loader kwargs.
Opening an old one-stage Sizer workspace rewrote subflow stages to Unstart but left the outer step Success, so resume skipped Timing Opt and routed the unlegalized DEF. Persistently unstart the owner and its downstream suffix when that rewrite happens.
Insert sizer Timing Opt into the default rtl2gds/harden sequence between legalization and routing so CTS cleanup still happens first and Sizer sees a legal layout.
Download the latest successful linux-x64 Sizer build before pytest and export PATH plus CHIPCOMPILER_ECC_SIZER_ROOT so default-flow Timing Opt can run in CI.
Stop opening step.log.file with write truncation. Sizer now inherits the EngineFlow stdio capture so GUI still shows the sizer error when inner legalize later writes its own DreamPlace log.
Sizer now exposes build_step_metrics so EngineFlow can write qor_metrics/summary after a successful Timing Opt. Reuse the legalization DB summary and skip the Sizer binary check so QoR refresh still works when Sizer is only needed at run time.
# Conflicts: # chipcompiler/tools/ecc/runner.py
Yell-walkalone
left a comment
Contributor
There was a problem hiding this comment.
The agent's code should not intrude into the tools module.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
Scope
Select the areas touched by this PR:
uv.lock, or release artifacts.Runtime And Packaging Impact
ecc-toolsorecc-dreamplacedependency changedNotes:
Validation
List the commands you ran. Mark checks that are not applicable as N/A.
uv run pytest test/uv run ruff check chipcompiler testuv run ruff format --check chipcompiler testecc --help,ecc --version,ecc version --jsonnix run .#cli -- --helpSkipped checks and reason:
Checklist