From 0833bca1bd4ac8f88c3bc2e16dc7aeae8eebc72c Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Mon, 16 Jul 2018 13:17:58 +0200 Subject: [PATCH] Fixed VCD parsing error --- .../scviewer/database/test/DatabaseServicesTest.java | 4 ++-- .../com/minres/scviewer/database/vcd/VCDDbLoader.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java b/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java index 442fcef..ce9aed8 100644 --- a/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java +++ b/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java @@ -92,8 +92,8 @@ public class DatabaseServicesTest { assertTrue(f.exists()); waveformDb.load(f); assertNotNull(waveformDb); - assertEquals(718, waveformDb.getAllWaves().size()); - assertEquals(33, waveformDb.getChildNodes().size()); + assertEquals(778, waveformDb.getAllWaves().size()); + assertEquals(1, waveformDb.getChildNodes().size()); } diff --git a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java index bf14aa7..19b948e 100644 --- a/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java +++ b/com.minres.scviewer.database.vcd/src/com/minres/scviewer/database/vcd/VCDDbLoader.java @@ -124,9 +124,9 @@ public class VCDDbLoader implements IWaveformDbLoader, IVCDDatabaseBuilder { */ @Override public void enterModule(String tokenString) { - if(moduleStack.isEmpty()) - moduleStack.push(tokenString); - else + if(moduleStack.isEmpty()) { + if("SystemC".compareTo(tokenString)!=0) moduleStack.push(tokenString); + } else moduleStack.push(moduleStack.peek()+"."+tokenString); } @@ -144,7 +144,8 @@ public class VCDDbLoader implements IWaveformDbLoader, IVCDDatabaseBuilder { */ @SuppressWarnings("unchecked") @Override - public Integer newNet(String netName, int i, int width) { + public Integer newNet(String name, int i, int width) { + String netName = moduleStack.empty()? name: moduleStack.lastElement()+"."+name; int id = signals.size(); VCDSignal signal; if(width==1){