feat(parser): support PERIOD timing checks#7
Merged
Conversation
OpenSTA emits (PERIOD port value) timing checks for cells whose liberty defines a minimum clock period (e.g. gf180mcu dffq), and the grammar rejected them. Add the PERIOD check across the stack, mirroring WIDTH: - grammar: period_check rule, included in t_check - model: EntryType.PERIOD and the Period dataclass - transformer: period_check (single port, nominal value) - builder: CellBuilder.add_period - SDF writer template: single-port rendering like width - annotate: $period(...) specify rendering
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.
Summary
OpenSTA emits
(PERIOD port value)timing checks for cells whose liberty defines a minimum clock period (e.g.gf180mcu_fd_sc_mcu7t5v0__dffq), and the grammar rejected them with anUnexpectedTokenerror. PERIOD is a standard SDF timing check (IEEE 1497).This adds the PERIOD check across the stack, mirroring the existing WIDTH handling (single port + single value):
period_checkrule, included int_checkEntryType.PERIODand thePerioddataclassperiod_check(single port, nominal value)CellBuilder.add_period$period(...)specify renderingTests
add_periodin the all-entry-types testentries_to_specifymapping and$periodspecify-block rendering330 tests pass, 98% coverage.