Spelling fixes.
This commit is contained in:
parent
8f4afd53a6
commit
e941e7e805
7
BUGS.txt
7
BUGS.txt
|
|
@ -16,7 +16,7 @@ compilation tools you are using. Specifically, I need to know:
|
|||
- Operating system and processor type,
|
||||
- Compiler w/ version,
|
||||
- Library version, and
|
||||
- anything else you think relevent.
|
||||
- anything else you think relevant.
|
||||
|
||||
Be aware that I do not have at my disposal a porting lab. I have the
|
||||
alpha on my desk, and the Linux/Intel box with a logic analyzer and
|
||||
|
|
@ -141,8 +141,11 @@ then falls under the "otherwise noted" category.
|
|||
I must insist that any copyright material submitted for inclusion
|
||||
include the GPL license notice as shown in the rest of the source.
|
||||
|
||||
$Id: BUGS.txt,v 1.2 1999/08/06 04:05:28 steve Exp $
|
||||
$Id: BUGS.txt,v 1.3 2003/01/30 16:23:07 steve Exp $
|
||||
$Log: BUGS.txt,v $
|
||||
Revision 1.3 2003/01/30 16:23:07 steve
|
||||
Spelling fixes.
|
||||
|
||||
Revision 1.2 1999/08/06 04:05:28 steve
|
||||
Handle scope of parameters.
|
||||
|
||||
|
|
|
|||
7
PEvent.h
7
PEvent.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: PEvent.h,v 1.6 2002/08/12 01:34:58 steve Exp $"
|
||||
#ident "$Id: PEvent.h,v 1.7 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "LineInfo.h"
|
||||
|
|
@ -31,7 +31,7 @@ class NetScope;
|
|||
/*
|
||||
* The PEvent class represents event objects. These are things that
|
||||
* are declared in Verilog as ``event foo;'' The name passed to the
|
||||
* constructure is the "foo" part of the declaration.
|
||||
* constructor is the "foo" part of the declaration.
|
||||
*/
|
||||
class PEvent : public LineInfo {
|
||||
|
||||
|
|
@ -53,6 +53,9 @@ class PEvent : public LineInfo {
|
|||
|
||||
/*
|
||||
* $Log: PEvent.h,v $
|
||||
* Revision 1.7 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.6 2002/08/12 01:34:58 steve
|
||||
* conditional ident string using autoconfig.
|
||||
*
|
||||
|
|
|
|||
9
PExpr.h
9
PExpr.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: PExpr.h,v 1.63 2002/11/09 19:20:48 steve Exp $"
|
||||
#ident "$Id: PExpr.h,v 1.64 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <string>
|
||||
|
|
@ -51,7 +51,7 @@ class PExpr : public LineInfo {
|
|||
|
||||
virtual void dump(ostream&) const;
|
||||
|
||||
// Procedural elaboration of the expression. Set thie
|
||||
// Procedural elaboration of the expression. Set the
|
||||
// bare_memory_ok flag if the result is allowed to be a
|
||||
// NetEMemory without an index.
|
||||
virtual NetExpr*elaborate_expr(Design*des, NetScope*scope,
|
||||
|
|
@ -105,7 +105,7 @@ class PExpr : public LineInfo {
|
|||
// Return true if this expression is a valid constant
|
||||
// expression. the Module pointer is needed to find parameter
|
||||
// identifiers and any other module specific interpretations
|
||||
// of expresions.
|
||||
// of expressions.
|
||||
virtual bool is_constant(Module*) const;
|
||||
|
||||
private: // not implemented
|
||||
|
|
@ -504,6 +504,9 @@ class PECallFunction : public PExpr {
|
|||
|
||||
/*
|
||||
* $Log: PExpr.h,v $
|
||||
* Revision 1.64 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.63 2002/11/09 19:20:48 steve
|
||||
* Port expressions for output ports are lnets, not nets.
|
||||
*
|
||||
|
|
|
|||
7
PUdp.h
7
PUdp.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: PUdp.h,v 1.7 2002/08/12 01:34:58 steve Exp $"
|
||||
#ident "$Id: PUdp.h,v 1.8 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <map>
|
||||
|
|
@ -53,7 +53,7 @@ svector<string>::svector<string>(unsigned size)
|
|||
* the current output.
|
||||
*
|
||||
* If the UDP is sequential, the "initial" member is taken to be the
|
||||
* intial value assigned in the source, or 'x' if none is given.
|
||||
* initial value assigned in the source, or 'x' if none is given.
|
||||
*/
|
||||
class PUdp {
|
||||
|
||||
|
|
@ -84,6 +84,9 @@ class PUdp {
|
|||
|
||||
/*
|
||||
* $Log: PUdp.h,v $
|
||||
* Revision 1.8 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.7 2002/08/12 01:34:58 steve
|
||||
* conditional ident string using autoconfig.
|
||||
*
|
||||
|
|
|
|||
7
PWire.h
7
PWire.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: PWire.h,v 1.15 2003/01/26 21:15:58 steve Exp $"
|
||||
#ident "$Id: PWire.h,v 1.16 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "netlist.h"
|
||||
|
|
@ -38,7 +38,7 @@ class Design;
|
|||
|
||||
/*
|
||||
* Wires include nets, registers and ports. A net or register becomes
|
||||
* a port by declaration, so ports are not seperate. The module
|
||||
* a port by declaration, so ports are not separate. The module
|
||||
* identifies a port by keeping it in its port list.
|
||||
*
|
||||
* The hname parameter to the constructor is a hierarchical name. It
|
||||
|
|
@ -100,6 +100,9 @@ class PWire : public LineInfo {
|
|||
|
||||
/*
|
||||
* $Log: PWire.h,v $
|
||||
* Revision 1.16 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.15 2003/01/26 21:15:58 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
|
|
@ -79,5 +79,5 @@ Verilog packages from the main Debian software site.
|
|||
|
||||
* Install From Source
|
||||
|
||||
In this case, see the readme and other documentation that comes with
|
||||
In this case, see README.txt and other documentation that comes with
|
||||
the source.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ home page at <http://www.icarus.com/eda/verilog>.
|
|||
Icarus Verilog is not aimed at being a simulator in the traditional
|
||||
sense, but a compiler that generates code employed by back-end
|
||||
tools. These back-end tools currently include a simulator engine
|
||||
called VVP, an XNF (Xilinx Netlist Format) generator and an EDIF fpga
|
||||
called VVP, an XNF (Xilinx Netlist Format) generator and an EDIF FPGA
|
||||
netlist generator. In the future, backends are expected for EDIF/LPM,
|
||||
structural Verilog, VHDL, etc.
|
||||
|
||||
|
|
@ -363,7 +363,7 @@ language that are defined.
|
|||
can theoretically be evaluated at compile time, instead of
|
||||
using runtime VPI code. Doing so means that VPI cannot
|
||||
override the definitions of functions handled in this
|
||||
manner. On the other hand, this makes them synthesizeable, and
|
||||
manner. On the other hand, this makes them synthesizable, and
|
||||
also allows for more aggressive constant propagation. The
|
||||
functions handled in this manner are:
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: Statement.h,v 1.36 2002/08/12 01:34:58 steve Exp $"
|
||||
#ident "$Id: Statement.h,v 1.37 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <string>
|
||||
|
|
@ -287,7 +287,7 @@ class PDelayStatement : public Statement {
|
|||
|
||||
|
||||
/*
|
||||
* This represends the parsing of a disable <scope> statement.
|
||||
* This represents the parsing of a disable <scope> statement.
|
||||
*/
|
||||
class PDisable : public Statement {
|
||||
|
||||
|
|
@ -453,6 +453,9 @@ class PWhile : public Statement {
|
|||
|
||||
/*
|
||||
* $Log: Statement.h,v $
|
||||
* Revision 1.37 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.36 2002/08/12 01:34:58 steve
|
||||
* conditional ident string using autoconfig.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -28,14 +28,14 @@ warning.)
|
|||
(* ivl_synthesis_on *)
|
||||
|
||||
This attribute tells the compiler that the marked always statement
|
||||
is synthesizeable. The compiler will attempt to synthesize the
|
||||
is synthesizable. The compiler will attempt to synthesize the
|
||||
code in the marked "always" statement. If it cannot in any way
|
||||
synthesize it, then it will report an error.
|
||||
|
||||
(* ivl_synthesis_off *)
|
||||
|
||||
If this value is attached to an "always" statement, then the
|
||||
compiler will *not* synthesize the "always" statment. This can be
|
||||
compiler will *not* synthesize the "always" statement. This can be
|
||||
used, for example, to mark embedded test bench code.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: compiler.h,v 1.13 2002/08/12 01:34:58 steve Exp $"
|
||||
#ident "$Id: compiler.h,v 1.14 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <list>
|
||||
|
|
@ -69,13 +69,13 @@
|
|||
extern bool warn_implicit;
|
||||
extern bool error_implicit;
|
||||
|
||||
/* inherit timescales accross files. */
|
||||
/* inherit timescales across files. */
|
||||
extern bool warn_timescale;
|
||||
|
||||
/* This is true if verbose output is requested. */
|
||||
extern bool verbose_flag;
|
||||
|
||||
/* This is an ordered list of library suffixxes to search. */
|
||||
/* This is an ordered list of library suffixes to search. */
|
||||
extern list<const char*>library_suff;
|
||||
extern int build_library_index(const char*path, bool key_case_sensitive);
|
||||
|
||||
|
|
@ -95,6 +95,9 @@ extern char*ivlpp_string;
|
|||
|
||||
/*
|
||||
* $Log: compiler.h,v $
|
||||
* Revision 1.14 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.13 2002/08/12 01:34:58 steve
|
||||
* conditional ident string using autoconfig.
|
||||
*
|
||||
|
|
|
|||
9
cprop.cc
9
cprop.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: cprop.cc,v 1.40 2003/01/27 05:09:17 steve Exp $"
|
||||
#ident "$Id: cprop.cc,v 1.41 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -806,7 +806,7 @@ void cprop_functor::lpm_logic(Design*des, NetLogic*obj)
|
|||
}
|
||||
|
||||
/*
|
||||
* This detects the case where the mux selects between a value an
|
||||
* This detects the case where the mux selects between a value and
|
||||
* Vz. In this case, replace the device with a bufif with the sel
|
||||
* input used to enable the output.
|
||||
*/
|
||||
|
|
@ -980,7 +980,7 @@ void cprop_dc_functor::lpm_const(Design*des, NetConst*obj)
|
|||
|
||||
void cprop(Design*des)
|
||||
{
|
||||
// Continually propogate constants until a scan finds nothing
|
||||
// Continually propagate constants until a scan finds nothing
|
||||
// to do.
|
||||
cprop_functor prop;
|
||||
do {
|
||||
|
|
@ -994,6 +994,9 @@ void cprop(Design*des)
|
|||
|
||||
/*
|
||||
* $Log: cprop.cc,v $
|
||||
* Revision 1.41 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.40 2003/01/27 05:09:17 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
|
||||
This file describes the build procedure under cygwin32 (Windows 95/98/NT/2K)
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Note: Icarus Verilog also compiles to native Windows binaries if you
|
||||
use the instructions in the mingw.txt file. Some people prefer cygwin
|
||||
binaries, and these instructions apply.
|
||||
|
||||
|
||||
To build using cygwin:
|
||||
|
||||
Prerequisites:
|
||||
|
|
@ -8,7 +14,7 @@ Prerequisites:
|
|||
o Latest net release (1.1.4) of cygwin (sources.redhat.com/cygwin)
|
||||
|
||||
Procedure:
|
||||
o Get the source code - see the main icarus verilog page for how to
|
||||
o Get the source code - see the main Icarus Verilog page for how to
|
||||
do this
|
||||
o cd to the verilog directory
|
||||
o autoconf.sh
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: elab_sig.cc,v 1.26 2003/01/27 05:09:17 steve Exp $"
|
||||
#ident "$Id: elab_sig.cc,v 1.27 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -525,6 +525,9 @@ void PWire::elaborate_sig(Design*des, NetScope*scope) const
|
|||
|
||||
/*
|
||||
* $Log: elab_sig.cc,v $
|
||||
* Revision 1.27 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.26 2003/01/27 05:09:17 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
|
|
@ -619,7 +622,7 @@ void PWire::elaborate_sig(Design*des, NetScope*scope) const
|
|||
* for regs that are not really values.
|
||||
*
|
||||
* Revision 1.1 2000/05/02 16:27:38 steve
|
||||
* Move signal elaboration to a seperate pass.
|
||||
* Move signal elaboration to a separate pass.
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
|||
11
elaborate.cc
11
elaborate.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: elaborate.cc,v 1.270 2003/01/27 05:09:17 steve Exp $"
|
||||
#ident "$Id: elaborate.cc,v 1.271 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -285,7 +285,7 @@ void PGBuiltin::elaborate(Design*des, NetScope*scope) const
|
|||
}
|
||||
|
||||
|
||||
/* Allocate all the getlist nodes for the gates. */
|
||||
/* Allocate all the netlist nodes for the gates. */
|
||||
NetLogic**cur = new NetLogic*[count];
|
||||
assert(cur);
|
||||
|
||||
|
|
@ -1780,7 +1780,7 @@ NetProc* PEventStatement::elaborate_st(Design*des, NetScope*scope,
|
|||
<statement>
|
||||
end
|
||||
|
||||
This is equivalent, and uses the existing capapilities of
|
||||
This is equivalent, and uses the existing capabilities of
|
||||
the netlist format. The resulting netlist should look like
|
||||
this:
|
||||
|
||||
|
|
@ -2467,7 +2467,7 @@ Design* elaborate(list<const char*>roots)
|
|||
des->run_defparams();
|
||||
|
||||
|
||||
// At this point, all parameter overrides are done. Scane the
|
||||
// At this point, all parameter overrides are done. Scan the
|
||||
// scopes and evaluate the parameters all the way down to
|
||||
// constants.
|
||||
des->evaluate_parameters();
|
||||
|
|
@ -2507,6 +2507,9 @@ Design* elaborate(list<const char*>roots)
|
|||
|
||||
/*
|
||||
* $Log: elaborate.cc,v $
|
||||
* Revision 1.271 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.270 2003/01/27 05:09:17 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: eval_tree.cc,v 1.45 2003/01/27 05:09:17 steve Exp $"
|
||||
#ident "$Id: eval_tree.cc,v 1.46 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -523,7 +523,7 @@ NetEConst* NetEBComp::eval_tree()
|
|||
case 'L': // <=
|
||||
return eval_leeq_();
|
||||
|
||||
case 'N': // Cse inequality (!==)
|
||||
case 'N': // Case inequality (!==)
|
||||
return eval_neeqeq_();
|
||||
|
||||
case 'n': // not-equal (!=)
|
||||
|
|
@ -1187,6 +1187,9 @@ NetEConst* NetEUReduce::eval_tree()
|
|||
|
||||
/*
|
||||
* $Log: eval_tree.cc,v $
|
||||
* Revision 1.46 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.45 2003/01/27 05:09:17 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: expr_synth.cc,v 1.38 2003/01/26 21:15:58 steve Exp $"
|
||||
#ident "$Id: expr_synth.cc,v 1.39 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -455,7 +455,7 @@ NetNet* NetEConst::synthesize(Design*des)
|
|||
NetNet* NetECReal::synthesize(Design*des)
|
||||
{
|
||||
cerr << get_line() << ": error: Real constants are "
|
||||
<< "not synthesizeable." << endl;
|
||||
<< "not synthesizable." << endl;
|
||||
des->errors += 1;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -643,6 +643,9 @@ NetNet* NetESignal::synthesize(Design*des)
|
|||
|
||||
/*
|
||||
* $Log: expr_synth.cc,v $
|
||||
* Revision 1.39 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.38 2003/01/26 21:15:58 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: ivl_target.h,v 1.110 2003/01/26 21:15:58 steve Exp $"
|
||||
#ident "$Id: ivl_target.h,v 1.111 2003/01/30 16:23:07 steve Exp $"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
@ -438,7 +438,7 @@ extern ivl_nexus_t ivl_event_pos(ivl_event_t net, unsigned idx);
|
|||
*
|
||||
* ivl_expr_opcode
|
||||
* IVL_EX_BINARY and IVL_EX_UNARY expression nodes include an
|
||||
* upcode from this table:
|
||||
* opcode from this table:
|
||||
* & -- AND
|
||||
* A -- NAND (~&)
|
||||
* X -- XNOR (~^)
|
||||
|
|
@ -968,7 +968,7 @@ extern int ivl_scope_time_units(ivl_scope_t net);
|
|||
* This function returns the fully scoped hierarchical name for the
|
||||
* signal. The name refers to the entire vector that is the signal.
|
||||
*
|
||||
* NOTE: This function is deprecated. The heirarchical name is too
|
||||
* NOTE: This function is deprecated. The hierarchical name is too
|
||||
* vague a construct when escaped names can have . characters in
|
||||
* them. Do no use this function in new code, it will disappear.
|
||||
*
|
||||
|
|
@ -1143,6 +1143,9 @@ _END_DECL
|
|||
|
||||
/*
|
||||
* $Log: ivl_target.h,v $
|
||||
* Revision 1.111 2003/01/30 16:23:07 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.110 2003/01/26 21:15:58 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
2
lpm.txt
2
lpm.txt
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
WHAT IS LPM
|
||||
|
||||
LPM (Library of Paramaterized Modules) is EIS-IS standard 103-A. It is
|
||||
LPM (Library of Parameterized Modules) is EIS-IS standard 103-A. It is
|
||||
a standard library of abstract devices that are designed to be close
|
||||
enough to the target hardware to be easily translated, yet abstract
|
||||
enough to support a variety of target technologies without excessive
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ MINGW PORT OF ICARUS VERILOG
|
|||
|
||||
|
||||
Icarus Verilog source can be compiled with the mingw C/C++ compilers
|
||||
to get a Windows binary that does not require the posix compatibility
|
||||
to get a Windows binary that does not require the POSIX compatibility
|
||||
cruft of the Cygwin.dll library. The configure scripts automatically
|
||||
detect that the compilers in use are the mingw compilers and will
|
||||
configure the Makefiles appropriately.
|
||||
|
|
|
|||
33
netlist.h
33
netlist.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: netlist.h,v 1.273 2003/01/27 00:14:37 steve Exp $"
|
||||
#ident "$Id: netlist.h,v 1.274 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
@ -908,13 +908,13 @@ class NetUserFunc : public NetNode {
|
|||
|
||||
/* =========
|
||||
* There are cases where expressions need to be represented. The
|
||||
* NetExpr class is the root of a heirarchy that serves that purpose.
|
||||
* NetExpr class is the root of a hierarchy that serves that purpose.
|
||||
*
|
||||
* The expr_width() is the width of the expression, that accounts
|
||||
* for the widths of the sub-expressions I might have. It is up to the
|
||||
* derived classes to properly set the expr width, if need be. The
|
||||
* set_width() method is used to compel an expression to have a
|
||||
* certain width, and is used particulary when the expression is an
|
||||
* certain width, and is used particularly when the expression is an
|
||||
* rvalue in an assignment statement.
|
||||
*/
|
||||
class NetExpr : public LineInfo {
|
||||
|
|
@ -939,7 +939,7 @@ class NetExpr : public LineInfo {
|
|||
unsigned expr_width() const { return width_; }
|
||||
|
||||
// Coerce the expression to have a specific width. If the
|
||||
// coersion works, then return true. Otherwise, return false.
|
||||
// coercion works, then return true. Otherwise, return false.
|
||||
virtual bool set_width(unsigned);
|
||||
|
||||
// This method returns true if the expression is
|
||||
|
|
@ -959,7 +959,7 @@ class NetExpr : public LineInfo {
|
|||
|
||||
|
||||
// This method evaluates the expression and returns an
|
||||
// equivilent expression that is reduced as far as compile
|
||||
// equivalent expression that is reduced as far as compile
|
||||
// time knows how. Essentially, this is designed to fold
|
||||
// constants.
|
||||
virtual NetExpr*eval_tree();
|
||||
|
|
@ -1075,7 +1075,7 @@ class NetBUFZ : public NetNode {
|
|||
|
||||
/*
|
||||
* This node is used to represent case equality in combinational
|
||||
* logic. Although this is not normally synthesizeable, it makes sense
|
||||
* logic. Although this is not normally synthesizable, it makes sense
|
||||
* to support an abstract gate that can compare x and z.
|
||||
*
|
||||
* This pins are assigned as:
|
||||
|
|
@ -1671,7 +1671,7 @@ class NetDisable : public NetProc {
|
|||
* event or trigger the event. Event waits refer to this object, as do
|
||||
* the event trigger statements. The NetEvent class may have a name and
|
||||
* a scope. The name is a simple name (no hierarchy) and the scope is
|
||||
* the NetScope that contains the object. The socpe member is written
|
||||
* the NetScope that contains the object. The scope member is written
|
||||
* by the NetScope object when the NetEvent is stored.
|
||||
*
|
||||
* The NetEvWait class represents a thread wait for an event. When
|
||||
|
|
@ -1685,7 +1685,7 @@ class NetDisable : public NetProc {
|
|||
* turn awakens the waiting threads. Each NetEvTrig object references
|
||||
* exactly one event object.
|
||||
*
|
||||
* The NetEvProbe class is the structural equivilent of the NetEvTrig,
|
||||
* The NetEvProbe class is the structural equivalent of the NetEvTrig,
|
||||
* in that it is a node and watches bit values that it receives. It
|
||||
* checks for edges then if appropriate triggers the associated
|
||||
* NetEvent. Each NetEvProbe references exactly one event object, and
|
||||
|
|
@ -2054,8 +2054,8 @@ class NetSTask : public NetProc {
|
|||
* The task also introduces a scope, and the parameters are actually
|
||||
* reg objects in the new scope. The task is called by the calling
|
||||
* thread assigning (blocking assignment) to the in and inout
|
||||
* paramters, then invoking the thread, and finally assigning out the
|
||||
* output and inout variables. The variables accessable as ports are
|
||||
* parameters, then invoking the thread, and finally assigning out the
|
||||
* output and inout variables. The variables accessible as ports are
|
||||
* also elaborated and accessible as ordinary reg objects.
|
||||
*/
|
||||
class NetTaskDef {
|
||||
|
|
@ -2119,7 +2119,7 @@ class NetVariable : public LineInfo {
|
|||
*
|
||||
* The NetNet parameter to the constructor is the *register* NetNet
|
||||
* that receives the result of the function, and the NetExpr list is
|
||||
* the paraneters passed to the function.
|
||||
* the parameters passed to the function.
|
||||
*/
|
||||
class NetEUFunc : public NetExpr {
|
||||
|
||||
|
|
@ -2541,9 +2541,9 @@ class NetEVariable : public NetExpr {
|
|||
};
|
||||
|
||||
/*
|
||||
* This clas is a placeholder for a parameter expression. When
|
||||
* This class is a placeholder for a parameter expression. When
|
||||
* parameters are first created, an instance of this object is used to
|
||||
* hold the place where the parameter exression goes. Then, when the
|
||||
* hold the place where the parameter expression goes. Then, when the
|
||||
* parameters are resolved, these objects are removed.
|
||||
*
|
||||
* If the parameter object is created with a path and name, then the
|
||||
|
|
@ -2790,7 +2790,7 @@ class NetEMemory : public NetExpr {
|
|||
* A signal shows up as a node in the netlist so that structural
|
||||
* activity can invoke the expression. This node also supports part
|
||||
* select by indexing a range of the NetNet that is associated with
|
||||
* it. The msi() is the mose significant index, and lsi() the least
|
||||
* it. The msi() is the more significant index, and lsi() the least
|
||||
* significant index.
|
||||
*/
|
||||
class NetESignal : public NetExpr {
|
||||
|
|
@ -2873,7 +2873,7 @@ class NetScope {
|
|||
|
||||
/* Parameters exist within a scope, and these methods allow
|
||||
one to manipulate the set. In these cases, the name is the
|
||||
*simple* name of the paramter, the heirarchy is implicit in
|
||||
*simple* name of the parameter, the hierarchy is implicit in
|
||||
the scope. The return value from set_parameter is the
|
||||
previous expression, if there was one. */
|
||||
|
||||
|
|
@ -3191,6 +3191,9 @@ extern ostream& operator << (ostream&, NetNet::Type);
|
|||
|
||||
/*
|
||||
* $Log: netlist.h,v $
|
||||
* Revision 1.274 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.273 2003/01/27 00:14:37 steve
|
||||
* Support in various contexts the $realtime
|
||||
* system task.
|
||||
|
|
|
|||
|
|
@ -19,13 +19,13 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: netmisc.h,v 1.16 2002/08/31 03:48:50 steve Exp $"
|
||||
#ident "$Id: netmisc.h,v 1.17 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "netlist.h"
|
||||
|
||||
/*
|
||||
* This funciton transforms an expression by padding the high bits
|
||||
* This function transforms an expression by padding the high bits
|
||||
* with V0 until the expression has the desired width. This may mean
|
||||
* not transforming the expression at all, if it is already wide
|
||||
* enough.
|
||||
|
|
@ -57,6 +57,9 @@ extern NetExpr* elab_and_eval(Design*des, NetScope*scope, const PExpr*pe);
|
|||
|
||||
/*
|
||||
* $Log: netmisc.h,v $
|
||||
* Revision 1.17 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.16 2002/08/31 03:48:50 steve
|
||||
* Fix reverse bit ordered bit select in continuous assignment.
|
||||
*
|
||||
|
|
|
|||
7
pform.h
7
pform.h
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: pform.h,v 1.65 2003/01/26 21:15:59 steve Exp $"
|
||||
#ident "$Id: pform.h,v 1.66 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "netlist.h"
|
||||
|
|
@ -61,7 +61,7 @@ struct vlltype;
|
|||
|
||||
/*
|
||||
* The min:typ:max expression s selected at parse time using the
|
||||
* enumeration. When the compiler makes a choise, it also prints a
|
||||
* enumeration. When the compiler makes a choice, it also prints a
|
||||
* warning if min_typ_max_warn > 0.
|
||||
*/
|
||||
extern enum MIN_TYP_MAX { MIN, TYP, MAX } min_typ_max_flag;
|
||||
|
|
@ -264,6 +264,9 @@ extern void pform_dump(ostream&out, Module*mod);
|
|||
|
||||
/*
|
||||
* $Log: pform.h,v $
|
||||
* Revision 1.66 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.65 2003/01/26 21:15:59 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: t-dll-expr.cc,v 1.31 2003/01/27 00:14:37 steve Exp $"
|
||||
#ident "$Id: t-dll-expr.cc,v 1.32 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
/*
|
||||
* This is a little convenience function for converting a NetExpr
|
||||
* expresion type to the expression type used by ivl_expr_t objects.
|
||||
* expression type to the expression type used by ivl_expr_t objects.
|
||||
*/
|
||||
static ivl_variable_type_t get_expr_type(const NetExpr*net)
|
||||
{
|
||||
|
|
@ -561,6 +561,9 @@ void dll_target::expr_variable(const NetEVariable*net)
|
|||
|
||||
/*
|
||||
* $Log: t-dll-expr.cc,v $
|
||||
* Revision 1.32 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.31 2003/01/27 00:14:37 steve
|
||||
* Support in various contexts the $realtime
|
||||
* system task.
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: t-dll-proc.cc,v 1.55 2003/01/26 21:15:59 steve Exp $"
|
||||
#ident "$Id: t-dll-proc.cc,v 1.56 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -597,7 +597,7 @@ bool dll_target::proc_release(const NetRelease*net)
|
|||
stmt_cur_->type_ = IVL_ST_RELEASE;
|
||||
|
||||
/* If there is no signal attached to the release, then it is
|
||||
the victom of an elided net. In that case, simply state
|
||||
the victim of an elided net. In that case, simply state
|
||||
that there are no lvals, and that's all. */
|
||||
const NetNet*lsig = net->lval();
|
||||
if (lsig == 0) {
|
||||
|
|
@ -827,6 +827,9 @@ void dll_target::proc_while(const NetWhile*net)
|
|||
|
||||
/*
|
||||
* $Log: t-dll-proc.cc,v $
|
||||
* Revision 1.56 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.55 2003/01/26 21:15:59 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
7
t-dll.cc
7
t-dll.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: t-dll.cc,v 1.103 2003/01/26 21:15:59 steve Exp $"
|
||||
#ident "$Id: t-dll.cc,v 1.104 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -1898,7 +1898,7 @@ void dll_target::signal(const NetNet*net)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Save the privitive properties of the signal in the
|
||||
/* Save the primitive properties of the signal in the
|
||||
ivl_signal_t object. */
|
||||
|
||||
obj->width_ = net->pin_count();
|
||||
|
|
@ -2033,6 +2033,9 @@ extern const struct target tgt_dll = { "dll", &dll_target_obj };
|
|||
|
||||
/*
|
||||
* $Log: t-dll.cc,v $
|
||||
* Revision 1.104 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.103 2003/01/26 21:15:59 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ documentation in the ivl_target.h header file.
|
|||
* IVL_EX_NUMBER
|
||||
|
||||
This is a constant number. The width is fully known, and the bit
|
||||
values are all represented by the ascii characters 0, 1, x or z. The
|
||||
values are all represented by the ASCII characters 0, 1, x or z. The
|
||||
ivl_expr_bits method returns a pointer to the least significant bit,
|
||||
and the remaining bits are ordered from least significant to most
|
||||
significant. For example, 5'b1zzx0 is the 5 character string "0xzz1".
|
||||
|
|
|
|||
9
t-xnf.cc
9
t-xnf.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: t-xnf.cc,v 1.46 2003/01/14 21:16:18 steve Exp $"
|
||||
#ident "$Id: t-xnf.cc,v 1.47 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
* use by Xilinx tools, and other tools that accepts Xilinx designs.
|
||||
*
|
||||
* The code generator automatically detects ports to top level modules
|
||||
* and generates SIG records that make the XNF useable as a schematic.
|
||||
* and generates SIG records that make the XNF usable as a schematic.
|
||||
*
|
||||
* FLAGS
|
||||
* The XNF backend uses the following flags from the command line to
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
* Specify the LCA library part type for the gate. The lname
|
||||
* is the name of the symbol to use (i.e. DFF) and the comma
|
||||
* separated list is the names of the pins, in the order they
|
||||
* appear in the verilog source. If the name is prefixed with a
|
||||
* appear in the Verilog source. If the name is prefixed with a
|
||||
* tilde (~) then the pin is inverted, and the proper "INV" token
|
||||
* will be added to the PIN record.
|
||||
*
|
||||
|
|
@ -927,6 +927,9 @@ extern const struct target tgt_xnf = { "xnf", &target_xnf_obj };
|
|||
|
||||
/*
|
||||
* $Log: t-xnf.cc,v $
|
||||
* Revision 1.47 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.46 2003/01/14 21:16:18 steve
|
||||
* Move strstream to ostringstream for compatibility.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: target.cc,v 1.64 2003/01/26 21:15:59 steve Exp $"
|
||||
#ident "$Id: target.cc,v 1.65 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -146,7 +146,7 @@ bool target_t::net_cassign(const NetCAssign*dev)
|
|||
{
|
||||
cerr << "target (" << typeid(*this).name() << "): ";
|
||||
cerr << dev->get_line();
|
||||
cerr << ": Target does not support procedural continous assignment." << endl;
|
||||
cerr << ": Target does not support procedural continuous assignment." << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -213,7 +213,7 @@ bool target_t::proc_cassign(const NetCAssign*dev)
|
|||
{
|
||||
cerr << "target (" << typeid(*this).name() << "): ";
|
||||
cerr << dev->get_line();
|
||||
cerr << ": Target does not support procedural continous assignment." << endl;
|
||||
cerr << ": Target does not support procedural continuous assignment." << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -403,6 +403,9 @@ void expr_scan_t::expr_binary(const NetEBinary*ex)
|
|||
|
||||
/*
|
||||
* $Log: target.cc,v $
|
||||
* Revision 1.65 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.64 2003/01/26 21:15:59 steve
|
||||
* Rework expression parsing and elaboration to
|
||||
* accommodate real/realtime values and expressions.
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: verinum.cc,v 1.35 2002/08/19 02:39:17 steve Exp $"
|
||||
#ident "$Id: verinum.cc,v 1.36 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -201,7 +201,7 @@ unsigned long verinum::as_ulong() const
|
|||
*
|
||||
* This function presumes that the native format is 2s compliment
|
||||
* (pretty safe these days) and masks/sets bits accordingly. If the
|
||||
* value is too large for the lative form, it truncates the high bits.
|
||||
* value is too large for the native form, it truncates the high bits.
|
||||
*/
|
||||
signed long verinum::as_long() const
|
||||
{
|
||||
|
|
@ -626,7 +626,7 @@ verinum operator - (const verinum&left, const verinum&r)
|
|||
* result. The resulting number is as large as the sum of the sizes of
|
||||
* the operand.
|
||||
*
|
||||
* The algorithm used is sucessive shift and add operations,
|
||||
* The algorithm used is successive shift and add operations,
|
||||
* implemented as the nested loops.
|
||||
*
|
||||
* If either value is not completely defined, then the result is not
|
||||
|
|
@ -815,6 +815,9 @@ verinum::V operator & (verinum::V l, verinum::V r)
|
|||
|
||||
/*
|
||||
* $Log: verinum.cc,v $
|
||||
* Revision 1.36 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.35 2002/08/19 02:39:17 steve
|
||||
* Support parameters with defined ranges.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: verinum.h,v 1.21 2003/01/30 04:23:25 steve Exp $"
|
||||
#ident "$Id: verinum.h,v 1.22 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include <string>
|
||||
|
|
@ -32,7 +32,7 @@ class ostream;
|
|||
#endif
|
||||
|
||||
/*
|
||||
* Numbers in verlog are multibit strings, where each bit has 4
|
||||
* Numbers in Verilog are multibit strings, where each bit has 4
|
||||
* possible values: 0, 1, x or z. The verinum number is store in
|
||||
* little-endian format. This means that if the long value is 2b'10,
|
||||
* get(0) is 0 and get(1) is 1.
|
||||
|
|
@ -73,7 +73,7 @@ class verinum {
|
|||
bool is_defined() const;
|
||||
|
||||
// A number is "a string" if its value came directly from
|
||||
// an ascii description instead of a number value.
|
||||
// an ASCII description instead of a number value.
|
||||
bool is_string() const { return string_flag_; }
|
||||
|
||||
// Comparison for use in sorting algorithms.
|
||||
|
|
@ -131,6 +131,9 @@ extern verinum v_not(const verinum&left);
|
|||
|
||||
/*
|
||||
* $Log: verinum.h,v $
|
||||
* Revision 1.22 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.21 2003/01/30 04:23:25 steve
|
||||
* include config.h to get iosfwd flags.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ xnf2pcf <$2.xnf >! $2.pcf
|
|||
|
||||
There is now a "Xilinx on Linux HOWTO" at
|
||||
http://www.polybus.com/xilinx_on_linux.html
|
||||
I havn't tried this yet, it looks interesting.
|
||||
I haven't tried this yet, it looks interesting.
|
||||
|
||||
Downloading:
|
||||
|
||||
|
|
|
|||
13
xnf.txt
13
xnf.txt
|
|
@ -86,7 +86,7 @@ an I/OBUF by attaching an attribute to the device, like so:
|
|||
buf b1 (sig, foo);
|
||||
$attribute(b1, "XNF-LCA", "OBUF:O,I");
|
||||
|
||||
This latter feature is not entirely recomended as it expects that the
|
||||
This latter feature is not entirely recommended as it expects that the
|
||||
programmer really knows how the pins of the XNF device are to be
|
||||
connected. It also bypasses the efforts of the compiler, so is not
|
||||
checked for correctness.
|
||||
|
|
@ -94,7 +94,7 @@ checked for correctness.
|
|||
XNF STORAGE ELEMENTS
|
||||
|
||||
Storage elements in XNF include flip-flops, latches and CLB
|
||||
rams. These devices are generated from the LPM equivilents that the
|
||||
rams. These devices are generated from the LPM equivalents that the
|
||||
-Fsynth functor synthesizes from behavioral descriptions.
|
||||
|
||||
Flip-flops, or more specifically DFF devices, are generated to
|
||||
|
|
@ -104,14 +104,14 @@ implement behavioral code like this:
|
|||
always @(posedge clk) Q <= <expr>;
|
||||
|
||||
The edge can be positive or negative, and the expression can be any
|
||||
synthesizeable expression. Furthermore, the register "Q" can have
|
||||
synthesizable expression. Furthermore, the register "Q" can have
|
||||
width, which will cause the appropriate number of flip-flops to be
|
||||
created. A clock enable expression can also be added like so:
|
||||
|
||||
reg Q;
|
||||
always @(posedge clk) if (<ce>) Q <= <expr>;
|
||||
|
||||
The <ce> expression can be any synthesizeable expression.
|
||||
The <ce> expression can be any synthesizable expression.
|
||||
|
||||
With or without the CE, the generated DFF devices are written into the
|
||||
XNF output one bit at a time, with the clock input inverted if necessary.
|
||||
|
|
@ -130,7 +130,7 @@ device can be modeled with ordinary structural code, i.e.:
|
|||
|
||||
assign foo <= M[<addr>];
|
||||
|
||||
For the memory to be synthesizeable in the XNF target, the address
|
||||
For the memory to be synthesizable in the XNF target, the address
|
||||
lines for writes and reads must be connected. This corresponds to the
|
||||
limitations of the real hardware.
|
||||
|
||||
|
|
@ -245,6 +245,9 @@ IBUF, NOT gates cannot be absorbed as in the OPAD case.
|
|||
|
||||
|
||||
$Log: xnf.txt,v $
|
||||
Revision 1.15 2003/01/30 16:23:08 steve
|
||||
Spelling fixes.
|
||||
|
||||
Revision 1.14 2000/08/01 21:32:40 steve
|
||||
Use the iverilog command in documentation.
|
||||
|
||||
|
|
|
|||
7
xnfio.cc
7
xnfio.cc
|
|
@ -17,7 +17,7 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#ifdef HAVE_CVS_IDENT
|
||||
#ident "$Id: xnfio.cc,v 1.24 2003/01/14 21:16:18 steve Exp $"
|
||||
#ident "$Id: xnfio.cc,v 1.25 2003/01/30 16:23:08 steve Exp $"
|
||||
#endif
|
||||
|
||||
# include "config.h"
|
||||
|
|
@ -227,7 +227,7 @@ static void make_ibuf(Design*des, NetNet*net)
|
|||
if (tmp->attribute("XNF-LCA") != verinum())
|
||||
continue;
|
||||
|
||||
// Found a BUF, it is only useable if the only input is
|
||||
// Found a BUF, it is only usable if the only input is
|
||||
// the signal and there are no other inputs.
|
||||
if ((tmp->type() == NetLogic::BUF) &&
|
||||
(count_inputs(tmp->pin(1)) == 1) &&
|
||||
|
|
@ -362,6 +362,9 @@ void xnfio(Design*des)
|
|||
|
||||
/*
|
||||
* $Log: xnfio.cc,v $
|
||||
* Revision 1.25 2003/01/30 16:23:08 steve
|
||||
* Spelling fixes.
|
||||
*
|
||||
* Revision 1.24 2003/01/14 21:16:18 steve
|
||||
* Move strstream to ostringstream for compatibility.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue