some methods now are const, reference class parameters, other minor changes
This commit is contained in:
parent
cb63c65d7f
commit
a48e552926
|
@ -41,7 +41,7 @@ public:
|
||||||
* @brief returns what instruction extension
|
* @brief returns what instruction extension
|
||||||
* @return extension
|
* @return extension
|
||||||
*/
|
*/
|
||||||
extension_t check_extension();
|
extension_t check_extension() const;
|
||||||
|
|
||||||
void setInstr(uint32_t p_instr) {
|
void setInstr(uint32_t p_instr) {
|
||||||
m_instr = p_instr;
|
m_instr = p_instr;
|
||||||
|
|
|
@ -40,7 +40,7 @@ public:
|
||||||
* @param msg mesasge string
|
* @param msg mesasge string
|
||||||
* @param level level of the log (LogLevel)
|
* @param level level of the log (LogLevel)
|
||||||
*/
|
*/
|
||||||
void SC_log(std::string msg, enum LogLevel level);
|
void SC_log(const std::string& msg, enum LogLevel level);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief method to log some string
|
* @brief method to log some string
|
||||||
|
@ -64,7 +64,7 @@ public:
|
||||||
* @brief Returns log level
|
* @brief Returns log level
|
||||||
* @return Current log level
|
* @return Current log level
|
||||||
*/
|
*/
|
||||||
enum LogLevel getLogLevel();
|
enum LogLevel getLogLevel() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Log *instance;
|
static Log *instance;
|
||||||
|
|
|
@ -35,8 +35,8 @@ public:
|
||||||
};
|
};
|
||||||
const sc_core::sc_time LATENCY;
|
const sc_core::sc_time LATENCY;
|
||||||
|
|
||||||
Memory(sc_core::sc_module_name name, std::string filename);
|
Memory(sc_core::sc_module_name const &name, std::string const &filename);
|
||||||
Memory(sc_core::sc_module_name name);
|
Memory(const sc_core::sc_module_name& name);
|
||||||
|
|
||||||
~Memory(void);
|
~Memory(void);
|
||||||
|
|
||||||
|
@ -83,6 +83,6 @@ private:
|
||||||
* @brief Read Intel hex file
|
* @brief Read Intel hex file
|
||||||
* @param filename file name to read
|
* @param filename file name to read
|
||||||
*/
|
*/
|
||||||
void readHexFile(std::string filename);
|
void readHexFile(const std::string& filename);
|
||||||
};
|
};
|
||||||
#endif /* __MEMORY_H__ */
|
#endif /* __MEMORY_H__ */
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* @brief Dump counters to cout
|
* @brief Dump counters to cout
|
||||||
*/
|
*/
|
||||||
void dump();
|
void dump() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static Performance *instance;
|
static Performance *instance;
|
||||||
|
|
|
@ -203,7 +203,7 @@ public:
|
||||||
* Returns PC value
|
* Returns PC value
|
||||||
* @return PC value
|
* @return PC value
|
||||||
*/
|
*/
|
||||||
uint32_t getPC();
|
uint32_t getPC() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets arbitraty value to PC
|
* Sets arbitraty value to PC
|
||||||
|
|
|
@ -39,7 +39,7 @@ public:
|
||||||
* @brief Constructor
|
* @brief Constructor
|
||||||
* @param name module name
|
* @param name module name
|
||||||
*/
|
*/
|
||||||
Timer(sc_core::sc_module_name name);
|
Timer(sc_core::sc_module_name const &name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Waits for event timer_event and triggers an IRQ
|
* @brief Waits for event timer_event and triggers an IRQ
|
||||||
|
|
|
@ -36,7 +36,7 @@ public:
|
||||||
* @brief Constructor
|
* @brief Constructor
|
||||||
* @param name Module name
|
* @param name Module name
|
||||||
*/
|
*/
|
||||||
Trace(sc_core::sc_module_name name);
|
Trace(sc_core::sc_module_name const &name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Destructor
|
* @brief Destructor
|
||||||
|
@ -49,7 +49,7 @@ private:
|
||||||
virtual void b_transport(tlm::tlm_generic_payload &trans,
|
virtual void b_transport(tlm::tlm_generic_payload &trans,
|
||||||
sc_core::sc_time &delay);
|
sc_core::sc_time &delay);
|
||||||
|
|
||||||
void xtermLaunch(char *slaveName);
|
void xtermLaunch(char *slaveName) const;
|
||||||
void xtermKill(const char *mess);
|
void xtermKill(const char *mess);
|
||||||
void xtermSetup(void);
|
void xtermSetup(void);
|
||||||
|
|
||||||
|
|
|
@ -355,7 +355,6 @@ bool A_extension::Exec_A_AMOMAXU() const {
|
||||||
|
|
||||||
void A_extension::TLB_reserve(uint32_t address) {
|
void A_extension::TLB_reserve(uint32_t address) {
|
||||||
TLB_A_Entries.insert(address);
|
TLB_A_Entries.insert(address);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool A_extension::TLB_reserved(uint32_t address) {
|
bool A_extension::TLB_reserved(uint32_t address) {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "BusCtrl.h"
|
#include "BusCtrl.h"
|
||||||
|
|
||||||
SC_HAS_PROCESS(BusCtrl);
|
SC_HAS_PROCESS(BusCtrl);
|
||||||
BusCtrl::BusCtrl(sc_core::sc_module_name name) :
|
BusCtrl::BusCtrl(sc_core::sc_module_name const name) :
|
||||||
sc_module(name), cpu_instr_socket("cpu_instr_socket"), cpu_data_socket(
|
sc_module(name), cpu_instr_socket("cpu_instr_socket"), cpu_data_socket(
|
||||||
"cpu_data_socket"), memory_socket("memory_socket"), trace_socket(
|
"cpu_data_socket"), memory_socket("memory_socket"), trace_socket(
|
||||||
"trace_socket") {
|
"trace_socket") {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "CPU.h"
|
#include "CPU.h"
|
||||||
|
|
||||||
SC_HAS_PROCESS(CPU);
|
SC_HAS_PROCESS(CPU);
|
||||||
CPU::CPU(sc_core::sc_module_name name, uint32_t PC) :
|
CPU::CPU(sc_core::sc_module_name const name, uint32_t PC) :
|
||||||
sc_module(name), instr_bus("instr_bus"), default_time(10,
|
sc_module(name), instr_bus("instr_bus"), default_time(10,
|
||||||
sc_core::SC_NS) {
|
sc_core::SC_NS) {
|
||||||
register_bank = new Registers();
|
register_bank = new Registers();
|
||||||
|
@ -119,7 +119,7 @@ void CPU::CPU_thread(void) {
|
||||||
bool PC_not_affected = false;
|
bool PC_not_affected = false;
|
||||||
bool incPCby2 = false;
|
bool incPCby2 = false;
|
||||||
tlm::tlm_dmi dmi_data;
|
tlm::tlm_dmi dmi_data;
|
||||||
unsigned char *dmi_ptr = NULL;
|
unsigned char *dmi_ptr = nullptr;
|
||||||
|
|
||||||
trans->set_command(tlm::TLM_READ_COMMAND);
|
trans->set_command(tlm::TLM_READ_COMMAND);
|
||||||
trans->set_data_ptr(reinterpret_cast<unsigned char*>(&INSTR));
|
trans->set_data_ptr(reinterpret_cast<unsigned char*>(&INSTR));
|
||||||
|
|
|
@ -12,7 +12,7 @@ Instruction::Instruction(uint32_t instr) {
|
||||||
m_instr = instr;
|
m_instr = instr;
|
||||||
}
|
}
|
||||||
|
|
||||||
extension_t Instruction::check_extension() {
|
extension_t Instruction::check_extension() const {
|
||||||
if (((m_instr & 0x0000007F) == 0b0110011)
|
if (((m_instr & 0x0000007F) == 0b0110011)
|
||||||
&& ( ((m_instr & 0x7F000000) >> 25) == 0b0000001)) {
|
&& ( ((m_instr & 0x7F000000) >> 25) == 0b0000001)) {
|
||||||
return M_EXTENSION;
|
return M_EXTENSION;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
|
|
||||||
Log* Log::getInstance() {
|
Log* Log::getInstance() {
|
||||||
if (instance == 0) {
|
if (instance == nullptr) {
|
||||||
instance = new Log("Log.txt");
|
instance = new Log("Log.txt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ Log::Log(const char *filename) {
|
||||||
currentLogLevel = Log::INFO;
|
currentLogLevel = Log::INFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Log::SC_log(std::string msg, enum LogLevel level) {
|
void Log::SC_log(std::string const& msg, enum LogLevel level) {
|
||||||
|
|
||||||
if (level <= currentLogLevel) {
|
if (level <= currentLogLevel) {
|
||||||
m_stream << "time " << sc_core::sc_time_stamp() << ": " << msg
|
m_stream << "time " << sc_core::sc_time_stamp() << ": " << msg
|
||||||
|
@ -45,8 +45,8 @@ void Log::setLogLevel(enum LogLevel newLevel) {
|
||||||
currentLogLevel = newLevel;
|
currentLogLevel = newLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Log::LogLevel Log::getLogLevel() {
|
enum Log::LogLevel Log::getLogLevel() const {
|
||||||
return currentLogLevel;
|
return currentLogLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log *Log::instance = 0;
|
Log *Log::instance = nullptr;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "Memory.h"
|
#include "Memory.h"
|
||||||
|
|
||||||
SC_HAS_PROCESS(Memory);
|
SC_HAS_PROCESS(Memory);
|
||||||
Memory::Memory(sc_core::sc_module_name name, std::string filename) :
|
Memory::Memory(sc_core::sc_module_name const &name, std::string const &filename) :
|
||||||
sc_module(name), socket("socket"), LATENCY(sc_core::SC_ZERO_TIME) {
|
sc_module(name), socket("socket"), LATENCY(sc_core::SC_ZERO_TIME) {
|
||||||
// Register callbacks for incoming interface method calls
|
// Register callbacks for incoming interface method calls
|
||||||
socket.register_b_transport(this, &Memory::b_transport);
|
socket.register_b_transport(this, &Memory::b_transport);
|
||||||
|
@ -26,7 +26,7 @@ Memory::Memory(sc_core::sc_module_name name, std::string filename) :
|
||||||
log->SC_log(Log::INFO) << "Using file: " << filename << std::endl;
|
log->SC_log(Log::INFO) << "Using file: " << filename << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Memory::Memory(sc_core::sc_module_name name) :
|
Memory::Memory(sc_core::sc_module_name const& name) :
|
||||||
sc_module(name), socket("socket"), LATENCY(sc_core::SC_ZERO_TIME) {
|
sc_module(name), socket("socket"), LATENCY(sc_core::SC_ZERO_TIME) {
|
||||||
socket.register_b_transport(this, &Memory::b_transport);
|
socket.register_b_transport(this, &Memory::b_transport);
|
||||||
socket.register_get_direct_mem_ptr(this, &Memory::get_direct_mem_ptr);
|
socket.register_get_direct_mem_ptr(this, &Memory::get_direct_mem_ptr);
|
||||||
|
@ -70,7 +70,7 @@ void Memory::b_transport(tlm::tlm_generic_payload &trans,
|
||||||
trans.set_response_status(tlm::TLM_ADDRESS_ERROR_RESPONSE);
|
trans.set_response_status(tlm::TLM_ADDRESS_ERROR_RESPONSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (byt != 0) {
|
if (byt != nullptr) {
|
||||||
trans.set_response_status(tlm::TLM_BYTE_ENABLE_ERROR_RESPONSE);
|
trans.set_response_status(tlm::TLM_BYTE_ENABLE_ERROR_RESPONSE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ unsigned int Memory::transport_dbg(tlm::tlm_generic_payload &trans) {
|
||||||
return num_bytes;
|
return num_bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Memory::readHexFile(std::string filename) {
|
void Memory::readHexFile(std::string const& filename) {
|
||||||
std::ifstream hexfile;
|
std::ifstream hexfile;
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
||||||
|
@ -159,8 +159,8 @@ void Memory::readHexFile(std::string filename) {
|
||||||
/* Data */
|
/* Data */
|
||||||
int byte_count;
|
int byte_count;
|
||||||
uint32_t address;
|
uint32_t address;
|
||||||
byte_count = stol(line.substr(1, 2), nullptr, 16);
|
byte_count = std::stoi(line.substr(1, 2), nullptr, 16);
|
||||||
address = stol(line.substr(3, 4), nullptr, 16);
|
address = std::stoi(line.substr(3, 4), nullptr, 16);
|
||||||
address = address + extended_address;
|
address = address + extended_address;
|
||||||
//cout << "00 address 0x" << hex << address << endl;
|
//cout << "00 address 0x" << hex << address << endl;
|
||||||
for (int i = 0; i < byte_count; i++) {
|
for (int i = 0; i < byte_count; i++) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ uint32_t MemoryInterface::readDataMem(uint32_t addr, int size) {
|
||||||
trans.set_data_ptr(reinterpret_cast<unsigned char*>(&data));
|
trans.set_data_ptr(reinterpret_cast<unsigned char*>(&data));
|
||||||
trans.set_data_length(size);
|
trans.set_data_length(size);
|
||||||
trans.set_streaming_width(4); // = data_length to indicate no streaming
|
trans.set_streaming_width(4); // = data_length to indicate no streaming
|
||||||
trans.set_byte_enable_ptr(0); // 0 indicates unused
|
trans.set_byte_enable_ptr(nullptr); // 0 indicates unused
|
||||||
trans.set_dmi_allowed(false); // Mandatory initial value
|
trans.set_dmi_allowed(false); // Mandatory initial value
|
||||||
trans.set_response_status(tlm::TLM_INCOMPLETE_RESPONSE);
|
trans.set_response_status(tlm::TLM_INCOMPLETE_RESPONSE);
|
||||||
trans.set_address(addr);
|
trans.set_address(addr);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "Performance.h"
|
#include "Performance.h"
|
||||||
|
|
||||||
Performance* Performance::getInstance() {
|
Performance* Performance::getInstance() {
|
||||||
if (instance == 0) {
|
if (instance == nullptr) {
|
||||||
instance = new Performance();
|
instance = new Performance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Performance::Performance() {
|
||||||
instructions_executed = 0;
|
instructions_executed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Performance::dump() {
|
void Performance::dump() const {
|
||||||
std::cout << std::dec << "# data memory reads: " << data_memory_read
|
std::cout << std::dec << "# data memory reads: " << data_memory_read
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
std::cout << "# data memory writes: " << data_memory_write << std::endl;
|
std::cout << "# data memory writes: " << data_memory_write << std::endl;
|
||||||
|
@ -38,4 +38,4 @@ void Performance::dump() {
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
Performance *Performance::instance = 0;
|
Performance *Performance::instance = nullptr;
|
||||||
|
|
|
@ -116,7 +116,7 @@ int32_t Registers::getValue(int reg_num) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Registers::getPC() {
|
uint32_t Registers::getPC() const {
|
||||||
return register_PC;
|
return register_PC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ void process_arguments(int argc, char *argv[]) {
|
||||||
while ((c = getopt(argc, argv, "D:f:?")) != -1) {
|
while ((c = getopt(argc, argv, "D:f:?")) != -1) {
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'D':
|
case 'D':
|
||||||
debug_level = atoi(optarg);
|
debug_level = std::atoi(optarg);
|
||||||
|
|
||||||
switch (debug_level) {
|
switch (debug_level) {
|
||||||
case 3:
|
case 3:
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
|
|
||||||
SC_HAS_PROCESS(Timer);
|
SC_HAS_PROCESS(Timer);
|
||||||
Timer::Timer(sc_core::sc_module_name name) :
|
Timer::Timer(sc_core::sc_module_name const &name) :
|
||||||
sc_module(name), socket("timer_socket"), m_mtime(0), m_mtimecmp(0) {
|
sc_module(name), socket("timer_socket"), m_mtime(0), m_mtimecmp(0) {
|
||||||
|
|
||||||
socket.register_b_transport(this, &Timer::b_transport);
|
socket.register_b_transport(this, &Timer::b_transport);
|
||||||
|
|
|
@ -6,16 +6,13 @@
|
||||||
*/
|
*/
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <cstdio>
|
||||||
#include <fstream>
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <termios.h>
|
#include <termios.h>
|
||||||
#include <stdlib.h>
|
#include <cstdlib>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <string.h>
|
#include <cstring>
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
// Code partially taken from
|
// Code partially taken from
|
||||||
|
@ -23,11 +20,11 @@
|
||||||
|
|
||||||
#include "Trace.h"
|
#include "Trace.h"
|
||||||
|
|
||||||
void Trace::xtermLaunch(char *slaveName) {
|
void Trace::xtermLaunch(char *slaveName) const {
|
||||||
char *arg;
|
char *arg;
|
||||||
char *fin = &(slaveName[strlen(slaveName) - 2]);
|
char *fin = &(slaveName[strlen(slaveName) - 2]);
|
||||||
|
|
||||||
if ( NULL == strchr(fin, '/')) {
|
if ( nullptr == strchr(fin, '/')) {
|
||||||
arg = new char[2 + 1 + 1 + 20 + 1];
|
arg = new char[2 + 1 + 1 + 20 + 1];
|
||||||
sprintf(arg, "-S%c%c%d", fin[0], fin[1], ptMaster);
|
sprintf(arg, "-S%c%c%d", fin[0], fin[1], ptMaster);
|
||||||
} else {
|
} else {
|
||||||
|
@ -39,7 +36,7 @@ void Trace::xtermLaunch(char *slaveName) {
|
||||||
char *argv[3];
|
char *argv[3];
|
||||||
argv[0] = (char*) ("xterm");
|
argv[0] = (char*) ("xterm");
|
||||||
argv[1] = arg;
|
argv[1] = arg;
|
||||||
argv[2] = NULL;
|
argv[2] = nullptr;
|
||||||
|
|
||||||
execvp("xterm", argv);
|
execvp("xterm", argv);
|
||||||
}
|
}
|
||||||
|
@ -58,10 +55,10 @@ void Trace::xtermKill(const char *mess) {
|
||||||
|
|
||||||
if (xtermPid > 0) { // Kill the terminal
|
if (xtermPid > 0) { // Kill the terminal
|
||||||
kill(xtermPid, SIGKILL);
|
kill(xtermPid, SIGKILL);
|
||||||
waitpid(xtermPid, NULL, 0);
|
waitpid(xtermPid, nullptr, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( NULL != mess) { // If we really want a message
|
if ( nullptr != mess) { // If we really want a message
|
||||||
perror(mess);
|
perror(mess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +75,7 @@ void Trace::xtermSetup(void) {
|
||||||
char *ptSlaveName = ptsname(ptMaster);
|
char *ptSlaveName = ptsname(ptMaster);
|
||||||
ptSlave = open(ptSlaveName, O_RDWR); // In and out are the same
|
ptSlave = open(ptSlaveName, O_RDWR); // In and out are the same
|
||||||
|
|
||||||
struct termios termInfo;
|
struct termios termInfo{};
|
||||||
tcgetattr(ptSlave, &termInfo);
|
tcgetattr(ptSlave, &termInfo);
|
||||||
|
|
||||||
termInfo.c_lflag &= ~ECHO;
|
termInfo.c_lflag &= ~ECHO;
|
||||||
|
@ -94,7 +91,7 @@ void Trace::xtermSetup(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SC_HAS_PROCESS(Trace);
|
SC_HAS_PROCESS(Trace);
|
||||||
Trace::Trace(sc_core::sc_module_name name) :
|
Trace::Trace(sc_core::sc_module_name const &name) :
|
||||||
sc_module(name), socket("socket") {
|
sc_module(name), socket("socket") {
|
||||||
|
|
||||||
socket.register_b_transport(this, &Trace::b_transport);
|
socket.register_b_transport(this, &Trace::b_transport);
|
||||||
|
@ -103,7 +100,7 @@ Trace::Trace(sc_core::sc_module_name name) :
|
||||||
}
|
}
|
||||||
|
|
||||||
Trace::~Trace() {
|
Trace::~Trace() {
|
||||||
xtermKill( NULL);
|
xtermKill( nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Trace::b_transport(tlm::tlm_generic_payload &trans,
|
void Trace::b_transport(tlm::tlm_generic_payload &trans,
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
#include "extension_base.h"
|
#include "extension_base.h"
|
||||||
|
|
||||||
extension_base::extension_base(sc_dt::sc_uint<32> instr,
|
extension_base::extension_base(sc_dt::sc_uint<32> const instr,
|
||||||
Registers *register_bank, MemoryInterface *mem_interface) :
|
Registers *register_bank, MemoryInterface *mem_interface) :
|
||||||
m_instr(instr), regs(register_bank), mem_intf(mem_interface) {
|
m_instr(instr), regs(register_bank), mem_intf(mem_interface) {
|
||||||
|
|
||||||
|
@ -16,9 +16,8 @@ extension_base::extension_base(sc_dt::sc_uint<32> instr,
|
||||||
log = Log::getInstance();
|
log = Log::getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
extension_base::~extension_base() {
|
extension_base::~extension_base() =default;
|
||||||
|
|
||||||
}
|
|
||||||
void extension_base::setInstr(uint32_t p_instr) {
|
void extension_base::setInstr(uint32_t p_instr) {
|
||||||
m_instr = sc_dt::sc_uint<32>(p_instr);
|
m_instr = sc_dt::sc_uint<32>(p_instr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue