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

Moderinzation, Organization & Unit Testing #5

Open
wants to merge 99 commits into
base: master
Choose a base branch
from

Conversation

atsmith3
Copy link

The following changes have been made over version v1.3.0:

  1. Area calculation can be responsible for 99% of the execution time making it a huge overhead if you are trying to perform power analysis at the single cpu-cycle to 100s of cycle level granularity. By adding serialization to the classes with libboost; we can achieve over two orders of magnitude faster execution.

  2. The project has been modernized with CMake as the build tool and using Clang as the default compiler. The reasoning behind this is two fold, CMake is a more scalable build tool, facilitating community adoption and contribution. The second reason is that clang has better optimization and better diagnostic messages than gcc, improving performance and the ease of contribution.

  3. A unit testing framework has been added to the unit_test directory. This framework allows the community to easily check the code and assert the output against the default provided outputs from v1.3.0 when adding or extending on features.

  4. Boost Options have been added to parse the input. This is cleaner, more flexible, and provides a clearer usage message. Options can be easily added to extend on functionality.

atsmith3 and others added 30 commits June 8, 2020 16:08
unit-test: Added simple unit test framework
Used clang-format to stylize the code base based on the LLVM Style Guides.
Switched to CMake so that CI tools can be used.
Pre commit clang-format test
Also cleaned up the build warnings
Need to do more research later...
grepping the sources is now easier CMakeLists copies the binary to the build
directory post build.
Adding Options class for easier extendability in the future based on boosts
program_options library. Requires libboost 1.32.0+
Options: Options class with libboost program_options
Refactored the Flash Controller Module to separate the Area calculations from
the Power Calculations
Refactored the PCIe Controller Module to separate the Area calculations from
the Power Calculations
Refactored the NIU Controller Module to separate the Area calculations from
the Power Calculations
Refactored the Flash Controller Module to separate the Area calculations from
the Power Calculations
Refactored the MC PHY Module to separate the Area calculations from the Power
Calculations
Refactored the Memory Controller Front End Module to separate the Area calculations from
the Power Calculations
Refactored the Memory Controller Module to separate the Area calculations from
the Power Calculations
Split apart the cache files, ready to begin transforming code.
Split apart the core source so that it will be easier to work on.
atsmith3 and others added 30 commits June 23, 2020 15:11
…ctor

Feature/serialization merge refactor
Refactored Load Store Unit to work with serialization
All unit tests passing, time to add serialization to core and test
Passing all tests, no segmentation fault:
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.

2 participants