|
|||||||||||
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.XDL_Virtex
This class parses XDL file for Virtex FPGA designs and builds the data structures necessary to associate logical state elements with their state in readback bitstreams. The parsing is performed in two passes: the first pass processes the instances of physical state elements while the second pass processes the physical nets. This simplifies the process since it is not guaranteed that the logic instances will always appear before the net instances. The grammar for the XDL is based mostly on the grammar published by Xilinx, but some things have been added to handle unpublished additions to the grammar which have been determined via trial and error.
Field Summary | |
Token |
jj_nt
|
boolean |
lookingAhead
|
Token |
token
|
XDL_VirtexTokenManager |
token_source
|
Fields inherited from interface byucc.jhdl.platforms.util.readback.Xilinx.Virtex.XDL_VirtexConstants |
BIONEBUF, BITWOBUF, BIUNBUF, BONDED, CFG, COLON, COMMA, DEFAULT, DESIGN, DQUOTE, DRIVER, ENDMODULE, EOF, GND, GROUND, IN_LINE_COMMENT, INPIN, INQUOTE, INST, INSTANCE, IQCOLON, IQDQUOTE, IQNWSTRING, IQWSPACE, LOAD, MODULE, NET, NONWHITESTRING, OUTPIN, PIP, PLACED, PORT, POWER, QUOTESTRING, SEMICOLON, tokenImage, UNBONDED, UNIBUF, UNPLACED, VCC, VDD, WIRE |
Constructor Summary | |
XDL_Virtex(java.io.InputStream stream)
|
|
XDL_Virtex(java.io.Reader stream)
|
|
XDL_Virtex(XDL_VirtexTokenManager tm)
|
Method Summary | |
void |
anchor_name()
Parses the anchor for a subdesign. |
void |
bel_cfg()
Parses an individual triplet definiing the configuration of some physical logic resource. |
void |
cfg_string()
Parses the contents of the quoted configuration string. |
java.lang.String |
cfg_val()
Parse the configuration information for the physical FPGA resource and return it. |
void |
design()
Parses the header of the XDL file. |
void |
device_package()
Parses the package type for the Virtex device. |
void |
device()
Parses the Virtex device type. |
void |
disable_tracing()
|
void |
enable_tracing()
|
void |
file_inst()
Initiates the parsing of the XDL file, recording only logic block instances in the parser's data structures. |
void |
file_net()
Initiates the parsing of the XDL file, recording only net instances in the parser's data structures. |
void |
file()
Initiates the parsing of the XDL file. |
ParseException |
generateParseException()
|
Token |
getNextToken()
|
Token |
getToken(int index)
|
void |
inst_cfg()
Parses the configuration information related to the logic block instance. |
void |
inst_module()
Parses the declaration of a module instance related with this logic block instance. |
java.lang.String |
inst_name()
Parses the name of the logic block instance. |
java.lang.String |
inst_pin_name()
Parses the name of an input or output pin to a logic block (SLICE/IOB/BLOCKRAM). |
void |
inst_placed()
Parses a placed logic declaration and saves the location of the block in the blockLocations Hashtable keyed on the
instance name of the block so net drivers can be related to logic
blocks---this, of course, assumes that the logic instance is not in
a module and that the parser is recording logic instance
information. |
void |
inst_placement()
Parses the placement information for the logic block |
void |
inst_prefix_id()
Parses the "inst"/"instance" key words. |
void |
inst_prefix()
Parses the instance header information, such as the name of the instance and the type of the instance (SLICE, BLOCKRAM, IOB). |
void |
inst_stmt()
Parses an individual instance subclause which occur after the instance header information. |
void |
inst_stmts()
Parses the instance subclauses following the instance header. |
java.lang.String |
inst_type()
Parses the type of the instance and returns the type as a String . |
void |
inst_unplaced()
Parses an umplaced logic declaration and throws an UnplacedBlockException to indicate a problem with the
XDL file. |
void |
inst()
Parses a logic block instance, recording the information if the instance clause is not in a module and if logic instances, not net instances, are being recorded by the parser. |
java.lang.String |
logical_name()
Parse the name of the logical circuit instance which corresponds to the physical resource and return the instance name. |
static void |
main(java.lang.String[] args)
Tests the parser from the command line. |
void |
module_beg()
Parses the module's header. |
void |
module_cfg()
Parses logic configuration statements within a module. |
void |
module_end()
Parses the closing clause of a module declaration. |
void |
module_name()
Parses the module's name |
void |
module_port()
Parses a single port declaration for a subdesign. |
void |
module_ports()
Parses the port declarations to the subdesigns. |
void |
module_stmt()
Parses an individual logic or net instance statement within a subdesign. |
void |
module_stmts()
Parses a series of logic instance and net instance statements within a subdesign. |
void |
module()
Parses a single design module. |
void |
name()
Parses the name of the design. |
void |
ncd_version()
Parses the version of the Xilinx NCD format. |
void |
net_bel_cfg()
Parses an individual net configuration statement. |
void |
net_cfg()
Parses net configuration statements. |
void |
net_inpin(java.lang.String netName)
Parses the information describing an input pin to which the physical net is attached. |
java.lang.String |
net_name()
Parses the name of a physical net. |
void |
net_outpin(java.lang.String netName)
Parses the information describing an output pin to which the physical net is attached. |
void |
net_pip()
Parses the configuration of a pip (programmable interconnection point, basically, a routing switch) |
void |
net_stmt(java.lang.String netName)
Parses an individual net statement. |
void |
net_stmts(java.lang.String netName)
Parses a series of net statements which occur after the initial header information of the net instance declaration. |
void |
net_type()
Parses the type of the physical net. |
void |
net()
Parses a net instance. |
void |
part()
Parses the FPGA compound part type (for example, xcv1000fg680-6) for the design. |
java.lang.String |
physical_name()
Parse the name of the physical FPGA resource and return the name. |
void |
pip_direction()
Parses the direction of the pip. |
void |
port_name()
Parses the name of a subdesign port. |
java.lang.String |
primitive_site()
Parses the name of the primitive site for the physical logic block. |
java.lang.String |
quoted_string()
Parses a string which is surrounded by double quotes, but does not have the following characters within the string: ":", ";", or "\n". |
void |
ReInit(java.io.InputStream stream)
|
void |
ReInit(java.io.Reader stream)
|
void |
ReInit(XDL_VirtexTokenManager tm)
|
void |
speed()
Parses the Virtex device speed grade. |
void |
statement()
Parses a single module, logic instance, or net instance |
void |
statements()
Parses the rest of the file after the header. |
java.lang.String |
string()
Parses a string in the grammar. |
void |
tile_name()
Parses the name of the tile for the physical logic block. |
void |
tile()
Parses the tile (location) of the pip. |
java.lang.String |
unquoted_string()
Parses a simple string which is not surrounded by double quotes. |
void |
wire0()
Parses the first connection point in a pip statement. |
void |
wire1()
Parses the second connection point in a pip statement. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public XDL_VirtexTokenManager token_source
public Token token
public Token jj_nt
public boolean lookingAhead
Constructor Detail |
public XDL_Virtex(java.io.InputStream stream)
public XDL_Virtex(java.io.Reader stream)
public XDL_Virtex(XDL_VirtexTokenManager tm)
Method Detail |
public static void main(java.lang.String[] args) throws ParseException
args
- The command-line arguments to the program.
ParseException
public final void file() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
doInstances
field for the object. If the
doInstances
is true
, then logic instances
are processed; otherwise, nst instances are processed.
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void file_inst() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void file_net() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void design() throws ParseException
ParseException
public final void name() throws ParseException
ParseException
public final void part() throws ParseException
ParseException
public final void device() throws ParseException
ParseException
public final void device_package() throws ParseException
ParseException
public final void speed() throws ParseException
ParseException
public final void ncd_version() throws ParseException
ParseException
public final void statements() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void statement() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void module() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void module_beg() throws ParseException
ParseException
public final void module_cfg() throws ParseException
ParseException
public final void module_ports() throws ParseException
ParseException
public final void module_port() throws ParseException
ParseException
public final void module_stmts() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void module_stmt() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void module_end() throws ParseException
ParseException
public final void module_name() throws ParseException
ParseException
public final void anchor_name() throws ParseException
ParseException
public final void port_name() throws ParseException
ParseException
public final void inst() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void inst_prefix() throws ParseException
ParseException
public final void inst_prefix_id() throws ParseException
ParseException
public final java.lang.String inst_type() throws ParseException
String
.
ParseException
public final void inst_stmts() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void inst_stmt() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void inst_placement() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void inst_placed() throws ParseException
blockLocations Hashtable
keyed on the
instance name of the block so net drivers can be related to logic
blocks---this, of course, assumes that the logic instance is not in
a module and that the parser is recording logic instance
information.
ParseException
public final void inst_unplaced() throws ParseException, byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
UnplacedBlockException
to indicate a problem with the
XDL file.
ParseException
byucc.jhdl.platforms.util.readback.Xilinx.Virtex.UnplacedBlockException
public final void inst_module() throws ParseException
ParseException
public final void inst_cfg() throws ParseException
ParseException
public final void cfg_string() throws ParseException
ParseException
public final void bel_cfg() throws ParseException
ParseException
public final java.lang.String physical_name() throws ParseException
ParseException
public final java.lang.String logical_name() throws ParseException
ParseException
public final java.lang.String cfg_val() throws ParseException
ParseException
public final void tile_name() throws ParseException
ParseException
public final java.lang.String primitive_site() throws ParseException
ParseException
public final java.lang.String inst_name() throws ParseException
ParseException
public final java.lang.String inst_pin_name() throws ParseException
ParseException
public final void net() throws ParseException
ParseException
public final java.lang.String net_name() throws ParseException
ParseException
public final void net_type() throws ParseException
ParseException
public final void net_stmts(java.lang.String netName) throws ParseException
netName
- The name of the physical net whose information is
being parsed.
ParseException
public final void net_stmt(java.lang.String netName) throws ParseException
netName
- The name of the physical net whose information is
being parsed.
ParseException
public final void net_cfg() throws ParseException
net_cfg()
was added with Service Pack 6 of the Xilinx
M2.1i tools.
ParseException
public final void net_bel_cfg() throws ParseException
net_bel_cfg()
is an addition with Xilinx M2.1i SP6's
XDL.
ParseException
public final void net_inpin(java.lang.String netName) throws ParseException
netName
- The name of the physical net whose information is
being parsed.
ParseException
public final void net_outpin(java.lang.String netName) throws ParseException
Vector
of NetDriver
objects when the net instance statement is not in a module
definition and the parser is recording net instance information
rather than logic instance information.
netName
- The name of the physical net whose information is
being parsed.
ParseException
public final void net_pip() throws ParseException
ParseException
public final void tile() throws ParseException
ParseException
public final void wire0() throws ParseException
ParseException
public final void pip_direction() throws ParseException
ParseException
public final void wire1() throws ParseException
ParseException
public final java.lang.String string() throws ParseException
ParseException
public final java.lang.String unquoted_string() throws ParseException
ParseException
public final java.lang.String quoted_string() throws ParseException
ParseException
public void ReInit(java.io.InputStream stream)
public void ReInit(java.io.Reader stream)
public void ReInit(XDL_VirtexTokenManager tm)
public final Token getNextToken()
public final Token getToken(int index)
public ParseException generateParseException()
public final void enable_tracing()
public final void disable_tracing()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |