Support snps directives

This commit is contained in:
Wilson Snyder 2012-02-02 10:26:45 -05:00
parent 9df8966f4a
commit ca927fe587
3 changed files with 9 additions and 3 deletions

View File

@ -12,6 +12,8 @@ indicates the contributor was also the author of the fix; Thanks!
*** Support arrayed SystemC I/O pins. [Christophe Joly] *** Support arrayed SystemC I/O pins. [Christophe Joly]
**** Support "snps" directives. [Dan Katz]
**** Fix core dump with over 100 deep UNOPTFLAT, bug432. [Joe Eiler] **** Fix core dump with over 100 deep UNOPTFLAT, bug432. [Joe Eiler]

View File

@ -1747,9 +1747,9 @@ assertion clocks.
=head2 Synthesis Directive Assertion Support =head2 Synthesis Directive Assertion Support
With the --assert switch, Verilator reads any "//synopsys full_case" or "// With the --assert switch, Verilator reads any "//synopsys full_case" or
synopsys parallel_case" directives. The same applies to any "// ambit "//synopsys parallel_case" directives. The same applies to any "//snps",
synthesis", "//cadence" or "//pragma" directives of the same form. "//ambit synthesis", "//cadence" or "//pragma" directives of the same form.
When these synthesis directives are discovered, Verilator will either When these synthesis directives are discovered, Verilator will either
formally prove the directive to be true, or failing that, will insert the formally prove the directive to be true, or failing that, will insert the

View File

@ -394,6 +394,10 @@ void V3PreProcImp::comment(const string& text) {
cp+=strlen("synopsys"); cp+=strlen("synopsys");
synth = true; synth = true;
if (*cp == '_') fileline()->v3error("Extra underscore in meta-comment; use /*synopsys {...}*/ not /*synopsys_{...}*/"); if (*cp == '_') fileline()->v3error("Extra underscore in meta-comment; use /*synopsys {...}*/ not /*synopsys_{...}*/");
} else if (0==(strncmp(cp,"snps",strlen("snps")))) {
cp+=strlen("snps");
synth = true;
if (*cp == '_') fileline()->v3error("Extra underscore in meta-comment; use /*snps {...}*/ not /*snps_{...}*/");
} else if (0==(strncmp(cp,"cadence",strlen("cadence")))) { } else if (0==(strncmp(cp,"cadence",strlen("cadence")))) {
cp+=strlen("cadence"); cp+=strlen("cadence");
synth = true; synth = true;