3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-13 04:28:18 +00:00

No tristate warning message for "read_verilog -lib"

This commit is contained in:
Clifford Wolf 2016-07-23 11:56:53 +02:00
parent 89deb412c6
commit 9aae1d1e8f
3 changed files with 11 additions and 8 deletions

View file

@ -175,7 +175,6 @@ struct VerilogFrontend : public Frontend {
bool flag_ppdump = false; bool flag_ppdump = false;
bool flag_nopp = false; bool flag_nopp = false;
bool flag_nodpi = false; bool flag_nodpi = false;
bool flag_lib = false;
bool flag_noopt = false; bool flag_noopt = false;
bool flag_icells = false; bool flag_icells = false;
bool flag_ignore_redef = false; bool flag_ignore_redef = false;
@ -187,6 +186,7 @@ struct VerilogFrontend : public Frontend {
frontend_verilog_yydebug = false; frontend_verilog_yydebug = false;
sv_mode = false; sv_mode = false;
formal_mode = false; formal_mode = false;
lib_mode = false;
default_nettype_wire = true; default_nettype_wire = true;
log_header(design, "Executing Verilog-2005 frontend.\n"); log_header(design, "Executing Verilog-2005 frontend.\n");
@ -249,7 +249,7 @@ struct VerilogFrontend : public Frontend {
continue; continue;
} }
if (arg == "-lib") { if (arg == "-lib") {
flag_lib = true; lib_mode = true;
defines_map["BLACKBOX"] = string(); defines_map["BLACKBOX"] = string();
continue; continue;
} }
@ -342,7 +342,7 @@ struct VerilogFrontend : public Frontend {
if (flag_nodpi) if (flag_nodpi)
error_on_dpi_function(current_ast); error_on_dpi_function(current_ast);
AST::process(design, current_ast, flag_dump_ast1, flag_dump_ast2, flag_dump_vlog, flag_nolatches, flag_nomeminit, flag_nomem2reg, flag_mem2reg, flag_lib, flag_noopt, flag_icells, flag_ignore_redef, flag_defer, default_nettype_wire); AST::process(design, current_ast, flag_dump_ast1, flag_dump_ast2, flag_dump_vlog, flag_nolatches, flag_nomeminit, flag_nomem2reg, flag_mem2reg, lib_mode, flag_noopt, flag_icells, flag_ignore_redef, flag_defer, default_nettype_wire);
if (!flag_nopp) if (!flag_nopp)
delete lexin; delete lexin;

View file

@ -54,6 +54,9 @@ namespace VERILOG_FRONTEND
// running in -formal mode // running in -formal mode
extern bool formal_mode; extern bool formal_mode;
// running in -lib mode
extern bool lib_mode;
// lexer input stream // lexer input stream
extern std::istream *lexin; extern std::istream *lexin;
} }

View file

@ -57,7 +57,7 @@ namespace VERILOG_FRONTEND {
std::vector<char> case_type_stack; std::vector<char> case_type_stack;
bool do_not_require_port_stubs; bool do_not_require_port_stubs;
bool default_nettype_wire; bool default_nettype_wire;
bool sv_mode, formal_mode; bool sv_mode, formal_mode, lib_mode;
std::istream *lexin; std::istream *lexin;
} }
YOSYS_NAMESPACE_END YOSYS_NAMESPACE_END
@ -1315,7 +1315,7 @@ basic_expr:
if ($4->substr(0, 1) != "'") if ($4->substr(0, 1) != "'")
frontend_verilog_yyerror("Syntax error."); frontend_verilog_yyerror("Syntax error.");
AstNode *bits = $2; AstNode *bits = $2;
AstNode *val = const2ast(*$4, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), true); AstNode *val = const2ast(*$4, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), !lib_mode);
if (val == NULL) if (val == NULL)
log_error("Value conversion failed: `%s'\n", $4->c_str()); log_error("Value conversion failed: `%s'\n", $4->c_str());
$$ = new AstNode(AST_TO_BITS, bits, val); $$ = new AstNode(AST_TO_BITS, bits, val);
@ -1326,7 +1326,7 @@ basic_expr:
frontend_verilog_yyerror("Syntax error."); frontend_verilog_yyerror("Syntax error.");
AstNode *bits = new AstNode(AST_IDENTIFIER); AstNode *bits = new AstNode(AST_IDENTIFIER);
bits->str = *$1; bits->str = *$1;
AstNode *val = const2ast(*$2, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), true); AstNode *val = const2ast(*$2, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), !lib_mode);
if (val == NULL) if (val == NULL)
log_error("Value conversion failed: `%s'\n", $2->c_str()); log_error("Value conversion failed: `%s'\n", $2->c_str());
$$ = new AstNode(AST_TO_BITS, bits, val); $$ = new AstNode(AST_TO_BITS, bits, val);
@ -1334,14 +1334,14 @@ basic_expr:
delete $2; delete $2;
} | } |
TOK_CONST TOK_CONST { TOK_CONST TOK_CONST {
$$ = const2ast(*$1 + *$2, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), true); $$ = const2ast(*$1 + *$2, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), !lib_mode);
if ($$ == NULL || (*$2)[0] != '\'') if ($$ == NULL || (*$2)[0] != '\'')
log_error("Value conversion failed: `%s%s'\n", $1->c_str(), $2->c_str()); log_error("Value conversion failed: `%s%s'\n", $1->c_str(), $2->c_str());
delete $1; delete $1;
delete $2; delete $2;
} | } |
TOK_CONST { TOK_CONST {
$$ = const2ast(*$1, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), true); $$ = const2ast(*$1, case_type_stack.size() == 0 ? 0 : case_type_stack.back(), !lib_mode);
if ($$ == NULL) if ($$ == NULL)
log_error("Value conversion failed: `%s'\n", $1->c_str()); log_error("Value conversion failed: `%s'\n", $1->c_str());
delete $1; delete $1;