aboutsummaryrefslogtreecommitdiff
path: root/README
blob: ad9a25a84a149d890cf77bf28cd14d2174bc9494 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
==========================================================================
RISC-V ISA Simulator
==========================================================================
# Author  : Andrew Waterman, Yunsup Lee
# Date    : June 19, 2011
# Version : (under version control)

The RISC-V ISA Simulator implements a functional model of one or more
RISC-V processors.

--------------------------------------------------------------------------
Build Steps
--------------------------------------------------------------------------

We assume that the RISCV environment variable is set to the RISC-V tools
install path, and that the riscv-fesvr package is installed there.

 % mkdir build
 % cd build
 % ../configure --prefix=$RISCV --with-fesvr=$RISCV
 % make
 % [sudo] make install

--------------------------------------------------------------------------
Compiling and Running a Simple C Program
--------------------------------------------------------------------------

Install spike (see Build Steps), riscv-gcc, and riscv-pk.

Write a short C program and name it hello.c.  Then, compile it into a RISC-V
ELF binary named hello:

 % riscv-gcc -o hello hello.c

Now you can simulate the program atop the proxy kernel:

 % spike pk hello

--------------------------------------------------------------------------
Simulating a New Instruction
--------------------------------------------------------------------------

Adding an instruction to the simulator requires two steps:

  1. Describe the instruction's functional behavior in the file
     riscv/insns/<new_instruction_name>.h.  Examine other instructions
     in that directory as a starting point.

  2. Add the opcode and opcode mask to riscv/opcodes.h.  Alternatively,
     add it to the riscv-opcodes package, and it will do so for you:

      % cd ../riscv-opcodes
      % vi opcodes       // add a line for the new instruction
      % make install

  3. Rebuild the simulator.