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

Complete Constant and Variable Shift Support #1560

Merged
merged 2 commits into from
Sep 24, 2020

Conversation

sdamghan
Copy link
Member

Description

  • Moving Constant Shift from partial_mapping to netlist_create_from_ast
  • Supporting the Variable Shift using Barrel Shift design
  • Passing a new variable in the entire netlist_create_from_ast to keep the value of assignment size.
  • Adding benchmarks to cover all possible Shift operation criteria, such as operands' signedness, Arithmetic or Logical and Constant or Variable Shift.

Related Issue

Issue #38

Motivation and Context

Odin-II still has not supported the entire Shift feature which is an essential operation in hardware programming and Verilog. By moving Constant Shift to the netlist_create_from_ast, the netlist node creation for the Constant Shift operation has been removed. Also, this approach adds the Variable Shift which has not been supported yet.

How Has This Been Tested?

  1. make test (ODIN-II)
  2. Basic Regression Tests
  3. Strong Regression Test
  4. Basic Valgrind Memory Tests (also, Valgrind memory tests for all other regression suits)
  5. Sanitized Basic Regression Tests
  6. Odin-II Micro Tests

Types of changes

  • Bug fix (change which fixes an issue)
  • New feature (change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed

* Supporting variable shift using Barrel shift design

* Keeping the pointers of main inputs, connected to the shift

* Considering the order for input/output connections of SR and ASR

* Padding RHS input with the MSB for SR and ASR

* Removing netlist node creation for constant shift
* Removing old benchmarks for shift operation

* Regenerating expectation results
@probot-autolabeler probot-autolabeler bot added lang-cpp C/C++ code lang-hdl Hardware Description Language (Verilog/VHDL) Odin Odin II Logic Synthesis Tool: Unsorted item tests labels Sep 22, 2020
@jeanlego
Copy link
Contributor

good job on this 👍

thanks

@jeanlego jeanlego merged commit 78fcb4d into verilog-to-routing:master Sep 24, 2020
@sdamghan
Copy link
Member Author

good job on this +1

thanks

@jeanlego Thanks for your comments and guidance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-cpp C/C++ code lang-hdl Hardware Description Language (Verilog/VHDL) Odin Odin II Logic Synthesis Tool: Unsorted item tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants