Commit Graph

16 Commits

Author SHA1 Message Date
mariusmonton fb84f197bf Added namespace to project 2021-11-29 20:35:26 +01:00
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 34a8f66035 Simplified extension check 2021-07-04 22:46:41 +02:00
mariusmonton a48e552926 some methods now are const, reference class parameters, other minor changes 2021-01-23 11:44:10 +01:00
mariusmonton f7dbf106cc trivial changes to increase performance 2021-01-15 09:09:52 +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 9a46e9d0a5 add missing break for case 2020-05-29 16:03:45 +02:00
mariusmonton d62892e3dc minor changes, better code 2019-02-11 20:26:23 +01:00
mariusmonton a2a9c95546 Added A Extensions
Added SFENCE instruction
2018-12-12 18:14:35 +01:00
mariusmonton ed7be704f9 implementation of all remaining C extension 2018-11-19 15:56:08 +01:00
mariusmonton adc30178ab fixed detection of M extension 2018-11-14 23:14:06 +01:00
mariusmonton a8bdc37c12 all tests passed! 2018-11-14 19:14:57 +01:00
mariusmonton aa526943b9 Added instructions to pass riscv-tests 2018-10-15 13:51:41 +02:00
mariusmonton 08044ac626 * Instruction: changed name to accessors
* CPU: moved huge switch case to a new function
* Execute: changed to use instruction new accessors
2018-10-10 12:08:53 +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 35e688837a initial import 2018-09-10 18:44:54 +02:00