-
Notifications
You must be signed in to change notification settings - Fork 5
Add CLI and API for simplified usage #7
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
Open
zkwinkle
wants to merge
65
commits into
master
Choose a base branch
from
add_cli
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
…nvenient format to use later
…ers to be shorter for CLI flags.
…nerate the SAIF data from a vcd dump for a circuit
…at has stuff prepended and appended
… trained with outputs in different order and also testbench was written with outputs being printed in reverse order for some reason
…None or LEAF_NODE_1
…ods that resynthesize to properly handle the resynthesized circuit
…king for ccarving.
regardless of input size
…e added CLI and configuration object
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.
This commit implements a CLI in the
__main.py__file to interface with the tool, it provides 2 subcommands:run: Executes one of the tool's ALS methods.generate: Generates a dataset for simulation or training during ALS.In order to support this CLI the following files were added:
configuration.py: Contains a configuration object that validates parameter for execution of an ALS method.runner.py: Provides therunmethod to execute an ALS method based on configuration.runner.pyfile with the basic logic for that method's execution.configuration.pyand to the CLI options in__main__.py.These files also provide an API for simplified execution of the tool without having to mess around with each ALS method's API specifically.
Since this commit adds a CLI, a configuration object and a runner function, the following files were deleted:
poisonoak.config: Unused file meant to be used for configuration in the future. Removed in favor ofconfiguration.pyfor API usage or configuration flags in the CLI.poisonoak.help: Unused file meant to hold the CLI's help message in the future. Removed in favor of using the fully fledged CLI libraryargparsewhich aids in auto-generating a help message.barcas.py: Unused and out of dateInOutsimplementation. Removed because it didn't have a purpose. If users of the tool want to use theInOuts implementation the can use the CLI or simplified API, and if they want an example of how to useInOuts directly as a library they can look at therunner.pyfile; which has examples for all methods.Some other miscellaneous changes:
netlist.py.circuit.pyandcircuiterror.py.shuffle_bagdistribution for dataset generation, useful for generating exhaustive datasets for smaller circuits.generate_saif_from_vcdmethod tocircuit.pyto be able to generate SAIF files programmatically through AxLS, though the method can take quite long to execute. It's recommended to re-implement it through a faster language in the future.uniformdataset distribution generator so that it uses all of a circuit's bits when generating outputs for bigger 64bit and 128 bit circuits. Previously the last 50 bits were always0.