summaryrefslogtreecommitdiff
path: root/utils/regtools/qeditor/std_analysers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/regtools/qeditor/std_analysers.cpp')
-rw-r--r--utils/regtools/qeditor/std_analysers.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/regtools/qeditor/std_analysers.cpp b/utils/regtools/qeditor/std_analysers.cpp
index 1a504cd617..1acd25e7fc 100644
--- a/utils/regtools/qeditor/std_analysers.cpp
+++ b/utils/regtools/qeditor/std_analysers.cpp
@@ -870,6 +870,13 @@ EmiAnalyser::EmiAnalyser(const soc_desc::soc_ref_t& soc, IoBackend *backend)
870 m_emi_freq_label = new QLineEdit; 870 m_emi_freq_label = new QLineEdit;
871 m_emi_freq_label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); 871 m_emi_freq_label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
872 m_emi_freq_label->setReadOnly(true); 872 m_emi_freq_label->setReadOnly(true);
873 m_emi_size_label = new QLineEdit;
874 m_emi_size_label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
875 m_emi_size_label->setReadOnly(true);
876 line_layout->addStretch();
877 line_layout->addWidget(new QLabel("Size:"));
878 line_layout->addWidget(m_emi_size_label);
879 line_layout->addWidget(new QLabel("MiB"));
873 line_layout->addStretch(); 880 line_layout->addStretch();
874 line_layout->addWidget(new QLabel("Frequency:")); 881 line_layout->addWidget(new QLabel("Frequency:"));
875 line_layout->addWidget(m_emi_freq_label); 882 line_layout->addWidget(m_emi_freq_label);
@@ -1008,6 +1015,21 @@ void EmiAnalyser::FillTable()
1008 1015
1009 m_emi_freq_label->setText(QString().sprintf("%.3f", m_emi_freq / 1000000.0)); 1016 m_emi_freq_label->setText(QString().sprintf("%.3f", m_emi_freq / 1000000.0));
1010 1017
1018 soc_word_t rows, columns, cs_map;
1019 if(ReadFieldOld("DRAM", "CTL14", "CS_MAP", cs_map) &&
1020 ReadFieldOld("DRAM", "CTL10", "ADDR_PINS", rows) &&
1021 ReadFieldOld("DRAM", "CTL11", "COLUMN_SIZE", columns))
1022 {
1023 rows = 13 - rows;
1024 columns = 12 - columns;
1025 soc_word_t banks = 4;
1026 soc_word_t chips = __builtin_popcount(cs_map);
1027 unsigned long size = 2 * (1 << (rows + columns)) * chips * banks;
1028 m_emi_size_label->setText(QString().sprintf("%lu", (unsigned long)size / 1024 / 1024));
1029 }
1030 else
1031 m_emi_size_label->setText("<invalid>");
1032
1011 NewGroup("Control Parameters"); 1033 NewGroup("Control Parameters");
1012 if(ReadFieldOld("EMI", "CTRL", "PORT_PRIORITY_ORDER", value)) 1034 if(ReadFieldOld("EMI", "CTRL", "PORT_PRIORITY_ORDER", value))
1013 { 1035 {