-
Notifications
You must be signed in to change notification settings - Fork 595
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
dft: implementing interface to support different test modes #6533
base: master
Are you sure you want to change the base?
Conversation
This is a refactoring change + public API change where we start supporting different tests modes. The test mode currently does nothing except for independendly architect and stitch each test mode. In the future, different tests modes may have different types of scan (ex: internal scan, scan compression, boundary scan, etc) and may support to include/exclude cells in certain modes. Signed-off-by: Felipe Garay <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Signed-off-by: Felipe Garay <[email protected]>
Signed-off-by: Felipe Garay <[email protected]>
clang-tidy review says "All clean, LGTM! 👍" |
1 similar comment
clang-tidy review says "All clean, LGTM! 👍" |
@@ -124,3 +133,19 @@ proc report_dft_config { args } { | |||
sta::parse_key_args "report_dft_config" args keys {} flags {} | |||
dft::report_dft_config | |||
} | |||
|
|||
|
|||
sta::define_cmd_args "create_dft_test_mode" { [-test_mode test_mode] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is -test_mode really optional? If not provided the command is a silent no-op which seems unexpected.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, yeah, I will fix this, good point. I will revisit this PR on Friday
@@ -9,6 +9,8 @@ link_design sub_modules | |||
|
|||
create_clock -name main_clock -period 2.0000 -waveform {0.0000 1.0000} [get_ports {clock}] | |||
|
|||
set_dft_config -max_chains 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has no effect on the ok file and doesn't relate to test modes - what is the purpose?
ScanArchitectConfig* getMutableScanArchitectConfig(); | ||
const ScanArchitectConfig& getScanArchitectConfig() const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason one is by pointer and the other by reference?
// Not copyable or movable. | ||
TestModeConfig(const TestModeConfig&) = delete; | ||
TestModeConfig& operator=(const TestModeConfig&) = delete; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You have no prevented moving, only copying.
@@ -48,6 +48,8 @@ class ScanArchitectConfig | |||
ClockMix // We architect the flops of different clock and edge together | |||
}; | |||
|
|||
ScanArchitectConfig() : clock_mixing_(ClockMixing::NoMix) {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can just do
ClockMixing clock_mixing_{NoMix};
and skip the ctor. Does this relate to test mode?
if (name == kDefaultTestModeName) { | ||
return createTestMode(name); | ||
} | ||
return nullptr; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
getOrDefaultMutableTestModeConfig sounds like it should return default if not found.
It would be nice to add a test with multiple test modes even if it doesn't do much yet. |
This is a refactoring change + public API change where we start supporting different tests modes. The test mode currently does nothing except for independendly architect and stitch each test mode.
In the future, different tests modes may have different types of scan (ex: internal scan, scan compression, boundary scan, etc) and may support to include/exclude cells in certain modes.