Skip to content

Tags: TUT-ASI/leon3-grlib-gpl-mirror

Tags

grlib-gpl-2025.2-b4298

Toggle grlib-gpl-2025.2-b4298's commit message
grlib-gpl-2025.2-b4298

----------------------- Release 2025.2-b4298 ---------------------------

2025-06-30	NOEL-V updates:
		- Update interrupt port definition (new record type)
		- Prevent H-extension to be enabled for RV32 (currently
		  not supported)
		- MC standard configuration has been updated to increase L1
		  to 4-way and remove double-precision floating-point (only
		  supporting F extension)
		- The double-trap extension (smdbltr and ssdbltrp) have been
		  updated version 1.0
		- Update to CSR handling (illegal checks, and exceptions)
		- Added shlcofideleg and smcdeleg extension
		- Added SVADU extension
		- PLIC now supports more then 31 interrupt sources
		- Custom FEATURE CSR updated (bits has been redefined)
		- Added support for Svnapot extension and Sv48
		- Update illegal checks for CBO instructions
		- APLIC: base_ppn field was not shifted 12 bits to the left
		  to calculate the IMSIC base address.
		- G-stage access fault was raised instead of page fault for
		  some cases
		- Fixed issue with PMA/PMP check during page-walk
		- Fix to not update m/htinst on shadowstack push/pop
		  exceptions
		- Fixed incorrect fault for CFI landing pad faults
		- Executing ssamoswap in machine mode was not handled
		  correctly
		- Update Smstateen extension to incorporate the bits
		  p1p13 & C.
		- Modify write behavior of bits in hstateen/sstateen, if
		  mstateen.bit is 0 then hstateen.bit/sstateen.bit is no
		  longer writeable and previous bits are preserved.
		- Update envcfg to incorporate read-only behavior for bits
		  not set in higher privilege mode envcfg. Example) if
		  menvcfg.sse = 0 => RO (s/h)envcfg.sse. Previous bits
		  preserved.
		- Update CBO and ssamoswap exception behavior, these
		  instructions could previously throw a virtual instruction
		  exception even if its menvcfg bit was 0.

2025-06-25	TECHMAP: Add UltraScale/UltraScale-Plus mapping for DDR_OREG

2025-06-24	AHB2AXIB: new generic to support AMBA address widths of more
		than 32 bits (not compatible yet with PnP scanning).

2025-06-17	APBUART: Added break character support
		- Increased APBUART revision to 2
		- Updated the core to support transmission and detection
		  of break characters within a configurable range of
		  10-16 zeroes. Break operation is managed via the control
		  register of the apb bus.
		- Enabled break handling in loop-back operation
		- Added a capability register that reports the values
		  for certain RTL instantiation generics, including
		  FIFO size and flow
		- The debug bit in the control register is now read-only.
		  Read/write access for debug functionality has been
		  relocated to the FIFO debug control register.

2025-06-16	GRGPIO: Added set and clear register support to facilitate
		atomic accesses to selected registers.

2025-06-10	BCC: BCC1 to BCC2 migration
		- Affects systest in designs directory

2025-06-09	LEON5: Fix issue on LDSTUB/LDSTUBA opcode check

2025-05-23	LEON5: DTCM Fixes
		- Fix an issue where ASI accesses where triggering unwanted
		  dtcmhit.

2025-04-16	AXI2AHB: fix simultaneous read and write accesses

2025-04-03	GRDMAC2: Incorrect calculation of the burst_chop_mask generic
		value in generic_bm instantiation is fixed. generic_bm_ahb
		instantiation in the grdmac2 has the default value 1024 for
		burst_chop_mask	generic.

grlib-gpl-2025.1-b4296

Toggle grlib-gpl-2025.1-b4296's commit message
grlib-gpl-2025.1-b4296

----------------------- Release 2025.1-b4296 ---------------------------

2025-03-21	New AHBJTAG_EXTTAP IP. Modified version of AHBJTAG where
		the TAP module is instantiated externally.
		Especially suitable for technologies where the TAP cannot
		be instantiated standalone, such as AMD Versal.

2025-03-21	Added support for Versal memories, including ECC (FT = 5)

2025-03-21	NOELV: Workaround for Cadence synthesis issues

2025-03-13	LEON5: Fix issue when building with the global async reset
		setting in the grlib config package.

2025-01-16	AXI: Add new modules
		- AXI4 to AHB2 bridge
		- AXI4-Stream skidbuffer
		- AXI4-Stream gearbox
		- AXI4 transaction resizer

grlib-gpl-2024.4-b4295

Toggle grlib-gpl-2024.4-b4295's commit message
grlib-gpl-2024.4-b4295

----------------------- Release 2024.4-b4295 ---------------------------

2024-12-18	NOEL-V updates
		- Internal APB bus in noelvsys has been moved from
		  0xFC0000000 to 0xFF9000000 and some devices has been
		  reorganized. New UART address is now 0xFF900000.
		- Added option in noelvsys to include PLIC and APLIC
		- Workaround tool issues for Design-compiler and formality
		- Added NOEL-V template design for the ZCU102 board
		- Updated BF16 support (Zfbfmin now ratified)
		- B in MISA is now set when zba, zbb, zbs are implemented
		- Improved access and fixed issues with access to IMSIC CSRs
		- Trigger update to support CBO instructions
		- Updated Smrnmi implementation to support CFI
		- Updated interrupt prioritization according to AIA
		- Removed workaround to allow 64-bit debug-module abstract
		  command on RV32
		- Bug fixes:
		  - CBO.inval and CBO.flush could incorrectly update the TAG
		    and cause duplicated data tags.
		  - mstatush was only available when H-extension was enabled
		  - exception generated for the SSTC extension was incorrect
		  - ePMP bit in mseccfg was writable when PMP was not
		    implemented
		  - updating these CSRs (menvcfgh, frm/fcsr, xtvec, stateen,
		    mideleg/hideleg) should not be dual-issued with other
		    instructions
		  - incorrect exception when an address in a PTE failed PMA
		    check
		  - SIP.lcof was always read zero
		  - sfence.w.inval and sfence.inval.ir weren't trapping in
		    U/VU mode and generating virtual instruction exception
		    correctly
		  - APLIC interrupt source was shifted by one bit.
		  - a hit in BTB was not check to actually be a branch/jal
		    instruction
		  - SLLI >31 bit shift was not marked as illegal for RV32
		  - medeleg and hedeleg to incorporate hw-fault exception
		  - address translation was not enabled for the instruction
		    following enabling MMU
		  - VSATP had the same number of PPN bits as SATP and not
		    all 41 bits of GPA could be used
		  - fix for a CFI landing pad corner case
		  - data cache was flushed when executing a fence instruction
		  - PTE with D = 1 and A = 0 did not result in page-fault
		  - LWU could be executed on RV32
		  - issue with tval for mcontrol6 trigger
		  - SSRDP was not checked for regarding pairing with
		    instruction using destination
		  - PMP check for hlvx and  hypervisor fetch and store was
		    incorrect (when allowed in PTE)
		  - wrong fault on W-only pages with ext_zicfiss but SS
		    disabled
		  - no illegal instruction exception for sfence.vma and
		    reading satp when supervisor mode not implemented
		  - CSR stimecmp was readable when not implemented

2024-11-05	SPIMCTRL: Input signal 'RSTADDRM' added which can be used
		to select the reset value of the extended address mode
		configuration.

2024-10-11	SPIMCTRL: 'allow_writes' configuration now set as register
        	bit. Old VHDL generic is kept and is instead used as reset
		value for the new register bit.

2024-10-04	SPIMCTRL: support for several SPI memories
		The core now supports the use of up to four chip select
		signals. It can either be configured to always communicate
		with one out of the four devices, or instead use bit pairs
		from the address to select which device to use. The second
		approach allows a continuous view into the four memories
		in the SPIMCTRL ROM address region.

l

Toggle l's commit message
grlib-gpl-2024.2-b4293

----------------------- Release 2024.2-b4293 ---------------------------

2024-07-09	Added support for Lattice Nexus FPGAs.
		- Techmap support for nexus primitives.
		- Template designs for LEON3, LEON5 and NOEL-V targeting
		  CrossLink, Certus and CertusPro FPGAs.

2024-06-30	NOEL-V:
		- Writes to HPMCOUNTERs are now single-issued
		- MCONTROL6: The 32 MSBs of the address were masked when
		  setting a breakpoint
		- Accessing htimedeltah, henvcfgh and stimecmph could
		  generate incorrect exception code
		- HGATP: change to not clear all fields when illegal
		  mode is set
		- Update fence instruction to stall until write-buffer
		  and current snoop access has completed
		- hfence instruction did not cause illegal instruction
		  exception when executed in U-mode
		- PMPCFG: change behavior on illegal NA4 mode
		- CBO: did not stall until tag update was completed.
		  Forwarding for address generation was not correct
		- SC: returned incorrect value is some corner cases
		- Some code rewrite to workaround issues with some
		  version of the DC tool
		- The extra two bits in guest physical addresses was not
		  stored in the TLB
		- APLIC: when interrupt was delegated to S-mode it was
		  also forwarded to M-mode

2024-06-24	APBUART16550 documentation added to grip.pdf

grlib-gpl-2024.2-b4293

Toggle grlib-gpl-2024.2-b4293's commit message
grlib-gpl-2024.2-b4293

----------------------- Release 2024.2-b4293 ---------------------------

2024-07-09	Added support for Lattice Nexus FPGAs.
		- Techmap support for nexus primitives.
		- Template designs for LEON3, LEON5 and NOEL-V targeting
		  CrossLink, Certus and CertusPro FPGAs.

2024-06-30	NOEL-V:
		- Writes to HPMCOUNTERs are now single-issued
		- MCONTROL6: The 32 MSBs of the address were masked when
		  setting a breakpoint
		- Accessing htimedeltah, henvcfgh and stimecmph could
		  generate incorrect exception code
		- HGATP: change to not clear all fields when illegal
		  mode is set
		- Update fence instruction to stall until write-buffer
		  and current snoop access has completed
		- hfence instruction did not cause illegal instruction
		  exception when executed in U-mode
		- PMPCFG: change behavior on illegal NA4 mode
		- CBO: did not stall until tag update was completed.
		  Forwarding for address generation was not correct
		- SC: returned incorrect value is some corner cases
		- Some code rewrite to workaround issues with some
		  version of the DC tool
		- The extra two bits in guest physical addresses was not
		  stored in the TLB
		- APLIC: when interrupt was delegated to S-mode it was
		  also forwarded to M-mode

2024-06-24	APBUART16550 documentation added to grip.pdf

grlib-gpl-2024.1-b4292

Toggle grlib-gpl-2024.1-b4292's commit message

Verified

This commit was signed with the committer’s verified signature.
AlexDaniel Aleks-Daniel Jakimenko-Aleksejev
grlib-gpl-2024.1-b4292

----------------------- Release 2024.1-b4292 ---------------------------

2024-04-18	L2C_LITE: Fixed backend io address to provide an AMBA
		AHB BAR that can be scanned for PnP information of the
		bus behind the L2C_LITE.
		Fixed the index addressing bug introduced in the
		2024.1-b4291 release.

2024-04-15	LEON5: Fixed bus access corner case where HBUSREQ was
		deasserted too early if wbmask=0 was combined with
		busw>32.
		Fixed bus access corner case where HTRANS(0) would
		remain asserted if bus grant was lost in the middle of
		a burst fetch of a cache line. The AHBCTRL would never
		have rearbitrated the bus in this instance since HBUSREQ
		remained asserted, but AMBA 2.0 compliant AHB arbiters
		are allowed to do this.

2024-04-15	NOEL-V updates
		- Fixed minor issue with instret CSR
		- Code rework to fix tool issues with single-issue
		  configuration

grlib-gpl-2024.1-b4291

Toggle grlib-gpl-2024.1-b4291's commit message

Verified

This commit was signed with the committer’s verified signature.
AlexDaniel Aleks-Daniel Jakimenko-Aleksejev
grlib-gpl-2024.1-b4291

----------------------- Release 2024.1-b4291 ---------------------------

2024-03-21	NOEL-V updates
		- Added system bus access support for debug-module
		- Now interrupt is allowed on CSR writes
		- Fixed issue with ICOUNT trigger and CSR VSATP, INSTRET
		- Improve branch prediction when C-extension is disabled
		- CSR read with debug-module can now return error
		- Only supported values can now be written to DCSR
		- BTB is not flushed when entering debug mode
		- NOEL-V subsystem: added 16550UART and removed dummy
		  AHB bridge

2024-03-19	LEON5: Fix for MMU probe ASI, could perform unnecessary
		read access during table walk when set to stop at PTD.

2024-02-22	leon5-xilinx-vcu128: Leon5 template design for Xilinx
		VCU128 added.

2024-01-30	LEON5/TECHMAP: Added new mapping for syncram with
		built in data loop back to allow for large TCM timing
		optimizations.

2024-01-25	Documentation updates.
		IRQMP:
		- Added interrupt remapping and extended interrupts to block
		  diagram.
		- Added software usage note on level interrupts.
		GPTIMER:
		- Clarified additional consequences of the shared decrementer.

2024-01-18	LEON5: Add support for TCM with non power-of-two size,
		where only a fraction of the TCM space is backed by
		memory. This is to allow finer control of TCM size.

2024-01-18	LEON5: Bugfix for data_store_error trap delivery
		introduced in release 2023.2.

grlib-gpl-2023.4-b4288

Toggle grlib-gpl-2023.4-b4288's commit message

Verified

This commit was signed with the committer’s verified signature.
AlexDaniel Aleks-Daniel Jakimenko-Aleksejev
grlib-gpl-2023.4-b4288

----------------------- Release 2023.4-b4288 ---------------------------

2023-11-28	NOEL-V: updates
		- Trigger updates:
		  - Added interrupt and exception triggers
		  - Update to mcontrol6
		  - Fixed watchpoint triggering on sfence instructions
		- Debug module: Added halt and resume groups
		- Misaligned load/stores didn't write a transformed instruction
		  into [mh]tinst
		- Updated performance counter event encoding

2023-11-06	LEON3,LEON5: Allow clearing high bits of time stamp
		counter through debug interface to allow clean restart
		through GRMON.

2023-11-06	LEON5: Support 63-bit wide time stamp counter in HP
		configuration (perfcfg=0).

2023-10-27	NOEL-V: updates
		- Reenable RAS
		- Added Svinval extension
		- Instruction trace updated
		- Fixed half-persision fsqrt inexact issue
		- Fixed minor issue related to H extension (HIE, GVA, MVP, HGEIP, HGSATP)
		- Fault type could be wrong related to page-tables
		- Fixed access issue for Sstc CSRs

2023-10-27	APLIC: Added support for interrupt domains

2023-10-23	GRDMAC2: Issue fix for timeout mechanism checking TRST register
		even when TE bit is not set in CTRL register.

2023-10-02	LEON5-ALTERA-C5EKIT: Set edclsepahb signal to Ethernet
		cores to route EDCL accesses to debug module.

2023-10-02	LEON5: Instruction TCM bugfixes.

		Under some conditions following a pipeline stall when executing
		out of ITCM, the cache controller could deliver stale data
		from the Icache RAMs instead of from the ITCM data memories.

		Write to ASI 0x26 could in some cases also cause a write into
		instruction cache data RAMs.

2023-10-02	LEON5: Code reorganization. Move decoding of perfcfg generic
		up to leon5sys level.

2023-10-02	LEON3/LEON5-ALTERA-C5EKIT: Change default IRQ assignment of
		Ethernet cores.

2023-09-29	NOEL-V: updates
		- Code rewrite to support Synopsys DC and FM better.

2023-08-15	L2C-Lite: Major architectural update. Backends available:
		AHB, AXI3, AXI4. Functional updates:
		- Turn on/off Cache.
		- Select replacement policy, 0 -> random, 1 -> psuedo LRU
		  (Probe bit to see if pLRU can enabled).
		- New flush modes: Flush, Flush+Invalidate, Invalidate,
		  Flush address, Flush+Invalidate address.
		- Diagnostics interface: Read/write cachelines and tag+v+d
		  data.

2023-08-15	AHB2AXIB: Added support for BUSY HTRANS.

2023-07-25	AHBCTRL simulation trace:
		Added option to select between printing either full HWDATA/
		HRDATA contents, or the subword selected by HSIZE/HADDR/
		ahbendian.

grlib-gpl-2023.2-b4283

Toggle grlib-gpl-2023.2-b4283's commit message

Verified

This commit was signed with the committer’s verified signature.
AlexDaniel Aleks-Daniel Jakimenko-Aleksejev
grlib-gpl-2023.2-b4283

----------------------- Release 2023.2-b4283 ---------------------------

2023-06-09	LEON5 updates:
		- Implemented data_store_error trap with configurable handling
		  of special cases (such as interrupt between store and error)
		- Implemented internal cache error trap for critical errors
		  (duplicated tags detected)
		- Add cache trap register to record delivered and pending and
		  traps from cache controller.
		- Support write combining mode based on explicit hint
		  instructions instead of always waiting for following store
		- Add full barrier and write combining hint using existing
		  STBAR opcode (consistent with SPARC V9 MEMBAR)

2023-05-25	AHBCTRL simulation trace updates:
		- Print correct slice for narrow accesses on little endian
		  buses.
		- Trace SPLIT and RETRY responses in addition to OKAY and ERROR.
		- Optionally prefix each trace line with bus index and/or a
		  custom debug tag provided as a generic. Intended for
		  multi-bus systems.

2023-05-25	AHBJTAG and TAP techmap:
		- TAP techmap now uses BSCANE2_TAP for all Xilinx technologies
		  where the built-in TAP is accessed using a BSCANE2 primitive.
		- Added new generic taptecharg in AHBJTAG which is passed to
		  the TAP techmap. Currently used only by BSCANE2_TAP to
		  select an alternate user scan chain.
		- JTAGTST jread procedure now supports custom ainst/dinst/isize.
		- AHBJTAG documentation updated.

grlib-gpl-2023.1-b4282

Toggle grlib-gpl-2023.1-b4282's commit message

Verified

This commit was signed with the committer’s verified signature.
AlexDaniel Aleks-Daniel Jakimenko-Aleksejev
grlib-gpl-2023.1-b4282

----------------------- Release 2023.1-b4282 ---------------------------

2023-04-27	LEON5: Minor fix to snooping on stores. Stores and atomics to
		ASI 1 activated the snooping and caused the cache line to be
		invalidated unnecessarily.

2023-04-27	LEON5: Bug fix for diagnostic data cache tag access (ASI 0x0E).
		Valid bits could be read out incorrectly in configurations
		where the valid bits are held in flip flops (cmemconf=2).

2023-04-27	LEON5: Bug fixes for MMU TLB flush and probe (ASI 0x1B).

2023-04-18	LEON5: Bugfix for AHB retry corner case during DCache fetch

2023-04-11	LEON5: Bugfix for breaking execution from debug module while
		an atomic operation is in progress.

2023-04-06	NOEL-V: NOEL-V and RISC-V peripherals updates
		- Added AIA interrupt controller (disabled in default config.)
		- Added ACLINT to replacing CLINT
		- Added UART interface register compatible with 16550 spec.
		- Added RISC-V watchdog
		- Debug module updates (removed internal AHB2AHB bridge)
		- PnP for NOELVSYS is updated to place internal APB bus first.
		- TLB flush updates (separate flush for sTLB and hTLB,
		  Address/VMID/ASID matching)
		- Added Diagnostic access to TLBs
		- Update STVEC/VSTVEC to have 256 byte alignment in vectored mode.
		- Added ISA extensions:
		  - Zcb, Zfhmin, Zfh, Smstateen
		  - Smepmp, Zicond, Zfa, Smrnmi (experimental)
		- Bug fixes:
		  - Store byte followed by sfence.vma prevent update the cache
		  - Instruction c.zext.w was not illegal on 32-bit version
		  - Zicbom instructions could operate in incorrect cache line
		  - Incorrect mask for hedeleg
		  - Minor FPU updates

2023-03-30	LEON5: Minor fixes for debug module access while cache
		controller still has an ongoing access.

2023-03-27	SYNCFIFO_2P: Add scantest generic to propagate down to
		syncram_2p instances.

2023-03-06	LEON5: Increase number of timers in the gptimer in
		standard LEON5SYS configurations from 2 to 3.

2023-02-09	APBUART systest: Fix to the initial loop to fill the
		holding register to avoid X issues in simulation.

2023-02-07	LEON5: Bug fixes related to breaking/resuming execution
		and single stepping.

2023-01-30	APBUART: Modification of simulation mode (console=1)
		When console=1, reads of the status register now return
		values consistent with the transmitter shift register and
		transmitter FIFO being empty. This should make the console=1
		configuration compatible with existing software. Notably,
		BCC2 was not entirely compatible prior to this change.

2023-01-23	LEON5: Cache controller updates
		- Added write combining feature for double stores, enabled
		via LEON5 configuration register bit. Combines stores to
		consecutive addresses into larger bursts up to cache line
		boundary.
		- Minor change to debug access handling in order to remove
		some timing critical paths.
		- Fixes to HPROT generation for store accesses, bit 1 not
		always reflecting supervisor status correctly for that
		store.

2023-01-11	LEON5: Various improvements / fixes related to stores
		- Make stores propagate through to the AHB bus one cycle
		faster in some cases.
		- Make HBURST drive HBURST_SINGLE for MMU page table
		accesses (to allow for re-arbitration in the AHB arbiter).
		- Ensure bus lock is always dropped between locked store
		and any following regular stores.
		- Bug fixes to HBUSREQ signal generation and RETRY/SPLIT
		handling during 32-bit write burst (double store to narrow
		area functionality added recently).

2022-12-21	APBUART
		- Fixed bug where two stopbits were only sent when parity
		was enabled.
		- GRIP: stopbit setting has no effect on the receiver
		- GRIP: corrected description of receiver input filtering
		- GRIP: parity gen

2022-12-20	LEON5: Improved store performance when used with
		32-bit AHB buses. Stores to narrow (32-bit) areas
		now go through the store buffer/FIFO without blocking
		the pipeline similar to the wider case, with double
		stores performed as two-beat bursts.