1 // 2 // Copyright (c) 2010-2024 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 8 #ifndef Cpu_H 9 #define Cpu_H 10 11 #include <vector> 12 #include "gpio-receiver.h" 13 #include "can-halt.h" 14 #include "has-clk.h" 15 #include "peripheral.h" 16 17 class CPU : public Peripheral, public GPIOReceiver, public CanHalt, public HasCLk 18 { 19 }; 20 21 class DebuggableCPU : public CPU 22 { 23 public: 24 class DebugProgram 25 { 26 public: 27 uint64_t address; 28 uint64_t readCount; 29 std::vector<uint64_t> memory; 30 }; 31 virtual void debugRequest(bool value) = 0; 32 virtual DebugProgram getRegisterGetProgram(uint64_t id) = 0; 33 virtual DebugProgram getRegisterSetProgram(uint64_t id, uint64_t value) = 0; 34 virtual DebugProgram getEnterSingleStepModeProgram() = 0; 35 virtual DebugProgram getExitSingleStepModeProgram() = 0; 36 virtual DebugProgram getSingleStepModeProgram() = 0; 37 }; 38 39 #endif 40