2017-08-27 12:10:38 +02:00
|
|
|
import "RV32IBase.core_desc"
|
|
|
|
import "RV32M.core_desc"
|
|
|
|
import "RV32A.core_desc"
|
|
|
|
import "RV32C.core_desc"
|
2017-09-21 13:13:01 +02:00
|
|
|
import "RV64IBase.core_desc"
|
2017-08-27 12:10:38 +02:00
|
|
|
//import "RV64M.core_desc"
|
2017-09-21 13:13:01 +02:00
|
|
|
import "RV64A.core_desc"
|
2017-08-27 12:10:38 +02:00
|
|
|
|
2017-11-23 14:48:18 +01:00
|
|
|
Core RV32IMAC provides RV32IBase, RV32M, RV32A, RV32CI {
|
2017-08-27 12:10:38 +02:00
|
|
|
template:"vm_riscv.in.cpp";
|
|
|
|
constants {
|
|
|
|
XLEN:=32;
|
|
|
|
XLEN2:=64;
|
|
|
|
XLEN_BIT_MASK:=0x1f;
|
|
|
|
PCLEN:=32;
|
|
|
|
fence:=0;
|
|
|
|
fencei:=1;
|
2017-09-21 13:13:01 +02:00
|
|
|
fencevmal:=2;
|
|
|
|
fencevmau:=3;
|
2017-08-27 12:10:38 +02:00
|
|
|
// XL ZYXWVUTSRQPONMLKJIHGFEDCBA
|
|
|
|
MISA_VAL:=0b01000000000101000001000100000001;
|
|
|
|
PGSIZE := 4096; //1 << 12;
|
|
|
|
PGMASK := 4095; //PGSIZE-1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-09-21 13:13:01 +02:00
|
|
|
|
2017-11-23 14:48:18 +01:00
|
|
|
Core RV64IA provides RV64IBase, RV64A, RV32A {
|
|
|
|
template:"vm_riscv.in.cpp";
|
2017-08-27 12:10:38 +02:00
|
|
|
constants {
|
|
|
|
XLEN:=64;
|
2017-09-21 13:13:01 +02:00
|
|
|
XLEN2:=128;
|
2017-08-27 12:10:38 +02:00
|
|
|
XLEN_BIT_MASK:=0x3f;
|
|
|
|
PCLEN:=64;
|
|
|
|
fence:=0;
|
|
|
|
fencei:=1;
|
2017-09-21 13:13:01 +02:00
|
|
|
fencevmal:=2;
|
|
|
|
fencevmau:=3;
|
|
|
|
// XL ZYXWVUTSRQPONMLKJIHGFEDCBA
|
2017-11-23 14:48:18 +01:00
|
|
|
MISA_VAL:=0b10000000000001000000000100000001;
|
2017-09-21 13:13:01 +02:00
|
|
|
PGSIZE := 4096; //1 << 12;
|
|
|
|
PGMASK := 4095; //PGSIZE-1
|
2017-08-27 12:10:38 +02:00
|
|
|
}
|
|
|
|
}
|