Add parsing of `$assert*`, `$coverage*` and `$q_*` as still unsupported.

This commit is contained in:
Wilson Snyder 2025-09-06 10:31:08 -04:00
parent 819625de61
commit 3549fd1aa0
19 changed files with 1074 additions and 431 deletions

View File

@ -247,8 +247,8 @@ class AstAssertCtl final : public AstNodeStmt {
VAssertDirectiveType m_directiveTypes; // Types of directives affected
public:
AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, AstNodeExpr* levelp = nullptr,
AstNodeExpr* itemsp = nullptr);
AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, uint32_t assertType, uint32_t directiveType,
AstNodeExpr* levelp = nullptr, AstNodeExpr* itemsp = nullptr);
AstAssertCtl(FileLine* fl, AstNodeExpr* controlTypep, AstNodeExpr* assertTypesp = nullptr,
AstNodeExpr* directiveTypep = nullptr, AstNodeExpr* levelp = nullptr,
AstNodeExpr* itemsp = nullptr);

View File

@ -1646,10 +1646,15 @@ void AstAlways::dumpJson(std::ostream& str) const {
dumpJsonStr(str, "keyword", keyword().ascii());
dumpJsonGen(str);
}
AstAssertCtl::AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, AstNodeExpr*, AstNodeExpr*)
AstAssertCtl::AstAssertCtl(FileLine* fl, VAssertCtlType ctlType, uint32_t assertType,
uint32_t directiveType, AstNodeExpr*, AstNodeExpr*)
: ASTGEN_SUPER_AssertCtl(fl)
, m_ctlType{ctlType} {
controlTypep(new AstConst{fl, ctlType});
, m_ctlType{VAssertCtlType::_TO_BE_EVALUATED}
, m_assertTypes{VAssertType::INTERNAL}
, m_directiveTypes{VAssertDirectiveType::INTERNAL} {
this->controlTypep(new AstConst{fl, ctlType});
this->assertTypesp(new AstConst{fl, assertType});
this->directiveTypesp(new AstConst{fl, directiveType});
}
AstAssertCtl::AstAssertCtl(FileLine* fl, AstNodeExpr* controlTypep, AstNodeExpr* assertTypesp,
AstNodeExpr* directiveTypep, AstNodeExpr*, AstNodeExpr*)

View File

@ -50,11 +50,9 @@
#define ERROR_RSVD_WORD(language) \
do { \
FL; \
yylval.fl->v3warn(E_UNSUPPORTED, "Unsupported: " << language \
<< " reserved word not implemented: '" \
<< yytext << "'"); \
FL_BRK; \
} while (0)
//======================================================================
@ -259,6 +257,11 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"$psprintf" { FL; yylval.fl->v3warn(NONSTD, "Non-standard system function '" << yytext << "';"
" suggest use standard '$sformatf' (IEEE 1800-2023 21.3.3)");
return yD_SFORMATF; }
"$q_add" { FL; ERROR_RSVD_WORD("IEEE 1364-1995"); return yaD_PLI; }
"$q_exam" { FL; ERROR_RSVD_WORD("IEEE 1364-1995"); return yaD_PLI; }
"$q_full" { FL; ERROR_RSVD_WORD("IEEE 1364-1995"); return yaD_PLI; }
"$q_initialize" { FL; ERROR_RSVD_WORD("IEEE 1364-1995"); return yaD_PLI; }
"$q_remove" { FL; ERROR_RSVD_WORD("IEEE 1364-1995"); return yaD_PLI; }
"$random" { FL; return yD_RANDOM; }
"$readmemb" { FL; return yD_READMEMB; }
"$readmemh" { FL; return yD_READMEMH; }
@ -446,14 +449,15 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"config" { FL; return yCONFIG; }
"design" { FL; return yDESIGN; }
"endconfig" { FL; return yENDCONFIG; }
"incdir" { FL; ERROR_RSVD_WORD("Verilog 2001-config lib.map"); }
"include" { FL; yylval.fl->v3warn(E_UNSUPPORTED, "Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'include'\n"
"incdir" { FL; ERROR_RSVD_WORD("IEEE 1800-2001-config lib.map"); FL_BRK; }
"include" { FL; yylval.fl->v3warn(E_UNSUPPORTED, "Unsupported: IEEE 1800-2001-config lib.map"
" reserved word not implemented: 'include'\n"
<< yylval.fl->warnMore() << "... Suggest unless in a lib.map file,"
" want `include instead");
FL_BRK; }
"instance" { FL; return yINSTANCE; }
"liblist" { FL; return yLIBLIST; }
"library" { FL; ERROR_RSVD_WORD("Verilog 2001-config lib.map"); }
"library" { FL; ERROR_RSVD_WORD("IEEE 1800-2001-config lib.map"); FL_BRK; }
"use" { FL; return yUSE; }
}
@ -474,6 +478,11 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"$changing_gclk" { FL; return yD_CHANGING_GCLK; }
"$countbits" { FL; return yD_COUNTBITS; }
"$countones" { FL; return yD_COUNTONES; }
"$coverage_control" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$coverage_get" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$coverage_get_max" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$coverage_merge" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$coverage_save" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$dimensions" { FL; return yD_DIMENSIONS; }
"$error" { FL; return yD_ERROR; }
"$falling_gclk" { FL; return yD_FALLING_GCLK; }
@ -481,13 +490,16 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"$fell" { FL; return yD_FELL; }
"$fell_gclk" { FL; return yD_FELL_GCLK; }
"$future_gclk" { FL; return yD_FUTURE_GCLK; }
"$get_coverage" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$high" { FL; return yD_HIGH; }
"$increment" { FL; return yD_INCREMENT; }
"$inferred_clock" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$inferred_disable" { FL; return yD_INFERRED_DISABLE; }
"$info" { FL; return yD_INFO; }
"$isunbounded" { FL; return yD_ISUNBOUNDED; }
"$isunknown" { FL; return yD_ISUNKNOWN; }
"$left" { FL; return yD_LEFT; }
"$load_coverage_db" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$low" { FL; return yD_LOW; }
"$onehot" { FL; return yD_ONEHOT; }
"$onehot0" { FL; return yD_ONEHOT0; }
@ -498,6 +510,7 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
"$root" { FL; return yD_ROOT; }
"$rose" { FL; return yD_ROSE; }
"$rose_gclk" { FL; return yD_ROSE_GCLK; }
"$set_coverage_db_name" { FL; ERROR_RSVD_WORD("IEEE 1800-2005"); return yaD_PLI; }
"$size" { FL; return yD_SIZE; }
"$stable" { FL; return yD_STABLE; }
"$stable_gclk" { FL; return yD_STABLE_GCLK; }
@ -609,6 +622,16 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
/* SystemVerilog 2009 */
<S09,S12,S17,S23,SAX>{
/* System Tasks */
"$assertfailoff" { FL; return yD_ASSERTFAILOFF; }
"$assertfailon" { FL; return yD_ASSERTFAILON; }
"$assertkill" { FL; return yD_ASSERTKILL; }
"$assertnonvacuouson" { FL; return yD_ASSERTNONVACUOUSON; }
"$assertoff" { FL; return yD_ASSERTOFF; }
"$asserton" { FL; return yD_ASSERTON; }
"$assertpassoff" { FL; return yD_ASSERTPASSOFF; }
"$assertpasson" { FL; return yD_ASSERTPASSON; }
"$assertvacuousoff" { FL; return yD_ASSERTVACUOUSOFF; }
/* Keywords */
"accept_on" { FL; return yACCEPT_ON; }
"checker" { FL; return yCHECKER; }
@ -638,9 +661,6 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
<S12,S17,S23,SAX>{
/* System Tasks */
"$assertcontrol" { FL; return yD_ASSERTCTL; }
"$assertkill" { FL; return yD_ASSERTKILL; }
"$assertoff" { FL; return yD_ASSERTOFF; }
"$asserton" { FL; return yD_ASSERTON; }
/* Keywords */
"implements" { FL; return yIMPLEMENTS; }
"interconnect" { FL; return yINTERCONNECT; }
@ -665,92 +685,92 @@ vnum {vnum1}|{vnum2}|{vnum3}|{vnum4}|{vnum5}
<VA5,SAX>{
/* Generic unsupported warnings */
"1step" { FL; return y1STEP; }
"above" { ERROR_RSVD_WORD("AMS"); }
"abs" { ERROR_RSVD_WORD("AMS"); }
"absdelay" { ERROR_RSVD_WORD("AMS"); }
"abstol" { ERROR_RSVD_WORD("AMS"); }
"ac_stim" { ERROR_RSVD_WORD("AMS"); }
"access" { ERROR_RSVD_WORD("AMS"); }
"acos" { ERROR_RSVD_WORD("AMS"); }
"acosh" { ERROR_RSVD_WORD("AMS"); }
"aliasparam" { ERROR_RSVD_WORD("AMS"); }
"analog" { ERROR_RSVD_WORD("AMS"); }
"analysis" { ERROR_RSVD_WORD("AMS"); }
"above" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"abs" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"absdelay" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"abstol" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ac_stim" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"access" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"acos" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"acosh" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"aliasparam" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"analog" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"analysis" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"asin" { FL; return yD_ASIN; }
"asinh" { FL; return yD_ASINH; }
"assert" { ERROR_RSVD_WORD("AMS"); }
"assert" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"atan" { FL; return yD_ATAN; }
"atan2" { FL; return yD_ATAN2; }
"atanh" { FL; return yD_ATANH; }
"branch" { ERROR_RSVD_WORD("AMS"); }
"branch" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ceil" { FL; return yD_CEIL; }
"connect" { ERROR_RSVD_WORD("AMS"); }
"connectmodule" { ERROR_RSVD_WORD("AMS"); }
"connectrules" { ERROR_RSVD_WORD("AMS"); }
"continuous" { ERROR_RSVD_WORD("AMS"); }
"connect" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"connectmodule" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"connectrules" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"continuous" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"cos" { FL; return yD_COS; }
"cosh" { FL; return yD_COSH; }
"cross" { ERROR_RSVD_WORD("AMS"); }
"ddt" { ERROR_RSVD_WORD("AMS"); }
"ddt_nature" { ERROR_RSVD_WORD("AMS"); }
"ddx" { ERROR_RSVD_WORD("AMS"); }
"discipline" { ERROR_RSVD_WORD("AMS"); }
"discrete" { ERROR_RSVD_WORD("AMS"); }
"domain" { ERROR_RSVD_WORD("AMS"); }
"driver_update" { ERROR_RSVD_WORD("AMS"); }
"endconnectrules" { ERROR_RSVD_WORD("AMS"); }
"enddiscipline" { ERROR_RSVD_WORD("AMS"); }
"endnature" { ERROR_RSVD_WORD("AMS"); }
"endparamset" { ERROR_RSVD_WORD("AMS"); }
"exclude" { ERROR_RSVD_WORD("AMS"); }
"cross" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ddt" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ddt_nature" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ddx" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"discipline" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"discrete" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"domain" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"driver_update" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"endconnectrules" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"enddiscipline" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"endnature" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"endparamset" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"exclude" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"exp" { FL; return yD_EXP; }
"final_step" { ERROR_RSVD_WORD("AMS"); }
"flicker_noise" { ERROR_RSVD_WORD("AMS"); }
"final_step" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"flicker_noise" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"floor" { FL; return yD_FLOOR; }
"flow" { ERROR_RSVD_WORD("AMS"); }
"from" { ERROR_RSVD_WORD("AMS"); }
"ground" { ERROR_RSVD_WORD("AMS"); }
"flow" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"from" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ground" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"hypot" { FL; return yD_HYPOT; }
"idt" { ERROR_RSVD_WORD("AMS"); }
"idt_nature" { ERROR_RSVD_WORD("AMS"); }
"idtmod" { ERROR_RSVD_WORD("AMS"); }
"inf" { ERROR_RSVD_WORD("AMS"); }
"initial_step" { ERROR_RSVD_WORD("AMS"); }
"laplace_nd" { ERROR_RSVD_WORD("AMS"); }
"laplace_np" { ERROR_RSVD_WORD("AMS"); }
"laplace_zd" { ERROR_RSVD_WORD("AMS"); }
"laplace_zp" { ERROR_RSVD_WORD("AMS"); }
"last_crossing" { ERROR_RSVD_WORD("AMS"); }
"limexp" { ERROR_RSVD_WORD("AMS"); }
"idt" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"idt_nature" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"idtmod" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"inf" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"initial_step" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"laplace_nd" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"laplace_np" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"laplace_zd" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"laplace_zp" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"last_crossing" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"limexp" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"ln" { FL; return yD_LN; }
"log" { FL; return yD_LOG10; }
"max" { ERROR_RSVD_WORD("AMS"); }
"merged" { ERROR_RSVD_WORD("AMS"); }
"min" { ERROR_RSVD_WORD("AMS"); }
"nature" { ERROR_RSVD_WORD("AMS"); }
"net_resolution" { ERROR_RSVD_WORD("AMS"); }
"noise_table" { ERROR_RSVD_WORD("AMS"); }
"paramset" { ERROR_RSVD_WORD("AMS"); }
"potential" { ERROR_RSVD_WORD("AMS"); }
"max" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"merged" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"min" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"nature" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"net_resolution" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"noise_table" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"paramset" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"potential" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"pow" { FL; return yD_POW; }
"resolveto" { ERROR_RSVD_WORD("AMS"); }
"resolveto" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"sin" { FL; return yD_SIN; }
"sinh" { FL; return yD_SINH; }
"slew" { ERROR_RSVD_WORD("AMS"); }
"split" { ERROR_RSVD_WORD("AMS"); }
"slew" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"split" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"sqrt" { FL; return yD_SQRT; }
"string" { FL; return ySTRING; }
"tan" { FL; return yD_TAN; }
"tanh" { FL; return yD_TANH; }
"timer" { ERROR_RSVD_WORD("AMS"); }
"transition" { ERROR_RSVD_WORD("AMS"); }
"units" { ERROR_RSVD_WORD("AMS"); }
"white_noise" { ERROR_RSVD_WORD("AMS"); }
"timer" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"transition" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"units" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"white_noise" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"wreal" { FL; return yWREAL; }
"zi_nd" { ERROR_RSVD_WORD("AMS"); }
"zi_np" { ERROR_RSVD_WORD("AMS"); }
"zi_zd" { ERROR_RSVD_WORD("AMS"); }
"zi_zp" { ERROR_RSVD_WORD("AMS"); }
"zi_nd" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"zi_np" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"zi_zd" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
"zi_zp" { FL; ERROR_RSVD_WORD("AMS"); FL_BRK; }
}
/************************************************************************/

View File

@ -530,13 +530,13 @@ BISONPRE_VERSION(3.7,%define api.header.include {"V3ParseBison.h"})
%token<strp> yaSTRING "STRING"
%token<strp> yaSTRING__IGNORE "STRING-ignored" // Used when expr:string not allowed
// IEEE: edge_descriptor
%token<nump> yaEDGEDESC "EDGE DESCRIPTOR"
%token<nump> yaEDGEDESC "EDGE DESCRIPTOR"
%token<fl> yaTIMINGSPEC "TIMING SPEC ELEMENT"
%token<fl> ygenSTRENGTH "STRENGTH keyword (strong1/etc)"
%token<strp> yaTABLE_FIELD "UDP table field"
%token<strp> yaTABLE_FIELD "UDP table field"
%token<fl> yaTABLE_LRSEP ":"
%token<fl> yaTABLE_LINEEND "UDP table line end"
@ -903,9 +903,15 @@ BISONPRE_VERSION(3.7,%define api.header.include {"V3ParseBison.h"})
%token<fl> yD_ASIN "$asin"
%token<fl> yD_ASINH "$asinh"
%token<fl> yD_ASSERTCTL "$assertcontrol"
%token<fl> yD_ASSERTFAILOFF "$assertfailoff"
%token<fl> yD_ASSERTFAILON "$assertfailon"
%token<fl> yD_ASSERTKILL "$assertkill"
%token<fl> yD_ASSERTNONVACUOUSON "$assertnonvacuouson"
%token<fl> yD_ASSERTOFF "$assertoff"
%token<fl> yD_ASSERTON "$asserton"
%token<fl> yD_ASSERTPASSOFF "$assertpassoff"
%token<fl> yD_ASSERTPASSON "$assertpasson"
%token<fl> yD_ASSERTVACUOUSOFF "$assertvacuousoff"
%token<fl> yD_ATAN "$atan"
%token<fl> yD_ATAN2 "$atan2"
%token<fl> yD_ATANH "$atanh"
@ -4483,15 +4489,33 @@ system_t_call<nodeStmtp>: // IEEE: system_tf_call (as task)
| yD_ASSERTCTL '(' expr ',' exprE ',' exprE ')' { $$ = new AstAssertCtl{$1, $3, $5, $7}; }
| yD_ASSERTCTL '(' expr ',' exprE ',' exprE ',' exprE ')' { $$ = new AstAssertCtl{$1, $3, $5, $7, $9}; }
| yD_ASSERTCTL '(' expr ',' exprE ',' exprE ',' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, $3, $5, $7, $9, $11}; }
| yD_ASSERTKILL parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL}; }
| yD_ASSERTKILL '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL, $3}; }
| yD_ASSERTKILL '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL, $3, $5}; }
| yD_ASSERTOFF parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF}; }
| yD_ASSERTOFF '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF, $3}; }
| yD_ASSERTOFF '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF, $3, $5}; }
| yD_ASSERTON parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::ON}; }
| yD_ASSERTON '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::ON, $3}; }
| yD_ASSERTON '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::ON, $3, $5}; }
| yD_ASSERTFAILOFF '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_OFF, 31, 7, $3}; }
| yD_ASSERTFAILOFF '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_OFF, 31, 7, $3, $5}; }
| yD_ASSERTFAILOFF parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_OFF, 31, 7}; }
| yD_ASSERTFAILON '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_ON, 31, 7, $3}; }
| yD_ASSERTFAILON '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_ON, 31, 7, $3, $5}; }
| yD_ASSERTFAILON parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::FAIL_ON, 31, 7}; }
| yD_ASSERTKILL '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL, 15, 7, $3}; }
| yD_ASSERTKILL '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL, 15, 7, $3, $5}; }
| yD_ASSERTKILL parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::KILL, 15, 7}; }
| yD_ASSERTNONVACUOUSON '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::NONVACUOUS_ON, 31, 7, $3}; }
| yD_ASSERTNONVACUOUSON '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::NONVACUOUS_ON, 31, 7, $3, $5}; }
| yD_ASSERTNONVACUOUSON parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::NONVACUOUS_ON, 31, 7}; }
| yD_ASSERTOFF '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF, 15, 7, $3}; }
| yD_ASSERTOFF '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF, 15, 7, $3, $5}; }
| yD_ASSERTOFF parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::OFF, 15, 7}; }
| yD_ASSERTON '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::ON, 15, 7, $3}; }
| yD_ASSERTON '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::ON, 15, 7, $3, $5}; }
| yD_ASSERTON parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::ON, 15, 7}; }
| yD_ASSERTPASSOFF '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_OFF, 31, 7, $3}; }
| yD_ASSERTPASSOFF '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_OFF, 31, 7, $3, $5}; }
| yD_ASSERTPASSOFF parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_OFF, 31, 7}; }
| yD_ASSERTPASSON '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_ON, 31, 7, $3}; }
| yD_ASSERTPASSON '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_ON, 31, 7, $3, $5}; }
| yD_ASSERTPASSON parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::PASS_ON, 31, 7}; }
| yD_ASSERTVACUOUSOFF '(' expr ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::VACUOUS_OFF, 31, 7, $3}; }
| yD_ASSERTVACUOUSOFF '(' exprE ',' exprList ')' { $$ = new AstAssertCtl{$1, VAssertCtlType::VACUOUS_OFF, 31, 7, $3, $5}; }
| yD_ASSERTVACUOUSOFF parenE { $$ = new AstAssertCtl{$1, VAssertCtlType::VACUOUS_OFF, 31, 7}; }
//
| yD_MONITOROFF parenE { $$ = new AstMonitorOff{$1, true}; }
| yD_MONITORON parenE { $$ = new AstMonitorOff{$1, false}; }
@ -6654,9 +6678,10 @@ sequence_declarationBody<nodep>: // IEEE: part of sequence_declaration
property_spec<propSpecp>: // IEEE: property_spec
//UNSUP: This rule has been super-specialized to what is supported now
//UNSUP remove below
'@' '(' senitemEdge ')' yDISABLE yIFF '(' expr ')' pexpr
'@' '(' senitem ')' yDISABLE yIFF '(' expr ')' pexpr
{ $$ = new AstPropSpec{$1, $3, $8, $10}; }
| '@' '(' senitemEdge ')' pexpr { $$ = new AstPropSpec{$1, $3, nullptr, $5}; }
| '@' '(' senitem ')' pexpr
{ $$ = new AstPropSpec{$1, $3, nullptr, $5}; }
// // Disable applied after the event occurs,
// // so no existing AST can represent this
| yDISABLE yIFF '(' expr ')' '@' '(' senitemEdge ')' pexpr

View File

@ -25,9 +25,9 @@ module t (/*AUTOARG*/
);
input clk;
let ON = 3;
let OFF = 4;
let KILL = 5;
let On = 3;
let Off = 4;
let Kill = 5;
let CONCURRENT = 1;
let SIMPLE_IMMEDIATE = 2;
@ -44,24 +44,24 @@ module t (/*AUTOARG*/
initial begin
// simple immediate
$assertcontrol(OFF, ALL_TYPES);
$assertcontrol(ON, SIMPLE_IMMEDIATE);
$assertcontrol(Off, ALL_TYPES);
$assertcontrol(On, SIMPLE_IMMEDIATE);
`RUN_ALL_ASSERTS
$assertcontrol(OFF, SIMPLE_IMMEDIATE);
$assertcontrol(Off, SIMPLE_IMMEDIATE);
`RUN_ALL_ASSERTS
// observed deferred immediate
$assertcontrol(OFF, ALL_TYPES);
$assertcontrol(ON, OBSERVED_DEFERRED_IMMEDIATE);
$assertcontrol(Off, ALL_TYPES);
$assertcontrol(On, OBSERVED_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS
$assertcontrol(OFF, OBSERVED_DEFERRED_IMMEDIATE);
$assertcontrol(Off, OBSERVED_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS
// final deferred immediate
$assertcontrol(OFF, ALL_TYPES);
$assertcontrol(ON, FINAL_DEFERRED_IMMEDIATE);
$assertcontrol(Off, ALL_TYPES);
$assertcontrol(On, FINAL_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS
$assertcontrol(OFF, FINAL_DEFERRED_IMMEDIATE);
$assertcontrol(Off, FINAL_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS
// on, off, kill test
@ -72,54 +72,54 @@ module t (/*AUTOARG*/
$assertkill;
`RUN_ALL_ASSERTS;
$assertcontrol(ON, SIMPLE_IMMEDIATE|OBSERVED_DEFERRED_IMMEDIATE);
$assertcontrol(On, SIMPLE_IMMEDIATE|OBSERVED_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(ON, FINAL_DEFERRED_IMMEDIATE);
$assertcontrol(On, FINAL_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, OBSERVED_DEFERRED_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE);
$assertcontrol(Off, OBSERVED_DEFERRED_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, FINAL_DEFERRED_IMMEDIATE);
$assertcontrol(Off, FINAL_DEFERRED_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, SIMPLE_IMMEDIATE);
$assertcontrol(Off, SIMPLE_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(ON, SIMPLE_IMMEDIATE);
$assertcontrol(On, SIMPLE_IMMEDIATE);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, ALL_TYPES);
$assertcontrol(Off, ALL_TYPES);
`RUN_ALL_ASSERTS;
$assertcontrol(ON, ALL_TYPES);
$assertcontrol(On, ALL_TYPES);
`RUN_ALL_ASSERTS;
$assertcontrol(KILL, ALL_TYPES);
$assertcontrol(Kill, ALL_TYPES);
`RUN_ALL_ASSERTS;
// directive_type test
$assertoff;
$assertcontrol(ON, ALL_TYPES, ASSERT);
$assertcontrol(On, ALL_TYPES, ASSERT);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, ALL_TYPES, ASSERT);
$assertcontrol(ON, ALL_TYPES, COVER);
$assertcontrol(Off, ALL_TYPES, ASSERT);
$assertcontrol(On, ALL_TYPES, COVER);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, ALL_TYPES, COVER);
$assertcontrol(ON, ALL_TYPES, ASSUME);
$assertcontrol(Off, ALL_TYPES, COVER);
$assertcontrol(On, ALL_TYPES, ASSUME);
`RUN_ALL_ASSERTS;
$assertcontrol(OFF, ALL_TYPES, ASSUME);
$assertcontrol(ON, ALL_TYPES, ASSERT|COVER);
$assertcontrol(Off, ALL_TYPES, ASSUME);
$assertcontrol(On, ALL_TYPES, ASSERT|COVER);
`RUN_ALL_ASSERTS;
$assertcontrol(ON, ALL_TYPES, ASSUME);
$assertcontrol(On, ALL_TYPES, ASSUME);
`RUN_ALL_ASSERTS;
$assertoff;
`RUN_ALL_ASSERTS;
$assertcontrol(ON, SIMPLE_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE, COVER|ASSUME);
$assertcontrol(On, SIMPLE_IMMEDIATE|FINAL_DEFERRED_IMMEDIATE, COVER|ASSUME);
`RUN_ALL_ASSERTS;
$assertoff;
// concurrent test
#10;
$display("Disabling concurrent asserts, time: %g", $time);
$assertcontrol(ON, ALL_TYPES);
$assertcontrol(OFF, CONCURRENT);
$assertcontrol(On, ALL_TYPES);
$assertcontrol(Off, CONCURRENT);
#10;
$display("Enabling concurrent asserts, time: %g", $time);
$assertcontrol(ON, CONCURRENT);
$assertcontrol(On, CONCURRENT);
$write("*-* All Finished *-*\n");
$finish;

View File

@ -0,0 +1,8 @@
%Error: t/t_assert_ctl_type_bad.v:9:5: Bad assertcontrol control_type (IEEE 1800-2023 Table 20-5)
9 | $assertcontrol(0);
| ^~~~~~~~~~~~~~
... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance.
%Error: t/t_assert_ctl_type_bad.v:10:5: Bad assertcontrol control_type (IEEE 1800-2023 Table 20-5)
10 | $assertcontrol(100);
| ^~~~~~~~~~~~~~
%Error: Exiting due to

View File

@ -0,0 +1,16 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2024 by Wilson Snyder. This program is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('linter')
test.lint(verilator_flags2=['--assert'], fails=True, expect_filename=test.golden_filename)
test.passes()

View File

@ -0,0 +1,12 @@
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
module t;
initial begin
$assertcontrol(0);
$assertcontrol(100);
end
endmodule

View File

@ -1,58 +1,123 @@
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:18:7: Unsupported: non-constant assert assertion-type expression
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:25:7: Unsupported: non-constant assert assertion-type expression
: ... note: In instance 't.unsupported_ctl_type'
18 | $assertcontrol(1, a);
25 | $assertcontrol(Lock, a);
| ^~~~~~~~~~~~~~
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:19:7: Unsupported assertcontrol control_type
19 | $assertcontrol(2);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:27:7: Unsupported assertcontrol control_type
27 | $assertcontrol(Unlock);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:20:7: Unsupported assertcontrol control_type
20 | $assertcontrol(6);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:29:7: Unsupported assertcontrol control_type
29 | $assertcontrol(PassOn);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:21:7: Unsupported assertcontrol control_type
21 | $assertcontrol(7);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:30:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
30 | $assertpasson;
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:31:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
31 | $assertpasson(a);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:32:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
32 | $assertpasson(a, t);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:34:7: Unsupported assertcontrol control_type
34 | $assertcontrol(PassOff);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:22:7: Unsupported assertcontrol control_type
22 | $assertcontrol(8);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:35:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
35 | $assertpassoff;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:23:7: Unsupported assertcontrol control_type
23 | $assertcontrol(9);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:36:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
36 | $assertpassoff(a);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:24:7: Unsupported assertcontrol control_type
24 | $assertcontrol(10);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:37:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
37 | $assertpassoff(a, t);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:25:7: Unsupported assertcontrol control_type
25 | $assertcontrol(11);
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:39:7: Unsupported assertcontrol control_type
39 | $assertcontrol(FailOn);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:32:7: Unsupported: non-const assert control type expression
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:40:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
40 | $assertfailon;
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:41:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
41 | $assertfailon(a);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:42:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
42 | $assertfailon(a, t);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:44:7: Unsupported assertcontrol control_type
44 | $assertcontrol(FailOff);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:45:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
45 | $assertfailoff;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:46:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
46 | $assertfailoff(a);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:47:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
47 | $assertfailoff(a, t);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:49:7: Unsupported assertcontrol control_type
49 | $assertcontrol(NonvacuousOn);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:50:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
50 | $assertnonvacuouson;
| ^~~~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:51:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
51 | $assertnonvacuouson(a);
| ^~~~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:52:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
52 | $assertnonvacuouson(a, t);
| ^~~~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:54:7: Unsupported assertcontrol control_type
54 | $assertcontrol(VacuousOff);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:55:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
55 | $assertvacuousoff;
| ^~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:56:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
56 | $assertvacuousoff(a);
| ^~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:57:7: Unsupported: assert control assertion_type
: ... note: In instance 't.unsupported_ctl_type'
57 | $assertvacuousoff(a, t);
| ^~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:64:7: Unsupported: non-const assert control type expression
: ... note: In instance 't.unsupported_ctl_type_expr'
32 | $assertcontrol(ctl_type);
64 | $assertcontrol(ctl_type);
| ^~~~~~~~~~~~~~
%Error: t/t_assert_ctl_unsup.v:38:7: Bad assertcontrol control_type (IEEE 1800-2023 Table 20-5)
38 | $assertcontrol(0);
| ^~~~~~~~~~~~~~
... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance.
%Error: t/t_assert_ctl_unsup.v:39:7: Bad assertcontrol control_type (IEEE 1800-2023 Table 20-5)
39 | $assertcontrol(100);
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:68:10: Unsupported: assertcontrols in classes or interfaces
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:93:10: Unsupported: assertcontrols in classes or interfaces
: ... note: In instance 't.assert_class'
68 | $asserton;
93 | $asserton;
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:74:10: Unsupported: assertcontrols in classes or interfaces
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:99:10: Unsupported: assertcontrols in classes or interfaces
: ... note: In instance 't.assert_class'
74 | $assertoff;
99 | $assertoff;
| ^~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:147:7: Unsupported: assertcontrols in classes or interfaces
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:172:7: Unsupported: assertcontrols in classes or interfaces
: ... note: In instance 't.assert_iface'
147 | $assertoff;
172 | $assertoff;
| ^~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:113:7: Unsupported: assertcontrols in classes or interfaces
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:138:7: Unsupported: assertcontrols in classes or interfaces
: ... note: In instance 't.assert_iface_class'
113 | $assertoff;
138 | $assertoff;
| ^~~~~~~~~~
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:120:7: Unsupported: assertcontrols in classes or interfaces
%Error-UNSUPPORTED: t/t_assert_ctl_unsup.v:145:7: Unsupported: assertcontrols in classes or interfaces
: ... note: In instance 't.assert_iface_class'
120 | $asserton;
145 | $asserton;
| ^~~~~~~~~
%Error: Exiting due to

View File

@ -7,7 +7,6 @@
module t(input logic clk);
unsupported_ctl_type unsupported_ctl_type(clk ? 1 : 2);
unsupported_ctl_type_expr unsupported_ctl_type_expr();
bad_assertcontrol_ctl_type bad_assertcontrol_ctl_type();
assert_class assert_class();
assert_iface assert_iface();
assert_iface_class assert_iface_class();
@ -15,14 +14,47 @@ endmodule
module unsupported_ctl_type(input int a);
initial begin
$assertcontrol(1, a);
$assertcontrol(2);
$assertcontrol(6);
$assertcontrol(7);
$assertcontrol(8);
$assertcontrol(9);
$assertcontrol(10);
$assertcontrol(11);
let Lock = 1;
let Unlock = 2;
let PassOn = 6;
let PassOff = 7;
let FailOn = 8;
let FailOff = 9;
let NonvacuousOn = 10;
let VacuousOff = 11;
$assertcontrol(Lock, a);
$assertcontrol(Unlock);
$assertcontrol(PassOn);
$assertpasson;
$assertpasson(a);
$assertpasson(a, t);
$assertcontrol(PassOff);
$assertpassoff;
$assertpassoff(a);
$assertpassoff(a, t);
$assertcontrol(FailOn);
$assertfailon;
$assertfailon(a);
$assertfailon(a, t);
$assertcontrol(FailOff);
$assertfailoff;
$assertfailoff(a);
$assertfailoff(a, t);
$assertcontrol(NonvacuousOn);
$assertnonvacuouson;
$assertnonvacuouson(a);
$assertnonvacuouson(a, t);
$assertcontrol(VacuousOff);
$assertvacuousoff;
$assertvacuousoff(a);
$assertvacuousoff(a, t);
end
endmodule
@ -33,13 +65,6 @@ module unsupported_ctl_type_expr;
end
endmodule
module bad_assertcontrol_ctl_type;
initial begin
$assertcontrol(0);
$assertcontrol(100);
end
endmodule
module assert_class;
virtual class AssertCtl;
pure virtual function void virtual_assert_ctl();

View File

@ -1,4 +1,4 @@
%Error-UNSUPPORTED: t/t_config_include_bad.v:7:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'include'
%Error-UNSUPPORTED: t/t_config_include_bad.v:7:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'include'
: ... Suggest unless in a lib.map file, want `include instead
7 | include "meant_to_tick_include.v"
| ^~~~~~~

View File

@ -1,4 +1,4 @@
%Error-UNSUPPORTED: t/t_config_libmap.map:9:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'include'
%Error-UNSUPPORTED: t/t_config_libmap.map:9:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'include'
: ... Suggest unless in a lib.map file, want `include instead
9 | include ./t_config_libmap_inc.map
| ^~~~~~~
@ -7,23 +7,25 @@
9 | include ./t_config_libmap_inc.map
| ^
... See the manual at https://verilator.org/verilator_doc.html?v=latest for more assistance.
%Error-UNSUPPORTED: t/t_config_libmap.map:11:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'library'
%Error-UNSUPPORTED: t/t_config_libmap.map:11:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'library'
11 | library rtllib *.v;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:12:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'library'
| ^~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:12:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'library'
12 | library rtllib2 *.v, *.sv;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:13:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'library'
| ^~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:13:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'library'
13 | library rtllib3 *.v -incdir *.vh;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:13:29: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'incdir'
%Error-UNSUPPORTED: t/t_config_libmap.map:14:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'library'
| ^~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:13:22: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'incdir'
13 | library rtllib3 *.v -incdir *.vh;
| ^~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:14:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'library'
14 | library rtllib4 *.v -incdir *.vh, *.svh;
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:14:29: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'incdir'
| ^~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:14:22: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'incdir'
14 | library rtllib4 *.v -incdir *.vh, *.svh;
| ^~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:17:1: Unsupported: Verilog 2001-config lib.map reserved word not implemented: 'library'
| ^~~~~~
%Error-UNSUPPORTED: t/t_config_libmap.map:17:1: Unsupported: IEEE 1800-2001-config lib.map reserved word not implemented: 'library'
17 | library gatelib .
| ^~~~~~~~~~~~~~
| ^~~~~~~
%Error: Exiting due to

View File

@ -0,0 +1,26 @@
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:18:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$coverage_control'
18 | i = $coverage_control(0, 23, 10, t);
| ^~~~~~~~~~~~~~~~~
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:21:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$coverage_get'
21 | i = $coverage_get(23, 10, t);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:24:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$coverage_get_max'
24 | i = $coverage_get_max(23, 10, t);
| ^~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:27:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$get_coverage'
27 | r = $get_coverage();
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:29:5: Unsupported: IEEE 1800-2005 reserved word not implemented: '$set_coverage_db_name'
29 | $set_coverage_db_name("filename");
| ^~~~~~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:31:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$coverage_save'
31 | i = $coverage_save(coverage_type, "filename");
| ^~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:34:5: Unsupported: IEEE 1800-2005 reserved word not implemented: '$load_coverage_db'
34 | $load_coverage_db("filename");
| ^~~~~~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_cover_sys_unsup.v:36:9: Unsupported: IEEE 1800-2005 reserved word not implemented: '$coverage_merge'
36 | i = $coverage_merge(coverage_type, "filename");
| ^~~~~~~~~~~~~~~
%Error: Exiting due to

View File

@ -0,0 +1,16 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2024 by Wilson Snyder. This program is free software; you can
# redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('vlt')
test.lint(fails=test.vlt_all, expect_filename=test.golden_filename)
test.passes()

View File

@ -0,0 +1,42 @@
// DESCRIPTION: Verilator: Verilog Test module for SystemVerilog 'alias'
//
// Simple bi-directional alias test.
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
module t;
real r;
int i;
initial begin
// control_constant = `SV_COV_START, `SV_COV_STOP, `SV_COV_RESET, `SV_COV_CHECK
// coverage_type = `SV_COV_ASSERTION, `SV_COV_FSM_STATE, `SV_COV_STATEMENT,`SV_COV_TOGGLE
// scope_def = [`SV_COV_MODULE, "unique module def name"], [`SV_COV_HIER, "module name"],
// [`SV_COV_MODULE, instance_name], [`SV_COV_HIER, instance_name]
i = $coverage_control(`SV_COV_START, `SV_COV_TOGGLE, `SV_COV_MODULE, t);
// returns `SV_COV_OK, `SV_COV_ERROR, `SV_COV_NOCOV, `SV_COV_PARTIAL
i = $coverage_get(`SV_COV_TOGGLE, `SV_COV_MODULE, t);
// returns number or `SC_COV_OVERFLOW, `SC_COV_ERROR, `SV_COV_NOCOV
i = $coverage_get_max(`SV_COV_TOGGLE, `SV_COV_MODULE, t);
// returns number or `SC_COV_OVERFLOW, `SC_COV_ERROR, `SV_COV_NOCOV
r = $get_coverage();
$set_coverage_db_name("filename");
i = $coverage_save(coverage_type, "filename");
// returns `SV_COV_OK, `SC_COV_NOCOV, `SC_COV_ERROR
$load_coverage_db("filename");
i = $coverage_merge(coverage_type, "filename");
// returns `SV_COV_OK, `SC_COV_NOCOV, `SC_COV_ERROR
$finish;
end
endmodule

View File

@ -488,34 +488,52 @@
"lhsp": [
{"type":"PARSEREF","name":"out","addr":"(XH)","loc":"e,83:7,83:10","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []},
{"type":"ASSERTCTL","name":"","addr":"(YH)","loc":"e,86:7,86:17","ctlType":"$assertoff",
{"type":"ASSERTCTL","name":"","addr":"(YH)","loc":"e,86:7,86:17","ctlType":"",
"controlTypep": [
{"type":"CONST","name":"32'h4","addr":"(ZH)","loc":"e,86:7,86:17","dtypep":"(OC)"}
],"assertTypesp": [],"directiveTypesp": []},
{"type":"ASSERTCTL","name":"","addr":"(AI)","loc":"e,87:7,87:18","ctlType":"$assertkill",
"controlTypep": [
{"type":"CONST","name":"32'h5","addr":"(BI)","loc":"e,87:7,87:18","dtypep":"(OC)"}
],"assertTypesp": [],"directiveTypesp": []},
{"type":"ASSERT","name":"","addr":"(CI)","loc":"e,88:7,88:13","type":"[SIMPLE_IMMEDIATE]",
"propp": [
{"type":"CONST","name":"?32?sh0","addr":"(DI)","loc":"e,88:14,88:15","dtypep":"(N)"}
],"sentreep": [],"failsp": [],"passsp": []},
{"type":"ASSERTCTL","name":"","addr":"(EI)","loc":"e,89:7,89:16","ctlType":"$asserton",
"controlTypep": [
{"type":"CONST","name":"32'h3","addr":"(FI)","loc":"e,89:7,89:16","dtypep":"(OC)"}
],"assertTypesp": [],"directiveTypesp": []},
{"type":"ASSERTCTL","name":"","addr":"(GI)","loc":"e,90:7,90:21","ctlType":"",
"controlTypep": [
{"type":"CONST","name":"?32?sh3","addr":"(HI)","loc":"e,90:22,90:23","dtypep":"(SD)"}
],
"assertTypesp": [
{"type":"CONST","name":"?32?sh8","addr":"(II)","loc":"e,90:25,90:26","dtypep":"(LF)"}
{"type":"CONST","name":"32'hf","addr":"(AI)","loc":"e,86:7,86:17","dtypep":"(OC)"}
],
"directiveTypesp": [
{"type":"CONST","name":"32'h7","addr":"(BI)","loc":"e,86:7,86:17","dtypep":"(OC)"}
]},
{"type":"ASSERTCTL","name":"","addr":"(CI)","loc":"e,87:7,87:18","ctlType":"",
"controlTypep": [
{"type":"CONST","name":"32'h5","addr":"(DI)","loc":"e,87:7,87:18","dtypep":"(OC)"}
],
"assertTypesp": [
{"type":"CONST","name":"32'hf","addr":"(EI)","loc":"e,87:7,87:18","dtypep":"(OC)"}
],
"directiveTypesp": [
{"type":"CONST","name":"32'h7","addr":"(FI)","loc":"e,87:7,87:18","dtypep":"(OC)"}
]},
{"type":"ASSERT","name":"","addr":"(GI)","loc":"e,88:7,88:13","type":"[SIMPLE_IMMEDIATE]",
"propp": [
{"type":"CONST","name":"?32?sh0","addr":"(HI)","loc":"e,88:14,88:15","dtypep":"(N)"}
],"sentreep": [],"failsp": [],"passsp": []},
{"type":"ASSERTCTL","name":"","addr":"(II)","loc":"e,89:7,89:16","ctlType":"",
"controlTypep": [
{"type":"CONST","name":"32'h3","addr":"(JI)","loc":"e,89:7,89:16","dtypep":"(OC)"}
],
"assertTypesp": [
{"type":"CONST","name":"32'hf","addr":"(KI)","loc":"e,89:7,89:16","dtypep":"(OC)"}
],
"directiveTypesp": [
{"type":"CONST","name":"32'h7","addr":"(LI)","loc":"e,89:7,89:16","dtypep":"(OC)"}
]},
{"type":"ASSERTCTL","name":"","addr":"(MI)","loc":"e,90:7,90:21","ctlType":"",
"controlTypep": [
{"type":"CONST","name":"?32?sh3","addr":"(NI)","loc":"e,90:22,90:23","dtypep":"(SD)"}
],
"assertTypesp": [
{"type":"CONST","name":"?32?sh8","addr":"(OI)","loc":"e,90:25,90:26","dtypep":"(LF)"}
],"directiveTypesp": []},
{"type":"BEGIN","name":"blk","addr":"(JI)","loc":"e,91:15,91:18","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":false,"genforp": [],
{"type":"BEGIN","name":"blk","addr":"(PI)","loc":"e,91:15,91:18","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":false,"genforp": [],
"stmtsp": [
{"type":"DISABLE","name":"","addr":"(KI)","loc":"e,92:10,92:17",
{"type":"DISABLE","name":"","addr":"(QI)","loc":"e,92:10,92:17",
"targetRefp": [
{"type":"PARSEREF","name":"blk","addr":"(LI)","loc":"e,92:18,92:21","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"blk","addr":"(RI)","loc":"e,92:18,92:21","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
]}
]}
@ -524,550 +542,550 @@
]},
{"type":"PACKAGE","name":"$unit","addr":"(E)","loc":"a,0:0,0:0","origName":"__024unit","level":3,"modPublic":false,"inLibrary":true,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [],
"stmtsp": [
{"type":"PACKAGEIMPORT","name":"*","addr":"(MI)","loc":"d,31:9,31:12","packagep":"(F)"}
{"type":"PACKAGEIMPORT","name":"*","addr":"(SI)","loc":"d,31:9,31:12","packagep":"(F)"}
]},
{"type":"PACKAGE","name":"std","addr":"(F)","loc":"d,31:9,31:12","origName":"std","level":4,"modPublic":false,"inLibrary":true,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"1ps","inlinesp": [],
"stmtsp": [
{"type":"CLASS","name":"mailbox","addr":"(NI)","loc":"d,32:4,32:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"mailbox","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
{"type":"CLASS","name":"mailbox","addr":"(TI)","loc":"d,32:4,32:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"mailbox","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
"stmtsp": [
{"type":"VAR","name":"T","addr":"(OI)","loc":"d,32:25,32:26","dtypep":"UNLINKED","origName":"T","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"GPARAM","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"T","addr":"(UI)","loc":"d,32:25,32:26","dtypep":"UNLINKED","origName":"T","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"GPARAM","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":true,"isParam":true,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"PARSETYPEDTYPE","name":"","addr":"(PI)","loc":"d,32:20,32:24","dtypep":"UNLINKED","generic":false}
{"type":"PARSETYPEDTYPE","name":"","addr":"(VI)","loc":"d,32:20,32:24","dtypep":"UNLINKED","generic":false}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"TYPEDEFFWD","name":"T","addr":"(QI)","loc":"d,32:25,32:26","fwdType":"none"},
{"type":"VAR","name":"m_bound","addr":"(RI)","loc":"d,33:21,33:28","dtypep":"UNLINKED","origName":"m_bound","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"TYPEDEFFWD","name":"T","addr":"(WI)","loc":"d,32:25,32:26","fwdType":"none"},
{"type":"VAR","name":"m_bound","addr":"(XI)","loc":"d,33:21,33:28","dtypep":"UNLINKED","origName":"m_bound","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(SI)","loc":"d,33:17,33:20","dtypep":"(SI)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(YI)","loc":"d,33:17,33:20","dtypep":"(YI)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"VAR","name":"m_queue","addr":"(TI)","loc":"d,34:19,34:26","dtypep":"UNLINKED","origName":"m_queue","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"m_queue","addr":"(ZI)","loc":"d,34:19,34:26","dtypep":"UNLINKED","origName":"m_queue","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BRACKETARRAYDTYPE","name":"","addr":"(UI)","loc":"d,34:26,34:27","dtypep":"UNLINKED","generic":false,
{"type":"BRACKETARRAYDTYPE","name":"","addr":"(AJ)","loc":"d,34:26,34:27","dtypep":"UNLINKED","generic":false,
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(VI)","loc":"d,34:17,34:18","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(BJ)","loc":"d,34:17,34:18","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],
"elementsp": [
{"type":"UNBOUNDED","name":"","addr":"(WI)","loc":"d,34:27,34:28","dtypep":"(XI)"}
{"type":"UNBOUNDED","name":"","addr":"(CJ)","loc":"d,34:27,34:28","dtypep":"(DJ)"}
]}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"FUNC","name":"new","addr":"(YI)","loc":"d,36:16,36:19","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"new","fvarp": [],"classOrPackagep": [],
{"type":"FUNC","name":"new","addr":"(EJ)","loc":"d,36:16,36:19","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"new","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"bound","addr":"(ZI)","loc":"d,36:24,36:29","dtypep":"UNLINKED","origName":"bound","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"bound","addr":"(FJ)","loc":"d,36:24,36:29","dtypep":"UNLINKED","origName":"bound","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(AJ)","loc":"d,36:20,36:23","dtypep":"(AJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(GJ)","loc":"d,36:20,36:23","dtypep":"(GJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],
"valuep": [
{"type":"CONST","name":"?32?sh0","addr":"(BJ)","loc":"d,36:32,36:33","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(HJ)","loc":"d,36:32,36:33","dtypep":"(N)"}
],"attrsp": []},
{"type":"ASSIGN","name":"","addr":"(CJ)","loc":"d,37:18,37:19","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(IJ)","loc":"d,37:18,37:19","dtypep":"UNLINKED",
"rhsp": [
{"type":"PARSEREF","name":"bound","addr":"(DJ)","loc":"d,37:20,37:25","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"bound","addr":"(JJ)","loc":"d,37:20,37:25","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"lhsp": [
{"type":"PARSEREF","name":"m_bound","addr":"(EJ)","loc":"d,37:10,37:17","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_bound","addr":"(KJ)","loc":"d,37:10,37:17","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"num","addr":"(FJ)","loc":"d,40:20,40:23","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"num",
{"type":"FUNC","name":"num","addr":"(LJ)","loc":"d,40:20,40:23","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"num",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(GJ)","loc":"d,40:16,40:19","dtypep":"(GJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(MJ)","loc":"d,40:16,40:19","dtypep":"(MJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"RETURN","name":"","addr":"(HJ)","loc":"d,41:10,41:16",
{"type":"RETURN","name":"","addr":"(NJ)","loc":"d,41:10,41:16",
"lhsp": [
{"type":"DOT","name":"","addr":"(IJ)","loc":"d,41:24,41:25","dtypep":"UNLINKED","colon":false,
{"type":"DOT","name":"","addr":"(OJ)","loc":"d,41:24,41:25","dtypep":"UNLINKED","colon":false,
"lhsp": [
{"type":"PARSEREF","name":"m_queue","addr":"(JJ)","loc":"d,41:17,41:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_queue","addr":"(PJ)","loc":"d,41:17,41:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"FUNCREF","name":"size","addr":"(KJ)","loc":"d,41:25,41:29","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"size","addr":"(QJ)","loc":"d,41:25,41:29","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
]}
]}
],"scopeNamep": []},
{"type":"TASK","name":"put","addr":"(LJ)","loc":"d,44:12,44:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"put","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"put","addr":"(RJ)","loc":"d,44:12,44:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"put","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(MJ)","loc":"d,44:18,44:25","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(SJ)","loc":"d,44:18,44:25","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(NJ)","loc":"d,44:16,44:17","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(TJ)","loc":"d,44:16,44:17","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"try_put","addr":"(OJ)","loc":"d,52:20,52:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_put",
{"type":"FUNC","name":"try_put","addr":"(UJ)","loc":"d,52:20,52:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_put",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(PJ)","loc":"d,52:16,52:19","dtypep":"(PJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(VJ)","loc":"d,52:16,52:19","dtypep":"(VJ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(QJ)","loc":"d,52:30,52:37","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(WJ)","loc":"d,52:30,52:37","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(RJ)","loc":"d,52:28,52:29","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(XJ)","loc":"d,52:28,52:29","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"IF","name":"","addr":"(SJ)","loc":"d,53:10,53:12",
{"type":"IF","name":"","addr":"(YJ)","loc":"d,53:10,53:12",
"condp": [
{"type":"LOGOR","name":"","addr":"(TJ)","loc":"d,53:27,53:29","dtypep":"(WE)",
{"type":"LOGOR","name":"","addr":"(ZJ)","loc":"d,53:27,53:29","dtypep":"(WE)",
"lhsp": [
{"type":"EQ","name":"","addr":"(UJ)","loc":"d,53:22,53:24","dtypep":"(WE)",
{"type":"EQ","name":"","addr":"(AK)","loc":"d,53:22,53:24","dtypep":"(WE)",
"lhsp": [
{"type":"PARSEREF","name":"m_bound","addr":"(VJ)","loc":"d,53:14,53:21","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_bound","addr":"(BK)","loc":"d,53:14,53:21","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(WJ)","loc":"d,53:25,53:26","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(CK)","loc":"d,53:25,53:26","dtypep":"(N)"}
]}
],
"rhsp": [
{"type":"LT","name":"","addr":"(XJ)","loc":"d,53:36,53:37","dtypep":"(WE)",
{"type":"LT","name":"","addr":"(DK)","loc":"d,53:36,53:37","dtypep":"(WE)",
"lhsp": [
{"type":"FUNCREF","name":"num","addr":"(YJ)","loc":"d,53:30,53:33","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"num","addr":"(EK)","loc":"d,53:30,53:33","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
],
"rhsp": [
{"type":"PARSEREF","name":"m_bound","addr":"(ZJ)","loc":"d,53:38,53:45","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_bound","addr":"(FK)","loc":"d,53:38,53:45","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
]}
],
"thensp": [
{"type":"BEGIN","name":"","addr":"(AK)","loc":"d,53:47,53:52","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
{"type":"BEGIN","name":"","addr":"(GK)","loc":"d,53:47,53:52","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
"stmtsp": [
{"type":"STMTEXPR","name":"","addr":"(BK)","loc":"d,54:20,54:21",
{"type":"STMTEXPR","name":"","addr":"(HK)","loc":"d,54:20,54:21",
"exprp": [
{"type":"DOT","name":"","addr":"(CK)","loc":"d,54:20,54:21","dtypep":"UNLINKED","colon":false,
{"type":"DOT","name":"","addr":"(IK)","loc":"d,54:20,54:21","dtypep":"UNLINKED","colon":false,
"lhsp": [
{"type":"PARSEREF","name":"m_queue","addr":"(DK)","loc":"d,54:13,54:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_queue","addr":"(JK)","loc":"d,54:13,54:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"TASKREF","name":"push_back","addr":"(EK)","loc":"d,54:21,54:30","dtypep":"(FK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
{"type":"TASKREF","name":"push_back","addr":"(KK)","loc":"d,54:21,54:30","dtypep":"(LK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
"pinsp": [
{"type":"ARG","name":"","addr":"(GK)","loc":"d,54:31,54:38",
{"type":"ARG","name":"","addr":"(MK)","loc":"d,54:31,54:38",
"exprp": [
{"type":"PARSEREF","name":"message","addr":"(HK)","loc":"d,54:31,54:38","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"message","addr":"(NK)","loc":"d,54:31,54:38","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []}
]}
]},
{"type":"RETURN","name":"","addr":"(IK)","loc":"d,55:13,55:19",
{"type":"RETURN","name":"","addr":"(OK)","loc":"d,55:13,55:19",
"lhsp": [
{"type":"CONST","name":"?32?sh1","addr":"(JK)","loc":"d,55:20,55:21","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(PK)","loc":"d,55:20,55:21","dtypep":"(N)"}
]}
]}
],"elsesp": []},
{"type":"RETURN","name":"","addr":"(KK)","loc":"d,57:10,57:16",
{"type":"RETURN","name":"","addr":"(QK)","loc":"d,57:10,57:16",
"lhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(LK)","loc":"d,57:17,57:18","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(RK)","loc":"d,57:17,57:18","dtypep":"(N)"}
]}
],"scopeNamep": []},
{"type":"TASK","name":"get","addr":"(MK)","loc":"d,60:12,60:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"get","addr":"(SK)","loc":"d,60:12,60:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(NK)","loc":"d,60:22,60:29","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(TK)","loc":"d,60:22,60:29","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(OK)","loc":"d,60:20,60:21","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(UK)","loc":"d,60:20,60:21","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"try_get","addr":"(PK)","loc":"d,69:20,69:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_get",
{"type":"FUNC","name":"try_get","addr":"(VK)","loc":"d,69:20,69:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_get",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(QK)","loc":"d,69:16,69:19","dtypep":"(QK)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(WK)","loc":"d,69:16,69:19","dtypep":"(WK)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(RK)","loc":"d,69:34,69:41","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(XK)","loc":"d,69:34,69:41","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(SK)","loc":"d,69:32,69:33","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(YK)","loc":"d,69:32,69:33","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"IF","name":"","addr":"(TK)","loc":"d,70:10,70:12",
{"type":"IF","name":"","addr":"(ZK)","loc":"d,70:10,70:12",
"condp": [
{"type":"GT","name":"","addr":"(UK)","loc":"d,70:20,70:21","dtypep":"(WE)",
{"type":"GT","name":"","addr":"(AL)","loc":"d,70:20,70:21","dtypep":"(WE)",
"lhsp": [
{"type":"FUNCREF","name":"num","addr":"(VK)","loc":"d,70:14,70:17","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"num","addr":"(BL)","loc":"d,70:14,70:17","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
],
"rhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(WK)","loc":"d,70:22,70:23","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(CL)","loc":"d,70:22,70:23","dtypep":"(N)"}
]}
],
"thensp": [
{"type":"BEGIN","name":"","addr":"(XK)","loc":"d,70:25,70:30","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
{"type":"BEGIN","name":"","addr":"(DL)","loc":"d,70:25,70:30","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
"stmtsp": [
{"type":"ASSIGN","name":"","addr":"(YK)","loc":"d,71:21,71:22","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(EL)","loc":"d,71:21,71:22","dtypep":"UNLINKED",
"rhsp": [
{"type":"DOT","name":"","addr":"(ZK)","loc":"d,71:30,71:31","dtypep":"UNLINKED","colon":false,
{"type":"DOT","name":"","addr":"(FL)","loc":"d,71:30,71:31","dtypep":"UNLINKED","colon":false,
"lhsp": [
{"type":"PARSEREF","name":"m_queue","addr":"(AL)","loc":"d,71:23,71:30","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_queue","addr":"(GL)","loc":"d,71:23,71:30","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"FUNCREF","name":"pop_front","addr":"(BL)","loc":"d,71:31,71:40","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"pop_front","addr":"(HL)","loc":"d,71:31,71:40","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
]}
],
"lhsp": [
{"type":"PARSEREF","name":"message","addr":"(CL)","loc":"d,71:13,71:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"message","addr":"(IL)","loc":"d,71:13,71:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []},
{"type":"RETURN","name":"","addr":"(DL)","loc":"d,72:13,72:19",
{"type":"RETURN","name":"","addr":"(JL)","loc":"d,72:13,72:19",
"lhsp": [
{"type":"CONST","name":"?32?sh1","addr":"(EL)","loc":"d,72:20,72:21","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(KL)","loc":"d,72:20,72:21","dtypep":"(N)"}
]}
]}
],"elsesp": []},
{"type":"RETURN","name":"","addr":"(FL)","loc":"d,74:10,74:16",
{"type":"RETURN","name":"","addr":"(LL)","loc":"d,74:10,74:16",
"lhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(GL)","loc":"d,74:17,74:18","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(ML)","loc":"d,74:17,74:18","dtypep":"(N)"}
]}
],"scopeNamep": []},
{"type":"TASK","name":"peek","addr":"(HL)","loc":"d,77:12,77:16","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"peek","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"peek","addr":"(NL)","loc":"d,77:12,77:16","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"peek","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(IL)","loc":"d,77:23,77:30","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(OL)","loc":"d,77:23,77:30","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(JL)","loc":"d,77:21,77:22","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(PL)","loc":"d,77:21,77:22","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"try_peek","addr":"(KL)","loc":"d,86:20,86:28","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_peek",
{"type":"FUNC","name":"try_peek","addr":"(QL)","loc":"d,86:20,86:28","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_peek",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(LL)","loc":"d,86:16,86:19","dtypep":"(LL)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(RL)","loc":"d,86:16,86:19","dtypep":"(RL)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"message","addr":"(ML)","loc":"d,86:35,86:42","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"message","addr":"(SL)","loc":"d,86:35,86:42","dtypep":"UNLINKED","origName":"message","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"T","addr":"(NL)","loc":"d,86:33,86:34","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"T","addr":"(TL)","loc":"d,86:33,86:34","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"IF","name":"","addr":"(OL)","loc":"d,87:10,87:12",
{"type":"IF","name":"","addr":"(UL)","loc":"d,87:10,87:12",
"condp": [
{"type":"GT","name":"","addr":"(PL)","loc":"d,87:20,87:21","dtypep":"(WE)",
{"type":"GT","name":"","addr":"(VL)","loc":"d,87:20,87:21","dtypep":"(WE)",
"lhsp": [
{"type":"FUNCREF","name":"num","addr":"(QL)","loc":"d,87:14,87:17","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"num","addr":"(WL)","loc":"d,87:14,87:17","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
],
"rhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(RL)","loc":"d,87:22,87:23","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(XL)","loc":"d,87:22,87:23","dtypep":"(N)"}
]}
],
"thensp": [
{"type":"BEGIN","name":"","addr":"(SL)","loc":"d,87:25,87:30","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
{"type":"BEGIN","name":"","addr":"(YL)","loc":"d,87:25,87:30","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
"stmtsp": [
{"type":"ASSIGN","name":"","addr":"(TL)","loc":"d,88:21,88:22","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(ZL)","loc":"d,88:21,88:22","dtypep":"UNLINKED",
"rhsp": [
{"type":"SELBIT","name":"","addr":"(UL)","loc":"d,88:30,88:31","dtypep":"UNLINKED",
{"type":"SELBIT","name":"","addr":"(AM)","loc":"d,88:30,88:31","dtypep":"UNLINKED",
"fromp": [
{"type":"PARSEREF","name":"m_queue","addr":"(VL)","loc":"d,88:23,88:30","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_queue","addr":"(BM)","loc":"d,88:23,88:30","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"bitp": [
{"type":"CONST","name":"?32?sh0","addr":"(WL)","loc":"d,88:31,88:32","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(CM)","loc":"d,88:31,88:32","dtypep":"(N)"}
],"thsp": [],"attrp": []}
],
"lhsp": [
{"type":"PARSEREF","name":"message","addr":"(XL)","loc":"d,88:13,88:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"message","addr":"(DM)","loc":"d,88:13,88:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []},
{"type":"RETURN","name":"","addr":"(YL)","loc":"d,89:13,89:19",
{"type":"RETURN","name":"","addr":"(EM)","loc":"d,89:13,89:19",
"lhsp": [
{"type":"CONST","name":"?32?sh1","addr":"(ZL)","loc":"d,89:20,89:21","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(FM)","loc":"d,89:20,89:21","dtypep":"(N)"}
]}
]}
],"elsesp": []},
{"type":"RETURN","name":"","addr":"(AM)","loc":"d,91:10,91:16",
{"type":"RETURN","name":"","addr":"(GM)","loc":"d,91:10,91:16",
"lhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(BM)","loc":"d,91:17,91:18","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(HM)","loc":"d,91:17,91:18","dtypep":"(N)"}
]}
],"scopeNamep": []}
],"extendsp": []},
{"type":"CLASS","name":"semaphore","addr":"(CM)","loc":"d,95:4,95:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"semaphore","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
{"type":"CLASS","name":"semaphore","addr":"(IM)","loc":"d,95:4,95:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"semaphore","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
"stmtsp": [
{"type":"VAR","name":"m_keyCount","addr":"(DM)","loc":"d,96:21,96:31","dtypep":"UNLINKED","origName":"m_keyCount","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"m_keyCount","addr":"(JM)","loc":"d,96:21,96:31","dtypep":"UNLINKED","origName":"m_keyCount","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(EM)","loc":"d,96:17,96:20","dtypep":"(EM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(KM)","loc":"d,96:17,96:20","dtypep":"(KM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"FUNC","name":"new","addr":"(FM)","loc":"d,98:16,98:19","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"new","fvarp": [],"classOrPackagep": [],
{"type":"FUNC","name":"new","addr":"(LM)","loc":"d,98:16,98:19","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"new","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"keyCount","addr":"(GM)","loc":"d,98:24,98:32","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"keyCount","addr":"(MM)","loc":"d,98:24,98:32","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(HM)","loc":"d,98:20,98:23","dtypep":"(HM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(NM)","loc":"d,98:20,98:23","dtypep":"(NM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],
"valuep": [
{"type":"CONST","name":"?32?sh0","addr":"(IM)","loc":"d,98:35,98:36","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(OM)","loc":"d,98:35,98:36","dtypep":"(N)"}
],"attrsp": []},
{"type":"ASSIGN","name":"","addr":"(JM)","loc":"d,99:21,99:22","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(PM)","loc":"d,99:21,99:22","dtypep":"UNLINKED",
"rhsp": [
{"type":"PARSEREF","name":"keyCount","addr":"(KM)","loc":"d,99:23,99:31","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"keyCount","addr":"(QM)","loc":"d,99:23,99:31","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(LM)","loc":"d,99:10,99:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(RM)","loc":"d,99:10,99:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []}
],"scopeNamep": []},
{"type":"TASK","name":"put","addr":"(MM)","loc":"d,102:21,102:24","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"put","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"put","addr":"(SM)","loc":"d,102:21,102:24","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"put","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"keyCount","addr":"(NM)","loc":"d,102:29,102:37","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"keyCount","addr":"(TM)","loc":"d,102:29,102:37","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(OM)","loc":"d,102:25,102:28","dtypep":"(OM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(UM)","loc":"d,102:25,102:28","dtypep":"(UM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],
"valuep": [
{"type":"CONST","name":"?32?sh1","addr":"(PM)","loc":"d,102:40,102:41","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(VM)","loc":"d,102:40,102:41","dtypep":"(N)"}
],"attrsp": []},
{"type":"ASSIGN","name":"","addr":"(QM)","loc":"d,103:21,103:23","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(WM)","loc":"d,103:21,103:23","dtypep":"UNLINKED",
"rhsp": [
{"type":"ADD","name":"","addr":"(RM)","loc":"d,103:21,103:23","dtypep":"UNLINKED",
{"type":"ADD","name":"","addr":"(XM)","loc":"d,103:21,103:23","dtypep":"UNLINKED",
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(SM)","loc":"d,103:10,103:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(YM)","loc":"d,103:10,103:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"PARSEREF","name":"keyCount","addr":"(TM)","loc":"d,103:24,103:32","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"keyCount","addr":"(ZM)","loc":"d,103:24,103:32","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(UM)","loc":"d,103:10,103:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(AN)","loc":"d,103:10,103:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []}
],"scopeNamep": []},
{"type":"TASK","name":"get","addr":"(VM)","loc":"d,106:12,106:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"get","addr":"(BN)","loc":"d,106:12,106:15","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"keyCount","addr":"(WM)","loc":"d,106:20,106:28","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"keyCount","addr":"(CN)","loc":"d,106:20,106:28","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(XM)","loc":"d,106:16,106:19","dtypep":"(XM)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(DN)","loc":"d,106:16,106:19","dtypep":"(DN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],
"valuep": [
{"type":"CONST","name":"?32?sh1","addr":"(YM)","loc":"d,106:31,106:32","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(EN)","loc":"d,106:31,106:32","dtypep":"(N)"}
],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"try_get","addr":"(ZM)","loc":"d,115:20,115:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_get",
{"type":"FUNC","name":"try_get","addr":"(FN)","loc":"d,115:20,115:27","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"try_get",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(AN)","loc":"d,115:16,115:19","dtypep":"(AN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(GN)","loc":"d,115:16,115:19","dtypep":"(GN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"keyCount","addr":"(BN)","loc":"d,115:32,115:40","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"keyCount","addr":"(HN)","loc":"d,115:32,115:40","dtypep":"UNLINKED","origName":"keyCount","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(CN)","loc":"d,115:28,115:31","dtypep":"(CN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(IN)","loc":"d,115:28,115:31","dtypep":"(IN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"delayp": [],
"valuep": [
{"type":"CONST","name":"?32?sh1","addr":"(DN)","loc":"d,115:43,115:44","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(JN)","loc":"d,115:43,115:44","dtypep":"(N)"}
],"attrsp": []},
{"type":"IF","name":"","addr":"(EN)","loc":"d,116:10,116:12",
{"type":"IF","name":"","addr":"(KN)","loc":"d,116:10,116:12",
"condp": [
{"type":"GTE","name":"","addr":"(FN)","loc":"d,116:25,116:27","dtypep":"(WE)",
{"type":"GTE","name":"","addr":"(LN)","loc":"d,116:25,116:27","dtypep":"(WE)",
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(GN)","loc":"d,116:14,116:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(MN)","loc":"d,116:14,116:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"PARSEREF","name":"keyCount","addr":"(HN)","loc":"d,116:28,116:36","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"keyCount","addr":"(NN)","loc":"d,116:28,116:36","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],
"thensp": [
{"type":"BEGIN","name":"","addr":"(IN)","loc":"d,116:38,116:43","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
{"type":"BEGIN","name":"","addr":"(ON)","loc":"d,116:38,116:43","generate":false,"genfor":false,"implied":false,"needProcess":false,"unnamed":true,"genforp": [],
"stmtsp": [
{"type":"ASSIGN","name":"","addr":"(JN)","loc":"d,117:24,117:26","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(PN)","loc":"d,117:24,117:26","dtypep":"UNLINKED",
"rhsp": [
{"type":"SUB","name":"","addr":"(KN)","loc":"d,117:24,117:26","dtypep":"UNLINKED",
{"type":"SUB","name":"","addr":"(QN)","loc":"d,117:24,117:26","dtypep":"UNLINKED",
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(LN)","loc":"d,117:13,117:23","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(RN)","loc":"d,117:13,117:23","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"PARSEREF","name":"keyCount","addr":"(MN)","loc":"d,117:27,117:35","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"keyCount","addr":"(SN)","loc":"d,117:27,117:35","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],
"lhsp": [
{"type":"PARSEREF","name":"m_keyCount","addr":"(NN)","loc":"d,117:13,117:23","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"m_keyCount","addr":"(TN)","loc":"d,117:13,117:23","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []},
{"type":"RETURN","name":"","addr":"(ON)","loc":"d,118:13,118:19",
{"type":"RETURN","name":"","addr":"(UN)","loc":"d,118:13,118:19",
"lhsp": [
{"type":"CONST","name":"?32?sh1","addr":"(PN)","loc":"d,118:20,118:21","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(VN)","loc":"d,118:20,118:21","dtypep":"(N)"}
]}
]}
],"elsesp": []},
{"type":"RETURN","name":"","addr":"(QN)","loc":"d,120:10,120:16",
{"type":"RETURN","name":"","addr":"(WN)","loc":"d,120:10,120:16",
"lhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(RN)","loc":"d,120:17,120:18","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(XN)","loc":"d,120:17,120:18","dtypep":"(N)"}
]}
],"scopeNamep": []}
],"extendsp": []},
{"type":"CLASS","name":"process","addr":"(SN)","loc":"d,124:4,124:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"process","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
{"type":"CLASS","name":"process","addr":"(YN)","loc":"d,124:4,124:9","isExtended":false,"isInterfaceClass":false,"isVirtual":false,"origName":"process","level":5,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","classOrPackagep":"UNLINKED","inlinesp": [],
"stmtsp": [
{"type":"TYPEDEF","name":"state","addr":"(TN)","loc":"d,131:9,131:14","dtypep":"UNLINKED","attrPublic":false,"isUnderClass":false,
{"type":"TYPEDEF","name":"state","addr":"(ZN)","loc":"d,131:9,131:14","dtypep":"UNLINKED","attrPublic":false,"isUnderClass":false,
"childDTypep": [
{"type":"DEFIMPLICITDTYPE","name":"__typeimpenum0","addr":"(UN)","loc":"d,125:15,125:19","dtypep":"UNLINKED","generic":false,
{"type":"DEFIMPLICITDTYPE","name":"__typeimpenum0","addr":"(AO)","loc":"d,125:15,125:19","dtypep":"UNLINKED","generic":false,
"childDTypep": [
{"type":"ENUMDTYPE","name":"","addr":"(VN)","loc":"d,125:15,125:19","dtypep":"UNLINKED","enum":true,"generic":false,"refDTypep":"UNLINKED",
{"type":"ENUMDTYPE","name":"","addr":"(BO)","loc":"d,125:15,125:19","dtypep":"UNLINKED","enum":true,"generic":false,"refDTypep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"int","addr":"(WN)","loc":"d,125:20,125:21","dtypep":"(WN)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(CO)","loc":"d,125:20,125:21","dtypep":"(CO)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],
"itemsp": [
{"type":"ENUMITEM","name":"FINISHED","addr":"(XN)","loc":"d,126:10,126:18","dtypep":"UNLINKED","rangep": [],
{"type":"ENUMITEM","name":"FINISHED","addr":"(DO)","loc":"d,126:10,126:18","dtypep":"UNLINKED","rangep": [],
"valuep": [
{"type":"CONST","name":"?32?sh0","addr":"(YN)","loc":"d,126:22,126:23","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(EO)","loc":"d,126:22,126:23","dtypep":"(N)"}
]},
{"type":"ENUMITEM","name":"RUNNING","addr":"(ZN)","loc":"d,127:10,127:17","dtypep":"UNLINKED","rangep": [],
{"type":"ENUMITEM","name":"RUNNING","addr":"(FO)","loc":"d,127:10,127:17","dtypep":"UNLINKED","rangep": [],
"valuep": [
{"type":"CONST","name":"?32?sh1","addr":"(AO)","loc":"d,127:22,127:23","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh1","addr":"(GO)","loc":"d,127:22,127:23","dtypep":"(N)"}
]},
{"type":"ENUMITEM","name":"WAITING","addr":"(BO)","loc":"d,128:10,128:17","dtypep":"UNLINKED","rangep": [],
{"type":"ENUMITEM","name":"WAITING","addr":"(HO)","loc":"d,128:10,128:17","dtypep":"UNLINKED","rangep": [],
"valuep": [
{"type":"CONST","name":"?32?sh2","addr":"(CO)","loc":"d,128:22,128:23","dtypep":"(SD)"}
{"type":"CONST","name":"?32?sh2","addr":"(IO)","loc":"d,128:22,128:23","dtypep":"(SD)"}
]},
{"type":"ENUMITEM","name":"SUSPENDED","addr":"(DO)","loc":"d,129:10,129:19","dtypep":"UNLINKED","rangep": [],
{"type":"ENUMITEM","name":"SUSPENDED","addr":"(JO)","loc":"d,129:10,129:19","dtypep":"UNLINKED","rangep": [],
"valuep": [
{"type":"CONST","name":"?32?sh3","addr":"(EO)","loc":"d,129:22,129:23","dtypep":"(SD)"}
{"type":"CONST","name":"?32?sh3","addr":"(KO)","loc":"d,129:22,129:23","dtypep":"(SD)"}
]},
{"type":"ENUMITEM","name":"KILLED","addr":"(FO)","loc":"d,130:10,130:16","dtypep":"UNLINKED","rangep": [],
{"type":"ENUMITEM","name":"KILLED","addr":"(LO)","loc":"d,130:10,130:16","dtypep":"UNLINKED","rangep": [],
"valuep": [
{"type":"CONST","name":"?32?sh4","addr":"(GO)","loc":"d,130:22,130:23","dtypep":"(HO)"}
{"type":"CONST","name":"?32?sh4","addr":"(MO)","loc":"d,130:22,130:23","dtypep":"(NO)"}
]}
]}
]}
],"attrsp": []},
{"type":"FUNC","name":"self","addr":"(IO)","loc":"d,138:31,138:35","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"self",
{"type":"FUNC","name":"self","addr":"(OO)","loc":"d,138:31,138:35","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"self",
"fvarp": [
{"type":"REFDTYPE","name":"process","addr":"(JO)","loc":"d,138:23,138:30","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"process","addr":"(PO)","loc":"d,138:23,138:30","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"p","addr":"(KO)","loc":"d,139:18,139:19","dtypep":"UNLINKED","origName":"p","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"p","addr":"(QO)","loc":"d,139:18,139:19","dtypep":"UNLINKED","origName":"p","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"process","addr":"(LO)","loc":"d,139:10,139:17","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"process","addr":"(RO)","loc":"d,139:10,139:17","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],
"valuep": [
{"type":"NEW","name":"new","addr":"(MO)","loc":"d,139:22,139:25","dtypep":"UNLINKED","isImplicit":false,"isScoped":false,"dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"NEW","name":"new","addr":"(SO)","loc":"d,139:22,139:25","dtypep":"UNLINKED","isImplicit":false,"isScoped":false,"dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
],"attrsp": []},
{"type":"RETURN","name":"","addr":"(NO)","loc":"d,143:10,143:16",
{"type":"RETURN","name":"","addr":"(TO)","loc":"d,143:10,143:16",
"lhsp": [
{"type":"PARSEREF","name":"p","addr":"(OO)","loc":"d,143:17,143:18","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"p","addr":"(UO)","loc":"d,143:17,143:18","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []},
{"type":"TASK","name":"set_status","addr":"(PO)","loc":"d,146:31,146:41","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"set_status","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"set_status","addr":"(VO)","loc":"d,146:31,146:41","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"set_status","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"s","addr":"(QO)","loc":"d,146:48,146:49","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"s","addr":"(WO)","loc":"d,146:48,146:49","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"REFDTYPE","name":"state","addr":"(RO)","loc":"d,146:42,146:47","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"state","addr":"(XO)","loc":"d,146:42,146:47","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"delayp": [],"valuep": [],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"status","addr":"(SO)","loc":"d,152:22,152:28","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"status",
{"type":"FUNC","name":"status","addr":"(YO)","loc":"d,152:22,152:28","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"status",
"fvarp": [
{"type":"REFDTYPE","name":"state","addr":"(TO)","loc":"d,152:16,152:21","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"state","addr":"(ZO)","loc":"d,152:16,152:21","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"RETURN","name":"","addr":"(UO)","loc":"d,156:10,156:16",
{"type":"RETURN","name":"","addr":"(AP)","loc":"d,156:10,156:16",
"lhsp": [
{"type":"PARSEREF","name":"RUNNING","addr":"(VO)","loc":"d,156:17,156:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"RUNNING","addr":"(BP)","loc":"d,156:17,156:24","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []},
{"type":"TASK","name":"kill","addr":"(WO)","loc":"d,160:21,160:25","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"kill","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"kill","addr":"(CP)","loc":"d,160:21,160:25","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"kill","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"STMTEXPR","name":"","addr":"(XO)","loc":"d,161:10,161:20",
{"type":"STMTEXPR","name":"","addr":"(DP)","loc":"d,161:10,161:20",
"exprp": [
{"type":"TASKREF","name":"set_status","addr":"(YO)","loc":"d,161:10,161:20","dtypep":"(FK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
{"type":"TASKREF","name":"set_status","addr":"(EP)","loc":"d,161:10,161:20","dtypep":"(LK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
"pinsp": [
{"type":"ARG","name":"","addr":"(ZO)","loc":"d,161:21,161:27",
{"type":"ARG","name":"","addr":"(FP)","loc":"d,161:21,161:27",
"exprp": [
{"type":"PARSEREF","name":"KILLED","addr":"(AP)","loc":"d,161:21,161:27","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"KILLED","addr":"(GP)","loc":"d,161:21,161:27","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []}
]}
],"scopeNamep": []},
{"type":"TASK","name":"suspend","addr":"(BP)","loc":"d,164:21,164:28","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"suspend","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"suspend","addr":"(HP)","loc":"d,164:21,164:28","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"suspend","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"DISPLAY","name":"","addr":"(CP)","loc":"d,165:10,165:16",
{"type":"DISPLAY","name":"","addr":"(IP)","loc":"d,165:10,165:16",
"fmtp": [
{"type":"SFORMATF","name":"","addr":"(DP)","loc":"d,165:10,165:16","dtypep":"(DG)",
{"type":"SFORMATF","name":"","addr":"(JP)","loc":"d,165:10,165:16","dtypep":"(DG)",
"exprsp": [
{"type":"CONST","name":"296'h7374643a3a70726f636573733a3a73757370656e642829206e6f7420737570706f72746564","addr":"(EP)","loc":"d,165:17,165:56","dtypep":"(FP)"}
{"type":"CONST","name":"296'h7374643a3a70726f636573733a3a73757370656e642829206e6f7420737570706f72746564","addr":"(KP)","loc":"d,165:17,165:56","dtypep":"(LP)"}
],"scopeNamep": []}
],"filep": []},
{"type":"STOP","name":"","addr":"(GP)","loc":"d,165:10,165:16","isFatal":false}
{"type":"STOP","name":"","addr":"(MP)","loc":"d,165:10,165:16","isFatal":false}
],"scopeNamep": []},
{"type":"TASK","name":"resume","addr":"(HP)","loc":"d,168:21,168:27","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"resume","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"resume","addr":"(NP)","loc":"d,168:21,168:27","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"resume","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"STMTEXPR","name":"","addr":"(IP)","loc":"d,169:10,169:20",
{"type":"STMTEXPR","name":"","addr":"(OP)","loc":"d,169:10,169:20",
"exprp": [
{"type":"TASKREF","name":"set_status","addr":"(JP)","loc":"d,169:10,169:20","dtypep":"(FK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
{"type":"TASKREF","name":"set_status","addr":"(PP)","loc":"d,169:10,169:20","dtypep":"(LK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
"pinsp": [
{"type":"ARG","name":"","addr":"(KP)","loc":"d,169:21,169:28",
{"type":"ARG","name":"","addr":"(QP)","loc":"d,169:21,169:28",
"exprp": [
{"type":"PARSEREF","name":"RUNNING","addr":"(LP)","loc":"d,169:21,169:28","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"RUNNING","addr":"(RP)","loc":"d,169:21,169:28","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []}
]}
],"scopeNamep": []},
{"type":"TASK","name":"await","addr":"(MP)","loc":"d,172:12,172:17","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"await","fvarp": [],"classOrPackagep": [],"stmtsp": [],"scopeNamep": []},
{"type":"TASK","name":"killQueue","addr":"(NP)","loc":"d,178:19,178:28","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"killQueue","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"await","addr":"(SP)","loc":"d,172:12,172:17","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"await","fvarp": [],"classOrPackagep": [],"stmtsp": [],"scopeNamep": []},
{"type":"TASK","name":"killQueue","addr":"(TP)","loc":"d,178:19,178:28","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"killQueue","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"processQueue","addr":"(OP)","loc":"d,178:41,178:53","dtypep":"UNLINKED","origName":"processQueue","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"processQueue","addr":"(UP)","loc":"d,178:41,178:53","dtypep":"UNLINKED","origName":"processQueue","isSc":false,"isPrimaryIO":false,"direction":"REF","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BRACKETARRAYDTYPE","name":"","addr":"(PP)","loc":"d,178:53,178:54","dtypep":"UNLINKED","generic":false,
{"type":"BRACKETARRAYDTYPE","name":"","addr":"(VP)","loc":"d,178:53,178:54","dtypep":"UNLINKED","generic":false,
"childDTypep": [
{"type":"REFDTYPE","name":"process","addr":"(QP)","loc":"d,178:33,178:40","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
{"type":"REFDTYPE","name":"process","addr":"(WP)","loc":"d,178:33,178:40","dtypep":"UNLINKED","generic":false,"typedefp":"UNLINKED","refDTypep":"UNLINKED","classOrPackagep":"UNLINKED","typeofp": [],"classOrPackageOpp": [],"paramsp": []}
],
"elementsp": [
{"type":"UNBOUNDED","name":"","addr":"(RP)","loc":"d,178:54,178:55","dtypep":"(XI)"}
{"type":"UNBOUNDED","name":"","addr":"(XP)","loc":"d,178:54,178:55","dtypep":"(DJ)"}
]}
],"delayp": [],"valuep": [],"attrsp": []}
],"scopeNamep": []},
{"type":"FUNC","name":"get_randstate","addr":"(SP)","loc":"d,223:23,223:36","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get_randstate",
{"type":"FUNC","name":"get_randstate","addr":"(YP)","loc":"d,223:23,223:36","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"get_randstate",
"fvarp": [
{"type":"BASICDTYPE","name":"string","addr":"(TP)","loc":"d,223:16,223:22","dtypep":"(TP)","keyword":"string","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"string","addr":"(ZP)","loc":"d,223:16,223:22","dtypep":"(ZP)","keyword":"string","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"s","addr":"(UP)","loc":"d,224:17,224:18","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"s","addr":"(AQ)","loc":"d,224:17,224:18","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"NONE","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"VAR","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"string","addr":"(VP)","loc":"d,224:10,224:16","dtypep":"(VP)","keyword":"string","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"string","addr":"(BQ)","loc":"d,224:10,224:16","dtypep":"(BQ)","keyword":"string","generic":false,"rangep": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"STMTEXPR","name":"","addr":"(WP)","loc":"d,226:11,226:12",
{"type":"STMTEXPR","name":"","addr":"(CQ)","loc":"d,226:11,226:12",
"exprp": [
{"type":"DOT","name":"","addr":"(XP)","loc":"d,226:11,226:12","dtypep":"UNLINKED","colon":false,
{"type":"DOT","name":"","addr":"(DQ)","loc":"d,226:11,226:12","dtypep":"UNLINKED","colon":false,
"lhsp": [
{"type":"PARSEREF","name":"s","addr":"(YP)","loc":"d,226:10,226:11","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"s","addr":"(EQ)","loc":"d,226:10,226:11","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"TASKREF","name":"itoa","addr":"(ZP)","loc":"d,226:12,226:16","dtypep":"(FK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
{"type":"TASKREF","name":"itoa","addr":"(FQ)","loc":"d,226:12,226:16","dtypep":"(LK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
"pinsp": [
{"type":"ARG","name":"","addr":"(AQ)","loc":"d,226:17,226:24",
{"type":"ARG","name":"","addr":"(GQ)","loc":"d,226:17,226:24",
"exprp": [
{"type":"RAND","name":"","addr":"(BQ)","loc":"d,226:17,226:24","dtypep":"UNLINKED","seedp": []}
{"type":"RAND","name":"","addr":"(HQ)","loc":"d,226:17,226:24","dtypep":"UNLINKED","seedp": []}
]}
],"scopeNamep": []}
]}
]},
{"type":"STMTEXPR","name":"","addr":"(CQ)","loc":"d,227:10,227:23",
{"type":"STMTEXPR","name":"","addr":"(IQ)","loc":"d,227:10,227:23",
"exprp": [
{"type":"TASKREF","name":"set_randstate","addr":"(DQ)","loc":"d,227:10,227:23","dtypep":"(FK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
{"type":"TASKREF","name":"set_randstate","addr":"(JQ)","loc":"d,227:10,227:23","dtypep":"(LK)","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],
"pinsp": [
{"type":"ARG","name":"","addr":"(EQ)","loc":"d,227:24,227:25",
{"type":"ARG","name":"","addr":"(KQ)","loc":"d,227:24,227:25",
"exprp": [
{"type":"PARSEREF","name":"s","addr":"(FQ)","loc":"d,227:24,227:25","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"s","addr":"(LQ)","loc":"d,227:24,227:25","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []}
]},
{"type":"RETURN","name":"","addr":"(GQ)","loc":"d,228:10,228:16",
{"type":"RETURN","name":"","addr":"(MQ)","loc":"d,228:10,228:16",
"lhsp": [
{"type":"PARSEREF","name":"s","addr":"(HQ)","loc":"d,228:17,228:18","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"s","addr":"(NQ)","loc":"d,228:17,228:18","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
]}
],"scopeNamep": []},
{"type":"TASK","name":"set_randstate","addr":"(IQ)","loc":"d,231:21,231:34","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"set_randstate","fvarp": [],"classOrPackagep": [],
{"type":"TASK","name":"set_randstate","addr":"(OQ)","loc":"d,231:21,231:34","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"set_randstate","fvarp": [],"classOrPackagep": [],
"stmtsp": [
{"type":"VAR","name":"s","addr":"(JQ)","loc":"d,231:42,231:43","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
{"type":"VAR","name":"s","addr":"(PQ)","loc":"d,231:42,231:43","dtypep":"UNLINKED","origName":"s","isSc":false,"isPrimaryIO":false,"direction":"INPUT","isConst":false,"isPullup":false,"isPulldown":false,"isUsedClock":false,"isSigPublic":false,"isLatched":false,"isUsedLoopIdx":false,"noReset":false,"attrIsolateAssign":false,"attrFileDescr":false,"isDpiOpenArray":false,"isFuncReturn":false,"isFuncLocal":false,"attrClocker":"UNKNOWN","lifetime":"NONE","varType":"PORT","isSigUserRdPublic":false,"isSigUserRWPublic":false,"isGParam":false,"isParam":false,"attrScBv":false,"attrSFormat":false,"ignorePostWrite":false,"ignoreSchedWrite":false,"sensIfacep":"UNLINKED",
"childDTypep": [
{"type":"BASICDTYPE","name":"string","addr":"(KQ)","loc":"d,231:35,231:41","dtypep":"(KQ)","keyword":"string","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"string","addr":"(QQ)","loc":"d,231:35,231:41","dtypep":"(QQ)","keyword":"string","generic":false,"rangep": []}
],"delayp": [],"valuep": [],"attrsp": []},
{"type":"STMTEXPR","name":"","addr":"(LQ)","loc":"d,232:10,232:18",
{"type":"STMTEXPR","name":"","addr":"(RQ)","loc":"d,232:10,232:18",
"exprp": [
{"type":"RAND","name":"","addr":"(MQ)","loc":"d,232:10,232:18","dtypep":"UNLINKED",
{"type":"RAND","name":"","addr":"(SQ)","loc":"d,232:10,232:18","dtypep":"UNLINKED",
"seedp": [
{"type":"DOT","name":"","addr":"(NQ)","loc":"d,232:20,232:21","dtypep":"UNLINKED","colon":false,
{"type":"DOT","name":"","addr":"(TQ)","loc":"d,232:20,232:21","dtypep":"UNLINKED","colon":false,
"lhsp": [
{"type":"PARSEREF","name":"s","addr":"(OQ)","loc":"d,232:19,232:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"s","addr":"(UQ)","loc":"d,232:19,232:20","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],
"rhsp": [
{"type":"FUNCREF","name":"atoi","addr":"(PQ)","loc":"d,232:21,232:25","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
{"type":"FUNCREF","name":"atoi","addr":"(VQ)","loc":"d,232:21,232:25","dtypep":"UNLINKED","dotted":"","taskp":"UNLINKED","classOrPackagep":"UNLINKED","namep": [],"pinsp": [],"scopeNamep": []}
]}
]}
]}
],"scopeNamep": []}
],"extendsp": []},
{"type":"FUNC","name":"randomize","addr":"(QQ)","loc":"d,235:17,235:26","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"randomize",
{"type":"FUNC","name":"randomize","addr":"(WQ)","loc":"d,235:17,235:26","dtypep":"UNLINKED","method":false,"dpiExport":false,"dpiImport":false,"dpiOpenChild":false,"dpiOpenParent":false,"isExternDef":false,"isExternProto":false,"prototype":false,"recursive":false,"taskPublic":false,"cname":"randomize",
"fvarp": [
{"type":"BASICDTYPE","name":"int","addr":"(RQ)","loc":"d,235:13,235:16","dtypep":"(RQ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
{"type":"BASICDTYPE","name":"int","addr":"(XQ)","loc":"d,235:13,235:16","dtypep":"(XQ)","keyword":"int","range":"31:0","generic":false,"rangep": []}
],"classOrPackagep": [],
"stmtsp": [
{"type":"ASSIGN","name":"","addr":"(SQ)","loc":"d,236:17,236:18","dtypep":"UNLINKED",
{"type":"ASSIGN","name":"","addr":"(YQ)","loc":"d,236:17,236:18","dtypep":"UNLINKED",
"rhsp": [
{"type":"CONST","name":"?32?sh0","addr":"(TQ)","loc":"d,236:19,236:20","dtypep":"(N)"}
{"type":"CONST","name":"?32?sh0","addr":"(ZQ)","loc":"d,236:19,236:20","dtypep":"(N)"}
],
"lhsp": [
{"type":"PARSEREF","name":"randomize","addr":"(UQ)","loc":"d,236:7,236:16","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
{"type":"PARSEREF","name":"randomize","addr":"(AR)","loc":"d,236:7,236:16","dtypep":"UNLINKED","expect":"TEXT","lhsp": [],"ftaskrefp": []}
],"timingControlp": []}
],"scopeNamep": []}
]}
],"filesp": [],
"miscsp": [
{"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"(FK)",
{"type":"TYPETABLE","name":"","addr":"(C)","loc":"a,0:0,0:0","constraintRefp":"UNLINKED","emptyQueuep":"UNLINKED","queueIndexp":"UNLINKED","streamp":"UNLINKED","voidp":"(LK)",
"typesp": [
{"type":"BASICDTYPE","name":"integer","addr":"(XI)","loc":"d,34:27,34:28","dtypep":"(XI)","keyword":"integer","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"integer","addr":"(DJ)","loc":"d,34:27,34:28","dtypep":"(DJ)","keyword":"integer","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(N)","loc":"d,36:32,36:33","dtypep":"(N)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(WE)","loc":"d,53:22,53:24","dtypep":"(WE)","keyword":"logic","generic":true,"rangep": []},
{"type":"VOIDDTYPE","name":"","addr":"(FK)","loc":"d,54:21,54:30","dtypep":"(FK)","generic":false},
{"type":"VOIDDTYPE","name":"","addr":"(LK)","loc":"d,54:21,54:30","dtypep":"(LK)","generic":false},
{"type":"BASICDTYPE","name":"logic","addr":"(SD)","loc":"d,128:22,128:23","dtypep":"(SD)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(HO)","loc":"d,130:22,130:23","dtypep":"(HO)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(FP)","loc":"d,165:17,165:56","dtypep":"(FP)","keyword":"logic","range":"295:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(NO)","loc":"d,130:22,130:23","dtypep":"(NO)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(LP)","loc":"d,165:17,165:56","dtypep":"(LP)","keyword":"logic","range":"295:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"string","addr":"(DG)","loc":"d,165:10,165:16","dtypep":"(DG)","keyword":"string","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(S)","loc":"e,14:9,14:11","dtypep":"(S)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
{"type":"BASICDTYPE","name":"logic","addr":"(DB)","loc":"e,18:10,18:12","dtypep":"(DB)","keyword":"logic","range":"31:0","generic":true,"rangep": []},
@ -1082,9 +1100,9 @@
]},
{"type":"CONSTPOOL","name":"","addr":"(D)","loc":"a,0:0,0:0",
"modulep": [
{"type":"MODULE","name":"@CONST-POOL@","addr":"(VQ)","loc":"a,0:0,0:0","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"@CONST-POOL@","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","inlinesp": [],
{"type":"MODULE","name":"@CONST-POOL@","addr":"(BR)","loc":"a,0:0,0:0","isChecker":false,"isProgram":false,"hasGenericIface":false,"origName":"@CONST-POOL@","level":0,"modPublic":false,"inLibrary":false,"dead":false,"recursiveClone":false,"recursive":false,"timeunit":"NONE","inlinesp": [],
"stmtsp": [
{"type":"SCOPE","name":"@CONST-POOL@","addr":"(WQ)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(VQ)","varsp": [],"blocksp": [],"inlinesp": []}
{"type":"SCOPE","name":"@CONST-POOL@","addr":"(CR)","loc":"a,0:0,0:0","aboveScopep":"UNLINKED","aboveCellp":"UNLINKED","modp":"(BR)","varsp": [],"blocksp": [],"inlinesp": []}
]}
]}
]}

View File

@ -0,0 +1,152 @@
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:22:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
22 | $q_initialize(1, 1, 3, status);
| ^~~~~~~~~~~~~
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:25:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
25 | $q_initialize(2, 2, 2, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:28:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
28 | $q_initialize(3, 0, 10, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:31:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
31 | $q_initialize(3, 3, 10, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:34:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
34 | $q_initialize(3, 1, 0, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:37:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
37 | $q_initialize(3, 1, -1, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:40:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_initialize'
40 | $q_initialize(1, 2, 20, status);
| ^~~~~~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:43:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
43 | $q_add(3, 0, 0, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:46:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
46 | $q_remove(3, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:49:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
49 | res = $q_full(3, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:52:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
52 | $q_exam(3, 1, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:55:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
55 | $q_add(2, 1, 1, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:58:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
58 | res = $q_full(2, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:62:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
62 | $q_add(2, 1, 2, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:65:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
65 | res = $q_full(2, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:69:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
69 | $q_exam(2, 1, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:72:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
72 | $q_exam(2, 3, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:75:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
75 | $q_exam(2, 5, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:79:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
79 | $q_add(2, 1, 3, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:82:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
82 | $q_remove(2, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:86:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
86 | res = $q_full(2, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:90:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
90 | $q_remove(2, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:95:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
95 | res = $q_full(2, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:99:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
99 | $q_exam(2, 1, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:102:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
102 | $q_exam(2, 3, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:105:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
105 | $q_exam(2, 4, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:109:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
109 | $q_remove(2, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:113:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
113 | $q_add(1, 2, 1, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:115:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
115 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:118:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
118 | $q_add(1, 2, 2, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:120:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
120 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:123:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
123 | $q_add(1, 2, 3, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:125:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
125 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:128:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
128 | $q_exam(1, 1, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:131:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
131 | $q_exam(1, 3, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:134:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
134 | $q_exam(1, 5, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:138:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
138 | $q_add(1, 2, 4, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:141:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
141 | $q_remove(1, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:146:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
146 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:150:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
150 | $q_remove(1, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:154:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
154 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:158:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_add'
158 | $q_add(1, 2, 4, status);
| ^~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:160:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
160 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:164:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
164 | $q_remove(1, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:168:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
168 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:171:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_remove'
171 | $q_remove(1, job, value, status);
| ^~~~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:175:11: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_full'
175 | res = $q_full(1, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:178:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
178 | $q_exam(1, 1, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:181:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
181 | $q_exam(1, 3, value, status);
| ^~~~~~~
%Error-UNSUPPORTED: t/t_sys_queue_unsup.v:184:5: Unsupported: IEEE 1364-1995 reserved word not implemented: '$q_exam'
184 | $q_exam(1, 4, value, status);
| ^~~~~~~
%Error: Exiting due to

View File

@ -0,0 +1,16 @@
#!/usr/bin/env python3
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
#
# Copyright 2024 by Wilson Snyder. This program is free software; you can
# redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
import vltest_bootstrap
test.scenarios('vlt')
test.lint(fails=test.vlt_all, expect_filename=test.golden_filename)
test.passes()

View File

@ -0,0 +1,195 @@
// DESCRIPTION: Verilator: Verilog Test module for SystemVerilog 'alias'
//
// Simple bi-directional alias test.
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
// Based on iverilog/ivtest/ivltests/queue.v
// verilog_format: off
`define stop $stop
`define checkd(gotv,expv) do if ((gotv) !== (expv)) begin $write("%%Error: %s:%0d: got=%0d exp=%0d (%s !== %s)\n", `__FILE__,`__LINE__, (gotv), (expv), `"gotv`", `"expv`"); `stop; end while(0);
// verilog_format: on
module top;
reg pass;
integer res, status, job, value;
initial begin
pass = 1'b1;
$q_initialize(1, 1, 3, status);
`checkd(status, 0);
$q_initialize(2, 2, 2, status);
`checkd(status, 0);
$q_initialize(3, 0, 10, status);
`checkd(status, 4);
$q_initialize(3, 3, 10, status);
`checkd(status, 4);
$q_initialize(3, 1, 0, status);
`checkd(status, 5);
$q_initialize(3, 1, -1, status);
`checkd(status, 5);
$q_initialize(1, 2, 20, status);
`checkd(status, 6);
$q_add(3, 0, 0, status);
`checkd(status, 2);
$q_remove(3, job, value, status);
`checkd(status, 2);
res = $q_full(3, status);
`checkd(status, 2);
$q_exam(3, 1, value, status);
`checkd(status, 2);
$q_add(2, 1, 1, status);
`checkd(status, 0);
res = $q_full(2, status);
`checkd(status, 0);
`checkd(res, 0);
$q_add(2, 1, 2, status);
`checkd(status, 0);
res = $q_full(2, status);
`checkd(status, 0);
`checkd(res, 1);
$q_exam(2, 1, value, status);
`checkd(status, 0);
`checkd(value, 2);
$q_exam(2, 3, value, status);
`checkd(status, 0);
`checkd(value, 2);
$q_exam(2, 5, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_add(2, 1, 3, status);
`checkd(status, 1);
$q_remove(2, job, value, status);
`checkd(status, 0);
`checkd(job, 1);
`checkd(value, 2);
res = $q_full(2, status);
`checkd(status, 0);
`checkd(res, 0);
$q_remove(2, job, value, status);
`checkd(status, 0);
`checkd(job, 1);
`checkd(value, 1);
res = $q_full(2, status);
`checkd(status, 0);
`checkd(res, 0);
$q_exam(2, 1, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_exam(2, 3, value, status);
`checkd(status, 0);
`checkd(value, 2);
$q_exam(2, 4, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_remove(2, job, value, status);
`checkd(status, 3);
$q_add(1, 2, 1, status);
`checkd(status, 0);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_add(1, 2, 2, status);
`checkd(status, 0);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_add(1, 2, 3, status);
`checkd(status, 0);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 1);
$q_exam(1, 1, value, status);
`checkd(status, 0);
`checkd(value, 3);
$q_exam(1, 3, value, status);
`checkd(status, 0);
`checkd(value, 3);
$q_exam(1, 5, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_add(1, 2, 4, status);
`checkd(status, 1);
$q_remove(1, job, value, status);
`checkd(status, 0);
`checkd(job, 2);
`checkd(value, 1);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_remove(1, job, value, status);
`checkd(status, 0);
`checkd(job, 2);
`checkd(value, 2);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_add(1, 2, 4, status);
`checkd(status, 0);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_remove(1, job, value, status);
`checkd(status, 0);
`checkd(job, 2);
`checkd(value, 3);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_remove(1, job, value, status);
`checkd(status, 0);
`checkd(job, 2);
`checkd(value, 4);
res = $q_full(1, status);
`checkd(status, 0);
`checkd(res, 0);
$q_exam(1, 1, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_exam(1, 3, value, status);
`checkd(status, 0);
`checkd(value, 3);
$q_exam(1, 4, value, status);
`checkd(status, 0);
`checkd(value, 0);
$q_remove(1, job, value, status);
`checkd(status, 3);
$write("*-* All Finished *-*\n");
$finish;
end
endmodule