Commit graph

57 commits

Author SHA1 Message Date
André Sintzoff
8070febca0
spyglass: remove W528 warnings in decoder.sv (#2503) 2024-09-19 15:45:36 +02:00
JeanRochCoulon
8ef28596d5
Code clean-up of the number of register address bits (#2483) 2024-08-30 17:22:53 +02:00
Guillaume Chauvon
8fa590b5c3
CVXIF 1.0.0 (#2340) 2024-07-12 10:53:18 +02:00
André Sintzoff
21733e55d7
decoder.sv: add checks for some B instructions (fix #2276) (#2282) 2024-06-21 10:54:10 +02:00
JeanRochCoulon
dd763b4f4c
Rename FpuEn into RVF (#2109) 2024-05-15 09:16:44 +02:00
Asmaa Kassimi
807ed7825c
Add Supervisor condition under Interrupt control and remove else condition. (#2098) 2024-05-12 21:02:57 +02:00
Florian Zaruba
377b0de154
Fix SuperScalar config and add CVA6Cfg to first pass decoder (#2047)
* Add `CVA6Cfg` to first pass decoder

* Fix `verilator` `SELRANGE` warnings

* Update core/decoder.sv

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update core/cva6_accel_first_pass_decoder_stub.sv

Co-authored-by: Côme <124148386+cathales@users.noreply.github.com>

* Update core/decoder.sv

Co-authored-by: Côme <124148386+cathales@users.noreply.github.com>

* Update core/frontend/instr_queue.sv

Co-authored-by: Côme <124148386+cathales@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Côme <124148386+cathales@users.noreply.github.com>
2024-04-17 16:34:08 +02:00
André Sintzoff
9bd5667992
decoder.sv: fix ZEXT.H instruction (fix #1758, #1975, #2010) (#2032)
- add missing ZEXT.H for RV64
- fix ZEXT.H for RV32: bit[24:20] shall be 0
2024-04-11 16:38:11 +02:00
JeanRochCoulon
4423feb06a
Rename ZiCondExtEn and FPGA_EN parameters (#1992) 2024-04-02 15:37:58 +02:00
Bruno Sá
294ec96e76
Fix illegal instruction issue #1953 (#1955) 2024-03-25 07:26:42 +01:00
Bruno Sá
86e1408666
Hypervisor extension (#1938)
Support 64bit H extension
2024-03-21 10:28:01 +01:00
Côme
bd4b57cc64
Parametrization step 3 part 3 (last) (#1940) 2024-03-18 16:19:52 +01:00
Côme
4817575de9
Parametrization step 3 part 2 (#1939) 2024-03-18 12:06:55 +01:00
Côme
987c645bb7
Parametrization step 3 (#1935)
This is the third step for #1451. Many values are moved but not all values are moved yet

* move NR_SB_ENTRIES & TRANS_ID_BITS
* remove default rvfi_instr_t from spike.sv
* fifo_v3: ariane_pkg::FPGA_EN becomes a param
* move FPGA_EN
* inline wt_cache_pkg::L15_SET_ASSOC
* move wt_cache_pkg::L15_WAY_WIDTH
* inline wt_cache_pkg::L1I_SET_ASSOC
* inline wt_cache_pkg::L1D_SET_ASSOC
* move wt_cache_pkg::DCACHE_CL_IDX_WIDTH
* move ICACHE_TAG_WIDTH
* move DCACHE_TAG_WIDTH
* move ICACHE_INDEX_WIDTH
* move ICACHE_SET_ASSOC
* use ICACHE_SET_ASSOC_WIDTH instead of $clog2(ICACHE_SET_ASSOC)
* move DCACHE_NUM_WORDS
* move DCACHE_INDEX_WIDTH
* move DCACHE_OFFSET_WIDTH
* move DCACHE_BYTE_OFFSET
* move DCACHE_DIRTY_WIDTH
* move DCACHE_SET_ASSOC_WIDTH
* move DCACHE_SET_ASSOC
* move CONFIG_L1I_SIZE
* move CONFIG_L1D_SIZE
* move DCACHE_LINE_WIDTH
* move ICACHE_LINE_WIDTH
* move ICACHE_USER_LINE_WIDTH
* move DCACHE_USER_LINE_WIDTH
* DATA_USER_WIDTH = DCACHE_USER_WIDTH
* move DCACHE_USER_WIDTH
* move FETCH_USER_WIDTH
* move FETCH_USER_EN
* move LOG2_INSTR_PER_FETCH
* move INSTR_PER_FETCH
* move FETCH_WIDTH
* transform SSTATUS_SD and SMODE_STATUS_READ_MASK into functions
* move [SM]_{SW,TIMER,EXT}_INTERRUPT into a structure
* move SV
* move vm_mode_t to config_pkg
* move MODE_SV
* move VPN2
* move PPNW
* move ASIDW
* move ModeW
* move XLEN_ALIGN_BYTES
* move DATA_USER_EN
* format: apply verible
2024-03-15 17:21:34 +00:00
Côme
aed4ed7c23
move functions into modules (#1926) 2024-03-13 17:46:33 +01:00
Rohan Arshid
c827c3b770
Zcmp extension support (#1779) 2024-03-13 11:37:49 +01:00
Côme
32a3cd56ee
Parametrization step 2 (#1908) 2024-03-08 22:53:42 +01:00
André Sintzoff
1474395869
decoder.sv: sfence.vma valid only if S mode supported (fix #1866) (#1869) 2024-02-23 23:10:40 +01:00
JeanRochCoulon
b4c287a18e
Design Document, add ID_STAGE description (#1832) 2024-02-16 16:17:46 +01:00
Guillaume Chauvon
fa101fae7a
Parameterize TVAL to reduce size in embedded (#1784) 2024-01-25 15:47:06 +01:00
Yannick Casamatta
0ce6b40b26
Remove all logic and sequential related to RVFI in CORE cva6 (#1762) 2024-01-18 22:51:10 +01:00
André Sintzoff
3afe870d78
csr_regfile.sv: add RVB field for MISA (fix #1734) (#1760) 2024-01-15 14:34:25 +01:00
Gull Ahmed
8c14b6aa4a
resolving issue #1613 (#1714) 2023-12-17 17:59:22 +01:00
Côme
fab3255823
refactor(decoder): simplify interrupt indexing (#1709) 2023-12-14 14:36:17 +01:00
AEzzejjari
738d53af1c
Code coverage: condition RTL With parameters (#1703) 2023-12-13 07:52:47 +01:00
AEzzejjari
cbd3e9fe19
Modify coding style to improve CC (#1672) 2023-12-05 14:51:23 +01:00
MarioOpenHWGroup
220f534b6d
Spike Tandem Implementation using VCS simulator (#1561) 2023-11-09 19:29:24 +01:00
JeanRochCoulon
d087fd7c8a
[HOT FIX] Add else to SRET instruction decode (#1595)
Add the generation of illegal instruction in case of SRET decoding and supervisor mode disable
2023-11-06 08:21:12 +00:00
JeanRochCoulon
3fcb7b9c9b
Do not support DRET when DebugEn = 0 (#1596)
When debug mode is disable, DRET instruction is not supported.
2023-11-06 07:50:46 +00:00
Fatima Saleem
f14254dff6
removing zexth duplicated code for RV64 (#1589)
revert decoder.sv modifications done in a99f115d41
2023-11-02 09:29:47 +00:00
Fatima Saleem
a99f115d41
conditioned RTL with XLEN parameter (#1579) 2023-10-31 19:54:19 +01:00
AEzzejjari
1faaec09bc
Code_coverage: condition RTL with the debug parameter (#1582) 2023-10-31 17:35:59 +01:00
AEzzejjari
d92f0f76d0
Code_coverage: condition RTL with the U-MODE parameter (#1583) 2023-10-31 13:45:58 +01:00
AEzzejjari
4b67475fa4
Code_coverage: condition RTL with the S-MODE parameter (#1574) 2023-10-27 22:38:52 +02:00
André Sintzoff
7cd183b710
verible-verilog-format: apply it on core directory (#1540)
using verible-v0.0-3422-g520ca4b9/bin/verible-verilog-format
with default configuration

Note: two files are not correctly handled by verible
- core/include/std_cache_pkg.sv
- core/cache_subsystem/cva6_hpdcache_if_adapter.sv
2023-10-18 16:36:00 +02:00
Florian Zaruba
93782ddfb5
Merge CVA6Cfg and ArianeCfg (#1321) 2023-09-28 11:41:38 +02:00
AEzzejjari
4641acf9d2
Code_ coverage: Remove VCS coverage pragma for BitManip (#1469) 2023-09-23 00:22:29 +02:00
Fatima Saleem
2ac676d931
Add Zicond Extension support in CVA6 (#1405) 2023-09-15 08:19:50 +02:00
JeanRochCoulon
c8202ae1ad
Decode AMOXOR_D (and similar instructions) only when XLEN=64bits (#1355) 2023-09-01 11:57:08 +02:00
JeanRochCoulon
434e55c457
Generate illegal opcode when execute LWU with XLEN=32 (#1344)
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
2023-08-28 21:55:37 +02:00
JeanRochCoulon
1db42ee8da
Add variant into CVA6 parameter (#1320)
* Variane as CVA6 parameter

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

* fix FPGA build

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

* Fix tipo in cva6.sv

* fix lint warnings

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

* Fix is_*_fpr functions

* remove blank lines

* set IsRVFI out of CVA6Cfg

* define config_pkg

* Fix ariane_pkg comments

* Fix Lint from André's feedbacks

* Fix parameter transmission

* Fix replace CVA6Cfg by CVA6ExtendCfg in cva6.sv

* fix add CVA6Cfg in instr_queue, instr_scan and pmp parameters

---------

Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
Co-authored-by: ALLART Come <come.allart@thalesgroup.com>
2023-08-22 14:04:06 +02:00
JeanRochCoulon
279ce9fb9b
Define RVFI as cva6 parameter (#1293) 2023-07-19 08:21:39 +02:00
Fatima Saleem
4d2a9fe032
Resolved Lint WIDTHEXPAND warnings(1/2) (#1303) 2023-07-18 11:06:09 +02:00
Nils Wistoff
513bb91f82
Add Ara support (#1024)
Support Ara via a custom, parametrised accelerator interface.

    cv64a6_imafdcv_sv39_config_pkg.sv enables V extension
    Pre-processor constant ARIANE_ACCELERATOR_PORT enables the interface between CVA6 and Ara. 
    FPU is bumped to a SIMD-compatible version

Backwards compatibility should be preserved. Once this is merged, we will change the reference of Ara upstream CVA6.

-----

Signed-off-by: Nils Wistoff <nwistoff@iis.ee.ethz.ch>
Co-authored-by: Matheus Cavalcante <matheusd@iis.ee.ethz.ch>
Co-authored-by: Matteo Perotti <mperotti@iis.ee.ethz.ch>
Co-authored-by: JeanRochCoulon <jean-roch.coulon@thalesgroup.com>
2023-07-10 17:12:59 +02:00
Fatima Saleem
018dbc4210
Resolved Lint WIDTHTRUNC warnings(1/2) (#1297) 2023-07-06 11:41:25 +02:00
JeanRochCoulon
5284f828e4
declare cva6_cfg_t to pass the configuration through the hierarchy (#1287)
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
2023-07-01 17:24:21 +02:00
JeanRochCoulon
9be687ffe4
Add coverage pragmas to exclude BITMANIP code (#1288)
Signed-off-by: Jean-Roch Coulon <jean-roch.coulon@thalesgroup.com>
2023-06-30 11:45:18 -04:00
André Sintzoff
99acdc271b
decoder.sv: ZEXT.H is valid only with Zbb bitmanip extension (fix #1234) (#1236)
Signed-off-by: André Sintzoff <andre.sintzoff@thalesgroup.com>
2023-05-22 13:27:53 +02:00
Guillaume Chauvon
80050aa21e
decoder: add missing default case for BITMANIP (#938) 2022-08-16 09:25:11 +02:00
Guillaume Chauvon
b6c1d04b6f
decoder.sv: fix sfence.vma when rs1 != 0 (#933)
unlike other instructions with minor opcode == PRIV,
SFENCE.VMA do not check for rs1 != 0.
Only check for rd !=0 to raise illegal instruction

Signed-off-by: Guillaume Chauvon <guillaume.chauvon@thalesgroup.com>
2022-07-20 17:03:06 +02:00