Livt packages
Eccelerators.RiscV
Version 0.3.0
Composable RV32I and Zmmul processors, machine-mode support, and reusable FPGA system components written in Livt.
Published files (120)
src/Contracts/IRvObservation.lvt
namespace Eccelerators.RiscV.Contracts
/**
* Optional blocking verification sink. Called once per committed instruction
* or trap event; disabled compositions must omit both sink and calls.
* kind: 0 retired, 1 synchronous fault, 2 interrupt. Faults do not retire.
* rd=0 means no architectural register write. memoryKind: 0 none, 1 load,
* 2 store; mask is a four-bit byte lane mask; data is the transferred word.
* Unused fields are zero. Sink cannot change architecture; it may add latency.
*/
public interface IRvObservation
{
/**
* Records one ordered architectural event, completing before return.
* Use RvObservationValues for kind and memoryKind. Supply original PC/instruction,
* rd in 0..31 (zero means no write), and a four-bit byte-lane memory mask.
* Unused fields must be zero. Fault/interrupt events do not retire instructions.
* The exclusive caller owns architectural updates; this sink may add latency.
*/
fn Observe(kind: uint, pc: uint, instruction: uint, rd: uint, value: uint,
memoryKind: uint, address: uint, mask: uint, data: uint, cause: uint, tval: uint)
}