Add --bbox-unsup option to black-box unsupported UDP tables.

This commit is contained in:
Wilson Snyder 2009-12-16 11:45:28 -05:00
parent deda877355
commit 934dc842e0
6 changed files with 16 additions and 5 deletions

View File

@ -30,6 +30,8 @@ indicates the contributor was also the author of the fix; Thanks!
**** Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables. **** Add Makefile VM_GLOBAL_FAST, listing objects needed to link executables.
**** Add --bbox-unsup option to black-box unsupported UDP tables.
**** Fix creating implicit variables for expressions, bug196. [Byron Bradley] **** Fix creating implicit variables for expressions, bug196. [Byron Bradley]
**** Fix MinGW compilation, bug184. [by Shankar Giri] **** Fix MinGW compilation, bug184. [by Shankar Giri]

View File

@ -190,6 +190,7 @@ descriptions in the next sections for more information.
--assert Enable all assertions --assert Enable all assertions
--autoflush Flush streams after all $displays --autoflush Flush streams after all $displays
--bbox-sys Blackbox unknown $system calls --bbox-sys Blackbox unknown $system calls
--bbox-unsup Blackbox unsupported language features
--bin <filename> Override Verilator binary --bin <filename> Override Verilator binary
--cc Create C++ output --cc Create C++ output
--compiler <compiler-name> Tune for specified C++ compiler --compiler <compiler-name> Tune for specified C++ compiler
@ -291,6 +292,11 @@ Arguments to such functions will be parsed, but not otherwise checked.
This prevents errors when linting in the presence of company specific PLI This prevents errors when linting in the presence of company specific PLI
calls. calls.
=item --bbox-unsup
Black box some unsupported language features, currently UDP tables. This
may allow linting when unsupported constructs are present.
=item --bin I<filename> =item --bin I<filename>
Rarely needed. Override the default filename for Verilator itself. When a Rarely needed. Override the default filename for Verilator itself. When a
@ -463,8 +469,8 @@ appropriate `begin_keywords.
Check the files for lint violations only, do not create any other output. Check the files for lint violations only, do not create any other output.
If the design is not to be completely Verilated see also the --bbox-sys If the design is not to be completely Verilated see also the --bbox-sys and
option. --bbox-unsup options.
=item --MMD =item --MMD

View File

@ -336,8 +336,8 @@ private:
virtual void visit(AstUdpTable* nodep, AstNUser*) { virtual void visit(AstUdpTable* nodep, AstNUser*) {
UINFO(5,"UDPTABLE "<<nodep<<endl); UINFO(5,"UDPTABLE "<<nodep<<endl);
if (!v3Global.opt.lintOnly()) { if (!v3Global.opt.bboxUnsup()) {
nodep->v3error("Unsupported: Verilog 1995 UDP Tables"); nodep->v3error("Unsupported: Verilog 1995 UDP Tables. Use --bbox-unsup to ignore tables.");
} else { } else {
// Massive hack, just tie off all outputs so our analysis can proceed // Massive hack, just tie off all outputs so our analysis can proceed
AstVar* varoutp = NULL; AstVar* varoutp = NULL;

View File

@ -656,6 +656,7 @@ void V3Options::parseOptsList(FileLine* fl, int argc, char** argv) {
else if ( onoff (sw, "-assert", flag/*ref*/) ) { m_assert = flag; m_psl = flag; } else if ( onoff (sw, "-assert", flag/*ref*/) ) { m_assert = flag; m_psl = flag; }
else if ( onoff (sw, "-autoflush", flag/*ref*/) ) { m_autoflush = flag; } else if ( onoff (sw, "-autoflush", flag/*ref*/) ) { m_autoflush = flag; }
else if ( onoff (sw, "-bbox-sys", flag/*ref*/) ) { m_bboxSys = flag; } else if ( onoff (sw, "-bbox-sys", flag/*ref*/) ) { m_bboxSys = flag; }
else if ( onoff (sw, "-bbox-unsup", flag/*ref*/) ) { m_bboxUnsup = flag; }
else if ( !strcmp (sw, "-cc") ) { m_outFormatOk = true; m_systemC = false; m_systemPerl = false; } else if ( !strcmp (sw, "-cc") ) { m_outFormatOk = true; m_systemC = false; m_systemPerl = false; }
else if ( onoff (sw, "-coverage", flag/*ref*/) ) { coverage(flag); } else if ( onoff (sw, "-coverage", flag/*ref*/) ) { coverage(flag); }
else if ( onoff (sw, "-coverage-line", flag/*ref*/) ){ m_coverageLine = flag; } else if ( onoff (sw, "-coverage-line", flag/*ref*/) ){ m_coverageLine = flag; }

View File

@ -95,6 +95,7 @@ class V3Options {
bool m_assert; // main switch: --assert bool m_assert; // main switch: --assert
bool m_autoflush; // main switch: --autoflush bool m_autoflush; // main switch: --autoflush
bool m_bboxSys; // main switch: --bbox-sys bool m_bboxSys; // main switch: --bbox-sys
bool m_bboxUnsup; // main switch: --bbox-unsup
bool m_coverageLine; // main switch: --coverage-block bool m_coverageLine; // main switch: --coverage-block
bool m_coverageToggle;// main switch: --coverage-toggle bool m_coverageToggle;// main switch: --coverage-toggle
bool m_coverageUser; // main switch: --coverage-func bool m_coverageUser; // main switch: --coverage-func
@ -206,6 +207,7 @@ class V3Options {
bool assertOn() const { return m_assert; } // assertOn as __FILE__ may be defined bool assertOn() const { return m_assert; } // assertOn as __FILE__ may be defined
bool autoflush() const { return m_autoflush; } bool autoflush() const { return m_autoflush; }
bool bboxSys() const { return m_bboxSys; } bool bboxSys() const { return m_bboxSys; }
bool bboxUnsup() const { return m_bboxUnsup; }
bool coverage() const { return m_coverageLine || m_coverageToggle || m_coverageUser; } bool coverage() const { return m_coverageLine || m_coverageToggle || m_coverageUser; }
bool coverageLine() const { return m_coverageLine; } bool coverageLine() const { return m_coverageLine; }
bool coverageToggle() const { return m_coverageToggle; } bool coverageToggle() const { return m_coverageToggle; }

View File

@ -13,7 +13,7 @@ compile (
# Unsupported: UDP Tables # Unsupported: UDP Tables
make_top_shell => 0, make_top_shell => 0,
make_main => 0, make_main => 0,
v_flags2 => ["--lint-only"], v_flags2 => ["--lint-only --bbox-unsup"],
verilator_make_gcc => 0, verilator_make_gcc => 0,
); );