aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fstdata.cc
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2022-03-30 15:55:15 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2022-03-30 15:55:15 +0200
commit2e47b61cc62283722f604d8f23c8b6758b22cb82 (patch)
tree62e5f5afc05b094f1b636317e0a33736263f46c9 /kernel/fstdata.cc
parent72e5498bdf12fe841ad0468ea586919965165e36 (diff)
downloadyosys-2e47b61cc62283722f604d8f23c8b6758b22cb82.tar.gz
yosys-2e47b61cc62283722f604d8f23c8b6758b22cb82.tar.bz2
yosys-2e47b61cc62283722f604d8f23c8b6758b22cb82.zip
Proper scope naming from FST
Diffstat (limited to 'kernel/fstdata.cc')
-rw-r--r--kernel/fstdata.cc12
1 files changed, 4 insertions, 8 deletions
diff --git a/kernel/fstdata.cc b/kernel/fstdata.cc
index 6cf28625c..c99bc61c3 100644
--- a/kernel/fstdata.cc
+++ b/kernel/fstdata.cc
@@ -94,20 +94,16 @@ static std::string remove_spaces(std::string str)
void FstData::extractVarNames()
{
struct fstHier *h;
- intptr_t snum = 0;
+ std::string fst_scope_name;
while ((h = fstReaderIterateHier(ctx))) {
switch (h->htyp) {
case FST_HT_SCOPE: {
- snum++;
- std::string fst_scope_name = fstReaderPushScope(ctx, h->u.scope.name, (void *)(snum));
- if (h->u.scope.typ == FST_ST_VCD_MODULE)
- scopes.push_back(fst_scope_name);
+ fst_scope_name = fstReaderPushScope(ctx, h->u.scope.name, NULL);
break;
}
case FST_HT_UPSCOPE: {
- fstReaderPopScope(ctx);
- snum = fstReaderGetCurrentScopeLen(ctx) ? (intptr_t)fstReaderGetCurrentScopeUserInfo(ctx) : 0;
+ fst_scope_name = fstReaderPopScope(ctx);
break;
}
case FST_HT_VAR: {
@@ -116,7 +112,7 @@ void FstData::extractVarNames()
var.is_alias = h->u.var.is_alias;
var.is_reg = (fstVarType)h->u.var.typ == FST_VT_VCD_REG;
var.name = remove_spaces(h->u.var.name);
- var.scope = scopes.back();
+ var.scope = fst_scope_name;
var.width = h->u.var.length;
vars.push_back(var);
if (!var.is_alias)