Commit graph

131 commits

Author SHA1 Message Date
JeanRochCoulon
c6f81d74c4
Remove parametrization Warning in README.md (#2011)
As th ebig change due to parametrization is over, I propose to remove the warning.
2024-04-08 10:33:28 +02:00
Zbigniew Chamski
d48c4b5b4e
Fix waveform generation using vcs-uvm. Add waveforms section to README. (#1827) 2024-02-13 12:08:18 +01:00
valentinThomazic
706daa0a3b
removed the usage of install-cva6.sh and add setup-env.sh (#1741) 2024-01-03 13:42:23 +01:00
valentinThomazic
4feab99254
Add prerequisites to README (#1738) 2023-12-27 16:36:23 +01:00
Yaotian Liu
e6a0d9e06a
fix: extra space in command (#1730) 2023-12-21 06:29:52 +01:00
valentinThomazic
6da3f465dc
make the readme quickstart more user-friendly (#1684) 2023-12-07 16:50:49 +01:00
Zbigniew Chamski
2745f3edcf
[GCC toolchain builder] Provide means of throttling parallel builds. (#1680) 2023-12-07 10:04:33 +01:00
valentinThomazic
aaac613c51
remove proxy kernel support (#1663) 2023-11-29 17:18:21 +01:00
Jérôme Quévremont
0a734159f9
Organizing acknowledgements in the repo (#1627) 2023-11-16 00:16:16 +01:00
Jérôme Quévremont
a34aca924e
Add funding acknowledgement (#1581) 2023-10-31 17:12:32 +01:00
JeanRochCoulon
bb80b3f245
Provide only one way to run simulation (#1505) 2023-10-06 09:45:17 +02:00
JeanRochCoulon
20dec24d1b
Supported Verilaotr version information (#1492)
Add information in the README.md to retrieve the supported Verilator version
2023-10-02 13:26:43 +02:00
Zbigniew Chamski
1683c818c4
Streamline installation process (Spike and toolchain variables, README file). (#1468) 2023-09-26 16:51:03 +02:00
Côme
7355fd7ce8
readme: use bash instead of sh (#1429) 2023-09-15 18:13:45 +02:00
Zbigniew Chamski
5c3e3d4545
Add GCC toolchain builder. Update README and .gitignore accordingly. (#1415) 2023-09-14 23:44:00 +02:00
Jean-Roch Coulon
1dd9773c8c Update README.md to give recommandations to setup environment and execute tests
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
2023-09-07 11:38:34 +02:00
Pascal Cotret
9d6e434ee9
Fix VCD generation from Verilator model (#1341) 2023-08-24 06:08:16 +02:00
Florian Zaruba
dc103cd49f
Clean-up README.md and top-level directory (#1318)
* Clean-up README.md and top-level directory

This removes the duplicate `scripts` and `util` directories. Furthermore
the README is condensed by collapsing the citation and adding the
CITATION file to the repository.

Signed-off-by: Florian Zaruba <florian@openhwgroup.org>

* Re-name icache req/rsp structs

The structs used to communicate with the icache have contained the
direction, which makes no sense for structs since they inherently don't
have any direction.

Signed-off-by: Florian Zaruba <florian@openhwgroup.org>

---------

Signed-off-by: Florian Zaruba <florian@openhwgroup.org>
2023-07-28 08:32:48 +02:00
Jérôme Quévremont
bf6237ce7b
Update README.md (#1284) 2023-07-01 17:37:00 +02:00
JeanRochCoulon
037af687ee
Add banner to warm about parametrization work 2023-06-25 15:29:35 +02:00
JeanRochCoulon
59a1df031c
Remove DROMAJO (#1204)
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
2023-04-24 23:05:53 +02:00
JeanRochCoulon
31948853c6
Replace WT_DCACHE define by CVA6ConfigCacheType localparam (#1127) 2023-03-21 14:18:18 +01:00
sébastien jacq
3d16fe20fd
Config cache fpga (#1000)
Create a FPGA configuration
Downsized caches from 4 to 2 ways in FPGA configuration
2022-11-25 13:56:15 +01:00
Mike Thompson
48af8dab6e
Update repo user docs (#841)
* Clarify scope of Verilator model

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Update repo user docs

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Update repo user docs

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* CORE-V not COREV

Signed-off-by: Mike Thompson <mike@openhwgroup.org>
2022-04-06 10:09:55 +02:00
Mike Thompson
00236be3d8
Clarify scope of Verilator model (#773)
Signed-off-by: Mike Thompson <mike@openhwgroup.org>
2021-12-16 15:32:14 +01:00
JeanRochCoulon
b242c3f80b
pd: Add Synopsys DC synthesis target (#775)
* riscv_pkg.sv, cva6_imac_sv_config_pkg.sv: define FPU_EN as platform parameter

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* scripts to make ASIC synthesis

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* README.md: update synthesis and gate simulation descrption

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Update README.md

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/Makefile

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/cva6_read.tcl

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/cva6_read.tcl

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/cva6_synth.tcl

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/scripts/dc_setup.tcl

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/scripts/dc_setup_filenames.tcl

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Update pd/synth/scripts/gateAnalysis.py

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* rename CVA6ConfigFpuen into CVA6ConfigFpuEn

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Revert "Update pd/synth/cva6_read.tcl"

This reverts commit 5e4433081d.

* cva6_read.tcl: read synthesis result

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* define CACHE RAM INPUT_DELAY and OUTPUT_DELAY

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* renale gateAnalysis.py

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* fix input and output delays

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* gate_analysis.py reformatted thanks to Black

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* fix INPUT and OUTPUT DELAY setup

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>
2021-12-13 19:17:43 +01:00
Andreas Kuster
206916d706
Add detailed simulation flow installation info & helper scripts (#740)
* Add information for verilator flow setup to README.md

* Prevent re-download if RISCV64_UNKNOWN_ELF_GCC already exists.
Use variable for archive version.

* Add RISC-V proxy kernel and bootloader install script

* Integrate tool installation into getting-started section

* Remove $ sign in command snippets to allow command copy & paste

* Add information for verilator flow setup to README.md

* Prevent re-download if RISCV64_UNKNOWN_ELF_GCC already exists.
Use variable for archive version.

* Add RISC-V proxy kernel and bootloader install script

* Integrate tool installation into getting-started section

* Remove $ sign in command snippets to allow command copy & paste

* Replace manual install command for riscv-pk by script

* Fix README.md merge conflict mismatches

* Fix script name

Co-authored-by: Nils Wistoff <nwistoff@iis.ee.ethz.ch>

Co-authored-by: Nils Wistoff <nwistoff@iis.ee.ethz.ch>
2021-10-01 11:40:24 +02:00
André Sintzoff
3ddf797e95
Re-organize CVA6 and APU (#725)
* Initial repository re-organization (#662)

Initial attempt to split core from APU.

Signed-off-by: MikeOpenHWGroup <mike@openhwgroup.org>
Co-authored-by: Jean-Roch Coulon <jean-roch.coulon@invia.fr>

Compile `corev_apu` (#667)

* Makefile verilates corev_apu
* Cleanup README
* Fix URL to repo
* Cleaned-up Makefile verilates corev_apu

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

Add extended verification support (#685)

* Makefile, riscv_pkg.sv: Select C64A6 or CV32A6

according to variant variable

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* add RVFI tracer and debug support

New files: rvfi_pkg.sv, rvfi_tracer.sv, ariane_rvfi.pkg.sv

- RVFI ports are added to ariane module
- rvfi_tracer.sv is a module added in ariane-testharness.sv
- RVFI_TRACE enables RVFI trace generation

Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Move example_tb from cva6 to core-v-verif project

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Makefile: remove useless rule for vsim

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Makefile: add timescale definition when vsim is used

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Makefile: add vcs support (fix #570)

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* rvfi_tracer.sv: fix compilation error raised by vcs

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Makefile: use only 2 threads for verilator

when using 4 threads, tests from riscv-compliance and riscv-tests
test suite are randomly stucked with rv32ima configuration

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Flist.cva6: cleanup for synthesis workflow

Thales synthesis workflow does not manage comments at end of lines

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Support FPGA generation

- ariane_xilinx.sv: fix AXI bus expansion
- .gitignore, Makefile, run.tcl: fix paths

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* riscv-dbg: update to 989389b0 (to support 32-bit CVA6 debug)

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* Create cva6_config_pkg to setup 32- or 64-bit configuration

According to selected configuration, Makefile calls
cv32a6_imac_sv0_config_pkg.sv or cv64a6_imac_sv39_config_pkg.sv

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Flist, ariane_wrapper.sv: add wrapper to expand rvfi and axi structures

needed for dc_shell

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* cv*a6_*_pkg.sv, riscv_pkg.sv: (Fix) Use the camel case for the localparams

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* riscv_pkg.sv: clean-up the cva6_config_pkg import

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

* Makefile, ariane.sv: RVFI_TRACE define conditions RVFI port in ariane

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>

Co-authored-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>

* Add lfsr.sv to manifest

Signed-off-by: Mike Thompson <mike@openhwgroup.org>

* Directory re-organzation

* fpga/xilinx/xlnx_axi_dwidth_converter_dm_*: move files (#726)

into the new file organisation

Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>

* move mmu_sv32 and mmu_sv39, move bootrom, update path (#729)

Signed-off-by: sjthales <sebastien.jacq@thalesgroup.com>

Co-authored-by: Mike Thompson <mike@openhwgroup.org>
Co-authored-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
Co-authored-by: Florian Zaruba <zarubaf@iis.ee.ethz.ch>
Co-authored-by: sébastien jacq <57099003+sjthales@users.noreply.github.com>
2021-09-24 17:21:19 +02:00
Florian Zaruba
33b7b672ee
ci: Switch to Github workflows (#689)
* ci: Switch to Github Workflows

Signed-off-by: Florian Zaruba <florian@openhwgroup.org>

* README: Change build status

* Revert to Verilator 4.040

* verilator: Bump and mark DPI as thread-unsafe

* ci: Verilator v4.100

* verilator: Disable threading
2021-06-24 22:00:02 +02:00
Florian Zaruba
eaeef7da1a
verilator: Dot reference compilation issue (fix #583) (#585)
Signed-off-by: Florian Zaruba <florian@openhwgroup.org>
2021-01-18 14:08:06 +01:00
Florian Zaruba
575cb445f8 README: Update with pointers to CVA6
Signed-off-by: Florian Zaruba <florian@openhwgroup.org>
2020-08-26 11:11:14 +02:00
Nils Wistoff
4d4c3f025d README.md: update image paths 2020-07-29 12:11:39 +02:00
Nursultan Kabylkas
2d81445209
verification: Add co-simulation with dromajo (#445)
* Summary: initial dromajo integration

* some changes to Makefile to enable `make verilate DROMAJO=1`
* adding ifdefs to ariane_tb.cpp to disable HTIF
* adding dromajo repo
* making dromajo repo a submodule

* syncing with upstream

* bumping to the latest dromajo commit

* Summary: adding DPI functions for cosim

 * added new file tb/dpi/dromajo_cosim.cc that contains
   all DPIs for dromajo to work
 * editted Makefile to see the above file

* Summary: fixing build issues

 * fixing syntax errors in dpi file
 * renaming dpi file due to name conflict with shared library
 * fixing path in Makefile to the shared dromajo lib

* bumping to the latest dromajo change

* Summary: loading checkpoint to bootrom

This change adds `+checkpoint=` argument to the verilator simulator
as well as corresponding changes to load the dromajo checkpoint into
the bootrom. Dromajo checkpoint bootcode contains series of csrw and
immediate loads to restore the architectural state of the processor.

dromajo_bootrom.sv
is a copy of a generated bootrom.sv file. This
file parses the verilog plusargs and loads the bootrom with the code
that is pointed by the +checkpoint.

csr_regfile.sv
Dromajo needs to start running the code in debug mode. The default
value of debug_mode_q was changed to 1.

* updating dromajo to the latest change

* Summary: sync main memories of dromajo and ariane

These changes load the checkpoint into the main memory of Ariane.
The checkpointed memory that is dumped from dromajo contains
(1) the binary and (2) the values of all stores that dromajo
globally performed before dumping the checkpoint.

dromajo_ram.sv
This file is a copy of SyncSpRamBeNx64.sv and was modified to parse
+checkpoint argument to load the memory from the path pointed by
the argument.

The remaining changes were introduced to instantiate the above file
when DROMAJO=1 flag is set.

* Summary: calling DPIs for cosimulation

This change introduces the calls to DPI functions that interface
with Dromajo.

* updating to the latest commit of dromajo

* disabling verbose output when preloading bootrom and mainram

* Summary: bug fix - update logic of `dcsr_d.prv`

This change was made per discussion with Florian via email. The
current versionincorrectly implements the update logic of
`dcsr_d.prv`.

The confusion came from the fact that the core should update its
`dcsr_d.prv` to the current running privilege level when entering
debug mode. I've attached a patch which, as you suggested, removes
the wrong update logic in the CSR write process and should now
correctly handle the update when entering debug mode
(4.9.1 Debug Control and Status of the debug specification).

* bump to the latest version of dromajo

* Summary: dromajo DPI change

This change:
 * Ariane doesn't commit ebreaks and ecalls so some workaround
   was encorporated
 * Proper exit(0) on cosim pass

* Summary: support for running binaries with dromajo

This change adds the ability to run the following command:
  `make run_dromajo BIN=\path\to\riscv\bin`

It automates the dromajo's checkpoint creation and runs the binary
on Ariane with dromajo cosimulation.

For this to work Ariane must be build with DROMAJO=1.

* changing dromajo recipe name to be consistent with existing names

* adding instructions on how to run cosim with dromajo

* Bump to release 0.6.2

* added license headers

* added more details about dromajo
2020-06-16 10:30:58 +02:00
Florian Zaruba
0830aec190 doc: Add Ariane publication 2019-12-03 14:18:10 +01:00
Florian Zaruba
48be94f822 Ariane 4.1.0 2019-03-18 11:51:58 +01:00
Florian Zaruba
ad223cfd9f Clean-up naming to distinguish OP from GP Ariane (#193)
* Clean-up naming to distinguish  OP from GP Ariane

* Rename wb to wt in hidden CI files

* Fix verilator install script
2019-03-18 11:51:58 +01:00
Florian Zaruba
a5f3184a65 Improve Tandem Simulation, switch-able caches and fix a cache-bug (#192)
* Add spike isa sim

* Fix AMO problem in verilator

* 🎨 Tidy up FPU wrapper

* Bump axi_exclusive submodule

* Refactor serpent AXI adapter, bump dbg and atomics submodules, add separate bootrom for linux on OpenPiton (#190)

* Refactor serpent AXI adapter

* Disable FPU in OpenPiton by default

* Bump dbg and atomics submodules

* Fix cache testbenches (interface change)

* FPGA bootrom changes for OpenPiton SDHC

* Introduce two bootroms, one for baremetal apps (pitonstream), and one for linux boot from SD

* Testing barrier-based synchronisation instead of CLINT-based

* This bootrom works for 2 core on g2 and if you change MAX_HARTS to 4, then 4 cores on vc707

* Add MAX_HARTS switch to makefile

* Fix gitlab CI

* Revert standard FPGA bootrom

* Update Flist

* Make UART_FREQ a parameter

* Fix typo in tb.list and an error in define switch in ariane_pkg

* Copy over SD-driver in bootloader from @leon575777642

* Fix compilation issues of bootrom

* Change signal name in serpent periph portlist

* Correct generate statement in serpent dcache memory

* Add Piton SD Controller, FPGA fixes

* Fix race condition in dcache misshandler

* Add tandem spike to Make flow

* Remove OpenPiton SD Card controller again
2019-03-18 11:51:58 +01:00
msfschaffner
07df142624 Maturity fixes and AXI extensions for write-through cache system (#188)
* : Fix PITON_ARIANE define issues
* Fix write-back / cache read collision issue in serpent dcache.
* Add separate bootrom / device tree for openpiton (hardcoded for 1x1 tile config at the moment).
* Bootrom generation update (better compatibility with older python versions), new bootrom for OpenPiton+Ariane.
* Fix assertion in icache.
* Correct JTAG timing constraints.
* Fix parameter type in fpga toplevel (fix #168).
* Remove conflicting bootrom from fpga file list.
* This flushs the branch predictors when entering exception handlers in order to avoid speculative fetches from virtual addresses (to be improved with PMAs).
* Fix byte offset of IPIs in CLINT
* Disable DCache flushes on fence for write-through cache (not needed in that case)
* Fix blocking assignments in ff process.
* Fix register access issue in debug mode, only affects A0 (fix #179).
* Fix multiple driver issue in PLIC
* Do not assume replicated data in serpent dcache when reading from an NC region.
* Another byte offset fix in IPIs (CLINT)
* Add AXI64 compliance switch to dcache_mem
* Fix genesys 2 constraints
* Map serpent atomic requests onto AXI atomic/exclusive transactions.
* Cleanup of AXI memory plumbing, add separate AXI adapter module.
* Remove unneeded interface signals, increase wbuffer #pending tx
* Fix verilator compilation issues in AXI adapter.
* Delete unnecessary constraint
* Delete duplicate module instance
* Update gitlab CI script
* Small fixes to make riscv atomics work with serpent_axi_adapter.
* Update travis and gitlab-ci scripts
* Register b responses for better timing.
* Remove fpu div submodule, update Makefile paths and src lists
* Constant bits in haltsum reduction must be 1 (AND reduction).
* Switch to DTM from riscv-dbg submodule
* Further cleanup fixes in AXI/serpent atomics
* Bump riscv-dbg version
2019-03-18 11:51:58 +01:00
Florian Zaruba
b1bdc0c02c Add System Verilog FPU (#163)
* Change reset strategy in ariane_verilog_wrap.sv, remove unneeded sigs in serpent_peripherals.

* saving...

* ⬆️ Updates for new FPU

* Add sv fpu to FPGA flow

* Use multi-threading capabilities of verilator

- Deactivate non-standard floating point arguments
- Make multi-threading conditional on the availability of verilator 4

* Remove DPI threadsafety

* Reduce FPGA clock frequency

- Remove couple of -v- tests to reduce test-time

* Fix documentation and fpga flow

- Fix cycle time to accommodate FPU
- Fix FPGA constraints

* Change UART frequency
2019-03-18 11:51:58 +01:00
Michael Schaffner
40be845580
Rerouting RISC-V DTM JTAG from PMOD header to 2nd channel of FTDI chip. 2019-01-30 11:36:34 +01:00
Michael Schaffner
9ff98be0f7
🎨 Update OpenPiton section in README 2018-11-29 14:33:12 +01:00
Florian Zaruba
f53aba7161
🎨 Update README with Linux credentials 2018-11-29 12:09:55 +01:00
Florian Zaruba
0c8bc49536
🎨 Update README 2018-11-29 11:18:20 +01:00
Florian Zaruba
7c09143664
FPGA build flow clean-up 2018-11-28 13:44:59 +01:00
Michael Schaffner
693fe335f3
Merge remote-tracking branch 'iis-git/ariane_next' into ariane_next 2018-11-26 12:09:59 +01:00
Michael Schaffner
41fb4d225e
Rename SERPENT_PULP define to PITON_ARIANE. 2018-11-26 12:07:54 +01:00
Florian Zaruba
6381b3d3ee
Add ILA and GPIO peripheral 2018-11-25 21:22:51 +01:00
Michael Schaffner
0850d2c713
Merge remote-tracking branch 'upstream/ariane_next' into serpent 2018-11-23 18:38:08 +01:00
Florian Zaruba
4558960b88
Small pre-release clean-up 2018-11-23 11:37:14 +01:00
Michael Schaffner
179054a0ec
Merge remote-tracking branch 'upstream/ariane_next' into serpent 2018-11-21 20:15:32 +01:00