abstractaccelerator/release-notes.md

5.0 KiB

SweRV RISC-V CoreTM 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.

Bug fixes:

  1. Hart incorrectly cleared dmcontrol.dmactive on reset (reported by Codasip).
  2. Hart never asserted the dmstatus.allrunning signal on reset which caused a timeout in OpenOCD (reported by Codasip).
  3. Debug module failed to auto-increment register on system-bus access of size 64-bit (reported by Codasip).
  4. The core_rst_n signal was incorrectly connected (reported by Codasip).
  5. Moudule/instance renamed for tool compatibility.
  6. 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.
  7. The MSTATUS control register was not being updated as expected when both a non-maskable-interrupt and an MSTATUS-write happened in the same cycle.
  8. Write to SBDATA0 was not starting an system-bus write access when sbreadonaddr/sbreadondata is set.
  9. Minstret was incorrectly counting ecall/ebreak instructions
  10. The dec_tlu_mpc_halted_only signal was not set for MPC halt after reset.
  11. The MEPC control register was not being updated when a firmware-halt request was followed by a timer interrupt.
  12. The MINSTRETH control register was being incremented when performance counters were disabled.
  13. Bus driver contained combinational logic from multiple clock domains that sometimes caused a glitch.
  14. System bus reads were always being made with 64-bit size for the AXI bus which is incorrect for IO access.
  15. DCCM single bit errors were counted for instruction that did not commit.
  16. ICCM Single Bit Errors were double counted.
  17. Load/store unit was not detecting access faults when DCCM and PIC memories are next to each other.
  18. Single bit ECC errors on data load were not always corrected in the DCCM.
  19. ECC single bit error were not always corrected in the DCCM for DMA access.
  20. Single bit Errors detected while reading ICCM through DMA were not being corrected in memory.

Improvements:

  1. Improved performance by removing redundant term in decode stall logic.
  2. Reduced power used by the ICCM memory arrays.

Testbench Improvements:

  1. AXI4 and AHB-Lite support.
  2. Updated bus memory to be persistent and handle larger programs.
  3. Makefile supports ability to run with source or pre-generated hex files.
  4. Makefile supports targets for coremarks benchmark (issue #25).
  5. Questa support in Makefile (Issue #19).

SweRV RISC-V CoreTM 1.4 from Western Digital

Release Notes

Move declarations to top of Verilog file to fix fpga compile issues.

SweRV RISC-V CoreTM 1.3 from Western Digital

Release Notes

  1. Make the FPGA optimization code work with the latest version of Verilator.Pull request #13
  2. Move JTAG TAP to swerv_wrapper module. Pull request #10

SweRV RISC-V CoreTM 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.
  2. FPGA support: Add fpga_optimize option to swerv.config which eliminates over 90% of clock-gating enabling faster FPGA simulation.

  3. Usability: Untabified all the verilog files. This fixes issue number 3 on github.

SweRV RISC-V CoreTM 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
  2. 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
  3. 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
  4. 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.