Commit Graph

17 Commits

Author SHA1 Message Date
Màrius Montón a42877ab95 change types from uintX_t to std::uintX_t 2021-11-11 17:10:23 +01:00
Màrius Montón de1aa4c7a6 changed C array to std::array 2021-11-09 11:15:36 +01:00
Màrius Montón 56c5203899 Use real addresses in memory, extend memory size fo 0xFFFFFFFF 2021-07-04 22:47:47 +02:00
Màrius Montón 3b3813bd07 code clean-up (using clang-tidy) 2021-04-25 19:52:12 +02:00
mariusmonton a48e552926 some methods now are const, reference class parameters, other minor changes 2021-01-23 11:44:10 +01:00
mariusmonton 286dbf07a6 added const keyword to const methods 2021-01-17 15:40:47 +01:00
Màrius Montón a019de5eb3 reduce variable scope 2021-01-15 15:51:03 +01:00
Màrius Montón 5ee634e4b4 Major refactoring!
* A_Instruction, C_Instruction and M_Instruction renamed to *_extension
  * These files decode and executes extensions
  * These classes use a new base clase extension_base
* Execute & Instruction classes heavyly modified:
  * Execute now is BASE_ISA and decodes and executes base ISA, Zicsr & Zifencei
  * Instruction keeps the instruction being executed, nothing else
* Add memory interface to ISS to clear the code and the structure
* Removed "using namespace " directives, all classes are called using their namespace
* Added proper header to each file
* Added license to all files
2020-06-02 13:08:38 +02:00
Màrius Montón 95b9685ad9 removed creation of class every CPU loop. It should get better performance 2020-05-28 17:18:50 +02:00
Màrius Montón 1bb3200eb6 add destructor for clean exit 2019-09-08 11:42:05 +02:00
mariusmonton 93fe2237b4 better support to hex file 2018-12-12 18:15:21 +01:00
mariusmonton aa526943b9 Added instructions to pass riscv-tests 2018-10-15 13:51:41 +02:00
mariusmonton 21003e2fa9 remove unused SC_THREAD 2018-09-21 09:24:49 +02:00
mariusmonton 11fae01cba Changed memory to be addressable to byte instead to word (32bits) 2018-09-20 12:22:13 +02:00
mariusmonton 8dcbf09589 Lot of changes:
* memory module parses 03 field and sets Program Counter (PC) to right value
* almost all RV32I instructions implemented
* added Trace module to mimic ARM ITM module
* added BusCtrl module as bus controler (very simple) to allow CPU & RISC_V_execute to access memory & peripherals
* lot of minor changes
2018-09-19 23:44:38 +02:00
mariusmonton 1c9bfe8c60 Added Data Memory bus. Implemented LW & SW instructions. 2018-09-17 12:21:26 +02:00
mariusmonton 35e688837a initial import 2018-09-10 18:44:54 +02:00