Fix some keywords, add -g2001-noconfig and fix up uwire/wone.
This patch adds -g2001-noconfig command line flag. The compiler already supported this with `begin_keywords. Document this in the manual page and fix a few other issues. Fix endgenerate to be a 2001 keyword and add a few missing keywords at the appropriate standard level e.g.(unsigned). Add uwire and deprecate wone. wone used to just convert without a warning to a wire. uwire will display a warning that it is being converted to a wire without a check. wone is converted to a uwire with a warning and then prints the uwire message. The uwire message will be replaced with a real check fairly soon.
This commit is contained in:
parent
c842cdbdc4
commit
ca7e64afaf
|
|
@ -113,9 +113,10 @@ extern int build_library_index(const char*path, bool key_case_sensitive);
|
||||||
specific language features. */
|
specific language features. */
|
||||||
enum generation_t {
|
enum generation_t {
|
||||||
GN_VER1995 = 1,
|
GN_VER1995 = 1,
|
||||||
GN_VER2001 = 2,
|
GN_VER2001_NOCONFIG = 2,
|
||||||
GN_VER2005 = 3,
|
GN_VER2001 = 3,
|
||||||
GN_DEFAULT = 3
|
GN_VER2005 = 4,
|
||||||
|
GN_DEFAULT = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
extern generation_t generation_flag;
|
extern generation_t generation_flag;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
.TH iverilog 1 "April 17th, 2009" "" "Version 0.10.devel"
|
.TH iverilog 1 "May 28th, 2009" "" "Version 0.10.devel"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
iverilog - Icarus Verilog compiler
|
iverilog - Icarus Verilog compiler
|
||||||
|
|
||||||
|
|
@ -55,20 +55,20 @@ is the Verilog input, but with file inclusions and macro references
|
||||||
expanded and removed. This is useful, for example, to preprocess
|
expanded and removed. This is useful, for example, to preprocess
|
||||||
Verilog source for use by other compilers.
|
Verilog source for use by other compilers.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B -g1995\fI|\fP-g2001\fI|\fP-g2005
|
.B -g1995\fI|\fP-g2001\fI|\fP-g2001-noconfig\fI|\fP-g2005
|
||||||
Select the Verilog language \fIgeneration\fP to support in the
|
Select the Verilog language \fIgeneration\fP to support in the
|
||||||
compiler. This selects between \fIIEEE1364-1995\fP,
|
compiler. This selects between \fIIEEE1364-1995\fP,
|
||||||
\fIIEEE1364-2001\fP(2), or \fIIEEE1364-2005\fP. Normally,
|
\fIIEEE1364-2001\fP, or \fIIEEE1364-2005\fP. Normally,
|
||||||
Icarus Verilog defaults to the latest known generation of the
|
Icarus Verilog defaults to the latest known generation of the
|
||||||
language. This flag is most useful to restrict the language to a set
|
language. This flag is most useful to restrict the language to a set
|
||||||
supported by tools of specific generations, for compatibility with
|
supported by tools of specific generations, for compatibility with
|
||||||
other tools.
|
other tools.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B -gverilog-ams\fI|-fP-gno-verilog-ams
|
.B -gverilog-ams\fI|\fP-gno-verilog-ams
|
||||||
Enable or disable (default) support for Verilog-AMS.
|
Enable or disable (default) support for Verilog-AMS.
|
||||||
Very little Verilog-AMS specific functionality is currently supported.
|
Very little Verilog-AMS specific functionality is currently supported.
|
||||||
.TP 8
|
.TP 8
|
||||||
.B -gsystem-verilog\fI|-fP-gno-system-verilog
|
.B -gsystem-verilog\fI|\fP-gno-system-verilog
|
||||||
Enable or disable (default) support for SystemVerilog.
|
Enable or disable (default) support for SystemVerilog.
|
||||||
Very little SystemVerilog specific functionality is currently supported.
|
Very little SystemVerilog specific functionality is currently supported.
|
||||||
.TP 8
|
.TP 8
|
||||||
|
|
@ -115,9 +115,9 @@ expression changes value, the entire expression is re-evaluated. By
|
||||||
default, parts of the expression that do not depend on the changed
|
default, parts of the expression that do not depend on the changed
|
||||||
input value(s) are not re-evaluated. If an expression contains a call
|
input value(s) are not re-evaluated. If an expression contains a call
|
||||||
to a function that doesn't depend solely on its input values or that
|
to a function that doesn't depend solely on its input values or that
|
||||||
has side effects, the resulting behaviour will differ from that
|
has side effects, the resulting behavior will differ from that
|
||||||
required by the standard. Using \fI-gstrict-ca-eval\fP will force
|
required by the standard. Using \fI-gstrict-ca-eval\fP will force
|
||||||
standard compliant behaviour (with some loss in performance).
|
standard compliant behavior (with some loss in performance).
|
||||||
.TP 8
|
.TP 8
|
||||||
.B -I\fIincludedir\fP
|
.B -I\fIincludedir\fP
|
||||||
Append directory \fIincludedir\fP to list of directories searched
|
Append directory \fIincludedir\fP to list of directories searched
|
||||||
|
|
@ -203,6 +203,11 @@ all the requested classes.
|
||||||
Append the directory to the library module search path. When the
|
Append the directory to the library module search path. When the
|
||||||
compiler finds an undefined module, it looks in these directories for
|
compiler finds an undefined module, it looks in these directories for
|
||||||
files with the right name.
|
files with the right name.
|
||||||
|
.TP 8
|
||||||
|
.B -Y\fIsuffix\fP
|
||||||
|
Add suffix to the list of accepted file name suffixes used when
|
||||||
|
searching a library for cells. The list defaults to the single
|
||||||
|
entry \fI.v\fP.
|
||||||
|
|
||||||
.SH MODULE LIBRARIES
|
.SH MODULE LIBRARIES
|
||||||
|
|
||||||
|
|
@ -448,7 +453,7 @@ Tips on using, debugging, and developing the compiler can be found at
|
||||||
|
|
||||||
.SH COPYRIGHT
|
.SH COPYRIGHT
|
||||||
.nf
|
.nf
|
||||||
Copyright \(co 2002-2008 Stephen Williams
|
Copyright \(co 2002-2009 Stephen Williams
|
||||||
|
|
||||||
This document can be freely redistributed according to the terms of the
|
This document can be freely redistributed according to the terms of the
|
||||||
GNU General Public License version 2.0
|
GNU General Public License version 2.0
|
||||||
|
|
|
||||||
|
|
@ -557,6 +557,9 @@ int process_generation(const char*name)
|
||||||
else if (strcmp(name,"2001") == 0)
|
else if (strcmp(name,"2001") == 0)
|
||||||
generation = "2001";
|
generation = "2001";
|
||||||
|
|
||||||
|
else if (strcmp(name,"2001-noconfig") == 0)
|
||||||
|
generation = "2001-noconfig";
|
||||||
|
|
||||||
else if (strcmp(name,"2005") == 0)
|
else if (strcmp(name,"2005") == 0)
|
||||||
generation = "2005";
|
generation = "2005";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,9 @@ case, GN_KEYWORDS_1364_1995, K_case
|
||||||
casex, GN_KEYWORDS_1364_1995, K_casex
|
casex, GN_KEYWORDS_1364_1995, K_casex
|
||||||
casez, GN_KEYWORDS_1364_1995, K_casez
|
casez, GN_KEYWORDS_1364_1995, K_casez
|
||||||
ceil, GN_KEYWORDS_VAMS_2_3, K_ceil
|
ceil, GN_KEYWORDS_VAMS_2_3, K_ceil
|
||||||
|
cell, GN_KEYWORDS_1364_2001_CONFIG, K_cell
|
||||||
cmos, GN_KEYWORDS_1364_1995, K_cmos
|
cmos, GN_KEYWORDS_1364_1995, K_cmos
|
||||||
|
config, GN_KEYWORDS_1364_2001_CONFIG, K_config
|
||||||
continuous, GN_KEYWORDS_VAMS_2_3, K_continuous
|
continuous, GN_KEYWORDS_VAMS_2_3, K_continuous
|
||||||
cos, GN_KEYWORDS_VAMS_2_3, K_cos
|
cos, GN_KEYWORDS_VAMS_2_3, K_cos
|
||||||
cosh, GN_KEYWORDS_VAMS_2_3, K_cosh
|
cosh, GN_KEYWORDS_VAMS_2_3, K_cosh
|
||||||
|
|
@ -47,6 +49,7 @@ ddt_nature, GN_KEYWORDS_VAMS_2_3, K_ddt_nature
|
||||||
deassign, GN_KEYWORDS_1364_1995, K_deassign
|
deassign, GN_KEYWORDS_1364_1995, K_deassign
|
||||||
default, GN_KEYWORDS_1364_1995, K_default
|
default, GN_KEYWORDS_1364_1995, K_default
|
||||||
defparam, GN_KEYWORDS_1364_1995, K_defparam
|
defparam, GN_KEYWORDS_1364_1995, K_defparam
|
||||||
|
design, GN_KEYWORDS_1364_2001_CONFIG, K_design
|
||||||
disable, GN_KEYWORDS_1364_1995, K_disable
|
disable, GN_KEYWORDS_1364_1995, K_disable
|
||||||
discipline, GN_KEYWORDS_VAMS_2_3, K_discipline
|
discipline, GN_KEYWORDS_VAMS_2_3, K_discipline
|
||||||
discrete, GN_KEYWORDS_VAMS_2_3, K_discrete
|
discrete, GN_KEYWORDS_VAMS_2_3, K_discrete
|
||||||
|
|
@ -55,9 +58,10 @@ edge, GN_KEYWORDS_1364_1995, K_edge
|
||||||
else, GN_KEYWORDS_1364_1995, K_else
|
else, GN_KEYWORDS_1364_1995, K_else
|
||||||
end, GN_KEYWORDS_1364_1995, K_end
|
end, GN_KEYWORDS_1364_1995, K_end
|
||||||
endcase, GN_KEYWORDS_1364_1995, K_endcase
|
endcase, GN_KEYWORDS_1364_1995, K_endcase
|
||||||
|
endconfig, GN_KEYWORDS_1364_2001_CONFIG, K_endconfig
|
||||||
enddiscipline, GN_KEYWORDS_VAMS_2_3, K_enddiscipline
|
enddiscipline, GN_KEYWORDS_VAMS_2_3, K_enddiscipline
|
||||||
endfunction, GN_KEYWORDS_1364_1995, K_endfunction
|
endfunction, GN_KEYWORDS_1364_1995, K_endfunction
|
||||||
endgenerate, GN_KEYWORDS_1364_1995, K_endgenerate
|
endgenerate, GN_KEYWORDS_1364_2001, K_endgenerate
|
||||||
endmodule, GN_KEYWORDS_1364_1995, K_endmodule
|
endmodule, GN_KEYWORDS_1364_1995, K_endmodule
|
||||||
endnature, GN_KEYWORDS_VAMS_2_3, K_endnature
|
endnature, GN_KEYWORDS_VAMS_2_3, K_endnature
|
||||||
endprimitive, GN_KEYWORDS_1364_1995, K_endprimitive
|
endprimitive, GN_KEYWORDS_1364_1995, K_endprimitive
|
||||||
|
|
@ -84,13 +88,18 @@ hypot, GN_KEYWORDS_VAMS_2_3, K_hypot
|
||||||
idt_nature, GN_KEYWORDS_VAMS_2_3, K_idt_nature
|
idt_nature, GN_KEYWORDS_VAMS_2_3, K_idt_nature
|
||||||
if, GN_KEYWORDS_1364_1995, K_if
|
if, GN_KEYWORDS_1364_1995, K_if
|
||||||
ifnone, GN_KEYWORDS_1364_1995, K_ifnone
|
ifnone, GN_KEYWORDS_1364_1995, K_ifnone
|
||||||
|
incdir, GN_KEYWORDS_1364_2001_CONFIG, K_incdir
|
||||||
|
include, GN_KEYWORDS_1364_2001_CONFIG, K_include
|
||||||
inf, GN_KEYWORDS_VAMS_2_3, K_inf
|
inf, GN_KEYWORDS_VAMS_2_3, K_inf
|
||||||
initial, GN_KEYWORDS_1364_1995, K_initial
|
initial, GN_KEYWORDS_1364_1995, K_initial
|
||||||
inout, GN_KEYWORDS_1364_1995, K_inout
|
inout, GN_KEYWORDS_1364_1995, K_inout
|
||||||
input, GN_KEYWORDS_1364_1995, K_input
|
input, GN_KEYWORDS_1364_1995, K_input
|
||||||
|
instance, GN_KEYWORDS_1364_2001_CONFIG, K_instance
|
||||||
integer, GN_KEYWORDS_1364_1995, K_integer
|
integer, GN_KEYWORDS_1364_1995, K_integer
|
||||||
join, GN_KEYWORDS_1364_1995, K_join
|
join, GN_KEYWORDS_1364_1995, K_join
|
||||||
large, GN_KEYWORDS_1364_1995, K_large
|
large, GN_KEYWORDS_1364_1995, K_large
|
||||||
|
liblist, GN_KEYWORDS_1364_2001_CONFIG, K_liblist
|
||||||
|
library, GN_KEYWORDS_1364_2001_CONFIG, K_library
|
||||||
ln, GN_KEYWORDS_VAMS_2_3, K_ln
|
ln, GN_KEYWORDS_VAMS_2_3, K_ln
|
||||||
localparam, GN_KEYWORDS_1364_2001, K_localparam
|
localparam, GN_KEYWORDS_1364_2001, K_localparam
|
||||||
log, GN_KEYWORDS_VAMS_2_3, K_log
|
log, GN_KEYWORDS_VAMS_2_3, K_log
|
||||||
|
|
@ -105,6 +114,7 @@ nature, GN_KEYWORDS_VAMS_2_3, K_nature
|
||||||
negedge, GN_KEYWORDS_1364_1995, K_negedge
|
negedge, GN_KEYWORDS_1364_1995, K_negedge
|
||||||
nmos, GN_KEYWORDS_1364_1995, K_nmos
|
nmos, GN_KEYWORDS_1364_1995, K_nmos
|
||||||
nor, GN_KEYWORDS_1364_1995, K_nor
|
nor, GN_KEYWORDS_1364_1995, K_nor
|
||||||
|
noshowcancelled, GN_KEYWORDS_1364_2001, K_noshowcancelled
|
||||||
not, GN_KEYWORDS_1364_1995, K_not
|
not, GN_KEYWORDS_1364_1995, K_not
|
||||||
notif0, GN_KEYWORDS_1364_1995, K_notif0
|
notif0, GN_KEYWORDS_1364_1995, K_notif0
|
||||||
notif1, GN_KEYWORDS_1364_1995, K_notif1
|
notif1, GN_KEYWORDS_1364_1995, K_notif1
|
||||||
|
|
@ -120,6 +130,8 @@ pull0, GN_KEYWORDS_1364_1995, K_pull0
|
||||||
pull1, GN_KEYWORDS_1364_1995, K_pull1
|
pull1, GN_KEYWORDS_1364_1995, K_pull1
|
||||||
pulldown, GN_KEYWORDS_1364_1995, K_pulldown
|
pulldown, GN_KEYWORDS_1364_1995, K_pulldown
|
||||||
pullup, GN_KEYWORDS_1364_1995, K_pullup
|
pullup, GN_KEYWORDS_1364_1995, K_pullup
|
||||||
|
pulsestyle_onevent, GN_KEYWORDS_1364_2001, K_pulsestyle_onevent
|
||||||
|
pulsestyle_ondetect, GN_KEYWORDS_1364_2001, K_pulsestyle_ondetect
|
||||||
rcmos, GN_KEYWORDS_1364_1995, K_rcmos
|
rcmos, GN_KEYWORDS_1364_1995, K_rcmos
|
||||||
real, GN_KEYWORDS_1364_1995, K_real
|
real, GN_KEYWORDS_1364_1995, K_real
|
||||||
realtime, GN_KEYWORDS_1364_1995, K_realtime
|
realtime, GN_KEYWORDS_1364_1995, K_realtime
|
||||||
|
|
@ -132,6 +144,7 @@ rtran, GN_KEYWORDS_1364_1995, K_rtran
|
||||||
rtranif0, GN_KEYWORDS_1364_1995, K_rtranif0
|
rtranif0, GN_KEYWORDS_1364_1995, K_rtranif0
|
||||||
rtranif1, GN_KEYWORDS_1364_1995, K_rtranif1
|
rtranif1, GN_KEYWORDS_1364_1995, K_rtranif1
|
||||||
scalared, GN_KEYWORDS_1364_1995, K_scalared
|
scalared, GN_KEYWORDS_1364_1995, K_scalared
|
||||||
|
showcancelled, GN_KEYWORDS_1364_2001, K_showcancelled
|
||||||
signed, GN_KEYWORDS_1364_2001, K_signed
|
signed, GN_KEYWORDS_1364_2001, K_signed
|
||||||
sin, GN_KEYWORDS_VAMS_2_3, K_sin
|
sin, GN_KEYWORDS_VAMS_2_3, K_sin
|
||||||
sinh, GN_KEYWORDS_VAMS_2_3, K_sinh
|
sinh, GN_KEYWORDS_VAMS_2_3, K_sinh
|
||||||
|
|
@ -159,6 +172,10 @@ triand, GN_KEYWORDS_1364_1995, K_triand
|
||||||
trior, GN_KEYWORDS_1364_1995, K_trior
|
trior, GN_KEYWORDS_1364_1995, K_trior
|
||||||
trireg, GN_KEYWORDS_1364_1995, K_trireg
|
trireg, GN_KEYWORDS_1364_1995, K_trireg
|
||||||
units, GN_KEYWORDS_VAMS_2_3, K_units
|
units, GN_KEYWORDS_VAMS_2_3, K_units
|
||||||
|
# Reserved for future use!
|
||||||
|
unsigned, GN_KEYWORDS_1364_2001, K_unsigned
|
||||||
|
use, GN_KEYWORDS_1364_2001_CONFIG, K_use
|
||||||
|
uwire, GN_KEYWORDS_1364_2005, K_uwire
|
||||||
vectored, GN_KEYWORDS_1364_1995, K_vectored
|
vectored, GN_KEYWORDS_1364_1995, K_vectored
|
||||||
wait, GN_KEYWORDS_1364_1995, K_wait
|
wait, GN_KEYWORDS_1364_1995, K_wait
|
||||||
wand, GN_KEYWORDS_1364_1995, K_wand
|
wand, GN_KEYWORDS_1364_1995, K_wand
|
||||||
|
|
@ -166,7 +183,8 @@ weak0, GN_KEYWORDS_1364_1995, K_weak0
|
||||||
weak1, GN_KEYWORDS_1364_1995, K_weak1
|
weak1, GN_KEYWORDS_1364_1995, K_weak1
|
||||||
while, GN_KEYWORDS_1364_1995, K_while
|
while, GN_KEYWORDS_1364_1995, K_while
|
||||||
wire, GN_KEYWORDS_1364_1995, K_wire
|
wire, GN_KEYWORDS_1364_1995, K_wire
|
||||||
wone, GN_KEYWORDS_1364_1995, K_wone
|
# This is the name originally proposed for uwire and is deprecated!
|
||||||
|
wone, GN_KEYWORDS_1364_2005, K_wone
|
||||||
wor, GN_KEYWORDS_1364_1995, K_wor
|
wor, GN_KEYWORDS_1364_1995, K_wor
|
||||||
xnor, GN_KEYWORDS_1364_1995, K_xnor
|
xnor, GN_KEYWORDS_1364_1995, K_xnor
|
||||||
xor, GN_KEYWORDS_1364_1995, K_xor
|
xor, GN_KEYWORDS_1364_1995, K_xor
|
||||||
|
|
|
||||||
9
main.cc
9
main.cc
|
|
@ -224,6 +224,9 @@ static void process_generation_flag(const char*gen)
|
||||||
} else if (strcmp(gen,"2001") == 0) {
|
} else if (strcmp(gen,"2001") == 0) {
|
||||||
generation_flag = GN_VER2001;
|
generation_flag = GN_VER2001;
|
||||||
|
|
||||||
|
} else if (strcmp(gen,"2001-noconfig") == 0) {
|
||||||
|
generation_flag = GN_VER2001_NOCONFIG;
|
||||||
|
|
||||||
} else if (strcmp(gen,"2005") == 0) {
|
} else if (strcmp(gen,"2005") == 0) {
|
||||||
generation_flag = GN_VER2005;
|
generation_flag = GN_VER2005;
|
||||||
|
|
||||||
|
|
@ -660,9 +663,10 @@ int main(int argc, char*argv[])
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
||||||
break;
|
break;
|
||||||
case GN_VER2001:
|
case GN_VER2001:
|
||||||
|
lexor_keyword_mask |= GN_KEYWORDS_1364_2001_CONFIG;
|
||||||
|
case GN_VER2001_NOCONFIG:
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_1364_2001;
|
lexor_keyword_mask |= GN_KEYWORDS_1364_2001;
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_1364_2001_CONFIG;
|
|
||||||
break;
|
break;
|
||||||
case GN_VER2005:
|
case GN_VER2005:
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
lexor_keyword_mask |= GN_KEYWORDS_1364_1995;
|
||||||
|
|
@ -690,6 +694,9 @@ int main(int argc, char*argv[])
|
||||||
case GN_VER1995:
|
case GN_VER1995:
|
||||||
cout << "IEEE1364-1995";
|
cout << "IEEE1364-1995";
|
||||||
break;
|
break;
|
||||||
|
case GN_VER2001_NOCONFIG:
|
||||||
|
cout << "IEEE1364-2001-noconfig";
|
||||||
|
break;
|
||||||
case GN_VER2001:
|
case GN_VER2001:
|
||||||
cout << "IEEE1364-2001";
|
cout << "IEEE1364-2001";
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,8 @@ ostream& operator<< (ostream&o, NetNet::Type t)
|
||||||
case NetNet::WIRE:
|
case NetNet::WIRE:
|
||||||
o << "wire";
|
o << "wire";
|
||||||
break;
|
break;
|
||||||
case NetNet::WONE:
|
case NetNet::UWIRE:
|
||||||
o << "wone";
|
o << "uwire";
|
||||||
}
|
}
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -542,7 +542,7 @@ class NetNet : public NetObj {
|
||||||
public:
|
public:
|
||||||
enum Type { NONE, IMPLICIT, IMPLICIT_REG, INTEGER, WIRE, TRI, TRI1,
|
enum Type { NONE, IMPLICIT, IMPLICIT_REG, INTEGER, WIRE, TRI, TRI1,
|
||||||
SUPPLY0, SUPPLY1, WAND, TRIAND, TRI0, WOR, TRIOR, REG,
|
SUPPLY0, SUPPLY1, WAND, TRIAND, TRI0, WOR, TRIOR, REG,
|
||||||
WONE };
|
UWIRE };
|
||||||
|
|
||||||
enum PortType { NOT_A_PORT, PIMPLICIT, PINPUT, POUTPUT, PINOUT };
|
enum PortType { NOT_A_PORT, PIMPLICIT, PINPUT, POUTPUT, PINOUT };
|
||||||
|
|
||||||
|
|
|
||||||
84
parse.y
84
parse.y
|
|
@ -229,40 +229,55 @@ static PECallFunction*make_call_function(perm_string tn, PExpr*arg1, PExpr*arg2)
|
||||||
%token K_PO_POS K_PO_NEG K_POW
|
%token K_PO_POS K_PO_NEG K_POW
|
||||||
%token K_PSTAR K_STARP
|
%token K_PSTAR K_STARP
|
||||||
%token K_LOR K_LAND K_NAND K_NOR K_NXOR K_TRIGGER
|
%token K_LOR K_LAND K_NAND K_NOR K_NXOR K_TRIGGER
|
||||||
%token K_abs K_abstol K_access K_acos K_acosh K_asin K_analog K_asinh
|
%token K_edge_descriptor
|
||||||
%token K_atan K_atanh K_atan2 K_automatic
|
|
||||||
%token K_always K_and K_assign K_begin K_bool K_buf K_bufif0 K_bufif1 K_case
|
|
||||||
%token K_casex K_casez K_ceil K_cmos K_continuous K_cos K_cosh
|
|
||||||
%token K_ddt_nature K_deassign K_default K_defparam K_disable K_discrete
|
|
||||||
%token K_domain K_edge K_edge_descriptor K_discipline
|
|
||||||
%token K_else K_end K_endcase K_enddiscipline K_endfunction K_endgenerate
|
|
||||||
%token K_endmodule K_endnature
|
|
||||||
%token K_endprimitive K_endspecify K_endtable K_endtask K_event
|
|
||||||
%token K_exclude K_exp K_floor K_flow K_from
|
|
||||||
%token K_for K_force K_forever K_fork K_function K_generate K_genvar
|
|
||||||
%token K_ground K_highz0 K_highz1 K_hypot K_idt_nature K_if K_ifnone K_inf
|
|
||||||
%token K_initial K_inout K_input K_integer K_join K_large K_ln K_localparam
|
|
||||||
%token K_log K_logic K_macromodule K_max
|
|
||||||
%token K_medium K_min K_module K_nand K_nature K_negedge
|
|
||||||
%token K_nmos K_nor K_not K_notif0
|
|
||||||
%token K_notif1 K_or K_output K_parameter K_pmos K_posedge K_potential
|
|
||||||
%token K_pow K_primitive
|
|
||||||
%token K_pull0 K_pull1 K_pulldown K_pullup K_rcmos K_real K_realtime
|
|
||||||
%token K_reg K_release K_repeat
|
|
||||||
%token K_rnmos K_rpmos K_rtran K_rtranif0 K_rtranif1 K_scalared
|
|
||||||
%token K_signed K_sin K_sinh K_small K_specify
|
|
||||||
%token K_specparam K_sqrt K_string K_strong0 K_strong1 K_supply0 K_supply1
|
|
||||||
%token K_table
|
|
||||||
%token K_tan K_tanh K_task
|
|
||||||
%token K_time K_tran K_tranif0 K_tranif1 K_tri K_tri0 K_tri1 K_triand
|
|
||||||
%token K_trior K_trireg K_units K_vectored K_wait K_wand K_weak0 K_weak1
|
|
||||||
%token K_while K_wire
|
|
||||||
%token K_wone K_wor K_xnor K_xor
|
|
||||||
%token K_Shold K_Speriod K_Srecovery K_Srecrem K_Ssetup K_Swidth K_Ssetuphold
|
|
||||||
|
|
||||||
|
/* The base tokens from 1364-1995. */
|
||||||
|
%token K_always K_and K_assign K_begin K_buf K_bufif0 K_bufif1 K_case
|
||||||
|
%token K_casex K_casez K_cmos K_deassign K_default K_defparam K_disable
|
||||||
|
%token K_edge K_else K_end K_endcase K_endfunction K_endmodule
|
||||||
|
%token K_endprimitive K_endspecify K_endtable K_endtask K_event K_for
|
||||||
|
%token K_force K_forever K_fork K_function K_highz0 K_highz1 K_if
|
||||||
|
%token K_ifnone K_initial K_inout K_input K_integer K_join K_large
|
||||||
|
%token K_macromodule K_medium K_module K_nand K_negedge K_nmos K_nor
|
||||||
|
%token K_not K_notif0 K_notif1 K_or K_output K_parameter K_pmos K_posedge
|
||||||
|
%token K_primitive K_pull0 K_pull1 K_pulldown K_pullup K_rcmos K_real
|
||||||
|
%token K_realtime K_reg K_release K_repeat K_rnmos K_rpmos K_rtran
|
||||||
|
%token K_rtranif0 K_rtranif1 K_scalared K_small K_specify K_specparam
|
||||||
|
%token K_strong0 K_strong1 K_supply0 K_supply1 K_table K_task K_time
|
||||||
|
%token K_tran K_tranif0 K_tranif1 K_tri K_tri0 K_tri1 K_triand K_trior
|
||||||
|
%token K_trireg K_vectored K_wait K_wand K_weak0 K_weak1 K_while K_wire
|
||||||
|
%token K_wor K_xnor K_xor
|
||||||
|
|
||||||
|
%token K_Shold K_Speriod K_Srecovery K_Ssetup K_Swidth K_Ssetuphold
|
||||||
|
|
||||||
|
/* Icarus specific tokens. */
|
||||||
|
%token KK_attribute K_bool K_logic
|
||||||
|
|
||||||
|
/* The new tokens from 1364-2001. */
|
||||||
|
%token K_automatic K_endgenerate K_generate K_genvar K_localparam
|
||||||
|
%token K_noshowcancelled K_pulsestyle_onevent K_pulsestyle_ondetect
|
||||||
|
%token K_showcancelled K_signed K_unsigned
|
||||||
|
|
||||||
|
%token K_Srecrem
|
||||||
|
|
||||||
|
/* The 1364-2001 configuration tokens. */
|
||||||
|
%token K_cell K_config K_design K_endconfig K_incdir K_include K_instance
|
||||||
|
%token K_liblist K_library K_use
|
||||||
|
|
||||||
|
/* The new tokens from 1364-2005. */
|
||||||
|
%token K_wone K_uwire
|
||||||
|
|
||||||
|
/* The new tokens from 1800-2005. */
|
||||||
%token K_always_comb K_always_ff K_always_latch K_assert
|
%token K_always_comb K_always_ff K_always_latch K_assert
|
||||||
|
|
||||||
%token KK_attribute
|
/* The new tokens for Verilog-AMS 2.3. */
|
||||||
|
%token K_abs K_abstol K_access K_acos K_acosh K_analog K_asin K_asinh
|
||||||
|
%token K_atan K_atan2 K_atanh K_ceil K_continuous K_cos K_cosh
|
||||||
|
%token K_ddt_nature K_discipline K_discrete K_domain K_enddiscipline
|
||||||
|
%token K_endnature K_exclude K_exp K_floor K_flow K_from K_ground
|
||||||
|
%token K_hypot K_idt_nature K_inf K_ln K_log K_max K_min K_nature
|
||||||
|
%token K_potential K_pow K_sin K_sinh K_sqrt K_string K_tan K_tanh
|
||||||
|
%token K_units
|
||||||
|
|
||||||
%type <flag> from_exclude
|
%type <flag> from_exclude
|
||||||
%type <number> number
|
%type <number> number
|
||||||
|
|
@ -2494,7 +2509,12 @@ net_type
|
||||||
| K_supply1 { $$ = NetNet::SUPPLY1; }
|
| K_supply1 { $$ = NetNet::SUPPLY1; }
|
||||||
| K_wor { $$ = NetNet::WOR; }
|
| K_wor { $$ = NetNet::WOR; }
|
||||||
| K_trior { $$ = NetNet::TRIOR; }
|
| K_trior { $$ = NetNet::TRIOR; }
|
||||||
| K_wone { $$ = NetNet::WONE; }
|
| K_wone { $$ = NetNet::UWIRE;
|
||||||
|
cerr << @1.text << ":" << @1.first_line << ": warning: "
|
||||||
|
"'wone' is deprecated, please use 'uwire' "
|
||||||
|
"instead." << endl;
|
||||||
|
}
|
||||||
|
| K_uwire { $$ = NetNet::UWIRE; }
|
||||||
;
|
;
|
||||||
|
|
||||||
var_type
|
var_type
|
||||||
|
|
|
||||||
4
t-dll.cc
4
t-dll.cc
|
|
@ -2511,6 +2511,10 @@ void dll_target::signal(const NetNet*net)
|
||||||
assert(0);
|
assert(0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NetNet::UWIRE:
|
||||||
|
cerr << net->get_fileline()
|
||||||
|
<< ": warning: uwire is not currently supported, converting "
|
||||||
|
"it to a wire!" << endl;
|
||||||
case NetNet::TRI:
|
case NetNet::TRI:
|
||||||
case NetNet::WIRE:
|
case NetNet::WIRE:
|
||||||
case NetNet::IMPLICIT:
|
case NetNet::IMPLICIT:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue