ODIN_II: Add basic task support #933
Merged
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.
Description
This PR will add basic support for tasks. Odin II will now be able to parse and process verilog files containing basic implementations of tasks. Can support multiple instances of the same task, or have multiple tasks defined and instantiated by the module. Can parse automatic tasks and functions, but these are not yet handled. Updated function_statement in the bison to prevent things that functions cannot do from passing through. Added support for unconnected ports in module instances.
How Has This Been Tested?
Odin pre-commit
Created new verilog files for tests. I have added three equivalent test cases, simple_task.v, which uses a task, simple_function.v, which uses a function, and simple_module.v, which uses a module, all of which implement the same circuit as the existing verilog test file in operators, twobit_arithmetic_plus.v. All four of these verilog files give the same output blif. These files can also be used in the future, if changes are made to how Odin II handles either module instances, function instances, or task instances, we will be able to use these to ensure the output of all four still yields the same result
Types of changes
Checklist: