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

Sync master with dev #3477

Merged
merged 150 commits into from
Aug 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
1bb1bac
switch to chisel master
sequencer Feb 6, 2023
f965257
add dev to CI
sequencer Feb 6, 2023
dceeb5d
fix: Chisel3 #2944 Move SourceInfo to package experimental
SingularityKChen Feb 3, 2023
434ec1c
bump json-jackson to 4.0.5
sequencer Apr 23, 2022
12c3f4a
Remove deprecated code for BarrelShifter
ZenithalHourlyRate Feb 10, 2023
e65605a
Remove cloneType
ZenithalHourlyRate Feb 10, 2023
0e20c2b
Fix scala reflect error
ZenithalHourlyRate Feb 10, 2023
3b37092
Let hardfloat use chisel3-plugin master
ZenithalHourlyRate Feb 11, 2023
8a13c43
Fix HeterogeneousBag for chisel3
sequencer Feb 11, 2023
a880dc8
explicit add legacy connect operators
sequencer Feb 15, 2023
0b7fef4
remove SBT
sequencer Jan 11, 2023
9a75e8c
add mill in legacy CI
sequencer Jan 11, 2023
5103b50
Add HypervisorConfig and cover it in CI
ZenithalHourlyRate Feb 16, 2023
c0b454b
Fix legacy CI workflow
ZenithalHourlyRate Feb 16, 2023
8204bfa
Fix CI mill version
ksco Feb 17, 2023
29c3569
Fix legacy CI on FIRRTL
ZenithalHourlyRate Feb 20, 2023
822bc1e
CI: Remove deleted test bucket
ZenithalHourlyRate Feb 20, 2023
6fcd934
Backporting with Mergify
ksco Feb 17, 2023
b6bf0bc
replace all cde dependencies.
sequencer Feb 21, 2023
c5e4986
bump cde submodule
sequencer Feb 21, 2023
0de7f7b
update build system for cde bump
sequencer Feb 21, 2023
ae9ec9b
fix Makefile
sequencer Feb 22, 2023
b449875
IDecode: Fix aes64ks1i imm decode
ZenithalHourlyRate Feb 16, 2023
57197d6
CryptoNIST: refactor rnum
ZenithalHourlyRate Feb 16, 2023
fa102f3
Remove redundant TLBExceptions V bit
ZenithalHourlyRate Feb 10, 2023
d13aff5
mill: Use MFC
ZenithalHourlyRate Feb 15, 2023
c8bcd33
fix: key word error `given`
SingularityKChen Feb 22, 2023
34d7309
Fix unconnected io.start for TLRAMXbarTest and TLMulticlientXbarTest
hansungk Feb 22, 2023
594fad4
Merge pull request #3267 from hansungk/fix-tlxbar-unittest
jerryz123 Feb 27, 2023
a2682ca
Fold HasPeripheryDebugModuleImp into HasPeripheryDebug
jerryz123 Feb 27, 2023
0e4af6d
Move HasDebugModule out of TileContextType
jerryz123 Feb 27, 2023
d6a982b
feat: port Chisel2 to Chisel3 rocket/
SingularityKChen Feb 25, 2023
84533ae
Pinning nix to 2.13.3 in github workflows
CircuitCoder Mar 1, 2023
1ff0db3
feat: port Chisel2 to Chisel3 devices/
SingularityKChen Feb 25, 2023
e645d94
fix: add `chiselTypeOf` when inst Wire(in.d)
SingularityKChen Feb 27, 2023
b2fd991
feat: port Chisel2 to Chisel3 amba/
SingularityKChen Feb 25, 2023
8b52a6f
L1TLB: VS-mode SFENCE misses tera/giga-page entries fragmented superp…
ingallsj Mar 14, 2023
d86c011
mill: fix empty cross arg for riscv-tests.Suite
ZenithalHourlyRate Mar 14, 2023
61ea81c
Change CharCountRoCC Example to use dcacheParams
jerryz123 Mar 14, 2023
f19a90a
Fix CharCount RoCC example bug
jerryz123 Mar 14, 2023
4f12e21
Merge pull request #3305 from chipsalliance/jerryz123-patch-2
jerryz123 Mar 14, 2023
c4e2051
Merge pull request #3304 from chipsalliance/jerryz123-patch-1
jerryz123 Mar 14, 2023
9b74c4a
Merge pull request #3299 from chipsalliance/mill-cross-empty-arg
jerryz123 Mar 14, 2023
399ef9e
Update 'IDEs Support' section in README
SpriteOvO Mar 15, 2023
0504a9b
Hypervisor: encodeVirtualAddress extra MSB to canonicalize VS-disable…
ingallsj Mar 21, 2023
6fed220
Merge pull request #3309 from SpriteOvO/dev
jerryz123 Mar 23, 2023
785394c
Use chisel 3.6 rc2 instead of SNAPSHOT
ZenithalHourlyRate Mar 23, 2023
12e21a6
Support devOverride for diplomatic SRAMs
jerryz123 Mar 29, 2023
c8edec3
Support overriding the DTS node for diplomatic SRAMs
jerryz123 Mar 29, 2023
3da8af4
Merge pull request #3320 from chipsalliance/sram
jerryz123 Mar 30, 2023
3b8d3c1
Fix no-debug-node designs
jerryz123 Apr 1, 2023
767a61c
Merge pull request #3322 from chipsalliance/intsync-fix
jerryz123 Apr 1, 2023
8fd7add
feat: port Chisel2 to Chisel3 util/
SingularityKChen Feb 24, 2023
d98464b
fix: correct connection errors in DCache
SingularityKChen Mar 4, 2023
6c23100
feat: port Chisel2 to Chisel3 tilelink/
SingularityKChen Feb 24, 2023
3902497
fix: not fully initialized wires in Edge.scala
SingularityKChen Mar 4, 2023
e52773e
fix: add chiselTypeOf when inst Wire
SingularityKChen Mar 4, 2023
5f7278b
fix: not fully initialized wires in Edge.scala
SingularityKChen Mar 4, 2023
58c8249
all isaDTS strings to lowercase (#3333)
cyyself Apr 26, 2023
2570db7
Deprecate old BusWrapper methods (#3337)
jerryz123 May 1, 2023
fb5d7d0
Fix AXI4 RegisterRouter on Wire Clone
ZenithalHourlyRate May 1, 2023
6aa9d7f
fix: replace SourceInfo with experimental.SourceInfo (#3269)
SingularityKChen May 2, 2023
9b3b0b4
fix: replace `m _` with `() => m` in param less method (#3264)
SingularityKChen May 2, 2023
a27f1f8
Merge pull request #3338 from chipsalliance/fix-axi4-regmap
sequencer May 2, 2023
3f74d79
Improve boundaryBuffers API | move boundaryBuffers to within-Tile (#3…
jerryz123 May 5, 2023
4110563
Support TLFilter.mSubtract with multiple AddressSets (#3339)
jerryz123 May 5, 2023
62162c5
Implement Zicond extension (#3329)
rewired-gh May 7, 2023
a9ae0b9
Update debug_rom.S
jerryz123 May 8, 2023
6ba9437
Update debug_rom_nonzero.S
jerryz123 May 8, 2023
956a1ff
Support removing the nonstandard CEASE from rocket
jerryz123 May 9, 2023
d6c09c9
Add support for an unsynthesizable ROB to produce a TracedInstruction…
jerryz123 May 10, 2023
e8b267b
Merge pull request #3348 from chipsalliance/cfgcease
jerryz123 May 10, 2023
b727880
Merge pull request #3347 from chipsalliance/jerryz123-patch-1
jerryz123 May 10, 2023
64ab8bc
Merge branch 'dev' into rob
jerryz123 May 10, 2023
b3f391c
Fix memory leak in debug_rob
jerryz123 May 10, 2023
85aca71
Generalize Vec[TracedInstruction] to a TraceBundle
jerryz123 May 10, 2023
57af718
Add time to TraceBundle
jerryz123 May 10, 2023
f6f59c1
Supporting adding custom stuff to TraceBundle
jerryz123 May 10, 2023
efa8337
Fix BlockableTraceBundle
jerryz123 May 10, 2023
a9aa444
Merge pull request #3356 from chipsalliance/trace
jerryz123 May 12, 2023
940de29
Merge branch 'dev' into rob
jerryz123 May 12, 2023
d503368
Fix TLSourceShrinker
jerryz123 May 13, 2023
1272bd5
Merge pull request #3360 from chipsalliance/jerryz123-patch-1
jerryz123 May 13, 2023
7ddf02a
Support RoCC accels which define CSRs (#3358)
jerryz123 May 16, 2023
f1d70e6
Merge branch 'dev' into rob
jerryz123 May 16, 2023
a806851
Fix unittests
jerryz123 May 16, 2023
52f8f1d
Merge pull request #3350 from chipsalliance/rob
jerryz123 May 16, 2023
8db7364
Make AsyncQueue use Rawmodule
jerryz123 May 16, 2023
c8cf935
Support blockable credited interfaces
jerryz123 May 16, 2023
5a5c127
Support dynamic credit count in senders for CreditedIO
jerryz123 May 16, 2023
03efdab
Merge pull request #3364 from chipsalliance/unittest-fixes
sequencer May 17, 2023
ecf08f5
Fix TL unittests
jerryz123 May 17, 2023
25d5ace
Merge pull request #3369 from chipsalliance/tlunittests
jerryz123 May 17, 2023
868dd1c
Merge pull request #3366 from chipsalliance/asyncraw
jerryz123 May 18, 2023
46eb3cf
Merge pull request #3367 from chipsalliance/creditedutils
jerryz123 May 18, 2023
e76a4ea
Fix TLJbarTest
jerryz123 May 22, 2023
bd3276d
Merge pull request #3374 from chipsalliance/jerryz123-patch-1
jerryz123 May 22, 2023
9967142
Add [m/s/h]envcfg CSRs to satisfy spec requirements (#3373)
jerryz123 May 23, 2023
9dbc6a4
fix compile for chisel3.6
sequencer Mar 9, 2023
dffcedf
bump chisel to 3.6
sequencer May 29, 2023
e65ec1d
Remove all SFC dependencies
sequencer Mar 9, 2023
c837545
implement a program for elaborate lazymodules
sequencer May 30, 2023
e6023a6
Migrate JTAG DTM test to mill CI
ZenithalHourlyRate Jun 14, 2023
ec4b462
Fix verilator
ZenithalHourlyRate Jun 14, 2023
28aa3d3
Fix riscv-tests install
ZenithalHourlyRate Jun 14, 2023
3ea90ae
Merge pull request #3378 from chipsalliance/chisel36
sequencer Jun 14, 2023
2a9936d
Merge pull request #3379 from chipsalliance/farewell_sfc
sequencer Jun 14, 2023
05d9db7
fix: Werror match may not be exhaustive (#3268)
SingularityKChen Jun 15, 2023
9a1dc2d
fix: bit extraction use .U.extract(i) (#3263)
SingularityKChen Jun 15, 2023
9b383c5
fix: empty argument list (#3262)
SingularityKChen Jun 15, 2023
dc275c4
TLB: must_alloc swapped AMO Logical/Arithmetic
ingallsj Jun 16, 2023
d8d4c48
Merge pull request #3389 from chipsalliance/tlb_must_alloc_paa_pal
sequencer Jun 16, 2023
43e0af1
TLB: vsstatus.SUM check should not apply to Stage-2 fault before Stag…
ingallsj Jun 29, 2023
026f4c9
CSR: optionally set delegable hypervisor exceptions (#3401)
poemonsense Jun 29, 2023
005c6db
Enable WARL custom CSRs, long-latency CSR accesses (#3388)
jerryz123 Jul 4, 2023
b8dad7f
PTW: set ae_ptw for out-of-range non-leaf PTEs (#3407)
poemonsense Jul 11, 2023
9b91787
Remove HasRocketChipStageUtils since it is dead (#3418)
sequencer Jul 12, 2023
a8e4ddc
Remove GenericParameterizedBundle since we already have autoclonetype…
sequencer Jul 13, 2023
0b33a74
Remove Late Cancel contract to make TileLink implementation compatibl…
sequencer Jul 13, 2023
2b8f864
totally remove compatibility mode(w/o diplomacy) (#3415)
sequencer Jul 13, 2023
113eb12
CSR: add mconfigptr and default to zero (#3446)
poemonsense Jul 25, 2023
4f0c6ef
remove EnhancedChisel3Assign (#3451)
sequencer Jul 27, 2023
7c9670b
New BundleMap (#3419)
sequencer Jul 27, 2023
1df0d8d
Remove NotStrictInferReset compile option (#3416)
sequencer Jul 30, 2023
8440d41
disable arch test in CI for now (#3461)
sequencer Jul 31, 2023
320a1b3
remove import Chisel from LazyModule (#3462)
sequencer Jul 31, 2023
35e64ae
remove import Chisel from Nodes (#3463)
sequencer Jul 31, 2023
ded9875
CSR for RoCC fix
joonho3020 Aug 11, 2023
de0c32b
bump mill and Chisel
sequencer Aug 5, 2023
62c5b30
Merge pull request #3467 from joey0320/rocc-csr-fix
sequencer Aug 14, 2023
51d320f
remove linting package from RegisteredLibrary
cyyself Aug 15, 2023
6240ac1
Merge pull request #3468 from cyyself/remove-linting
sequencer Aug 15, 2023
3a7d8b6
Support rocket cache rowBits != sbusWidth
jerryz123 Aug 16, 2023
cdab571
Merge pull request #3470 from chipsalliance/rocket-width
sequencer Aug 16, 2023
d6aa582
add WithNoSimulationTimeout
cyyself Aug 16, 2023
52e57f1
Merge pull request #3471 from cyyself/no_plusarg
sequencer Aug 16, 2023
d28a3a3
fix PLIC 0-bit connection
sequencer Aug 18, 2023
7681e28
Merge pull request #3473 from chipsalliance/no_ext_int_fix
sequencer Aug 18, 2023
49e8e92
add WithScratchpadsBaseAddress to alter rocket core dtim address
sequencer Aug 18, 2023
eee99e8
Merge pull request #3474 from chipsalliance/dtim_addr
sequencer Aug 18, 2023
4732a91
Various fixes for new chisel
jerryz123 Aug 19, 2023
086b5dc
Fix HellaCache match error
jerryz123 Aug 19, 2023
fa0f88e
Fix unconnected wire in ICache
jerryz123 Aug 19, 2023
9aaac40
Fix AXI4 xbar chisel3 connectable
jerryz123 Aug 20, 2023
13fe404
More fixes to amba components
jerryz123 Aug 20, 2023
ecacc48
Fix default connection in BroadcastFilter
jerryz123 Aug 20, 2023
d71cfe4
Use .waiveAll when constructing BundleMap subsets
jerryz123 Aug 21, 2023
c563f74
Fix Fragmenter with user fields
jerryz123 Aug 21, 2023
87b037c
Merge pull request #3475 from chipsalliance/fixes
sequencer Aug 21, 2023
1c0e212
Merge remote-tracking branch 'origin/master' into sync
jerryz123 Aug 22, 2023
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
118 changes: 0 additions & 118 deletions .github/workflows/continuous-integration.yml

This file was deleted.

31 changes: 29 additions & 2 deletions .github/workflows/mill-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ env:
on:
push:
branches:
- dev
- master
pull_request:
branches:
- dev
- master
- chisel3_port

Expand All @@ -39,14 +41,14 @@ jobs:

- name: run riscv-tests
run: |
nix --experimental-features 'nix-command flakes' develop -c mill -i -j 0 "runnable-test[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.${{ matrix.config }},_,_].run"
nix --experimental-features 'nix-command flakes' develop -c mill -i -j 0 "runnable-riscv-test[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.${{ matrix.config }},_,_].run"

emulator:
name: emulator
runs-on: ubuntu-latest
strategy:
matrix:
config: [DefaultSmallConfig, DualBankConfig, DualChannelConfig, DualChannelDualBankConfig, RoccExampleConfig, Edge128BitConfig, Edge32BitConfig, QuadChannelBenchmarkConfig, EightChannelConfig, DualCoreConfig, MemPortOnlyConfig, MMIOPortOnlyConfig, CloneTileConfig]
config: [DefaultSmallConfig, DualBankConfig, DualChannelConfig, DualChannelDualBankConfig, RoccExampleConfig, Edge128BitConfig, Edge32BitConfig, QuadChannelBenchmarkConfig, EightChannelConfig, DualCoreConfig, MemPortOnlyConfig, MMIOPortOnlyConfig, CloneTileConfig, HypervisorConfig]
steps:
- uses: actions/checkout@v2
with:
Expand All @@ -67,6 +69,7 @@ jobs:
riscv-arch-test:
name: riscv-arch-test
runs-on: [self-hosted, linux]
if: ${{ false }} # disable for now, I prefer adding firesim-based simulation framework in the future.
strategy:
matrix:
config: ["DefaultRV32Config,32,RV32IMACZicsr_Zifencei", "DefaultConfig,64,RV64IMACZicsr_Zifencei", "BitManipCryptoConfig,64,RV64IZba_Zbb_Zbc_Zbkb_Zbkc_Zbkx_Zbs_Zknd_Zkne_Zknh_Zksed_Zksh", "BitManipCrypto32Config,32,RV32IZba_Zbb_Zbc_Zbkb_Zbkc_Zbkx_Zbs_Zknd_Zkne_Zknh_Zksed_Zksh"]
Expand All @@ -87,3 +90,27 @@ jobs:
- name: run riscv-arch-test
run: |
nix develop -c mill -i -j 0 "runnable-arch-test[freechips.rocketchip.system.TestHarness,freechips.rocketchip.system.${{ matrix.config }}].run"

jtag-dtm-test:
name: jtag-dtm-test
runs-on: ubuntu-latest
strategy:
matrix:
config: ["freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.DefaultConfig", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.DefaultRV32Config", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.WithDebugSBASystem_freechips.rocketchip.system.DefaultConfig", "freechips.rocketchip.system.WithJtagDTMSystem_freechips.rocketchip.system.WithDebugSBASystem_freechips.rocketchip.system.DefaultRV32Config"]
steps:
- uses: actions/checkout@v2
with:
submodules: 'true'

- name: install nix
uses: cachix/install-nix-action@v19
with:
install_url: https://releases.nixos.org/nix/nix-2.13.3/install
nix_path: nixpkgs=channel:nixos-unstable

- name: Coursier Cache
uses: coursier/cache-action@v6

- name: run jtag-dtm-test
run: |
nix develop -c mill -i -j 0 "runnable-jtag-dtm-test[freechips.rocketchip.system.TestHarness,${{ matrix.config }},_,_,_].run"
13 changes: 13 additions & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
pull_request_rules:
- name: backport to master
conditions:
- merged
- base=dev
- label=backport
actions:
backport:
branches:
- master
labels:
- backporting
ignore_conflicts: true
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,6 @@ Please see the Github documentation for [Pull Requests](https://help.github.com/

Because Chisel and FIRRTL have mature release processes, Rocket Chip uses the published artifacts.

To bump the published dependencies, bump the versions at the top of the SBT build file: [build.sbt](build.sbt).
To bump the published dependencies, bump the versions at the top of the Mill build file: [build.sc](build.sc).
Typically, the SBT dependency will only list a version for Chisel 3 which itself depends on FIRRTL.

10 changes: 4 additions & 6 deletions Makefrag
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
COMMA := ,

SBT ?= java -Xmx$(JVM_MEMORY) -Xss8M -jar $(base_dir)/sbt-launch.jar
MILL ?= mill
SHELL := /bin/bash

FIRRTL_TRANSFORMS := \
Expand All @@ -37,16 +37,14 @@ JAVA ?= java -Xmx$(JVM_MEMORY) -Xss8M
FIRRTL ?= $(JAVA) -cp $(ROCKET_CHIP_JAR) firrtl.stage.FirrtlMain
GENERATOR ?= $(JAVA) -cp $(ROCKET_CHIP_JAR) $(PROJECT).Generator

# Extracting this information from SBT would be more robust
# api-config-chipsalliance does not use standard SBT src/main/scala, but has no resources
scala_srcs := $(shell find $(base_dir) -name "*.scala" -o -name "*.sbt")
scala_srcs := $(shell find $(base_dir) -name "*.scala" -o -name "*.sc")
resource_dirs := $(shell find $(base_dir) -type d -path "*/src/main/resources")
resources := $(foreach d,$(resource_dirs),$(shell find $(d) -type f))
all_srcs := $(scala_srcs) $(resources)

ROCKET_CHIP_JAR := $(base_dir)/rocketchip.jar
ROCKET_CHIP_JAR := $(base_dir)/out/rocketchip/assembly.dest/out.jar
$(ROCKET_CHIP_JAR): $(all_srcs)
cd $(base_dir) && $(SBT) assembly
cd $(base_dir) && $(MILL) rocketchip.assembly

rc_resource_dir := $(base_dir)/src/main/resources
csrc := $(rc_resource_dir)/csrc
Expand Down
60 changes: 39 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,20 +94,6 @@ To generate FPGA- or VLSI-synthesizable Verilog (output will be in `vsim/generat
$ cd vsim
$ make verilog

To run the Scala tests (`sbt test`) or linter (`sbt scalafix`):

$ cd regression

# Scala tests
$ make scalatest SUITE=foo

# Scala linter, automatically modifying files to correct issues
$ make scalafix SUITE=foo

# Scala linter, only printing out issues
$ make scalafix-check SUITE=foo


### Keeping Your Repo Up-to-Date

If you are trying to keep your repo up to date with this GitHub repo,
Expand Down Expand Up @@ -229,8 +215,6 @@ C sources for use with Verilator simulation.
Documentation, tutorials, etc for specific parts of the codebase.
* **emulator**
Directory in which Verilator simulations are compiled and run.
* **project**
Directory used by SBT for Scala compilation and build.
* **regression**
Defines continuous integration and nightly regression suites.
* **scripts**
Expand Down Expand Up @@ -694,12 +678,46 @@ Now we can proceed as with Spike, debugging works in a similar way:

Further information about GDB debugging is available [here](https://sourceware.org/gdb/onlinedocs/gdb/) and [here](https://sourceware.org/gdb/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging).

## <a name="ide"></a> Building Rocket Chip with an IDE
## <a name="ide"></a> IDEs Support

The Rocket Chip Scala build uses [mill](https://github.com/com-lihaoyi/mill) as build tool.

IDEs like [IntelliJ](https://www.jetbrains.com/idea/) and [VSCode](https://code.visualstudio.com/) are popular in the Scala community and work with Rocket Chip.

The Rocket Chip currently uses `nix` to configure the build and/or development environment, you need to install it first depending on your OS distro.

Then follow the steps:

1. Generate BSP config by running:

```
mill mill.bsp.BSP/install
```

2. Patch the `argv` in `.bsp/mill-bsp.json`, from

```json
{"name":"mill-bsp","argv":["/usr/bin/mill","--bsp","--disable-ticker","--color","false","--jobs","1"],"millVersion":"0.10.9","bspVersion":"2.0.0","languages":["scala","java"]}
```

to

```json
{"name":"mill-bsp","argv":["/usr/bin/nix","develop","-c","mill","--bsp","--disable-ticker","--color","false","--jobs","1"],"millVersion":"0.10.9","bspVersion":"2.0.0","languages":["scala","java"]}
```

### For IntelliJ users

3. Install and configure [Scala](https://plugins.jetbrains.com/plugin/1347-scala) plugin.

4. BSP should be automatically run.
If it doesn't, click `bsp` on the right bar, then right-click on your project to reload.

### For VSCode users

3. Install and configure [Metals](https://marketplace.visualstudio.com/items?itemName=scalameta.metals) extension.

The Rocket Chip Scala build uses the standard Scala build tool SBT.
IDEs like [IntelliJ](https://www.jetbrains.com/idea/) and [VSCode](https://code.visualstudio.com/)
are popular in the Scala community and work with Rocket Chip.
To use one of these IDEs, there is one minor peculiarity of the Rocket Chip build that must be addressed.
4. Execute VSCode command `Metals: Import build`.

## <a name="contributors"></a> Contributors

Expand Down
Loading