bool .net8 objects?

This is rather a pointless sort of thing, but it does turn from
from time to time, for example when constant literals (with no x or
z bits) are given strengths. So handle .net8/2s and .net8/2u the
same as .net8.s and .net8 objects.
This commit is contained in:
Stephen Williams 2013-02-02 17:38:24 -08:00
parent 751587e112
commit 1d314faf97
2 changed files with 12 additions and 1 deletions

View File

@ -165,6 +165,8 @@ static char* strdupnew(char const *str)
".net/2s" { return K_NET_2S; } ".net/2s" { return K_NET_2S; }
".net/2u" { return K_NET_2U; } ".net/2u" { return K_NET_2U; }
".net8" { return K_NET8; } ".net8" { return K_NET8; }
".net8/2s" { return K_NET8_2S; }
".net8/2u" { return K_NET8_2U; }
".net8/s" { return K_NET8_S; } ".net8/s" { return K_NET8_S; }
".net/real" { return K_NET_R; } ".net/real" { return K_NET_R; }
".net/s" { return K_NET_S; } ".net/s" { return K_NET_S; }

View File

@ -85,7 +85,8 @@ static struct __vpiModPath*modpath_dst = 0;
%token K_CONCAT K_CONCAT8 K_DEBUG K_DELAY K_DFF %token K_CONCAT K_CONCAT8 K_DEBUG K_DELAY K_DFF
%token K_ENUM2 K_ENUM2_S K_ENUM4 K_ENUM4_S K_EVENT K_EVENT_OR %token K_ENUM2 K_ENUM2_S K_ENUM4 K_ENUM4_S K_EVENT K_EVENT_OR
%token K_EXPORT K_EXTEND_S K_FUNCTOR K_IMPORT K_ISLAND K_MODPATH %token K_EXPORT K_EXTEND_S K_FUNCTOR K_IMPORT K_ISLAND K_MODPATH
%token K_NET K_NET_S K_NET_R K_NET_2S K_NET_2U K_NET8 K_NET8_S %token K_NET K_NET_S K_NET_R K_NET_2S K_NET_2U
%token K_NET8 K_NET8_2S K_NET8_2U K_NET8_S
%token K_PARAM_STR K_PARAM_L K_PARAM_REAL K_PART K_PART_PV %token K_PARAM_STR K_PARAM_L K_PARAM_REAL K_PART K_PART_PV
%token K_PART_V K_PART_V_S K_PORT K_PORT_INFO K_PV K_REDUCE_AND K_REDUCE_OR K_REDUCE_XOR %token K_PART_V K_PART_V_S K_PORT K_PORT_INFO K_PV K_REDUCE_AND K_REDUCE_OR K_REDUCE_XOR
%token K_REDUCE_NAND K_REDUCE_NOR K_REDUCE_XNOR K_REPEAT %token K_REDUCE_NAND K_REDUCE_NOR K_REDUCE_XNOR K_REPEAT
@ -751,10 +752,18 @@ statement
',' symbols_net ';' ',' symbols_net ';'
{ compile_net($1, $4, $6, $7, -vpiLogicVar, false, $3, $9.cnt, $9.vect); } { compile_net($1, $4, $6, $7, -vpiLogicVar, false, $3, $9.cnt, $9.vect); }
| T_LABEL K_NET8_2U local_flag T_STRING ',' signed_t_number signed_t_number
',' symbols_net ';'
{ compile_net($1, $4, $6, $7, -vpiLogicVar, false, $3, $9.cnt, $9.vect); }
| T_LABEL K_NET8_S local_flag T_STRING ',' signed_t_number signed_t_number | T_LABEL K_NET8_S local_flag T_STRING ',' signed_t_number signed_t_number
',' symbols_net ';' ',' symbols_net ';'
{ compile_net($1, $4, $6, $7, -vpiLogicVar, true, $3, $9.cnt, $9.vect); } { compile_net($1, $4, $6, $7, -vpiLogicVar, true, $3, $9.cnt, $9.vect); }
| T_LABEL K_NET8_2S local_flag T_STRING ',' signed_t_number signed_t_number
',' symbols_net ';'
{ compile_net($1, $4, $6, $7, -vpiLogicVar, true, $3, $9.cnt, $9.vect); }
| T_LABEL K_NET_R local_flag T_STRING ',' signed_t_number signed_t_number | T_LABEL K_NET_R local_flag T_STRING ',' signed_t_number signed_t_number
',' symbols_net ';' ',' symbols_net ';'
{ compile_net_real($1, $4, $6, $7, $3, $9.cnt, $9.vect); } { compile_net_real($1, $4, $6, $7, $3, $9.cnt, $9.vect); }