Do not load processor to VSRTL widget if not a VSRTL processor
MODIFY
src/processorhandler.h
src/processorhandler.h
@@ -39,6 +39,9 @@ public:
static const ISAInfoBase* currentISA() { return get()->_currentISA(); }
static const SyscallManager& getSyscallManager() { return get()->_getSyscallManager(); }
static void loadProgram(const std::shared_ptr<Program>& p) { get()->_loadProgram(p); }
+ static bool isVSRTLProcessor() {
+ return static_cast<bool>(dynamic_cast<const RipesVSRTLProcessor*>(getProcessor()));
+ }
/**
* @brief loadProcessorToWidget

MODIFY
src/processortab.cpp
src/processortab.cpp
@@ -71,8 +71,9 @@ ProcessorTab::ProcessorTab(QToolBar* controlToolbar, QToolBar* additionalToolbar
m_vsrtlWidget = m_ui->vsrtlWidget;
- // Load the default constructed processor to the VSRTL widget. Do a bit of sanity checking to ensure that the layout
- // stored in the settings is valid for the given processor
+ if (ProcessorHandler::isVSRTLProcessor()) {
+ // Load the default constructed processor to the VSRTL widget. Do a bit of sanity checking to ensure that the
+ // layout stored in the settings is valid for the given processor
unsigned layoutID = RipesSettings::value(RIPES_SETTING_PROCESSOR_LAYOUT_ID).toInt();
const Layout* layout = nullptr;
if (layoutID >= ProcessorRegistry::getDescription(ProcessorHandler::getID()).layouts.size()) {
@@ -86,6 +87,7 @@ ProcessorTab::ProcessorTab(QToolBar* controlToolbar, QToolBar* additionalToolbar
// By default, lock the VSRTL widget
m_vsrtlWidget->setLocked(true);
+ }
m_stageModel = new PipelineDiagramModel(this);
@@ -347,7 +349,9 @@ void ProcessorTab::processorSelection() {
RipesSettings::setValue(RIPES_SETTING_PROCESSOR_LAYOUT_ID, static_cast<int>(layoutIndex));
}
+ if (ProcessorHandler::isVSRTLProcessor()) {
loadProcessorToWidget(diag.getSelectedLayout());
+ }
updateInstructionModel();
// Retrigger value display action if enabled

Do not load processor to VSRTL widget if not a VSRTL processor