Fixed inconsitencies
This commit is contained in:
@ -0,0 +1,56 @@
|
||||
package com.minres.scviewer.database;
|
||||
|
||||
public class BitVector {
|
||||
|
||||
public static final char VALUE_X = 'X';
|
||||
public static final char VALUE_Z = 'Z';
|
||||
public static final char VALUE_1 = '1';
|
||||
public static final char VALUE_0 = '0';
|
||||
|
||||
private final int width;
|
||||
|
||||
private char[] value;
|
||||
|
||||
public BitVector(int netWidth) {
|
||||
this.width=netWidth;
|
||||
value = new char[netWidth];
|
||||
for(int i=0; i<netWidth; i++) value[i]='0';
|
||||
}
|
||||
|
||||
public void setValue(int i, char value) {
|
||||
this.value[i]=value;
|
||||
}
|
||||
|
||||
public char[] getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(char[] value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getWidth() {
|
||||
return width;
|
||||
}
|
||||
|
||||
public String toString(){
|
||||
return new String(value);
|
||||
}
|
||||
|
||||
public String toHexString(){
|
||||
int resWidth=(width-1)/4+1;
|
||||
char[] res = new char[resWidth];
|
||||
for(int i=resWidth-1; i>=0; i--){
|
||||
int digit=0;
|
||||
for(int j=3; j>=0; j--){
|
||||
if(value[4*i+j]==VALUE_X ||value[4*i+j]==VALUE_Z ){
|
||||
res[i]=VALUE_X;
|
||||
}
|
||||
if(value[4*i+j]==VALUE_1)
|
||||
digit+=1<<(3-j);
|
||||
res[i]=Character.forDigit(digit, 16); //((digit < 10) ? '0' + digit : 'a' + digit -10)
|
||||
}
|
||||
}
|
||||
return new String(res);
|
||||
}
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
package com.minres.scviewer.database;
|
||||
|
||||
|
||||
public interface ISignalChangeMulti extends ISignalChange {
|
||||
|
||||
public String getValue();
|
||||
public BitVector getValue();
|
||||
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ package com.minres.scviewer.database;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface ITx {
|
||||
public interface ITx extends Comparable<ITx>{
|
||||
|
||||
public Long getId();
|
||||
|
||||
|
@ -11,12 +11,13 @@
|
||||
package com.minres.scviewer.database;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.NavigableSet;
|
||||
|
||||
public interface ITxStream extends IWaveform {
|
||||
|
||||
public List<ITxGenerator> getGenerators();
|
||||
|
||||
public List<ITx> getTransactions();
|
||||
public NavigableSet<ITx> getTransactions();
|
||||
|
||||
public ITx getTransactionById(long id);
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.minres.scviewer.database.vcd;
|
||||
|
||||
import com.minres.scviewer.database.BitVector;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Interface ITraceBuilder.
|
||||
|
@ -7,6 +7,7 @@ import java.util.List;
|
||||
import java.util.Stack;
|
||||
import java.util.Vector;
|
||||
|
||||
import com.minres.scviewer.database.BitVector;
|
||||
import com.minres.scviewer.database.EventTime;
|
||||
import com.minres.scviewer.database.HierNode;
|
||||
import com.minres.scviewer.database.ISignal;
|
||||
@ -54,8 +55,8 @@ public class VCDDb extends HierNode implements IWaveformDb, IVCDDatabaseBuilder
|
||||
* @see com.minres.scviewer.database.ITrDb#getStreamByName(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public ITxStream getStreamByName(String name) {
|
||||
return null;
|
||||
public IWaveform getStreamByName(String name) {
|
||||
return waveformLookup.get(name);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@ -163,7 +164,7 @@ public class VCDDb extends HierNode implements IWaveformDb, IVCDDatabaseBuilder
|
||||
VCDSignalChangeSingle change = new VCDSignalChangeSingle(time, decodedValues.getValue()[0]);
|
||||
((VCDSignal<ISignalChangeSingle>)signal).addSignalChange(change);
|
||||
} else {
|
||||
VCDSignalChangeMulti change = new VCDSignalChangeMulti(time, new String(decodedValues.getValue()));
|
||||
VCDSignalChangeMulti change = new VCDSignalChangeMulti(time, decodedValues);
|
||||
((VCDSignal<VCDSignalChangeMulti>)signal).addSignalChange(change);
|
||||
}
|
||||
maxTime= Math.max(maxTime, fCurrentTime);
|
||||
|
@ -3,6 +3,8 @@ package com.minres.scviewer.database.vcd;
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
import com.minres.scviewer.database.BitVector;
|
||||
|
||||
class VCDFileParser {
|
||||
private StreamTokenizer tokenizer;
|
||||
private IVCDDatabaseBuilder traceBuilder;
|
||||
|
@ -1,27 +1,28 @@
|
||||
package com.minres.scviewer.database.vcd;
|
||||
|
||||
import com.minres.scviewer.database.BitVector;
|
||||
import com.minres.scviewer.database.EventTime;
|
||||
import com.minres.scviewer.database.ISignalChangeMulti;
|
||||
import com.minres.scviewer.database.SignalChange;
|
||||
|
||||
public class VCDSignalChangeMulti extends SignalChange implements ISignalChangeMulti, Cloneable {
|
||||
|
||||
private String value;
|
||||
private BitVector value;
|
||||
|
||||
public VCDSignalChangeMulti(EventTime time) {
|
||||
super(time);
|
||||
}
|
||||
|
||||
public VCDSignalChangeMulti(EventTime time, String value) {
|
||||
public VCDSignalChangeMulti(EventTime time, BitVector decodedValues) {
|
||||
super(time);
|
||||
this.value=value;
|
||||
this.value=decodedValues;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
public BitVector getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
public void setValue(BitVector value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user