mirror of
https://github.com/verilator/verilator.git
synced 2025-01-05 22:27:35 +00:00
Commentary
git-svn-id: file://localhost/svn/verilator/trunk/verilator@895 77ca24e4-aefa-0310-84f0-b9a241c72d87
This commit is contained in:
parent
fabbfbc46e
commit
b4d9eb6ec4
@ -903,7 +903,8 @@ declarations inside port lists.
|
||||
Verilator supports the `begin_keywords and `end_keywords compiler
|
||||
directives.
|
||||
|
||||
Verilator treats the uwire keyword as if it were the normal wire keyword.
|
||||
Verilator supports the uwire, $countones, $isunknown, $onehot and $onehot0
|
||||
keywords. Verilator partially supports the uwire keyword.
|
||||
|
||||
=head1 SYSTEMVERILOG (IEEE 1800-2005) SUPPORT
|
||||
|
||||
@ -916,12 +917,15 @@ always_comb, always_ff, always_latch, and final.
|
||||
|
||||
=head1 SUGAR/PSL SUPPORT
|
||||
|
||||
With the --assert switch, Verilator is just beginning to support the
|
||||
Property Specification Language (PSL), specifically the simple subset
|
||||
without time-branching primitives. Verilator currently only converts PSL
|
||||
Most future work is being directed towards improving SystemVerilog
|
||||
assertions instead of PSL. If you are using these PSL features, please
|
||||
contact the author as they may be depreciated in future versions.
|
||||
|
||||
With the --assert switch, Verilator enables support of the Property
|
||||
Specification Language (PSL), specifically the simple PSL subset without
|
||||
time-branching primitives. Verilator currently only converts PSL
|
||||
assertions to simple "if (...) error" statements, and coverage statements
|
||||
to increment the line counters described in the coverage section. If you
|
||||
need additional features please contact the author.
|
||||
to increment the line counters described in the coverage section.
|
||||
|
||||
Verilator implements these keywords: assert, assume (same as assert),
|
||||
default (for clocking), countones, cover, isunknown, onehot, onehot0,
|
||||
@ -1296,12 +1300,6 @@ prepended. (If you don't know what this means, Verilator will do what you
|
||||
probably expect -- what C does. The default behavior of Verilog is
|
||||
different.)
|
||||
|
||||
=head2 Generate Statements
|
||||
|
||||
All instantiations and variables in generate blocks will be placed under
|
||||
hierarchy that has a name different from that required in the language
|
||||
specification.
|
||||
|
||||
=head2 Generated Clocks
|
||||
|
||||
Verilator attempts to deal with generated clocks correctly, however new
|
||||
@ -1356,6 +1354,35 @@ will give a width warning and wrap around the power-of-2 size. For
|
||||
non-power-of-2 sizes, it will return a unspecified constant of the
|
||||
appropriate width.
|
||||
|
||||
=head1 LANGUAGE KEYWORD LIMITATIONS
|
||||
|
||||
This section describes specific limitations for each language keyword.
|
||||
|
||||
=over 4
|
||||
|
||||
=item always always_comb always_ff always_latch and assign begin buf case
|
||||
casex casez default defparam else end endcase endfunction endgenerate
|
||||
endmodule endspecify endtask final for function generate genvar if initial
|
||||
inout input integer localparam macromodule module nand negedge nor not or
|
||||
output parameter posedge reg scalared signed supply0 supply1 task tri
|
||||
vectored wire xnor xor
|
||||
|
||||
Generally supported.
|
||||
|
||||
=item specify specparam
|
||||
|
||||
All specify blocks and timing checks are ignored.
|
||||
|
||||
=item uwire
|
||||
|
||||
Verilator does not perform warning checking on uwires, it treats the uwire
|
||||
keyword as if it were the normal wire keyword.
|
||||
|
||||
=item $bits, $countones, $finish, $isunknown, $onehot, $onehot0, $readmemb,
|
||||
$readmemh, $signed, $stop, $time, $unsigned
|
||||
|
||||
Generally supported.
|
||||
|
||||
=item $display, $write, $fdisplay, $fwrite
|
||||
|
||||
$display and friends must have a constant format string as the first
|
||||
@ -1376,12 +1403,23 @@ are 32 bits while FILE*s may be 64 bits, the descriptor must be stored in a
|
||||
reg [63:0] rather then an integer. The define `verilator_file_descriptor in
|
||||
verilated.v can be used to hide this difference.
|
||||
|
||||
=item $fullskew, $hold, $nochange, $period, $recovery, $recrem, $removal,
|
||||
$setup, $setuphold, $skew, $timeskew, $width
|
||||
|
||||
All specify blocks and timing checks are ignored.
|
||||
|
||||
=item $readmemb, $readmemh
|
||||
|
||||
Read memory commands should work properly. Note Verilator and the Verilog
|
||||
specification does not include support for readmem to multi-dimensional
|
||||
arrays.
|
||||
|
||||
=item $realtime
|
||||
|
||||
Treated as $time.
|
||||
|
||||
=back
|
||||
|
||||
=head1 ERRORS AND WARNINGS
|
||||
|
||||
Warnings may be disabled in two ways. First, when the warning is
|
||||
|
Loading…
Reference in New Issue
Block a user