mirror of
https://github.com/verilator/verilator.git
synced 2025-01-01 04:07:34 +00:00
docs: Fix spelling
This commit is contained in:
parent
d61ad04f32
commit
a0e7930036
12
Changes
12
Changes
@ -75,7 +75,7 @@ Verilator 5.002 2022-10-29
|
|||||||
* Fix linker errors in user-facing timing functions (#3657). [Krzysztof Bieganski, Antmicro Ltd]
|
* Fix linker errors in user-facing timing functions (#3657). [Krzysztof Bieganski, Antmicro Ltd]
|
||||||
* Fix null access on optimized-out fork statements (#3658). [Krzysztof Bieganski, Antmicro Ltd]
|
* Fix null access on optimized-out fork statements (#3658). [Krzysztof Bieganski, Antmicro Ltd]
|
||||||
* Fix VPI inline module naming mismatch (#3690) (#3694). [Jiuyang Liu]
|
* Fix VPI inline module naming mismatch (#3690) (#3694). [Jiuyang Liu]
|
||||||
* Fix deadlock in timeprecision when using systemC (#3707). [Kamil Rakoczy, Antmicro Ltd]
|
* Fix deadlock in timeprecision when using SystemC (#3707). [Kamil Rakoczy, Antmicro Ltd]
|
||||||
* Fix width mismatch on inside operator (#3714). [Alex Torregrosa]
|
* Fix width mismatch on inside operator (#3714). [Alex Torregrosa]
|
||||||
|
|
||||||
|
|
||||||
@ -2987,7 +2987,7 @@ Verilator 3.502 2005-11-30 Stable
|
|||||||
|
|
||||||
* Fix local non-IO variables in public functions and tasks.
|
* Fix local non-IO variables in public functions and tasks.
|
||||||
* Fix bad lifetime optimization when same signal is assigned multiple
|
* Fix bad lifetime optimization when same signal is assigned multiple
|
||||||
times in both branch of a if. [Danny Ding]
|
times in both branch of an if. [Danny Ding]
|
||||||
|
|
||||||
|
|
||||||
Verilator 3.501 2005-11-16 Stable
|
Verilator 3.501 2005-11-16 Stable
|
||||||
@ -3127,8 +3127,8 @@ Verilator 3.450 2005-07-12
|
|||||||
* $finish will no longer exit, but set Verilated::gotFinish().
|
* $finish will no longer exit, but set Verilated::gotFinish().
|
||||||
This enables support for final statements, and for other cleanup code.
|
This enables support for final statements, and for other cleanup code.
|
||||||
If this is undesired, redefine the vl_user_finish routine. Top level
|
If this is undesired, redefine the vl_user_finish routine. Top level
|
||||||
loops should use Verilated::gotFinish() as a exit condition for their
|
loops should use Verilated::gotFinish() as an exit condition for their
|
||||||
loop, and then call top->final(). To prevent a infinite loop, a double
|
loop, and then call top->final(). To prevent an infinite loop, a double
|
||||||
$finish will still exit; this may be removed in future releases.
|
$finish will still exit; this may be removed in future releases.
|
||||||
* Support SystemVerilog keywords $bits, $countones, $isunknown,
|
* Support SystemVerilog keywords $bits, $countones, $isunknown,
|
||||||
$onehot, $onehot0, always_comb, always_ff, always_latch, finish.
|
$onehot, $onehot0, always_comb, always_ff, always_latch, finish.
|
||||||
@ -3529,7 +3529,7 @@ Verilator 3.201-beta 2003-12-10
|
|||||||
**Major:**
|
**Major:**
|
||||||
|
|
||||||
* BETA VERSION, USE 3.124 for stable release!
|
* BETA VERSION, USE 3.124 for stable release!
|
||||||
* Version 3.2XX includes a all new back-end.
|
* Version 3.2XX includes an all new back-end.
|
||||||
This includes automatic inlining, flattening of signals between
|
This includes automatic inlining, flattening of signals between
|
||||||
hierarchy, and complete ordering of statements. This results in
|
hierarchy, and complete ordering of statements. This results in
|
||||||
60-300% execution speedups, though less pretty C++ output. Even
|
60-300% execution speedups, though less pretty C++ output. Even
|
||||||
@ -3558,7 +3558,7 @@ Verilator 3.124 2003-12-05
|
|||||||
|
|
||||||
**Major:**
|
**Major:**
|
||||||
|
|
||||||
* A optimized executable will be made by default, in addition to a debug
|
* An optimized executable will be made by default, in addition to a debug
|
||||||
executable. Invoking Verilator with --debug will pick the debug version.
|
executable. Invoking Verilator with --debug will pick the debug version.
|
||||||
|
|
||||||
**Minor:**
|
**Minor:**
|
||||||
|
12
README.rst
12
README.rst
@ -29,7 +29,7 @@ Welcome to Verilator
|
|||||||
* - |verilator multithreaded performance|
|
* - |verilator multithreaded performance|
|
||||||
- **Fast**
|
- **Fast**
|
||||||
* Outperforms many closed-source commercial simulators
|
* Outperforms many closed-source commercial simulators
|
||||||
* Single- and multi-threaded output models
|
* Single- and multithreaded output models
|
||||||
* - **Widely Used**
|
* - **Widely Used**
|
||||||
* Wide industry and academic deployment
|
* Wide industry and academic deployment
|
||||||
* Out-of-the-box support from Arm, and RISC-V vendor IP
|
* Out-of-the-box support from Arm, and RISC-V vendor IP
|
||||||
@ -52,7 +52,7 @@ What Verilator Does
|
|||||||
Verilator is invoked with parameters similar to GCC or Synopsys's VCS. It
|
Verilator is invoked with parameters similar to GCC or Synopsys's VCS. It
|
||||||
"Verilates" the specified Verilog or SystemVerilog code by reading it,
|
"Verilates" the specified Verilog or SystemVerilog code by reading it,
|
||||||
performing lint checks, and optionally inserting assertion checks and
|
performing lint checks, and optionally inserting assertion checks and
|
||||||
coverage-analysis points. It outputs single- or multi-threaded .cpp and .h
|
coverage-analysis points. It outputs single- or multithreaded .cpp and .h
|
||||||
files, the "Verilated" code.
|
files, the "Verilated" code.
|
||||||
|
|
||||||
These Verilated C++/SystemC files are then compiled by a C++ compiler
|
These Verilated C++/SystemC files are then compiled by a C++ compiler
|
||||||
@ -61,11 +61,11 @@ file to instantiate the Verilated model. Executing the resulting executable
|
|||||||
performs the design simulation. Verilator also supports linking Verilated
|
performs the design simulation. Verilator also supports linking Verilated
|
||||||
generated libraries, optionally encrypted, into other simulators.
|
generated libraries, optionally encrypted, into other simulators.
|
||||||
|
|
||||||
Verilator may not be the best choice if you are expecting a full featured
|
Verilator may not be the best choice if you are expecting a full-featured
|
||||||
replacement for a closed-source Verilog simulator, need SDF annotation,
|
replacement for a closed-source Verilog simulator, need SDF annotation,
|
||||||
mixed-signal simulation, or are doing a quick class project (we recommend
|
mixed-signal simulation, or are doing a quick class project (we recommend
|
||||||
`Icarus Verilog`_ for classwork.) However, if you are looking for a path
|
`Icarus Verilog`_ for classwork.) However, if you are looking for a path
|
||||||
to migrate SystemVerilog to C++/SystemC, or want high speed simulation of
|
to migrate SystemVerilog to C++/SystemC, or want high-speed simulation of
|
||||||
synthesizable designs containing limited verification constructs, Verilator
|
synthesizable designs containing limited verification constructs, Verilator
|
||||||
is the tool for you.
|
is the tool for you.
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ Verilator has typically similar or better performance versus the
|
|||||||
closed-source Verilog simulators (Carbon Design Systems Carbonator,
|
closed-source Verilog simulators (Carbon Design Systems Carbonator,
|
||||||
Modelsim/Questa, Cadence Incisive/NC-Verilog, Synopsys VCS, VTOC, and
|
Modelsim/Questa, Cadence Incisive/NC-Verilog, Synopsys VCS, VTOC, and
|
||||||
Pragmatic CVer/CVC). But, Verilator is open-sourced, so you can spend on
|
Pragmatic CVer/CVC). But, Verilator is open-sourced, so you can spend on
|
||||||
computes rather than licenses. Thus Verilator gives you the best
|
computes rather than licenses. Thus, Verilator gives you the best
|
||||||
cycles/dollar.
|
cycles/dollar.
|
||||||
|
|
||||||
|
|
||||||
@ -132,7 +132,7 @@ Related Projects
|
|||||||
- `GTKwave <http://gtkwave.sourceforge.net/>`_ - Waveform viewer for
|
- `GTKwave <http://gtkwave.sourceforge.net/>`_ - Waveform viewer for
|
||||||
Verilator traces.
|
Verilator traces.
|
||||||
|
|
||||||
- `Icarus Verilog`_ - Icarus is a full featured interpreted Verilog
|
- `Icarus Verilog`_ - Icarus is a full-featured interpreted Verilog
|
||||||
simulator. If Verilator does not support your needs, perhaps Icarus may.
|
simulator. If Verilator does not support your needs, perhaps Icarus may.
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,15 +44,10 @@ Did you write a patch that fixes a bug?
|
|||||||
- Have your patch include the addition of your name to `docs/CONTRIBUTORS
|
- Have your patch include the addition of your name to `docs/CONTRIBUTORS
|
||||||
<CONTRIBUTORS>`__ (preferred).
|
<CONTRIBUTORS>`__ (preferred).
|
||||||
|
|
||||||
- Use "git -s" as part of your commit. This adds a "signed-of-by"
|
|
||||||
attribute which will certify your contribution as described in the
|
|
||||||
`Signed-of-By convention
|
|
||||||
<https://github.com/wking/signed-off-by/blob/master/Documentation/SubmittingPatches>`__.
|
|
||||||
|
|
||||||
- Email, or post in an issue a statement that you certify your
|
- Email, or post in an issue a statement that you certify your
|
||||||
contributions.
|
contributions.
|
||||||
|
|
||||||
- In any of these cases your name will be added to `docs/CONTRIBUTORS
|
- In any of these cases, your name will be added to `docs/CONTRIBUTORS
|
||||||
<CONTRIBUTORS>`__ and you are agreeing all future contributions are
|
<CONTRIBUTORS>`__ and you are agreeing all future contributions are
|
||||||
also certified.
|
also certified.
|
||||||
|
|
||||||
|
@ -563,7 +563,7 @@ or "`ifdef`"'s may break other tools.
|
|||||||
|
|
||||||
.. option:: $stacktrace
|
.. option:: $stacktrace
|
||||||
|
|
||||||
Called as a task, orint a stack trace. Called as a function, return a
|
Called as a task, print a stack trace. Called as a function, return a
|
||||||
string with a stack trace. This relies on the C++ system trace, which
|
string with a stack trace. This relies on the C++ system trace, which
|
||||||
may give less meaningful results if the model was not compiled with
|
may give less meaningful results if the model was not compiled with
|
||||||
debug symbols. Also the data represents the C++ stack, the
|
debug symbols. Also the data represents the C++ stack, the
|
||||||
|
@ -42,7 +42,7 @@ The main flow of Verilator can be followed by reading the Verilator.cpp
|
|||||||
4. Functions, variable and other references are linked to their
|
4. Functions, variable and other references are linked to their
|
||||||
definitions.
|
definitions.
|
||||||
|
|
||||||
5. Parameters are resolved and the design is elaborated.
|
5. Parameters are resolved, and the design is elaborated.
|
||||||
|
|
||||||
6. Verilator then performs many additional edits and optimizations on
|
6. Verilator then performs many additional edits and optimizations on
|
||||||
the hierarchical design. This includes coverage, assertions, X
|
the hierarchical design. This includes coverage, assertions, X
|
||||||
@ -149,8 +149,8 @@ an associated ``fanout``, ``color`` and ``rank``, which may be used in
|
|||||||
algorithms for ordering the graph. A generic ``user``/``userp`` member
|
algorithms for ordering the graph. A generic ``user``/``userp`` member
|
||||||
variable is also provided.
|
variable is also provided.
|
||||||
|
|
||||||
Virtual methods are provided to specify the name, color, shape and style to
|
Virtual methods are provided to specify the name, color, shape, and style
|
||||||
be used in dot output. Typically users provide derived classes from
|
to be used in dot output. Typically, users provide derived classes from
|
||||||
``V3GraphVertex`` which will reimplement these methods.
|
``V3GraphVertex`` which will reimplement these methods.
|
||||||
|
|
||||||
Iterators are provided to access in and out edges. Typically these are used
|
Iterators are provided to access in and out edges. Typically these are used
|
||||||
@ -994,7 +994,7 @@ Per-Instance Classes
|
|||||||
If we have multiple instances of the same module, and they partition
|
If we have multiple instances of the same module, and they partition
|
||||||
differently (likely; we make no attempt to partition them the same) then
|
differently (likely; we make no attempt to partition them the same) then
|
||||||
the variable sort will be suboptimal for either instance. A possible
|
the variable sort will be suboptimal for either instance. A possible
|
||||||
improvement would be to emit a unique class for each instance of a module,
|
improvement would be to emit an unique class for each instance of a module,
|
||||||
and sort its variables optimally for that instance's code stream.
|
and sort its variables optimally for that instance's code stream.
|
||||||
|
|
||||||
|
|
||||||
|
@ -225,6 +225,7 @@ Nalbantis
|
|||||||
Narayan
|
Narayan
|
||||||
Nauticus
|
Nauticus
|
||||||
Newgard
|
Newgard
|
||||||
|
Nigam
|
||||||
Nikana
|
Nikana
|
||||||
Niranjan
|
Niranjan
|
||||||
Nitza
|
Nitza
|
||||||
@ -239,6 +240,7 @@ Patricio
|
|||||||
Petr
|
Petr
|
||||||
Piechotka
|
Piechotka
|
||||||
Piersall
|
Piersall
|
||||||
|
Platzer
|
||||||
Plunkett
|
Plunkett
|
||||||
Popolon
|
Popolon
|
||||||
Popov
|
Popov
|
||||||
@ -253,6 +255,7 @@ Pullup
|
|||||||
Pulver
|
Pulver
|
||||||
Puri
|
Puri
|
||||||
Questa
|
Questa
|
||||||
|
Rachit
|
||||||
Ralf
|
Ralf
|
||||||
Rapp
|
Rapp
|
||||||
Redhat
|
Redhat
|
||||||
@ -383,6 +386,7 @@ agrobman
|
|||||||
ahouska
|
ahouska
|
||||||
al
|
al
|
||||||
ala
|
ala
|
||||||
|
alejandro
|
||||||
algrobman
|
algrobman
|
||||||
andit
|
andit
|
||||||
ar
|
ar
|
||||||
@ -407,7 +411,6 @@ biguint
|
|||||||
biops
|
biops
|
||||||
bisonpre
|
bisonpre
|
||||||
bitOpTree
|
bitOpTree
|
||||||
bitOpTree
|
|
||||||
bitop
|
bitop
|
||||||
bitstoreal
|
bitstoreal
|
||||||
blackbox
|
blackbox
|
||||||
@ -422,6 +425,7 @@ callValueCbs
|
|||||||
casex
|
casex
|
||||||
casez
|
casez
|
||||||
casted
|
casted
|
||||||
|
castro
|
||||||
cb
|
cb
|
||||||
ccache
|
ccache
|
||||||
ccall
|
ccall
|
||||||
@ -462,6 +466,7 @@ cutable
|
|||||||
cygwin
|
cygwin
|
||||||
dM
|
dM
|
||||||
da
|
da
|
||||||
|
danbone
|
||||||
dat
|
dat
|
||||||
datadir
|
datadir
|
||||||
datafiles
|
datafiles
|
||||||
@ -590,6 +595,7 @@ hierCMakeArgs
|
|||||||
hierMkArgs
|
hierMkArgs
|
||||||
hierVer
|
hierVer
|
||||||
hx
|
hx
|
||||||
|
hyperthreading
|
||||||
hyperthreads
|
hyperthreads
|
||||||
icecream
|
icecream
|
||||||
idmap
|
idmap
|
||||||
@ -649,6 +655,7 @@ makefiles
|
|||||||
manpages
|
manpages
|
||||||
metacomment
|
metacomment
|
||||||
metacomments
|
metacomments
|
||||||
|
miree
|
||||||
mis
|
mis
|
||||||
misconnected
|
misconnected
|
||||||
misconversion
|
misconversion
|
||||||
@ -657,6 +664,7 @@ mk
|
|||||||
mno
|
mno
|
||||||
modport
|
modport
|
||||||
modports
|
modports
|
||||||
|
mpb
|
||||||
msg
|
msg
|
||||||
msvc
|
msvc
|
||||||
mtask
|
mtask
|
||||||
@ -696,6 +704,7 @@ nullptr
|
|||||||
onehot
|
onehot
|
||||||
ooo
|
ooo
|
||||||
oprofile
|
oprofile
|
||||||
|
ortegon
|
||||||
oversubscription
|
oversubscription
|
||||||
parallelized
|
parallelized
|
||||||
param
|
param
|
||||||
@ -748,6 +757,7 @@ pwd
|
|||||||
qrq
|
qrq
|
||||||
radix
|
radix
|
||||||
randc
|
randc
|
||||||
|
randcase
|
||||||
rarr
|
rarr
|
||||||
rdtsc
|
rdtsc
|
||||||
reStructuredText
|
reStructuredText
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
class VerilatedCovImp;
|
class VerilatedCovImp;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/// Insert a item for coverage analysis.
|
/// Insert an item for coverage analysis.
|
||||||
/// The first argument is a pointer to the count to be dumped.
|
/// The first argument is a pointer to the count to be dumped.
|
||||||
/// The remaining arguments occur in pairs: A string key, and a value.
|
/// The remaining arguments occur in pairs: A string key, and a value.
|
||||||
/// The value may be a string, or another type which will be auto-converted to a string.
|
/// The value may be a string, or another type which will be auto-converted to a string.
|
||||||
|
@ -387,9 +387,9 @@ using ssize_t = uint32_t; ///< signed size_t; returned from read()
|
|||||||
|
|
||||||
#define VL_BYTESIZE 8 ///< Bits in a CData / byte
|
#define VL_BYTESIZE 8 ///< Bits in a CData / byte
|
||||||
#define VL_SHORTSIZE 16 ///< Bits in a SData / short
|
#define VL_SHORTSIZE 16 ///< Bits in a SData / short
|
||||||
#define VL_IDATASIZE 32 ///< Bits in a IData / word
|
#define VL_IDATASIZE 32 ///< Bits in an IData / word
|
||||||
#define VL_QUADSIZE 64 ///< Bits in a QData / quadword
|
#define VL_QUADSIZE 64 ///< Bits in a QData / quadword
|
||||||
#define VL_EDATASIZE 32 ///< Bits in a EData (WData entry)
|
#define VL_EDATASIZE 32 ///< Bits in an EData (WData entry)
|
||||||
#define VL_EDATASIZE_LOG2 5 ///< log2(VL_EDATASIZE)
|
#define VL_EDATASIZE_LOG2 5 ///< log2(VL_EDATASIZE)
|
||||||
#define VL_CACHE_LINE_BYTES 64 ///< Bytes in a cache line (for alignment)
|
#define VL_CACHE_LINE_BYTES 64 ///< Bytes in a cache line (for alignment)
|
||||||
|
|
||||||
@ -443,7 +443,7 @@ using ssize_t = uint32_t; ///< signed size_t; returned from read()
|
|||||||
#define VL_BITWORD_E(bit) ((bit) >> VL_EDATASIZE_LOG2) ///< Word number for a wide quantity
|
#define VL_BITWORD_E(bit) ((bit) >> VL_EDATASIZE_LOG2) ///< Word number for a wide quantity
|
||||||
#define VL_BITBIT_I(bit) ((bit) & VL_SIZEBITS_I) ///< Bit number for a bit in a long
|
#define VL_BITBIT_I(bit) ((bit) & VL_SIZEBITS_I) ///< Bit number for a bit in a long
|
||||||
#define VL_BITBIT_Q(bit) ((bit) & VL_SIZEBITS_Q) ///< Bit number for a bit in a quad
|
#define VL_BITBIT_Q(bit) ((bit) & VL_SIZEBITS_Q) ///< Bit number for a bit in a quad
|
||||||
#define VL_BITBIT_E(bit) ((bit) & VL_SIZEBITS_E) ///< Bit number for a bit in a EData
|
#define VL_BITBIT_E(bit) ((bit) & VL_SIZEBITS_E) ///< Bit number for a bit in an EData
|
||||||
|
|
||||||
// Return true if data[bit] set; not 0/1 return, but 0/non-zero return.
|
// Return true if data[bit] set; not 0/1 return, but 0/non-zero return.
|
||||||
#define VL_BITISSET_I(data, bit) ((data) & (VL_UL(1) << VL_BITBIT_I(bit)))
|
#define VL_BITISSET_I(data, bit) ((data) & (VL_UL(1) << VL_BITBIT_I(bit)))
|
||||||
|
@ -31,5 +31,5 @@ define watchedit
|
|||||||
watch AstNode::s_editCntGbl==$arg0
|
watch AstNode::s_editCntGbl==$arg0
|
||||||
end
|
end
|
||||||
document watchedit
|
document watchedit
|
||||||
Verilator: Create watch on where a edit number is made
|
Verilator: Create watch on where an edit number is made
|
||||||
end
|
end
|
||||||
|
@ -312,7 +312,7 @@ public:
|
|||||||
bool same(const AstNode*) const override { return true; }
|
bool same(const AstNode*) const override { return true; }
|
||||||
};
|
};
|
||||||
class AstNodeTermop VL_NOT_FINAL : public AstNodeExpr {
|
class AstNodeTermop VL_NOT_FINAL : public AstNodeExpr {
|
||||||
// Terminal operator -- a operator with no "inputs"
|
// Terminal operator -- an operator with no "inputs"
|
||||||
protected:
|
protected:
|
||||||
AstNodeTermop(VNType t, FileLine* fl)
|
AstNodeTermop(VNType t, FileLine* fl)
|
||||||
: AstNodeExpr{t, fl} {}
|
: AstNodeExpr{t, fl} {}
|
||||||
|
@ -2231,7 +2231,7 @@ public:
|
|||||||
|
|
||||||
// === AstNodeRange ===
|
// === AstNodeRange ===
|
||||||
class AstBracketRange final : public AstNodeRange {
|
class AstBracketRange final : public AstNodeRange {
|
||||||
// Parser only concept "[lhsp]", a AstUnknownRange, QueueRange or Range,
|
// Parser only concept "[lhsp]", an AstUnknownRange, QueueRange or Range,
|
||||||
// unknown until lhsp type is determined
|
// unknown until lhsp type is determined
|
||||||
// @astgen op1 := elementsp : AstNode // Expr or DType
|
// @astgen op1 := elementsp : AstNode // Expr or DType
|
||||||
public:
|
public:
|
||||||
|
@ -283,7 +283,7 @@ public:
|
|||||||
for (GateVarRefList::const_iterator it = m_rhsVarRefs.begin(); it != m_rhsVarRefs.end();
|
for (GateVarRefList::const_iterator it = m_rhsVarRefs.begin(); it != m_rhsVarRefs.end();
|
||||||
++it) {
|
++it) {
|
||||||
if (m_lhsVarRef && m_lhsVarRef->varScopep() == (*it)->varScopep()) {
|
if (m_lhsVarRef && m_lhsVarRef->varScopep() == (*it)->varScopep()) {
|
||||||
clearSimple("Circular logic\n"); // Oh my, we'll get a UNOPTFLAT much later.
|
clearSimple("Circular logic\n"); // Oh my, we'll get an UNOPTFLAT much later
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (debug() >= 9 && !m_isSimple) nodep->dumpTree("- gate!Ok: ");
|
if (debug() >= 9 && !m_isSimple) nodep->dumpTree("- gate!Ok: ");
|
||||||
|
@ -115,7 +115,7 @@ public:
|
|||||||
/// (I.E. all loops will occur within each color, not between them.)
|
/// (I.E. all loops will occur within each color, not between them.)
|
||||||
void stronglyConnected(V3EdgeFuncP edgeFuncp);
|
void stronglyConnected(V3EdgeFuncP edgeFuncp);
|
||||||
|
|
||||||
/// Assign a ordering number to all vertexes in a tree.
|
/// Assign an ordering number to all vertexes in a tree.
|
||||||
/// All nodes with no inputs will get rank 1
|
/// All nodes with no inputs will get rank 1
|
||||||
void rank(V3EdgeFuncP edgeFuncp);
|
void rank(V3EdgeFuncP edgeFuncp);
|
||||||
void rank();
|
void rank();
|
||||||
|
@ -64,7 +64,7 @@ private:
|
|||||||
T m_prevp = nullptr; // Pointer to previous element, nullptr=beginning
|
T m_prevp = nullptr; // Pointer to previous element, nullptr=beginning
|
||||||
friend class V3List<T>;
|
friend class V3List<T>;
|
||||||
static V3ListEnt* baseToListEnt(void* newbasep, size_t offset) {
|
static V3ListEnt* baseToListEnt(void* newbasep, size_t offset) {
|
||||||
// "this" must be a element inside of *basep
|
// "this" must be an element inside of *basep
|
||||||
// Use that to determine a structure offset, then apply to the new base
|
// Use that to determine a structure offset, then apply to the new base
|
||||||
// to get our new pointer information
|
// to get our new pointer information
|
||||||
return (V3ListEnt*)(((uint8_t*)newbasep) + offset);
|
return (V3ListEnt*)(((uint8_t*)newbasep) + offset);
|
||||||
@ -83,7 +83,7 @@ public:
|
|||||||
T prevp() const { return m_prevp; }
|
T prevp() const { return m_prevp; }
|
||||||
// METHODS
|
// METHODS
|
||||||
void pushBack(V3List<T>& listr, T newp) {
|
void pushBack(V3List<T>& listr, T newp) {
|
||||||
// "this" must be a element inside of *newp
|
// "this" must be an element inside of *newp
|
||||||
// cppcheck-suppress thisSubtraction
|
// cppcheck-suppress thisSubtraction
|
||||||
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(newp);
|
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(newp);
|
||||||
m_nextp = nullptr;
|
m_nextp = nullptr;
|
||||||
@ -93,7 +93,7 @@ public:
|
|||||||
listr.m_tailp = newp;
|
listr.m_tailp = newp;
|
||||||
}
|
}
|
||||||
void pushFront(V3List<T>& listr, T newp) {
|
void pushFront(V3List<T>& listr, T newp) {
|
||||||
// "this" must be a element inside of *newp
|
// "this" must be an element inside of *newp
|
||||||
// cppcheck-suppress thisSubtraction
|
// cppcheck-suppress thisSubtraction
|
||||||
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(newp);
|
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(newp);
|
||||||
m_nextp = listr.m_headp;
|
m_nextp = listr.m_headp;
|
||||||
@ -104,7 +104,7 @@ public:
|
|||||||
}
|
}
|
||||||
// Unlink from side
|
// Unlink from side
|
||||||
void unlink(V3List<T>& listr, T oldp) {
|
void unlink(V3List<T>& listr, T oldp) {
|
||||||
// "this" must be a element inside of *oldp
|
// "this" must be an element inside of *oldp
|
||||||
// cppcheck-suppress thisSubtraction
|
// cppcheck-suppress thisSubtraction
|
||||||
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(oldp);
|
const size_t offset = (size_t)(uint8_t*)(this) - (size_t)(uint8_t*)(oldp);
|
||||||
if (m_nextp) {
|
if (m_nextp) {
|
||||||
|
@ -74,7 +74,7 @@ struct V3OptionParser::Impl {
|
|||||||
#define V3OPTION_PARSER_DEF_ACT_CLASS(className, type, body, enType) \
|
#define V3OPTION_PARSER_DEF_ACT_CLASS(className, type, body, enType) \
|
||||||
template <> \
|
template <> \
|
||||||
class V3OptionParser::Impl::className<type> final : public ActionBase<enType> { \
|
class V3OptionParser::Impl::className<type> final : public ActionBase<enType> { \
|
||||||
type* const m_valp; /* Pointer to a option variable*/ \
|
type* const m_valp; /* Pointer to an option variable*/ \
|
||||||
\
|
\
|
||||||
public: \
|
public: \
|
||||||
explicit className(type* valp) \
|
explicit className(type* valp) \
|
||||||
|
@ -991,9 +991,9 @@ BISONPRE_VERSION(3.7,%define api.header.include {"V3ParseBison.h"})
|
|||||||
%token<fl> yP_SRIGHTEQ ">>="
|
%token<fl> yP_SRIGHTEQ ">>="
|
||||||
%token<fl> yP_SSRIGHTEQ ">>>="
|
%token<fl> yP_SSRIGHTEQ ">>>="
|
||||||
|
|
||||||
// [* is not a operator, as "[ * ]" is legal
|
// [* is not an operator, as "[ * ]" is legal
|
||||||
// [= and [-> could be repitition operators, but to match [* we don't add them.
|
// [= and [-> could be repitition operators, but to match [* we don't add them.
|
||||||
// '( is not a operator, as "' (" is legal
|
// '( is not an operator, as "' (" is legal
|
||||||
|
|
||||||
//********************
|
//********************
|
||||||
// Verilog op precedence
|
// Verilog op precedence
|
||||||
|
@ -1575,7 +1575,7 @@ sub _run {
|
|||||||
if ($param{verilator_run}) {
|
if ($param{verilator_run}) {
|
||||||
# Gcov fails when parallel jobs write same data file,
|
# Gcov fails when parallel jobs write same data file,
|
||||||
# so we make sure .gcda output dir is unique across all running jobs.
|
# so we make sure .gcda output dir is unique across all running jobs.
|
||||||
# We can't just put each one in a unique obj_dir as it uses too much disk.
|
# We can't just put each one in an unique obj_dir as it uses too much disk.
|
||||||
# Must use absolute path as some execute()s have different PWD
|
# Must use absolute path as some execute()s have different PWD
|
||||||
$ENV{GCOV_PREFIX_STRIP} = 99;
|
$ENV{GCOV_PREFIX_STRIP} = 99;
|
||||||
$ENV{GCOV_PREFIX} = File::Spec->rel2abs("$FindBin::RealBin/obj_dist/gcov_$self->{running_id}");
|
$ENV{GCOV_PREFIX} = File::Spec->rel2abs("$FindBin::RealBin/obj_dist/gcov_$self->{running_id}");
|
||||||
|
@ -12,6 +12,6 @@ public:
|
|||||||
t_extend_class_c() = default;
|
t_extend_class_c() = default;
|
||||||
~t_extend_class_c() = default;
|
~t_extend_class_c() = default;
|
||||||
// METHODS
|
// METHODS
|
||||||
// This function will be called from a instance created in Verilog
|
// This function will be called from an instance created in Verilog
|
||||||
uint32_t my_math(uint32_t in) { return in + 1; }
|
uint32_t my_math(uint32_t in) { return in + 1; }
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user