|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbyucc.jhdl.platforms.util.readback.Xilinx.Virtex.VirtexToJHDLSyms
This class builds hardware symbol tables (.rbentry
)
for Xilinx Virtex-based designs described in JHDL. The program
takes several command-line arguments for adjusting the symbol table
output. The command-line usage of the command is:
java VirtexToJHDLSyms [-nets] [-clbheader <size in bits>]
[-bramheader <size in bits>] [-byteMirrored] <partType>
<basename>
The options have the following meanings:
[-nets]
.phynets
file which lists the
physical sources of all physical nets and the nets' aliases.
[-clbheader <size in bits>]
[-bramheader <size in bits>]
[-byteMirrored]
<partType>
<basename>
<basename>
would
be just "xp_mydesign" (without the quotes, of course). The name
of the symbol table, in this case, would be
"xp_mydesign.rbentry".
The class requires a .rbsym
file, the Xilinx Logical
Allocation (.ll
) file, the Xilinx Map Report
(.mrp
) file, and the Xilinx Design Language
(.xdl
) file for the design. The .rbsym
file should be created by the testbench at netlist time using calls
to ReadBackSymbolWriter
.
For the -nets
to work, the .xdl
file must
have been generated with routing information, in other words, the
Xilinx xdl
program was executed without a
-nopips
option. If the -nets
option is
not used, the xdl
program's -nopips
option can be used to reduce the .xdl
file size.
Field Summary | |
static java.lang.String |
ArrayChars
The delimiters used to parse signal array elements |
static int |
NO_OFFSET
Constant indicating that no readback bitstream offset exists for the given symbol |
Constructor Summary | |
VirtexToJHDLSyms(java.lang.String new_baseName,
java.util.Hashtable new_RAMGroupHash,
java.util.Hashtable new_NetHashBlock,
java.util.Hashtable new_MergedSignalsHash,
java.util.Hashtable newInstanceHash,
java.util.Hashtable newRBSymHash,
java.lang.String partType,
int clbHeaderLength,
int bramHeaderLength,
boolean byteMirrored,
boolean new_useAbsolute)
The base constructor which takes information derived from the command line and the various parsers ( LL_Virtex , MRP_Virtex , XDL_Virtex , ReadRBSymFile(String) ) and initializes the
fields of the object. |
|
VirtexToJHDLSyms(java.lang.String new_baseName,
java.util.Hashtable new_RAMGroupHash,
java.util.Hashtable new_NetHashBlock,
java.util.Hashtable new_MergedSignalsHash,
java.util.Hashtable newInstanceHash,
java.util.Hashtable newRBSymHash,
java.lang.String partType,
int clbHeaderLength,
int bramHeaderLength,
boolean byteMirrored,
boolean new_useAbsolute,
java.util.Vector newNetDrivers)
An extended constructor which takes information derived from the command line and the various parsers ( LL_Virtex , MRP_Virtex , XDL_Virtex , ReadRBSymFile(String) ) and initializes the
fields of the object, including the netDrivers
Vector for writing a .phynets file. |
Method Summary | |
void |
associateBlocksAndLL()
Associates the state elements found in each IOB or slice with the readback bitstream locations for their state using the .ll file information. |
void |
associateBlocksAndRBSyms()
Tries to correlate the ExternallyUpdateable and
LargeExternallyUpdateable elements found in the
.rbsym file with Block s found in the
physical design in XDL format. |
static java.lang.String |
EDIFToJHDLName(java.lang.String EDIFName)
Converts an EDIF design name into its JHDL equivalent by replacing all occurences of "__" with "-". |
java.lang.String |
getBaseName()
Returns the file base name for the design (in other words, the file name without a extension). |
static void |
main(java.lang.String[] args)
Creates the .rbentry file from the
.rbsym , .ll , .mrp , and
.xdl files for the design. |
static java.util.Hashtable |
ReadRBSymFile(java.lang.String baseName)
Creates a Hashtable of RBSym objects
keyed on the state elements' instance names from the design's
.rbsym file. |
static void |
usageMessage()
Prints the usage message for the program to System.err . |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String ArrayChars
public static final int NO_OFFSET
Constructor Detail |
public VirtexToJHDLSyms(java.lang.String new_baseName, java.util.Hashtable new_RAMGroupHash, java.util.Hashtable new_NetHashBlock, java.util.Hashtable new_MergedSignalsHash, java.util.Hashtable newInstanceHash, java.util.Hashtable newRBSymHash, java.lang.String partType, int clbHeaderLength, int bramHeaderLength, boolean byteMirrored, boolean new_useAbsolute)
LL_Virtex
, MRP_Virtex
, XDL_Virtex
, ReadRBSymFile(String)
) and initializes the
fields of the object.
new_baseName
- The base file name for the design.new_RAMGroupHash
- The RAMGroupHash from the
XDL_Virtex
parser class.new_NetHashBlock
- The NetHashBlock from the
XDL_Virtex
parser class.new_MergedSignalsHash
- The MergedSignalsHash from the
MRP_Virtex
parser
class.newInstanceHash
- The InstanceHash from the
XDL_Virtex
parser class.newRBSymHash
- The RBSymHash
generated by
ReadRBSymFile(String)
.partType
- The Virtex part type compatible with
VirtexBitstreamParams
.clbHeaderLength
- The number of extra header bits which
appear before the first frame of CLB
readback data. This is usually 0, but
some FPGA systems may add bits before the
beginning of the first frame due to
buffering issues.byteMirrored
- A boolean which is "true" if the LSB
(right-most bit) of the byte
s in
the byte
array holding the
readback bitstream is accessed as address 0
within the byte
. Otherwise, the
MSB (left-most bit) of the byte
addressed as bit 0.new_useAbsolute
- A boolean which is "true" if the
.ll
file provides absolute
offsets; otherwise, it is "false" and the
frame numbers and frame offsets from the
.ll
file must be used for
calculating readback bitstream offsets.public VirtexToJHDLSyms(java.lang.String new_baseName, java.util.Hashtable new_RAMGroupHash, java.util.Hashtable new_NetHashBlock, java.util.Hashtable new_MergedSignalsHash, java.util.Hashtable newInstanceHash, java.util.Hashtable newRBSymHash, java.lang.String partType, int clbHeaderLength, int bramHeaderLength, boolean byteMirrored, boolean new_useAbsolute, java.util.Vector newNetDrivers)
LL_Virtex
, MRP_Virtex
, XDL_Virtex
, ReadRBSymFile(String)
) and initializes the
fields of the object, including the netDrivers
Vector
for writing a .phynets
file.
new_baseName
- The base file name for the design.new_RAMGroupHash
- The RAMGroupHash from the
XDL_Virtex
parser class.new_NetHashBlock
- The NetHashBlock from the
XDL_Virtex
parser class.new_MergedSignalsHash
- The MergedSignalsHash from the
MRP_Virtex
parser
class.newInstanceHash
- The InstanceHash from the
XDL_Virtex
parser class.newRBSymHash
- The RBSymHash
generated by
ReadRBSymFile(String)
.partType
- The Virtex part type compatible with
VirtexBitstreamParams
.clbHeaderLength
- The number of extra header bits which
appear before the first frame of CLB
readback data. This is usually 0, but
some FPGA systems may add bits before the
beginning of the first frame due to
buffering issues.byteMirrored
- A boolean
which is "true" if the
LSB (right-most bit) of the
byte
s in the byte
array holding the readback bitstream is
accessed as address 0 within the
byte
. Otherwise, the MSB
(left-most bit) of the byte
addressed as bit 0.new_useAbsolute
- A boolean which is "true" if the
.ll
file provides absolute
offsets; otherwise, it is "false" and the
frame numbers and frame offsets from the
.ll
file must be used for
calculating readback bitstream offsets.newNetDrivers
- The netDrivers Vector
from the
XDL_Virtex
parser class.Method Detail |
public java.lang.String getBaseName()
public static void usageMessage()
System.err
.
public static void main(java.lang.String[] args)
.rbentry
file from the
.rbsym
, .ll
, .mrp
, and
.xdl
files for the design.
args
- The command-line arguments for the program.public static java.util.Hashtable ReadRBSymFile(java.lang.String baseName)
Hashtable
of RBSym
objects
keyed on the state elements' instance names from the design's
.rbsym
file.
baseName
- The base file name for the design (design file
name without an file extension.
Hashtable
of RBSym
objects
reflecting the JHDL logical state elements and some of
their connectivity information.public static java.lang.String EDIFToJHDLName(java.lang.String EDIFName)
EDIFName
- The EDIF instance name to convert.
public void associateBlocksAndLL()
.ll
file information. The bitstream entries added to
the Block
entries are arrays since the RAMs have
multiple readback bitstream entries. FF's are entered as a
single entry array. When no bitstream information can be found,
for some reason, all zero bitstream entries are added as padding
to maintain the parallel Vector construct.
public void associateBlocksAndRBSyms()
ExternallyUpdateable
and
LargeExternallyUpdateable
elements found in the
.rbsym
file with Block
s found in the
physical design in XDL format. This effectively correlates
logical JHDL state elements to both a physical FPGA resource and
its state data in the readback bitstream.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |