byucc.jhdl.synth
Class Synthesize
java.lang.Object
byucc.jhdl.synth.Synthesize
- public class Synthesize
- extends java.lang.Object
Method Summary |
static java.io.InputStream |
getInputStreamForClass(java.lang.String className)
|
static void |
graphToJHDL(Logic parent,
DataFlowGraph graph)
Create JHDL circuitry to perform the behavior described by a
DataFlowGraph. |
static void |
main(java.lang.String[] args)
main just exists for testing much of the code in Synthesize. |
static void |
synthesizeBehaviorWithinCell(Logic parent)
Perform complete synthesis of the behavioral model of the given Logic cell. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEBUG_SYNTHESIS
public static final boolean DEBUG_SYNTHESIS
- See Also:
- Constant Field Values
Synthesize
public Synthesize()
main
public static void main(java.lang.String[] args)
- main just exists for testing much of the code in Synthesize.
This method simply reads a class name from args[0] and will generate
the ControlFlowGraph and DataFlowGraph for the propagate method of that class.
If a second argument (ie. output.dot) is given on the command-line then the
DataFlowGraph will be written to that file, while the ControlFlowGraph will
be written to a similarly named file, (ie. output_control.dot). If only
a single argument is given on the command-line then the graphs will be
printed on System.out.
- Parameters:
args
- An array of arguments:
args[0] is mandatory and should be afully qualified class
name such as "byucc.jhdl.synth.test.TestClass".
This class should have a static method:
public static Logic construct()
that will construct and return a new instance of itself.
(I would have used an interface to force the existence
of this method, but unfortunately, Java does not allow
any static methods in interfaces.)
args[1] is optional and should be the name of an output file,
(ie. output.dot).
synthesizeBehaviorWithinCell
public static void synthesizeBehaviorWithinCell(Logic parent)
- Perform complete synthesis of the behavioral model of the given Logic cell.
This is the top-level method in Synthesize that will be called from other
parts of JHDL.
The result of calling this method is that cells and wires will be
instantiated within parent to perform the behavior described in the
behavioral model of the cell. The behavioral model can consist of the
propagate method; the clock and reset methods; or all three.
- Parameters:
parent
- The parent cell which has the behavior to be synthesized and
will also be the parent of the new synthesized circuitry.
graphToJHDL
public static void graphToJHDL(Logic parent,
DataFlowGraph graph)
- Create JHDL circuitry to perform the behavior described by a
DataFlowGraph. All circuitry will be created with the given Cell
as its parent. This method creates a wire for all signals and all
edges between two operators with no signal. Finally, it examines
each operator and makes a Logic call for each operator. The
operation name for each operator must correspond to a Logic call
with the same number of parameters as input edges to the
operator. If not, this method will throw a SynthesisException.
- Parameters:
parent
- The parent cell for the new circuitrygraph
- The dataflow graph representing the logic to be created
getInputStreamForClass
public static java.io.InputStream getInputStreamForClass(java.lang.String className)
Copyright ? 2006 Brigham Young University, Configurable Computing Laboratory. All Rights Reserved.