Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Trace Ingress Port #2800

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

dassheladiya
Copy link

Overview

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.

Changed

Added new files:
"core/cva6_te_connector/rtl/cva6_te_connector.sv"
"core/cva6_te_connector/rtl/fsm.sv"
"core/cva6_te_connector/rtl/itype_detector.sv"
"core/cva6_te_connector/include/connector_pkg.sv"

Changed files:

"core/cva6.sv"
"core/cva6_rvfi_probes.sv"
"core/include/rvfi_types.svh"
"corev_apu/tb/ariane_testharness.sv"

What I have been able to test so far:
Simulation: Executed C binaries and observed the waveform of TIP.

What I have not yet tested:
Did not perform any formal verification.

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Mar 3, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Mar 3, 2025

❌ failed run, report available here.

Copy link
Contributor

github-actions bot commented Mar 4, 2025

❌ failed run, report available here.

Copy link
Contributor

@cathales cathales left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @dassheladiya and @MaxCThales

Here are some suggestions, especially to make this contribution compatible with CVA6 configuration.

Copy link
Contributor

❌ failed run, report available here.

1 similar comment
Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

dassheladiya and others added 2 commits March 13, 2025 09:52
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
instr.tval = ex_commit_i.tval;
end else begin
instr.tval = '0;
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[verible-verilog-format] reported by reviewdog 🐶

Suggested change
end
end

Copy link
Contributor

❌ failed run, report available here.

2 similar comments
Copy link
Contributor

❌ failed run, report available here.

Copy link
Contributor

❌ failed run, report available here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants