Skip to content

fix: restore ICS55 runtime harden export semantics#16

Merged
zhaoxueyan1 merged 1 commit intomainfrom
integrate/liberty-export
Apr 21, 2026
Merged

fix: restore ICS55 runtime harden export semantics#16
zhaoxueyan1 merged 1 commit intomainfrom
integrate/liberty-export

Conversation

@zhaoxueyan1
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings April 21, 2026 06:25
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restores/strengthens ICS55 “runtime” export behavior by ensuring database/timing singletons can be safely re-initialized between runs, and by hardening STA characterization/analysis paths when clock data is missing.

Changes:

  • Add idm::DataManager::reset() and use it in iSTA tests to ensure clean re-initialization.
  • Improve iSTA behavior when I/O delays / launch clock data are missing (synthesize defaults; skip unsafe setup/hold analysis).
  • Add ICS55 GCD runtime/integration test helpers and new GTest coverage for Python export APIs (LEF / liberty).

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/platform/data_manager/idm.h Declare DataManager::reset() for explicit singleton re-init.
src/platform/data_manager/idm.cpp Implement DataManager::reset() clearing builder/config pointers.
src/database/manager/builder/builder.cpp Ensure IdbBuilder destructor frees owned DEF/LEF services.
src/operation/iSTA/test/CharacterTimingTestCommon.hh Add ICS55 GCD test configuration/runtime setup helpers; reset singletons between runs.
src/operation/iSTA/test/Ics55GcdExportTest.cc New GTests validating runtime exports (abstract LEF + timing model) for ICS55 GCD.
src/operation/iSTA/test/CharacterTimingTest.cc Reset timing/STA/DM singletons in test teardown/setup paths.
src/operation/iSTA/source/module/sta/StaCharacterTiming.cc Synthesize default input arrival data when no IO delay constraints exist.
src/operation/iSTA/source/module/sta/StaAnalyze.cc Guard setup/hold analysis against missing launch/capture clock binding.
Comments suppressed due to low confidence (1)

src/operation/iSTA/test/CharacterTimingTestCommon.hh:35

  • This header uses std::all_of (in ics55GcdCaseAvailable) and std::make_unique (in prepareIcs55GcdTimingRuntime) but does not include / . This can fail to compile depending on transitive includes. Add the missing standard headers here explicitly.
#include "api/TimingEngine.hh"
#include "api/TimingIDBAdapter.hh"
#include "idm.h"
#include "sta/Sta.hh"
#include "timing_api.hh"
#include "gtest/gtest.h"

#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <mutex>
#include <regex>
#include <string>
#include <string_view>
#include <system_error>
#include <unordered_map>
#include <vector>

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +93 to +101
inline const fs::path& ics55GcdServiceRoot() {
static const fs::path kServiceRoot =
"/nfs/share/home/huangzengrong/benchmark/test/ics55_gcd_service";
return kServiceRoot;
}

inline const fs::path& ics55GcdHardenRoot() {
static const fs::path kHardenRoot =
"/nfs/share/home/huangzengrong/benchmark/test/gcd_harden";
@zhaoxueyan1 zhaoxueyan1 merged commit 20f97b2 into main Apr 21, 2026
5 checks passed
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.

2 participants