-
Notifications
You must be signed in to change notification settings - Fork 66
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
atsmith3
wants to merge
99
commits into
HewlettPackard:master
Choose a base branch
from
atsmith3:master
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 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
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...
Feature/git hooks
grepping the sources is now easier CMakeLists copies the binary to the build directory post build.
organization: src directory
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
Feature/refactor iocontrollers
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
Feature/refactor memctrl
Split apart the cache files, ready to begin transforming code.
Split apart the core source so that it will be easier to work on.
…nstCache to fit new interface
Added branchPredictor
Feature/serialization
….com/atsmith3/mcpat into feature/serialization-merge-refactor
…ctor Feature/serialization merge refactor
instruction fetch unit finally DONE
Refactored Load Store Unit to work with serialization
refactor: Load Store Unit
Bugfix in merge
Feature/refactor core
All unit tests passing, time to add serialization to core and test
Feature/serialization core merge
Passing all tests, no segmentation fault:
Feature/serialization core
Feature/refactor
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.
The following changes have been made over version v1.3.0:
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.
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.
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.
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.