Commentary
This commit is contained in:
parent
f852ba8a33
commit
3ebd6915f3
|
|
@ -227,7 +227,7 @@ __END__
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
Verilator - Convert Verilog code to C++/SystemC
|
Verilator - Translate and simulate SystemVerilog code using C++/SystemC
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
|
@ -241,7 +241,7 @@ Verilator - Convert Verilog code to C++/SystemC
|
||||||
|
|
||||||
Verilator converts synthesizable (generally not behavioral) Verilog code,
|
Verilator converts synthesizable (generally not behavioral) Verilog code,
|
||||||
plus some Synthesis, SystemVerilog and a small subset of Verilog AMS into
|
plus some Synthesis, SystemVerilog and a small subset of Verilog AMS into
|
||||||
C++ or SystemC code. It is not a complete simulator, but a compiler.
|
C++ or SystemC code. It is not a traditional simulator, but a compiler.
|
||||||
|
|
||||||
Verilator is invoked with parameters similar to GCC, Cadence
|
Verilator is invoked with parameters similar to GCC, Cadence
|
||||||
Verilog-XL/NC-Verilog, or Synopsys's VCS. It reads the specified Verilog
|
Verilog-XL/NC-Verilog, or Synopsys's VCS. It reads the specified Verilog
|
||||||
|
|
@ -3897,7 +3897,7 @@ output from a sub-module.) While legal in Verilog, implicit declarations
|
||||||
only work for single bit wide signals (not buses), do not allow using a
|
only work for single bit wide signals (not buses), do not allow using a
|
||||||
signal before it is implicitly declared by a cell, and can lead to dangling
|
signal before it is implicitly declared by a cell, and can lead to dangling
|
||||||
nets. A better option is the /*AUTOWIRE*/ feature of Verilog-Mode for
|
nets. A better option is the /*AUTOWIRE*/ feature of Verilog-Mode for
|
||||||
Emacs, available from L<http://www.veripool.org/>
|
Emacs, available from L<https://www.veripool.org/verilog-mode>
|
||||||
|
|
||||||
Ignoring this warning will only suppress the lint check, it will simulate
|
Ignoring this warning will only suppress the lint check, it will simulate
|
||||||
correctly.
|
correctly.
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ the pass.
|
||||||
A number of passes use graph algorithms, and the class `V3Graph` is
|
A number of passes use graph algorithms, and the class `V3Graph` is
|
||||||
provided to represent those graphs. Graphs are directed, and algorithms are
|
provided to represent those graphs. Graphs are directed, and algorithms are
|
||||||
provided to manipulate the graphs and to output them in
|
provided to manipulate the graphs and to output them in
|
||||||
http://www.graphviz.org/[GraphViz] dot format. `V3Graph.h` provides
|
http://www.graphviz.org[GraphViz] dot format. `V3Graph.h` provides
|
||||||
documentation of this class.
|
documentation of this class.
|
||||||
|
|
||||||
==== `V3GraphVertex`
|
==== `V3GraphVertex`
|
||||||
|
|
@ -431,7 +431,7 @@ into `V3Const__gen.cpp`.
|
||||||
Verilator uses the "Visitor" design pattern to implement its refinement and
|
Verilator uses the "Visitor" design pattern to implement its refinement and
|
||||||
optimization passes. This allows separation of the pass algorithm from the
|
optimization passes. This allows separation of the pass algorithm from the
|
||||||
AST on which it operates. Wikipedia provides an introduction to the concept
|
AST on which it operates. Wikipedia provides an introduction to the concept
|
||||||
at http://en.wikipedia.org/wiki/Visitor_pattern.
|
at https://en.wikipedia.org/wiki/Visitor_pattern.
|
||||||
|
|
||||||
As noted above, all visitors are derived classes of `AstNVisitor`. All
|
As noted above, all visitors are derived classes of `AstNVisitor`. All
|
||||||
derived classes of `AstNode` implement the `accept` method, which takes as
|
derived classes of `AstNode` implement the `accept` method, which takes as
|
||||||
|
|
@ -744,7 +744,7 @@ into the obj_dir, .tree and .dot files.
|
||||||
=== .dot Output
|
=== .dot Output
|
||||||
|
|
||||||
Dot files are dumps of internal graphs in
|
Dot files are dumps of internal graphs in
|
||||||
http://www.graphviz.org/[Graphviz] dot format. When a dot file is dumped,
|
http://www.graphviz.org[Graphviz] dot format. When a dot file is dumped,
|
||||||
Verilator will also print a line on stdout that can be used to format the
|
Verilator will also print a line on stdout that can be used to format the
|
||||||
output, for example:
|
output, for example:
|
||||||
|
|
||||||
|
|
@ -753,9 +753,9 @@ output, for example:
|
||||||
You can then print a.ps. You may prefer gif format, which doesn't get
|
You can then print a.ps. You may prefer gif format, which doesn't get
|
||||||
scaled so can be more useful with large graphs.
|
scaled so can be more useful with large graphs.
|
||||||
|
|
||||||
For dynamic graph viewing consider ZGRViewer
|
For dynamic graph viewing consider
|
||||||
http://zvtm.sourceforge.net/zgrviewer.html. If you know of better
|
http://zvtm.sourceforge.net/zgrviewer.html[ZGRViewer]. If you know of
|
||||||
viewers let us know; ZGRViewer isn't great for large graphs.
|
better viewers let us know; ZGRViewer isn't great for large graphs.
|
||||||
|
|
||||||
=== .tree Output
|
=== .tree Output
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ compile(
|
||||||
fails => $Self->{vlt_all},
|
fails => $Self->{vlt_all},
|
||||||
expect =>
|
expect =>
|
||||||
'%Error: Internal Error: .*: --debug-fatal-src
|
'%Error: Internal Error: .*: --debug-fatal-src
|
||||||
.* See the manual and http://www.veripool.org/verilator for more assistance.
|
.* See the manual and .*
|
||||||
%Error: Command Failed.*',
|
%Error: Command Failed.*',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ lint(
|
||||||
fails => 1,
|
fails => 1,
|
||||||
expect =>
|
expect =>
|
||||||
'%Error: Internal Error: .*: --debug-fatal-src
|
'%Error: Internal Error: .*: --debug-fatal-src
|
||||||
.*See the manual and http://www.veripool.org/verilator for more assistance.
|
.*See the manual and .*
|
||||||
.*in V3Options::.*
|
.*in V3Options::.*
|
||||||
.*%Error: Command Failed.*',
|
.*%Error: Command Failed.*',
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
// This test exercises the use of DPI to access signals and registers in a
|
// This test exercises the use of DPI to access signals and registers in a
|
||||||
// module hierarchy in a uniform fashion. See the discussion at
|
// module hierarchy in a uniform fashion. See the discussion at
|
||||||
//
|
//
|
||||||
// http://www.veripool.org/boards/3/topics/show/752-Verilator-Command-line-specification-of-public-access-to-variables
|
// https://www.veripool.org/boards/3/topics/show/752-Verilator-Command-line-specification-of-public-access-to-variables
|
||||||
//
|
//
|
||||||
// We need to test read and write access to:
|
// We need to test read and write access to:
|
||||||
// - scalars
|
// - scalars
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ module t (/*AUTOARG*/
|
||||||
func1(1'b1, dbg_addr) : val = 1;
|
func1(1'b1, dbg_addr) : val = 1;
|
||||||
// This fails:
|
// This fails:
|
||||||
// %Error: Internal Error: test.v:23: ../V3Task.cpp:993: Function not underneath a statement
|
// %Error: Internal Error: test.v:23: ../V3Task.cpp:993: Function not underneath a statement
|
||||||
// %Error: Internal Error: See the manual and http://www.veripool.org/verilator for more assistance.
|
|
||||||
func2(1'b1, dbg_addr) : val = 2;
|
func2(1'b1, dbg_addr) : val = 2;
|
||||||
default : val = 0;
|
default : val = 0;
|
||||||
endcase
|
endcase
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue