Commit Graph

136 Commits

Author SHA1 Message Date
mariusmonton 622da9872a added performace information for data memory accesses 2021-01-31 12:00:25 +01:00
mariusmonton 337e267218 remove unused trace output from destructor 2021-01-31 11:59:56 +01:00
mariusmonton 86b98209ce exit cleanup, now closes xterm window, etc. 2021-01-31 11:38:57 +01:00
mariusmonton a48e552926 some methods now are const, reference class parameters, other minor changes 2021-01-23 11:44:10 +01:00
mariusmonton cb63c65d7f Implemented C_EBREAK instruction 2021-01-18 09:14:54 +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
mariusmonton f7dbf106cc trivial changes to increase performance 2021-01-15 09:09:52 +01:00
mariusmonton a3ad14b670 Replaced std::endl by \n for Log performance 2020-12-10 18:02:42 +01:00
mariusmonton 1d271cbb0a explicit sc_core::wait, typos and newline 2020-07-19 11:18:58 +02:00
mariusmonton abf47625a1 change fixed array for CSR to unordered map 2020-06-21 00:29:45 +02:00
mariusmonton 5b91897244 added likely, unlikely attributes to switch case, could boost perfomance 2020-06-21 00:22:51 +02:00
Màrius Montón c33524e726 fixed log condition 2020-06-11 09:23:59 +02:00
Màrius Montón 6ff0da0313 new log file, same performance 2020-06-09 16:37:29 +02: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
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
mariusmonton ede34d7768 Merge branch 'master' of https://github.com/mariusmm/RISC-V-TLM 2020-04-10 16:43:35 +02:00
mariusmonton 5d30416955 Fixed some warnings from coverity 2020-04-10 16:43:22 +02:00
Màrius Montón d575410a06 if condition clarified 2019-09-24 11:12:47 +02:00
Màrius Montón 5f0da6b208 fixed potential bug on memcpy 2019-09-24 11:02:15 +02:00
mariusmonton e75a4bfdfd add missing CSR register MCYcLE and similars 2019-09-13 00:00:59 +02:00
Màrius Montón 916ab46907 print out test result at the end of simulation 2019-09-10 12:36:45 +02:00
Màrius Montón d63d95f634 fixed bug related DMI access when memory offset != 0 2019-09-10 12:24:46 +02:00
Màrius Montón 1bb3200eb6 add destructor for clean exit 2019-09-08 11:42:05 +02:00
Màrius Montón 1babf6cb88 added sc_stop at the end of the simulation to call destructors 2019-09-08 11:41:30 +02:00
Màrius Montón 0415ba3c66 added xterm window for trace output 2019-09-08 11:41:06 +02:00
mariusmonton d42d67b991 DMI access added (if available) 2019-03-28 22:52:36 +01:00
mariusmonton 5ad8ced434 better log for CSRRW instruction 2019-02-18 13:57:24 +01:00
mariusmonton a275e0fa24 better support to IRQs 2019-02-18 13:56:47 +01:00
mariusmonton e31eae3f9e added command line arguments 2019-02-12 14:08:40 +01:00
mariusmonton 1d4c3ec553 removed unused code 2019-02-12 11:40:25 +01:00
mariusmonton d62892e3dc minor changes, better code 2019-02-11 20:26:23 +01:00
mariusmonton a87743b92d minor changes 2019-02-11 15:54:13 +01:00
mariusmonton 2c93492ab1 enhanced IRQ support 2019-02-11 15:54:02 +01:00
mariusmonton 4c89c48fb0 removed SP init, moved to CPU module 2019-01-22 18:30:09 +01:00
mariusmonton d83a15eec5 change log level 2019-01-22 12:47:54 +01:00
mariusmonton 098aebc15d changed IRQ line to TLM socket 2019-01-22 12:43:05 +01:00
mariusmonton 0c25abdb00 Fixed bug 2019-01-22 12:33:32 +01:00
mariusmonton 7c263419a8 documentation 2019-01-13 18:39:35 +01:00
mariusmonton a4a1be7386 IRQ implemented 2019-01-13 01:30:49 +01:00
mariusmonton 9a7e7abeb0 Better logs
Fixed some bugs
2019-01-01 21:11:34 +01:00
mariusmonton 5c905cb5ca better MISA CSR register support 2018-12-12 18:15:44 +01:00
mariusmonton 93fe2237b4 better support to hex file 2018-12-12 18:15:21 +01:00
mariusmonton a2a9c95546 Added A Extensions
Added SFENCE instruction
2018-12-12 18:14:35 +01:00
mariusmonton 1b93e7f569 added time management and cycle counters 2018-11-25 12:07:08 +01:00
mariusmonton 81f61c52fc fixed dump function! 2018-11-25 12:05:09 +01:00
mariusmonton 0f291016c5 add support to RaiseExecption to all instructions 2018-11-24 23:46:47 +01:00
mariusmonton 4114f482d6 Doxygen 2018-11-24 23:46:01 +01:00
mariusmonton d5489523de better log output 2018-11-22 16:53:26 +01:00
mariusmonton c832b2f80f all tests passed! 2018-11-22 16:42:06 +01:00
mariusmonton b9e26e4dea first implementation supporting exceptions 2018-11-22 14:38:31 +01:00
mariusmonton 6726b59c3c bug on SLLI 2018-11-22 12:39:16 +01:00
mariusmonton 0cd34f9f3b fixed CSRRS and CSRRC bug 2018-11-22 12:08:16 +01:00
mariusmonton 9cd354b822 C examples halts simulation 2018-11-19 17:22:18 +01:00
mariusmonton ed7be704f9 implementation of all remaining C extension 2018-11-19 15:56:08 +01:00
mariusmonton 3f7ecfa9df bug fixes 2018-11-14 23:50:01 +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 d449ea5502 adding M extensions to simulator 2018-11-12 17:41:17 +01:00
mariusmonton bdf261cbc6 default value to variable to remove a warning 2018-11-12 17:08:26 +01:00
mariusmonton 1fcbcf500b typos 6 minor changes 2018-11-11 11:12:12 +01:00
mariusmonton 36646a182e buf, intermediate value whould be 32 bits long 2018-11-08 18:55:47 +01:00
mariusmonton 9d7d84c7f8 bugs! 2018-11-07 18:43:10 +01:00
mariusmonton 598699cd54 more bug fixes, still get j zero in func3 test example 2018-10-17 17:42:43 +02:00
mariusmonton 374b853117 first version of C.extensions 2018-10-15 17:35:16 +02:00
mariusmonton 97b15ca7a3 better (?) Log output 2018-10-15 17:34:42 +02:00
mariusmonton a409f48d40 Fixed wrong immediate accesses 2018-10-15 17:33:41 +02:00
mariusmonton 5ae765b304 Proper initialization of sp register 2018-10-15 17:32:37 +02: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 70de804983 non-static data intialization removed, moved to constructor 2018-09-27 14:32:40 +02:00
mariusmonton a5773202e1 renamed RISC_V_execute to Execute 2018-09-21 13:05:42 +02:00
mariusmonton afbf317941 updated documentation 2018-09-21 11:23:31 +02:00
mariusmonton 4ba8b1bbb7 Added better PC control 2018-09-21 09:25:47 +02:00
mariusmonton dcd3a8c3fe better log output 2018-09-21 09:25:27 +02:00
mariusmonton 21003e2fa9 remove unused SC_THREAD 2018-09-21 09:24:49 +02:00
mariusmonton 406d498209 added PC control 2018-09-21 09:24:25 +02:00
mariusmonton 981b84a5eb Better register dump 2018-09-20 15:29:22 +02:00
mariusmonton 11fae01cba Changed memory to be addressable to byte instead to word (32bits) 2018-09-20 12:22:13 +02:00
mariusmonton 8e8418e3e2 Better logging output 2018-09-20 12:21:15 +02:00
mariusmonton 7910a061bc updated README and minor changes 2018-09-19 23:51:01 +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 d0806a5759 added missing Load/Store instructions 2018-09-17 12:35:36 +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