mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-06-27 17:00:57 -04:00
Adds support for Trace Interface or Trace Ingress Port (TIP) on CVA6 TIP is Interface between a RISC-V hart and the trace encoder It generates information about the instruction retired. The implementation is compliant with the Efficient Trace for RISC-V standard Version 2.0.2(https://github.com/riscv-non-isa/riscv-trace-spec/releases/download/v2.0.2/riscv-trace-spec-asciidoc.pdf), specifically: Chapter 4.1: Instruction Trace Interface Requirements Chapter 4.2: Instruction Trace Interface The current implementation supports the following TIP signals: iretire, itype, cause, tval, priv, iaddr, and time. For Instruction Type (itype) encoding, it supports the following: Exception, Interrupt, Exception or interrupt return, Nontaken branch, Taken branch, Uninferable jump. What I have been able to test so far: Simulation: Executed C binaries and observed the waveform of TIP. --------- Co-authored-by: root <darshak.sheladiya@sysgo.com> Co-authored-by: CHAUVON Guillaume <guillaume.chauvon@thalesgroup.com> Co-authored-by: JeanRochCoulon <jean-roch.coulon@thalesgroup.com>
16 lines
391 B
C
16 lines
391 B
C
// Copyright (c) 2025 Thales DIS design services SAS
|
|
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
|
|
// Author: Maxime Colson - Thales
|
|
// Date: 20/03/2025
|
|
// Contributors:
|
|
// Darshak Sheladiya, SYSGO GmbH
|
|
// Umberto Laghi, UNIBO
|
|
|
|
//This test will be improved by taking into account other scenarios
|
|
|
|
void branch_test();
|
|
|
|
int main(int argc, char* arg[]) {
|
|
branch_test();
|
|
return 0;
|
|
}
|