Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
d731513
New aarch64 insn support from ModSim23 work(#335)
jj16791 Oct 13, 2023
6b186d5
Various memory centric bug fixes (#336)
jj16791 Oct 13, 2023
a41df9b
A64FX model and LSQ accuracy improvements (#337)
jj16791 Oct 13, 2023
f0b9ede
SST compile fix on MacOS (#338)
FinnWilkinson Nov 2, 2023
e0bd27e
SME SVCR logic fix (#339)
FinnWilkinson Nov 2, 2023
3cb5f56
RISC-V Single and Double Precision Floating Point extension (#303)
dANW34V3R Dec 13, 2023
7bbf87d
Global siminfo (#343)
jj16791 Dec 15, 2023
dbe3952
AArch64 ST1W and register rewinding bug fixes (#363)
jj16791 Dec 19, 2023
75cfc3c
Correct CSRRW State Change (#364)
dANW34V3R Dec 20, 2023
f3e02a1
Memory interface type check (#373)
jj16791 Jan 26, 2024
f5e7aac
Unit Test Suite Update (#352)
FinnWilkinson Feb 2, 2024
13498d1
Added .cache, cmake-build-debug, and cmake-build-release to gitignor…
rahahahat Feb 2, 2024
0f3a099
Added fix for returning a consistent nan value from a divide by zero …
jj16791 Feb 6, 2024
1b4c9a3
Use of calloc to ensure clean pages are given for ELF process images …
jj16791 Feb 6, 2024
8af924c
Config file bug cleanup (#370)
JosephMoore25 Feb 9, 2024
b941496
Fix broken tests caused by config-bug-fixes PR (#388)
JosephMoore25 Feb 12, 2024
7c9ed78
Perceptron predictor (#374)
ABenC377 Feb 14, 2024
22b9652
Name changes (#377)
dANW34V3R Feb 15, 2024
e17ad08
Architecture Class cleanup (#385)
FinnWilkinson Feb 16, 2024
f4bd1ef
Core class cleanup (#387)
FinnWilkinson Feb 16, 2024
c5fb7c6
Instruction Class Clean-Up (#389)
FinnWilkinson Feb 20, 2024
b772a62
System call and exception regression tests (#379)
jj16791 Feb 20, 2024
e42ed6a
RISC-V Compressed Instructions (#368)
dANW34V3R Feb 20, 2024
84ce867
Added conditional existence checks before early config option queryin…
jj16791 Feb 21, 2024
34d9158
AArch64 bitfieldManipulate bounds checking (#395)
jj16791 Feb 21, 2024
f2c1fec
0.9.6 documentation update (#396)
jj16791 Feb 21, 2024
eed073e
Corrected RV shift word instructions (#412)
JosephMoore25 May 21, 2024
3ffa987
Warnings (#408)
dANW34V3R Jun 4, 2024
6234858
Fix shift.value (#418)
dANW34V3R Jul 4, 2024
9f4a1e0
Ensure Emulation core executes each macro-op to completion in 1 cycle…
FinnWilkinson Jul 9, 2024
5e58710
Speculated assertions (#414)
dANW34V3R Jul 9, 2024
7af3bc3
Added issue templates (#416)
FinnWilkinson Jul 9, 2024
1c394e7
Fixing LoopBuffer bug (#421)
ABenC377 Aug 2, 2024
05fdd87
Bp update (#422)
ABenC377 Aug 29, 2024
4134c3e
Group Tests (#419)
dANW34V3R Aug 29, 2024
b73c2cc
Added cstdint header to Register.hh (#427)
FinnWilkinson Sep 20, 2024
7018211
AppleClang 16 SimInfo LTO fix (#430)
FinnWilkinson Sep 20, 2024
1d9e277
Fix invalid version header destination (#434)
tom91136 Oct 31, 2024
84f4c7f
CI/CD (#437)
ABenC377 Nov 6, 2024
f01b5d6
Making GCC7 work on ubuntu 20 (#442)
ABenC377 Dec 16, 2024
8f4ef13
DI unit balanced port allocation fix (#431)
FinnWilkinson Dec 17, 2024
6613d40
AArch64 Capstone Update / SME2 support (#429)
FinnWilkinson Dec 20, 2024
14bdcbc
Removing checkEarlyBranchMisprediction() function (#446)
ABenC377 Jan 23, 2025
cccbbc9
Updated port allocator in A64FX configs to balanced. (#449)
FinnWilkinson Jan 23, 2025
576d4d4
Full SME(1) instruction support and STREAMING Groups (#415)
FinnWilkinson Feb 6, 2025
00decfd
Merge remote-tracking branch 'origin/dev' into trace-update
FinnWilkinson Feb 17, 2025
cd621ee
Post merge fixes.
FinnWilkinson Feb 17, 2025
2d1d6fc
Added trace support to SST simulations.
FinnWilkinson Feb 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,5 @@ workflows:
- docs-build
filters:
branches:
only: main
only:
- main
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/simeng-bug-or-issue-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
name: SimEng Bug or Issue Report
about: Report a bug or un-expected SimEng behaviour
title: ''
labels: ''
assignees: ''

---

**Check List**
- [ ] The binary I am trying to run has been compiled statically for either RV64 or AArch64.
- [ ] The compiled binary is a Linux Elf file.
- [ ] I have provided both a config file and a binary to SimEng as runtime arguments.

**Binary File Information**
Please run `file` on the binary used and paste the output below (i.e. `file myBinary.elf`).
```bash
```

**System Description**
Please provide the following as a list:
- The Operating System of the system you are running SimEng on
- The compiler used to compile SimEng and its version
- The compiler used to compile the static binary and its version
- The ISA or specific processor that the binary was compiled for
- For example, if `-march=armv8.4-a+sve` was used, then present `armv8.4-a+sve`
- If `-mcpu=neoverse-v1` or similar was used, then present `neoverse-v1`
- The processor of the system you are running SimEng on
- The main memory capacity of the system you are running SimEng on

**SimEng Version**
Provide the SimEng repository branch, commit hash, and version tag (if relevant) that the issue is present on.

**SimEng CMAKE Options Used**
Provide a bullet list of all CMAKE options used. E.g. `-DCMAKE_BUILD_TYPE=Release`.

**Binary Compilation Instructions**
Provide a bullet list of how the binary in question was compiled, including all compiler flags used.

**SimEng Command Line Expression**
Provide the command line expression used to run SimEng e.g. `./simeng /path/to/configs/a64fx.yaml /path/to/myBinary.elf`

**SimEng Metadata Output**
If your simulation begins to execute the binary, please provide the metadata that SimEng prints at the start of execution.
E.g.
```bash
./simeng configs/a64fx.yaml myStaticBinary.elf
[SimEng] Build metadata:
[SimEng] Version: 0.9.6
[SimEng] Compile Time - Date: 14:01:44 - Jun 19 2024
[SimEng] Build type: Debug
[SimEng] Compile options: $<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>;-Wall;-pedantic;-Werror
[SimEng] Test suite: ON

[SimEng] Running in Out-of-Order mode
[SimEng] Workload: /home/SimEng/myStaticBinary.elf
[SimEng] Config file: /home/SimEng/configs/a64fx.yaml
[SimEng] ISA: AArch64
[SimEng] Auto-generated Special File directory: True
[SimEng] Special File directory used: /home/SimEng/build/specialFiles/
[SimEng] Number of Cores: 1
[SimEng] Starting...
```

**Problem Description**
Explain what you think should happen, and what actually happens.
51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/simeng-instruction-NYI-or-Alias.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
name: SimEng Instruction Not-Yet-Imlpemented, Alias, or Missing System Register
about: Report an instruction which either does not yet have execution logic implemented (NYI), an instruction who's alias needs resolving, or an instruction which targets a system register which is not yet supported.
title: '[NYI|ALIAS|SYSREG]'
labels: ''
assignees: ''

---

**Check List**
- [ ] I have selected the appropriate title prefix from the available options within `[NYI|ALIAS|SYSREG]`, and added a suitable title after this.
- [ ] The binary I am trying to run has been compiled statically for either RV64 or AArch64.
- [ ] The compiled binary is a Linux Elf file.

**Binary Compilation Instructions**
Provide a bullet list of how the binary in question was compiled, including all compiler flags used.

**SimEng CMAKE Options Used**
Provide a bullet list of all CMAKE options used. E.g. `-DCMAKE_BUILD_TYPE=Release`.

**SimEng Command Line Expression**
Provide the command line expression used to run SimEng e.g. `./simeng /path/to/configs/a64fx.yaml /path/to/myBinary.elf`

**Console Printout**
Please provide a copy of SimEng's console printout prior to its end-of-execution statistics. Please do not include any binary specific output.
E.g.
```bash
./simeng configs/a64fx.yaml myStaticBinary.elf
[SimEng] Build metadata:
[SimEng] Version: 0.9.6
[SimEng] Compile Time - Date: 14:01:44 - Jun 19 2024
[SimEng] Build type: Debug
[SimEng] Compile options: $<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>;-Wall;-pedantic;-Werror
[SimEng] Test suite: ON

[SimEng] Running in Out-of-Order mode
[SimEng] Workload: /home/SimEng/myStaticBinary.elf
[SimEng] Config file: /home/SimEng/configs/a64fx.yaml
[SimEng] ISA: AArch64
[SimEng] Auto-generated Special File directory: True
[SimEng] Special File directory used: /home/SimEng/build/specialFiles/
[SimEng] Number of Cores: 1
[SimEng] Starting...


[SimEng:ExceptionHandler] Encountered execution not-yet-implemented exception
[SimEng:ExceptionHandler] Generated by instruction:
[SimEng:ExceptionHandler] 0x0000000000402dc8: 1d 00 80 d2 mov x29, #0
[SimEng:ExceptionHandler] opcode ID: 3680
[SimEng:Core] Halting due to fatal exception
```
113 changes: 113 additions & 0 deletions .github/actions/select_setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Setup compiler and OS combo
description: installs dependencies and correct compiler/OS versions to build and test simeng

##############################################################################
# Calls the correct setup action based on parameters passed into this action.
##############################################################################

inputs:
OS:
required: true
COMPILER:
required: true
MODE:
required: true

runs:
using: 'composite'
steps:
##########################################
# GCC jobs
##########################################

# ubuntu
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'ubuntu') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_ubuntu
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# rocky linux
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'rocky') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_rocky
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# red hat
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'redhat') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_redhat
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# debian
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'debian') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_debian
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

# macos
- if: ${{ contains( inputs.COMPILER, 'gcc') && contains( inputs.OS, 'macos') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_gcc_macos
with:
OS: ${{ inputs.OS }}
gcc-version: ${{ inputs.COMPILER }}
MODE: ${{ inputs.mode }}

##########################################
# APPLE CLANG
##########################################

- if: ${{ contains( inputs.COMPILER, 'clang') && contains( inputs.OS, 'macos') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_clang_macos
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

##########################################
# ARM CLANG
##########################################

# ubuntu
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'ubuntu') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_ubuntu
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# debian
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'debian') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_debian
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# redhat
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'redhat') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_redhat
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}

# rocky
- if: ${{ contains( inputs.COMPILER, 'armclang') && contains( inputs.OS, 'rocky') }}
name: Install ${{ inputs.COMPILER }} + Build SimEng
uses: ./.github/actions/setup_armclang_rocky
with:
OS: ${{ inputs.OS }}
MODE: ${{ inputs.mode }}
95 changes: 95 additions & 0 deletions .github/actions/setup_armclang_debian/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: setup armclang
description: installs dependencies and correct armclang version to build and test simeng

inputs:
OS:
description: docker image name
required: true
MODE:
description: simeng-mode e.g. Release or Debug
required: true

runs:
using: 'composite'
steps:
#######################################
# Install dependencies required (cmake, etc).
#######################################
- name: Install dependencies
shell: bash
run: |
export DEBIAN_FRONTEND=noninteractive

# Update package lists
apt-get update

# Install essential packages
apt-get install -y \
python3-launchpadlib \
software-properties-common \
build-essential \
sudo \
wget \
zlib1g-dev \
python3 \
build-essential \
libssl-dev \
ninja-build \
tree \
git

# add pyparsing for benchmarking
apt-get install -y python3-pip
pip3 install pyparsing

apt-get update
apt-get upgrade -y

#######################################
# Install Cmake
#######################################
- name: Install Cmake via apt
shell: bash
run: |
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \
apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' && \
apt update && apt install cmake -y
apt upgrade -y

#######################################
# Install ArmClang
#######################################
- name: Install armclang
shell: bash
run: |
apt-get update
apt-get upgrade -y
apt-get install environment-modules
source /etc/profile.d/modules.sh

wget https://developer.arm.com/-/cdn-downloads/permalink/Arm-Compiler-for-Linux/Version_24.04/arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar
tar -xf arm-compiler-for-linux_24.04_Ubuntu-22.04_aarch64.tar

./arm-compiler-for-linux_24.04_Ubuntu-20.04/arm-compiler-for-linux_24.04_Ubuntu-20.04.sh --install-to ./armclang_compiler
export MODULEPATH=$MODULEPATH:$(pwd)/armclang_compiler/modulefiles

module avail
module load acfl/24.04
armclang -v

echo "C_COMPILER=$(which armclang)" >> $GITHUB_ENV
echo "CPP_COMPILER=$(which armclang++)" >> $GITHUB_ENV

#######################################
# Build SimEng
#######################################
- name: Build SimEng
shell: bash
run: |
cmake -B build -S . -DCMAKE_BUILD_TYPE=${{ inputs.MODE }} -DSIMENG_ENABLE_TESTS=ON -DSIMENG_OPTIMIZE=ON -DCMAKE_C_COMPILER=${{ env.C_COMPILER }} -DCMAKE_CXX_COMPILER=${{ env.CPP_COMPILER }}

cmake --build build -j $(nproc)

cmake --build build --target install


Loading