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

Multiple Macro Support + TV Generation Cleanup #43

Merged
merged 22 commits into from
Jan 15, 2024
Merged

Multiple Macro Support + TV Generation Cleanup #43

merged 22 commits into from
Jan 15, 2024

Conversation

donn
Copy link
Member

@donn donn commented Jan 4, 2024

  • Added logging to fault jtag simulations
  • New flags
    • --blackbox names of modules (not instances) inside the design to be blackboxed (i.e. connections treated as outputs or inputs to the circuit): Added to chain, cut
    • --blackboxModels: Verilog files containing behavioral models for black-boxed instances for simulation: Added to chain, jtag and must be readable by Pyverilog (sorry)
    • --output-fault-points: Outputs all detected fault points: Added to main
    • --output-covered: Outputs coverage metadata: Added to main
  • Created new element, Module, which captures and stores metadata about modules
  • Rewrote simulation scripts to use an array of models instead of separate cells and includes
  • Rewrote major parts of fault chain to support multiple macros (and general code quality)
  • Test Vector Generation Cleanup
    • Generalized class RNG into TVGenerator (the previous kind was renamed ExternalTVGenerator, should eventually be the same class when I have the time)
    • Each test vector is generated entirely ahead of time then cut into bits instead of generated segment by segment
    • Added new TVGenerator, PatternGenerator, that is not random and uses the following pattern(s) depending on the iteration count:
      • All 0
      • All 1
      • Half 0, Half 1
      • Half 1, Half 0
      • Alternating 0s and 1s
      • Alternating 1s and 0s
      • Moving max(1, min(32, bits/4)) window of 1s (even) and the complement of that (odd)
    • TVGenerators now take a seed, fixed default seed but can be changed over CLI
      • Incorporated ARC4RandomNumberGeneratorfrom Swift TensorFlow sources, which is seeded
  • Fixed a bug where fault asm did not load some input names correctly
  • Removed smoke test functionality
  • Removed appimage

Testing

  • Added new design, TripleDelay, to test the use of macros

@donn donn marked this pull request as draft January 4, 2024 17:41
Add two flags to `main` to output metadata related to coverage, one for all fault points and one for fault points that are covered by the output test vectors.
@donn donn marked this pull request as ready for review January 14, 2024 13:21
@donn donn enabled auto-merge (squash) January 14, 2024 13:24
@donn donn disabled auto-merge January 14, 2024 13:24
@donn donn enabled auto-merge (squash) January 14, 2024 13:25
* Generation reworked: Each test vector is generated entirely ahead of time then cut into bits instead of generated segment by segment
* Added new TVGenerator, `PatternGenerator`, that is not random and uses the following pattern(s) depending on the iteration count:
   * All 0
   * All 1
   * Half 0, Half 1
   * Half 1, Half 0
   * Alternating 0s and 1s
   * Alternating 1s and 0s
   * Moving `max(1, min(32, bits/4))` window of 1s (even) and the complement of that (odd)
* TVGenerators now take a seed, fixed default seed but can be changed over CLI
* Fixed test
* Incorporated `ARC4RandomNumberGenerator`from Swift TensorFlow sources (takes a seed)
@donn donn changed the title Add support for multiple black-boxed macros Multiple Macro Support + TV Generation Cleanup Jan 15, 2024
@donn donn merged commit 90b1192 into main Jan 15, 2024
2 checks passed
@donn donn deleted the multiple_macros branch July 25, 2024 16:41
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.

1 participant