Commit graph

56 commits

Author SHA1 Message Date
slgth
802066bfd3
docs: move riscv-isa-manual outside of cv32a65x documentation (#2264) 2024-06-16 23:20:41 +02:00
slgth
f57a6c0106
Move CV32A65X documentation into its own chapter (#2236) 2024-06-11 18:01:25 +02:00
JeanRochCoulon
3ecabdb95a
Cvfpu from vendor to submodule (#2070) 2024-04-23 14:54:42 +02:00
JeanRochCoulon
9a36bf2c3d
define riscv-isa-manual as submodule (#2052)
* remove riscv-isa-manual vendor

* Define riscv-isa-manual as submodule
2024-04-17 12:45:43 +00:00
Côme
b2a59c9617
Convert DV into a submodule (#1591) 2023-11-03 11:20:08 +01:00
Cesar Fuguet
7de1345291
Add the HPDcache as cache subsystem (#1513)
Add the HPDcache as another alternative for the cache subsystem.
The HPDcache is a highly configurable L1 Dcache that mainly targets high-performance systems.
2023-10-16 09:26:20 +02:00
Côme Allart
1386369b50 add core-v-verif as a git submodule 2023-09-07 11:38:31 +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
60a6160d06
Remove unused common_cell submodule (#1093) 2023-03-06 06:42:46 +01:00
Nils Wistoff
7c92b68b92
Remove unused submodules (#1023) 2023-01-13 15:59:34 +01:00
sébastien jacq
c5947082c4
Optimize FPGA memories (#989) 2022-11-08 23:15:02 +01:00
Michael Rogenmoser
4bdfa69d20
axi and common_cells upgrade (#791)
* Change questa version reference format

* bump common_cells to v1.23

* Bump axi to v0.31.0, replace axi_node with axi_xbar

* Bump register_interface for axi compatibility

* add prot signals to axi_lite for compatibility
2022-01-15 11:08:14 +01: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
Nils Wistoff
0249cfef00 .gitmodules: change submodule url to https
Signed-off-by: Nils Wistoff <nwistoff@iis.ee.ethz.ch>
2020-09-11 18:03:49 +02:00
Nils Wistoff
c6336384c4 tb_wb_dcache: add dependencies
Signed-off-by: Nils Wistoff <nwistoff@iis.ee.ethz.ch>
2020-09-11 18:03:49 +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
Nils Wistoff
08c71a2273 ariane_soc: Add APB timer peripheral (#361) 2020-01-22 14:42:09 +01:00
Florian Zaruba
5bf0d9256b rv_plic: Add lowrisc PLIC
Use a PLIC which has been developed as part of the lowrisc project. It
has been integrated into the Ariane SoC as a submodule pointing to a
fork which has some (temporary) custom patches on top.
2019-06-04 10:36:17 +02: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
843300302f Add Exclusive Adapter (#187)
* Add atomic adapter as submodule

* Change UART frequency

* Add atomic memory adapter

* Bump AXI exclusive submodule version

* Re-name ariane_next to ariane-dev

* Switch to official `atop` branch on `axi_node`
2019-03-18 11:51:58 +01:00
Jonathan Richard Robert Kimmitt
3b2c97b2e2 Move RGMII modules to submodule 2019-01-28 16:59:14 +00:00
Florian Zaruba
6b4a6b59b2
Change submodule remotes to https 2018-11-18 15:38:48 +01:00
Florian Zaruba
3c40965e8a
Merge remote-tracking branch 'origin/ariane_next' into fpga_dev 2018-11-17 22:38:54 +01:00
Florian Zaruba
c1afe790b0
Add missing modules to .gitmodules 2018-11-03 09:31:19 +01:00
Florian Zaruba
26fde6e49e
Add apb_node and apb_uart submodule 2018-10-25 14:56:54 +02:00
msfschaffner
8468544156
Misc majurity fixes (#125)
* Fix latch and timing loop in debu_req

* Fix unconnected IPI signals in CLINT, and unconnected regs in CSR_REGFILE

* Fix several issues with AXI IDs in axi_adapter, add AXI ID width parameter, and assertions testing for invalid read/write data

* Eliminate sim, simc make targets for Questa. Tests can be directly invoked via typing name and optionally specifying the gui-mode.

* Initialize instruction traced shadow regfile to zero at start of simulation

Fix progbuf offsets and tie unsupported counters to zero to avoid propagation of X

Fix printouts of assertions

Modify bootrom to prevent assignment of X to output

* Make separate CI target for AMO tests

* Bump fpga-support version

* Add AMO tests list

* Fix FPU submodule version

* Change core_id + cluster_id into hart_id

* Rename gitlab CI tests

* Replace all SYNTHESIS macros with pragma translate_off

* Update readme, bump common cells, benderize

* Fix torture make target

* Remove unneeded signal
2018-10-17 11:57:18 +02:00
Florian Zaruba
4689f06696
Improve testability of debug module 2018-09-29 18:41:44 +02:00
Florian Zaruba
b686a406a8
Integrate PLIC 2018-09-24 18:03:25 +02:00
Florian Zaruba
bbe1b0800f
Merge branch 'ariane_next' into fpnew 2018-09-24 17:59:35 +02:00
Florian Zaruba
3d1ef6d9e8
Merge remote-tracking branch 'github/ariane_next' into fpnew 2018-09-18 14:47:43 +02:00
Florian Zaruba
0ae3fb5ebb
Clean-up and fpga preparataion
- fix CDC
- Bump repo versions
- Fix interface issue with bypassed read/writes
2018-09-14 10:50:25 +02:00
Florian Zaruba
39a8935d55
Merge branch 'ariane_next' into fpnew 2018-09-13 18:21:49 +02:00
Michael Schaffner
d2a2521bfd Add torture test targets to Makefile and fix CI flows 2018-09-13 17:54:07 +02:00
Michael Schaffner
a69ae36456 Update axi_node submodule, add axi submodule. 2018-09-13 17:54:07 +02:00
Florian Zaruba
db846a6c75
Merge remote-tracking branch 'origin/ariane_next' into fpnew 2018-09-11 12:00:48 +02:00
Michael Schaffner
cca0d66fab switch to common_cells repo, remove redundant files, cleanup + benderize 2018-08-24 16:22:49 +02:00
Michael Schaffner
4f7bd54065 add fpga-support submodule, exchange srams with inferrable blockrams, remove flat byte enables
switch icache to inferrable blockrams

exchange sram with regfile

switched sram to sram_wrapper in testharness

replace dirty/valid sram with regfile

replace behav_sram with fpga inferrable ram

remove flat byte enables

fix in makefile

add reset to valid regs
2018-08-24 12:23:50 +02:00
Florian Zaruba
ddd68fd39a
Merge remote-tracking branch 'origin/riscv-compliant-debug' into fpnew 2018-07-31 21:28:38 -07:00
Florian Zaruba
9a80a5c0ee
Update paths to FPU submodules 2018-07-31 20:17:26 -07:00
Florian Zaruba
622a09779a 🎨 Flatten tb submodule 2018-08-01 01:39:01 +02:00
Florian Zaruba
85f6792241 🔥 Removed axi2per submodule 2018-08-01 01:15:28 +02:00
Stefan Mach
91475d971d ⬆️ Bump tb for FPU waves 2018-04-18 15:22:18 +02:00
Stefan Mach
12bd35ce7d 🚧 Working on FPU integration to Ariane 2018-04-18 15:10:55 +02:00
Florian Zaruba
98b924a76f
📝 Update doc add .travis.yml 2018-02-05 13:22:52 +01:00
Florian Zaruba
8a619040da
Clean-up add github remotes to submodules 2018-01-26 10:15:53 +01:00
Florian Zaruba
cd79a2318a
🐛 First functional fixes 2017-10-28 22:15:30 +02:00
Florian Zaruba
9907607901
Implement dcache bypass 2017-10-28 22:10:57 +02:00
Florian Zaruba
1bc5a7be45 Update ci submodule testing strategy 2017-07-06 15:28:18 +02:00
Florian Zaruba
dcfe4f9611 Add UVM components submodule 2017-07-06 15:14:23 +02:00
Florian Zaruba
8e363e52cb Add riscv-torture as a submodule 2017-06-26 19:58:43 +02:00