131 lines
5.0 KiB
Markdown
131 lines
5.0 KiB
Markdown
# SweRV RISC-V Core<sup>TM</sup> 1.5 from Western Digital
|
|
## Release Notes
|
|
|
|
|
|
This is a bug-fix and performance-improvement release. No new functionality
|
|
is added to the SweRV core.
|
|
|
|
|
|
1. Bug fixes:
|
|
|
|
* Hart incorrectly cleared dmcontrol.dmactive on reset (reported by
|
|
Codasip). Note that a separate system power-on-reset signal `dbg_rst_l`
|
|
was added to differentiate power-on-reset vs core reset.
|
|
* Hart never asserted the dmstatus.allrunning signal on reset which
|
|
caused a timeout in OpenOCD (reported by Codasip).
|
|
* Debug module failed to auto-increment register on system-bus access
|
|
of size 64-bit (reported by Codasip).
|
|
* The core_rst_n signal was incorrectly connected (reported by Codasip).
|
|
* Module/instance renamed for tool compatibility.
|
|
* The program counter was getting corrupted when the load/store unit
|
|
indicated both a single-bit and a double-bit error in the same
|
|
cycle.
|
|
* The MSTATUS register was not being updated as expected when both a
|
|
non-maskable-interrupt and an MSTATUS-write happened in the same
|
|
cycle.
|
|
* Write to SBDATA0 was not starting a system-bus write access when
|
|
sbreadonaddr/sbreadondata is set.
|
|
* Minstret was incorrectly counting ecall/ebreak instructions.
|
|
* The dec_tlu_mpc_halted_only signal was not set for MPC halt after
|
|
reset.
|
|
* The MEPC register was not being updated when a firmware-halt request
|
|
was followed by a timer interrupt.
|
|
* The MINSTRETH control register was being incremented when
|
|
performance counters were disabled.
|
|
* Bus driver contained combinational logic from multiple clock
|
|
domains that sometimes caused a glitch.
|
|
* System bus reads were always being made with 64-bit size for the
|
|
AXI bus which is incorrect for IO access.
|
|
* DCCM single-bit errors were counted for instructions that did not
|
|
commit.
|
|
* ICCM single bit errors were double-counted.
|
|
* Load/store unit was not detecting access faults when DCCM and PIC
|
|
memories are next to each other.
|
|
* Single-bit ECC errors on data load were not always corrected in
|
|
the DCCM.
|
|
* Single-bit ECC errors were not always corrected in the DCCM for DMA
|
|
accesses.
|
|
* Single-bit errors detected while reading ICCM through DMA were not
|
|
being corrected in memory.
|
|
|
|
|
|
2. Improvements:
|
|
|
|
* Improved performance by removing redundant term in decode stall
|
|
logic.
|
|
* Reduced power used by the ICCM memory arrays.
|
|
|
|
|
|
3. Testbench Improvements:
|
|
|
|
* AXI4 and AHB-Lite support.
|
|
* Updated bus memory to be persistent and handle larger programs.
|
|
* Makefile supports ability to run with source or pre-generated hex
|
|
files.
|
|
* Makefile supports targets for CoreMarks benchmark (issue #25).
|
|
* Questa support in Makefile (Issue #19).
|
|
|
|
|
|
|
|
# SweRV RISC-V Core<sup>TM</sup> 1.4 from Western Digital
|
|
## Release Notes
|
|
Move declarations to top of Verilog file to fix fpga compile issues.
|
|
|
|
|
|
# SweRV RISC-V Core<sup>TM</sup> 1.3 from Western Digital
|
|
## Release Notes
|
|
1. Make the FPGA optimization code work with the latest version of Verilator.[Pull request #13](https://github.com/chipsalliance/Cores-SweRV/pull/12)
|
|
1. Move JTAG TAP to swerv_wrapper module. [Pull request #10](https://github.com/chipsalliance/Cores-SweRV/pull/10)
|
|
|
|
# SweRV RISC-V Core<sup>TM</sup> 1.2 from Western Digital
|
|
## Release Notes
|
|
1. SWERV core RISCV compatibility improvements
|
|
* The ebreak and ecall instructions are no longer counted in the MINSRET
|
|
control and status register.
|
|
* Write to SBDATA0 does not start SB write access when both
|
|
sbreadonaddr/sbreadondata are zero. This fixes issue number
|
|
5 on github.
|
|
|
|
1. FPGA support: Add fpga_optimize option to swerv.config which
|
|
eliminates over 90% of clock-gating enabling faster FPGA
|
|
simulation.
|
|
|
|
1. Usability: Untabified all the verilog files. This fixes issue number 3 on github.
|
|
|
|
# SweRV RISC-V Core<sup>TM</sup> 1.1 from Western Digital
|
|
## Release Notes
|
|
1. SWERV core RISCV compatibility improvements
|
|
|
|
* Illegal instructions no longer increment minstret
|
|
* Debug single-step command no longer executes multiple instructions
|
|
* For instructions, MTVAL register holds the address that actually
|
|
triggered an access fault
|
|
* DICAD1 debug CSR ECC read size enhancements
|
|
|
|
1. SWERV core performance enhancements
|
|
|
|
* Improved instruction fetch unit external memory access performance
|
|
* Instruction fetcher no longer stalls due to DMA ICCM requests
|
|
* Improved performance of streaming stores
|
|
* Improved performance of divide instruction
|
|
* Improved I/O Timing
|
|
* Non-idempotent Ld/St changed to non-posted in MFDC
|
|
* DMA QoS Configurable in MFDC
|
|
|
|
1. SWERV core miscellaneous changes
|
|
|
|
* Non-word access to PIC memory generates access-error
|
|
* Improved streaming performance with unified read/write buffer
|
|
* Non-idempotent load enhancements
|
|
* Debug, single-step, and trigger enhancements
|
|
* DMA, IFU, and LSU interaction enhancements
|
|
* Bus error handling improvements
|
|
* DMA h-ready addition
|
|
* DMA slave error response enhancements
|
|
|
|
1. Added memory protection windows
|
|
|
|
* Now able to define up to eight instruction fetch windows and up to eight
|
|
data load/store windows. See the programmer reference manual for more
|
|
details.
|