Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
a4c0deb
start vset
jmawet Feb 23, 2025
c922f47
Merge branch 'riscv-software-src:main' into vector
jmawet Feb 27, 2025
536ad31
update vset
jmawet Mar 9, 2025
3c1878e
Merge branch 'vector' of https://github.com/jmawet/riscv-unified-db i…
jmawet Mar 9, 2025
5211e8a
Merge branch 'riscv-software-src:main' into vector
jmawet Mar 9, 2025
7a29980
Merge branch 'riscv-software-src:vector' into vector
jmawet Mar 26, 2025
c833986
start adding CSRs
jmawet Mar 30, 2025
35b70f7
start adding CSRs
jmawet Mar 30, 2025
35c2da9
Merge branch 'vector' of https://github.com/jmawet/riscv-unified-db i…
jmawet Mar 30, 2025
9e7ea5b
add skeleton for remaining CSRs
jmawet Mar 30, 2025
a713489
add skeleton for remaining CSRs
jmawet Mar 30, 2025
e7b2d04
update CSRs based on comments
jmawet Apr 1, 2025
fe42aad
add remaining csr details
jmawet Apr 7, 2025
f1f3cfc
update csr read in vset
jmawet Apr 7, 2025
31b051f
address comments
jmawet Apr 21, 2025
b4fd2b8
add pretty tables in csr descriptions
jmawet Apr 21, 2025
cb984f9
break up csr write fields in vset
jmawet Apr 23, 2025
bc76954
feat(idl): add constraints to IDL
dhower-qc Jul 3, 2025
60f2054
feat: add mock spec to udb gem for testing, add Condition classes
dhower-qc Jul 11, 2025
6928ad8
docs: document schema conditions and idl implications
dhower-qc Jul 16, 2025
19c9d58
refactor: move parameters into their own YAML files
dhower-qc Jul 16, 2025
345b441
feat: wip
dhower-qc Jul 23, 2025
0db0e7c
feat: wip
dhower-qc Jul 23, 2025
46c52cd
update vl assignment in ranged case
jmawet Aug 15, 2025
b474edf
add vxsat and vxrm sw_write
jmawet Aug 15, 2025
d143311
set vill in unsupported cases
jmawet Aug 23, 2025
3c2c756
Merge pull request #1021 from riscv-software-src/main
jmawet Aug 24, 2025
712c3ac
rebase to latest main
jmawet Aug 24, 2025
855a04a
Merge pull request #1 from jmawet/jmawet-vector
jmawet Aug 24, 2025
7fe516b
fix idl compile errors
jmawet Sep 7, 2025
879a548
adress dhower's feedback
jmawet Sep 15, 2025
a88e079
Update spec/std/isa/ext/V.yaml
jmawet Sep 21, 2025
fe0a0da
Update spec/std/isa/csr/V/vxsat.yaml
jmawet Sep 21, 2025
c0b3b3c
Update spec/std/isa/csr/V/vxrm.yaml
jmawet Sep 21, 2025
34e2bb0
Update spec/std/isa/csr/V/vcsr.yaml
jmawet Sep 21, 2025
94daf9d
Update spec/std/isa/inst/V/vsetivli.yaml
jmawet Sep 21, 2025
2921e24
adress thinkopenly's comments
jmawet Sep 21, 2025
49b0d4d
Merge branch 'main' into vector
henrikg-qc Sep 30, 2025
88eab4c
fix:(vector): restructuring vset instructions operation()
henrikg-qc Oct 1, 2025
ad3d866
chore: dependency update
henrikg-qc Oct 1, 2025
2d5fb7f
feat: wip
dhower-qc Oct 2, 2025
e5a1756
Merge remote-tracking branch 'origin/main' into param_dep
dhower-qc Oct 2, 2025
3bad309
fix: merge errors
dhower-qc Oct 2, 2025
25d5aa3
feat(vector): add rv32 vector configuration based on rv32-riscv-tests…
henrikg-qc Oct 3, 2025
e0fa497
wip
dhower-qc Oct 7, 2025
1d8c81a
feat(vector): add skeleton of vadd.vv
adingank-qualcomm Oct 8, 2025
688ae1f
wip
dhower-qc Oct 12, 2025
e8f0cb5
add regress job dependency
dhower-qc Oct 12, 2025
a0efba3
Merge remote-tracking branch 'origin/main' into param_dep
dhower-qc Oct 12, 2025
8cc68a6
Fix path in regression for udb unit tests
dhower-qc Oct 12, 2025
728a407
wip
dhower-qc Oct 12, 2025
511534d
wip
dhower-qc Oct 13, 2025
2146664
wip
dhower-qc Oct 13, 2025
c83c9bd
wip
dhower-qc Oct 13, 2025
00f22de
wip
dhower-qc Oct 13, 2025
5383f39
wip
dhower-qc Oct 15, 2025
e9698e2
fix(vector): fix vset* failures
adingank-qualcomm Oct 15, 2025
452c776
wip
dhower-qc Oct 16, 2025
ac82312
wip
dhower-qc Oct 16, 2025
6b3ed6c
wip
dhower-qc Oct 16, 2025
ac2fc62
wip
dhower-qc Oct 16, 2025
2f931cb
wip
dhower-qc Oct 16, 2025
9c806ef
feat(vector): add skeleton of vadd.vv
adingank-qualcomm Oct 8, 2025
f8cf925
fix(vector): fix vset* failures
adingank-qualcomm Oct 15, 2025
ca34bc4
wip
dhower-qc Oct 31, 2025
044a455
wip
dhower-qc Oct 31, 2025
5a8e8cd
fix(vector): implement vadd.vv
adingank-qualcomm Oct 31, 2025
9f8d8cc
Merge remote-tracking branch 'origin/main' into param_dep
dhower-qc Oct 31, 2025
c7ddc57
Merge remote-tracking branch 'origin/param_dep' into ajit/vvadd
adingank-qualcomm Oct 31, 2025
13cf048
fix(vector): extract V parameters into their own files
adingank-qualcomm Oct 31, 2025
ee3efe2
fix(vector): get iss through compilation after changes from issue 891
adingank-qualcomm Nov 7, 2025
080a234
fix(vector): add launch config for vsetvli debug
adingank-qualcomm Nov 8, 2025
2e901a6
fix(vector): sort param topologically w.r.t. dependence
adingank-qualcomm Nov 13, 2025
f96ce3c
fix(vector): add 64 to SXLEN as a workaround to get ISS to run a test
adingank-qualcomm Nov 15, 2025
ee23564
fix(vector): use const refs with std::find() in param_value() and def…
adingank-qualcomm Nov 17, 2025
f8257c3
Merge branch 'ajit/vvadd' into vector
henrikg-qc Nov 25, 2025
b706c06
fix(vector): handle rs1==x0 case in vsetvli
adingank-qualcomm Nov 27, 2025
daefb16
fix(vector): fix indentation in vsetvli
adingank-qualcomm Nov 27, 2025
ec0335a
feat: infrastructure to extend the riscv-tests suite without modifyin…
henrikg-qc Dec 3, 2025
c428168
fix: corrected copy paste errors
henrikg-qc Dec 3, 2025
ba1e7db
fix(vector): move vector tests from ext/riscv-tests/ submodule to tests/
adingank-qualcomm Dec 4, 2025
32bea27
fix(build): fix Gem path for bundler & ignore generated test/dump files
adingank-qualcomm Dec 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 36 additions & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ RUN \
libgmp-dev \
libnewlib-dev\
libyaml-dev \
minisat \
nodejs \
npm \
parallel \
Expand All @@ -36,7 +37,41 @@ RUN \
python3.12-venv \
ruby \
ruby-dev \
shellcheck
shellcheck \
zlib1g-dev

# build/install eqntott
RUN <<CMDS
git clone --depth=1 https://github.com/TheProjecter/eqntott.git
cd eqntott
./configure
make && make install
cd ..
rm -rf eqntott
CMDS

# build/install espresso
RUN <<CMDS
git clone --depth=1 https://github.com/psksvp/espresso-ab-1.0.git
cd espresso-ab-1.0
./configure
make && make install
cd ..
rm -rf espresso-ab-1.0
CMDS

# build / install must
RUN <<CMDS
git clone https://github.com/jar-ben/mustool.git
cd mustool
git checkout 17fa9f9542a9ce05328dfccd1cd410f05f741ab3
# mcsmus/mcsmus/control.cc is missing #include <cstdio>
sed -i -e 's/#include <signal.h>/#include <signal.h>\n#include <cstdio>/' mcsmus/mcsmus/control.cc
make
install must -m 0777 /usr/bin/must
cd ..
rm -rf mustool
CMDS

RUN apt-get clean autoclean
RUN apt-get autoremove -y
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,12 @@ on:
workflow_dispatch:
jobs:
publish-singularity-container:
runs-on: ubuntu-latest
env:
SINGULARITY: 1
strategy:
matrix:
runner: [ubuntu-24.04, ubuntu-24.04-arm]
runs-on: ${{ matrix.runner }}
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
Expand Down
91 changes: 91 additions & 0 deletions .github/workflows/regress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,97 @@ jobs:
disable_search: true
files: tools/ruby-gems/idlc/coverage/coverage.xml
flags: idlc
regress-find-configs:
runs-on: ubuntu-latest

outputs:
configs: ${{ steps.configs.outputs.configs }}

steps:
- uses: actions/checkout@v5
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
- name: Find configuration files
id: configs
run: |
ruby -e "puts 'configs=[\"' + Dir.glob('cfgs/*.yaml').map { |f| File.basename(f, '.yaml') }.join('\", \"') + '\"]'" >> "$GITHUB_OUTPUT"
regress-udb-validate-configs:
runs-on: ubuntu-latest

needs: regress-find-configs
strategy:
matrix:
config: ${{ fromJSON(needs.regress-find-configs.outputs.configs) }}

steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: singularity setup
uses: ./.github/actions/singularity-setup
- name: Run udb gem test_${{ matrix.config }} unit test
run: ./bin/ruby tools/ruby-gems/udb/test/test_cfg.rb -n test_cfg_${{ matrix.config }}_valid
- name: Rename coverage file
run: mv tools/ruby-gems/udb/coverage/.resultset.json tools/ruby-gems/udb/coverage/${{ matrix.config }}.resultset.json
- name: Save coverage report
uses: actions/upload-artifact@v4
with:
name: udb-test-cfg-${{ matrix.config }}-cov
path: tools/ruby-gems/udb/coverage/${{ matrix.config }}.resultset.json
regress-udb-unit-test:
runs-on: ubuntu-latest
env:
SINGULARITY: 1
strategy:
matrix:
test:
- logic
- conditions
- cli
- yaml_loader
- cfg_arch
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: singularity setup
uses: ./.github/actions/singularity-setup
- name: Run udb gem ${{ matrix.test }} unit tests
run: ./bin/ruby tools/ruby-gems/udb/test/test_${{ matrix.test }}.rb
- name: Rename coverage file
run: mv tools/ruby-gems/udb/coverage/.resultset.json tools/ruby-gems/udb/coverage/${{ matrix.test }}.resultset.json
- name: Save coverage report
uses: actions/upload-artifact@v4
with:
name: udb-${{ matrix.test }}-cov
path: tools/ruby-gems/udb/coverage/${{ matrix.test }}.resultset.json
regress-udb-cov-report:
runs-on: ubuntu-latest
env:
SINGULARITY: 1
needs:
- regress-udb-unit-test
- regress-udb-validate-configs
steps:
- name: Clone Github Repo Action
uses: actions/checkout@v4
- name: singularity setup
uses: ./.github/actions/singularity-setup
- name: download coverage
uses: actions/download-artifact@v5
with:
pattern: udb-*-cov
path: _cov/udb
merge-multiple: true
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Collate coverage
run: ./do chore:udb:collate_cov[_cov/udb]
- name: Upload udb coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
disable_search: true
files: tools/ruby-gems/udb/coverage/coverage.xml
flags: udb
regress-gen-isa-manual:
runs-on: ubuntu-latest
env:
Expand Down
33 changes: 33 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Vector rv32 Debug Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/gen/cpp_hart_gen/rv32_Debug/build/iss",
"args": [
"-m", "rv32",
"-c", "${workspaceFolder}/cfgs/rv32-vector.yaml",
"${workspaceFolder}/ext/riscv-tests/isa/rv32uv-p-vsetvli"],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
},
{
"description": "Set default value display to hex",
"text": "-gdb-set output-radix 16",
"ignoreFailures": true
}
]
},
{
"name": "ISS debug Launch",
"type": "cppdbg",
Expand Down
94 changes: 90 additions & 4 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{
"solargraph.bundlerPath": "bin/bundle",
"solargraph.bundlerPath": "./bin/bundle",
"solargraph.useBundler": true,
"sorbet.lspConfigs": [


{
"id": "container",
"name": "Sorbet (UDB)",
Expand Down Expand Up @@ -34,13 +35,13 @@
"name": "Sorbet (Host)",
"description": "Sorbet on the host",
"command": [
"/usr2/dhower/.rbenv/shims/bundle",
"bundle",
"exec",
"srb",
"typecheck",
"--lsp",
"--dir",
"tools/gems",
"tools/ruby-gems",
"--ignore",
"api_doc",
"--ignore",
Expand All @@ -66,5 +67,90 @@
]
}
],
"sorbet.selectedLspConfigId": "host"
"sorbet.selectedLspConfigId": "host",
"rubyTestExplorer.debugCommand": "bundle exec rdebug-ide",
"rubyTestExplorer.minitestCommand": "bundle exec rake",
"rubyTestExplorer.rspecCommand": "bundle exec rspec",
"rubyTestExplorer.testFramework": "minitest",
"rubyTestExplorer.minitestDirectory": "./tools/ruby-gems/idlc/test/",
"ipynb.experimental.serialization": false,
"files.associations": {
"any": "cpp",
"array": "cpp",
"atomic": "cpp",
"bit": "cpp",
"bitset": "cpp",
"cctype": "cpp",
"charconv": "cpp",
"chrono": "cpp",
"clocale": "cpp",
"cmath": "cpp",
"codecvt": "cpp",
"compare": "cpp",
"complex": "cpp",
"concepts": "cpp",
"condition_variable": "cpp",
"csignal": "cpp",
"cstdarg": "cpp",
"cstddef": "cpp",
"cstdint": "cpp",
"cstdio": "cpp",
"cstdlib": "cpp",
"cstring": "cpp",
"ctime": "cpp",
"cwchar": "cpp",
"cwctype": "cpp",
"deque": "cpp",
"forward_list": "cpp",
"list": "cpp",
"map": "cpp",
"set": "cpp",
"string": "cpp",
"unordered_map": "cpp",
"unordered_set": "cpp",
"vector": "cpp",
"exception": "cpp",
"algorithm": "cpp",
"functional": "cpp",
"iterator": "cpp",
"memory": "cpp",
"memory_resource": "cpp",
"numeric": "cpp",
"optional": "cpp",
"random": "cpp",
"ratio": "cpp",
"regex": "cpp",
"source_location": "cpp",
"string_view": "cpp",
"system_error": "cpp",
"tuple": "cpp",
"type_traits": "cpp",
"utility": "cpp",
"fstream": "cpp",
"future": "cpp",
"initializer_list": "cpp",
"iomanip": "cpp",
"iosfwd": "cpp",
"iostream": "cpp",
"istream": "cpp",
"limits": "cpp",
"mutex": "cpp",
"new": "cpp",
"numbers": "cpp",
"ostream": "cpp",
"ranges": "cpp",
"semaphore": "cpp",
"span": "cpp",
"sstream": "cpp",
"stdexcept": "cpp",
"stop_token": "cpp",
"streambuf": "cpp",
"thread": "cpp",
"cinttypes": "cpp",
"typeindex": "cpp",
"typeinfo": "cpp",
"valarray": "cpp",
"variant": "cpp",
"format": "cpp"
}
}
6 changes: 1 addition & 5 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ ruby "~> 3.2"
# local gems in UDB
gem "idlc", path: "tools/ruby-gems/idlc"
gem "idl_highlighter", path: "tools/ruby-gems/idl_highlighter"
gem "udb_helpers", path: "tools/ruby-gems/udb_helpers"
gem "udb", path: "tools/ruby-gems/udb"
gem "udb_helpers", path: "tools/ruby-gems/udb_helpers"

source "https://rubygems.org"

Expand All @@ -18,12 +18,8 @@ gem "bigdecimal"
gem "concurrent-ruby", require: "concurrent"
gem "concurrent-ruby-ext"
gem "json_schemer", "~> 1.0"
# gem "pygments.rb"
gem "rake", "~> 13.0"
#gem "rouge"
gem "ruby-progressbar", "~> 1.13"
gem "sorbet-runtime"
#gem "treetop", "1.6.12"
gem "ttfunk", "1.7" # needed to avoid having asciidoctor-pdf dependencies pulling in a buggy version of ttunk (1.8)
gem "webrick"
gem "write_xlsx"
Expand Down
Loading
Loading