|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthades.utils.ISCAS89Converter
simple utility class to convert ISCAS 89 benchmark circuit descriptions to Hades .hds and .sym format. This class keeps all signal names from the ISCAS format. Currently, only AND/NAND/NOR/OR/INV and DFF components are implemented.
As the ISCAS format contains no explicit gate/component names, we create gate names of the form "gate_type" + "linenumber", e.g. "Nand42".
For inputs, we generate Ipin SimObjects with name "in_"+signalname, for outputs, Opins names "out_"+signalname, respectively. When necessary, the two global Ipins "in_clk" and "in_nreset" are created.
Field Summary | |
(package private) boolean |
debug
|
(package private) Design |
design
|
(package private) java.io.LineNumberReader |
reader
|
Constructor Summary | |
ISCAS89Converter()
|
Method Summary | |
static java.lang.String |
changeExtension(java.lang.String filename,
java.lang.String extension)
|
void |
checkCreateClkResetPins()
check if our Designs contains Signals named "clk" and "nreset", which are only created when the Design contains one or more DFF (hades.models.flipflops.Dffr) components. |
(package private) Signal |
checkCreateSignal(java.lang.String name)
check whether our Design already contains a Signal called "name". |
Design |
getDesign()
|
void |
handleComponentDeclaration(java.lang.String line)
handle a declaration of the form G5 = DFF(G10) G8 = AND(G14, G6) |
void |
handleDFF(java.lang.String[] tokens)
|
void |
handleGate(java.lang.String[] tokens,
java.lang.String type)
|
void |
handleInputDeclaration(java.lang.String line)
handle "INPUT(SIGNALNAME)" |
void |
handleInverter(java.lang.String[] tokens)
|
void |
handleOutputDeclaration(java.lang.String line)
handle "OUTPUT(SIGNALNAME)" |
static void |
main(java.lang.String[] argv)
|
static void |
msg(java.lang.String s)
|
void |
parse()
|
void |
printTokens(java.lang.String[] tokens)
|
void |
setDebug(boolean b)
|
void |
setDesign(Design _design)
|
void |
setReader(java.io.LineNumberReader _reader)
|
static void |
usage()
|
void |
writeTestbench(java.io.PrintWriter PW)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
boolean debug
Design design
java.io.LineNumberReader reader
Constructor Detail |
public ISCAS89Converter()
Method Detail |
public void setDesign(Design _design)
public Design getDesign()
public void setReader(java.io.LineNumberReader _reader)
public void setDebug(boolean b)
public void parse() throws java.lang.Exception
java.lang.Exception
public void handleInputDeclaration(java.lang.String line)
public void handleOutputDeclaration(java.lang.String line)
public void handleComponentDeclaration(java.lang.String line)
public void printTokens(java.lang.String[] tokens)
public void handleInverter(java.lang.String[] tokens)
public void handleDFF(java.lang.String[] tokens)
public void handleGate(java.lang.String[] tokens, java.lang.String type)
Signal checkCreateSignal(java.lang.String name)
public void checkCreateClkResetPins()
public void writeTestbench(java.io.PrintWriter PW)
public static java.lang.String changeExtension(java.lang.String filename, java.lang.String extension)
public static void msg(java.lang.String s)
public static void usage()
public static void main(java.lang.String[] argv) throws java.lang.Exception
java.lang.Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |