Coder Social home page Coder Social logo

rvvi's People

Contributors

bit-hack avatar duncangraham-imperas avatar eroom1966 avatar imperas avatar riscv-verification avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rvvi's Issues

risc-v simulator

Hey
We are developing risc-v simulator and try to simulator XV6 os, we failed, somehow it crash after executed millions instructions. Can this framework help us to amend the errors, we believe we simulate virtio wrongly?
thanks
Peter

Does rvviDutTrap() consider retired PC or exception PC?

Hello,

There is a rvviDutTrap() function in https://github.com/riscv-verification/RVVI/blob/main/include/host/rvvi/rvviApi.h.
image
Is the parameter dutPc the last retired PC or the exception PC?

When taking trap/exception, the current PC is the exception PC that has not retired yet and will be jumped back to after the trap. Thus, there is no retired PC upon taking trap/exception. However, the comment states the dutPc is the retired PC. Does the dutPc here mean exception PC?

Thank you.

Async clks in rvvi_vlg

The SystemVerilog Interface rvvi_vlg.sv declares two "clocks" that are delay-shifted from "clk":

wire                       clk;
wire                       clk1;                                  // clock+1
wire                       clk2;                                  // clock+2
assign #1 clk1 = clk;
assign #2 clk2 = clk;

These clocks are used in ImperasHome/ImpPublic/source/host/rvvi/rvvi-vlg.sv and ImperasHome/ImpProprietary/source/host/rvvi/vlg2api.sv (part of the ImperasDV SDK).

It is generally considered bad form to use delayed clocks to sample signals and in theory is not needed.

Is there a reason we have these?

Indicate hypervisor mode

Hi!

In the current version of the trace interface, the mode field only incorporates M, S and U. This is all fine, but for hardware with hypervisor capabilities there is from what I can tell no way to signal the current virtualization mode V. Is this something which you plan to add to RVVI?

Usage of csr_wb, csr?

https://github.com/riscv-verification/RVVI/tree/main/RVVI-VLG states:

csr_wb, csr

If the bit position within csr_wb is true, then a the position indicates a write into csr, eg if csr_wb=0x1, then the ustatus register (address 0x000) has been written. If csr_wb=(1<<4 | 1<<0) then address 0x004 and 0x001 have been written concurrently csr_wb=0x0 indicates no written csr.

Are these used as well to report the side effects of taken interrupts?

What is meant by asynchronous exception?

https://github.com/riscv-verification/RVVI/tree/main/RVVI-VLG states:

trap

When this signal is true along with valid, an instruction execution has undergone a synchronous exception (syscalls, etc). This event allows the reading of internal state. The instruction address trapped is indicated by the pc_rdata variable. If this signal is false when valid is asserted, then an instruction has retired. This signal will not be asserted during an asynchronous exception.

What is meant by ‘asynchronous exception’. In RISC-V terminology exceptions are by definition synchronous.
How about synchronous debug mode entry; will they lead to trap = 1?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.