Commentary: spelling

This commit is contained in:
Wilson Snyder 2025-08-25 18:47:08 -04:00
parent 3d76bb9944
commit 703f0d8c5d
21 changed files with 41 additions and 34 deletions

View File

@ -589,7 +589,9 @@ combinational
combinatorial combinatorial
commandArgsPlusMatch commandArgsPlusMatch
compilable compilable
computable
concat concat
concatenatable
concats concats
conf conf
config config
@ -629,6 +631,7 @@ defparam
demangling demangling
dep dep
deparametrized deparametrized
deque
der der
dereference dereference
dereferenced dereferenced
@ -642,6 +645,7 @@ dev
devcontainer devcontainer
devel devel
dir dir
disambiguates
displayb displayb
distcc distcc
doxygen doxygen
@ -670,6 +674,7 @@ elab
eliasphanna eliasphanna
elike elike
elsif elsif
enablement
endcase endcase
endcelldefine endcelldefine
endclass endclass
@ -975,6 +980,8 @@ realtime
realtobits realtobits
recoding recoding
recrem recrem
recurse
recurses
redeclaring redeclaring
regs regs
reloop reloop

View File

@ -905,7 +905,7 @@ VerilatedTraceOffloadBuffer<VL_BUF_T>::VerilatedTraceOffloadBuffer(VL_SUB_T& own
using This = VerilatedTraceBuffer<VL_BUF_T>*; using This = VerilatedTraceBuffer<VL_BUF_T>*;
// Tack on the buffer address // Tack on the buffer address
static_assert(2 * sizeof(uint32_t) >= sizeof(This), static_assert(2 * sizeof(uint32_t) >= sizeof(This),
"This should be enough on all plafrorms"); "This should be enough on all platforms");
*m_offloadBufferWritep++ = VerilatedTraceOffloadCommand::TRACE_BUFFER; *m_offloadBufferWritep++ = VerilatedTraceOffloadCommand::TRACE_BUFFER;
*reinterpret_cast<This*>(m_offloadBufferWritep) = static_cast<This>(this); *reinterpret_cast<This*>(m_offloadBufferWritep) = static_cast<This>(this);
m_offloadBufferWritep += 2; m_offloadBufferWritep += 2;

View File

@ -178,7 +178,7 @@ void VerilatedVcd::openNextImp(bool incFilename) {
} }
} }
m_isOpen = true; m_isOpen = true;
constDump(true); // First dump must containt the const signals constDump(true); // First dump must contain the const signals
fullDump(true); // First dump must be full fullDump(true); // First dump must be full
m_wroteBytes = 0; m_wroteBytes = 0;
} }

View File

@ -3069,7 +3069,7 @@ void vl_get_value_array_rawvals(unsigned index, unsigned num, const unsigned siz
const unsigned packedSize, const bool leftIsLow, const unsigned packedSize, const bool leftIsLow,
const bool fourState, const T* src, PLI_BYTE8* dst) { const bool fourState, const T* src, PLI_BYTE8* dst) {
static_assert(std::is_unsigned<T>::value, static_assert(std::is_unsigned<T>::value,
"type T is not unsigned"); //ensure loigcal right shift "type T is not unsigned"); //ensure logical right shift
const unsigned element_size_bytes VL_BYTES_I(packedSize); const unsigned element_size_bytes VL_BYTES_I(packedSize);
const unsigned element_size_repr = (element_size_bytes + sizeof(T) - 1) / sizeof(T); const unsigned element_size_repr = (element_size_bytes + sizeof(T) - 1) / sizeof(T);
size_t dst_index = 0; size_t dst_index = 0;

View File

@ -832,7 +832,7 @@ public:
bool rhsIsValue() const { return m_rhsIsValue; } bool rhsIsValue() const { return m_rhsIsValue; }
}; };
class AstConsPackMember final : public AstNodeExpr { class AstConsPackMember final : public AstNodeExpr {
// Construct a packed array single emement [member1: value1] // Construct a packed array single element [member1: value1]
// Don't need the member we are constructing, as the dtypep can get us to it // Don't need the member we are constructing, as the dtypep can get us to it
// @astgen op2 := rhsp : AstNodeExpr // @astgen op2 := rhsp : AstNodeExpr
public: public:

View File

@ -290,7 +290,7 @@ class AstNodeModule VL_NOT_FINAL : public AstNode {
bool m_hasGParam : 1; // Has global parameter (for link) bool m_hasGParam : 1; // Has global parameter (for link)
bool m_hasParameterList : 1; // Has #() for parameter declaration bool m_hasParameterList : 1; // Has #() for parameter declaration
bool m_hierBlock : 1; // Hierarchical Block marked by HIER_BLOCK pragma bool m_hierBlock : 1; // Hierarchical Block marked by HIER_BLOCK pragma
bool m_hierParams : 1; // Block containing params for parametrized hier blocks bool m_hierParams : 1; // Block containing params for parameterized hier blocks
bool m_internal : 1; // Internally created bool m_internal : 1; // Internally created
bool m_recursive : 1; // Recursive module bool m_recursive : 1; // Recursive module
bool m_recursiveClone : 1; // If recursive, what module it clones, otherwise nullptr bool m_recursiveClone : 1; // If recursive, what module it clones, otherwise nullptr

View File

@ -494,7 +494,7 @@ public:
} }
bool getScopeTraceOn(const string& scope) { bool getScopeTraceOn(const string& scope) {
// Apply in the order the user provided them, so they can choose on/off preferencing // Apply in the order the user provided them, so they can choose on/off preferences
int maxLevel = 1; int maxLevel = 1;
for (const auto& ch : scope) { for (const auto& ch : scope) {
if (ch == '.') ++maxLevel; if (ch == '.') ++maxLevel;

View File

@ -19,7 +19,7 @@
// For the Pre/Post scheduling semantics, see V3OrderGraph. // For the Pre/Post scheduling semantics, see V3OrderGraph.
// //
// There are several "Schemes" we can choose from for implementing a // There are several "Schemes" we can choose from for implementing a
// non-blocking assignment (NBA), repserented by an AstAssignDly. // non-blocking assignment (NBA), represented by an AstAssignDly.
// //
// It is assumed and required in this pass that each NBA updates at // It is assumed and required in this pass that each NBA updates at
// most one variable. Earlier passes should have ensured this. // most one variable. Earlier passes should have ensured this.
@ -442,7 +442,7 @@ class DelayedVisitor final : public VNVisitor {
// Check for mixed usage (this also warns if not OK) // Check for mixed usage (this also warns if not OK)
if (checkMixedUsage(vscp, isIntegralOrPacked)) { if (checkMixedUsage(vscp, isIntegralOrPacked)) {
// If it's a variable updated by both blocking and non-blocking // If it's a variable updated by both blocking and non-blocking
// asignments, use the ShadowVarMasked schem if masked update is // assignments, use the ShadowVarMasked schem if masked update is
// possible. This can handle blocking and non-blocking updates to // possible. This can handle blocking and non-blocking updates to
// inpdendent parts correctly at run-time, and always works, even // inpdendent parts correctly at run-time, and always works, even
// in loops or other dynamic context. // in loops or other dynamic context.
@ -1122,7 +1122,7 @@ class DelayedVisitor final : public VNVisitor {
// There were some timing domains involved in the process. Add all of them as sensitivities // There were some timing domains involved in the process. Add all of them as sensitivities
// of all NBA targets in this process. Note this is a bit of a sledgehammer, we should only // of all NBA targets in this process. Note this is a bit of a sledgehammer, we should only
// need those that directly preceed the NBA in control flow, but that is hard to compute, // need those that directly precede the NBA in control flow, but that is hard to compute,
// so we will hammer away. // so we will hammer away.
// First gather all senItems // First gather all senItems

View File

@ -862,7 +862,7 @@ class AstToDfgSynthesize final {
} }
// If any written variables are forced or otherwise udpated from outside, // If any written variables are forced or otherwise udpated from outside,
// we generally cannot synthesie the construct, as we will likely need to // we generally cannot synthesize the construct, as we will likely need to
// introduce intermediate values that would not be updated. // introduce intermediate values that would not be updated.
static bool hasExternallyWrittenVariable(DfgLogic& vtx) { static bool hasExternallyWrittenVariable(DfgLogic& vtx) {
return vtx.findSink<DfgVertex>([](const DfgVertex& sink) -> bool { return vtx.findSink<DfgVertex>([](const DfgVertex& sink) -> bool {
@ -1344,7 +1344,7 @@ class AstToDfgSynthesize final {
return true; return true;
} }
// Assign path perdicates to the outgoing control flow edges of the given block // Assign path predicates to the outgoing control flow edges of the given block
void assignPathPredicates(const CfgBlock& bb) { void assignPathPredicates(const CfgBlock& bb) {
// Nothing to do for the exit block // Nothing to do for the exit block
if (bb.isExit()) return; if (bb.isExit()) return;
@ -1398,7 +1398,7 @@ class AstToDfgSynthesize final {
// It's possible we think a variable is written by the DfgLogic when // It's possible we think a variable is written by the DfgLogic when
// it actauly isn't, e.g.: '{a[0], b[0]}[1] = ...' does not write 'b'. // it actauly isn't, e.g.: '{a[0], b[0]}[1] = ...' does not write 'b'.
// These LHS forms can happen after some earlier tranforms. We // These LHS forms can happen after some earlier tranforms. We
// should just run V3Const on them earleir, but we will do belt and // should just run V3Const on them earlier, but we will do belt and
// braces and check here too. We can't touch any output variables if so. // braces and check here too. We can't touch any output variables if so.
const bool missing = m_logicp->findSink<DfgVertex>([&](const DfgVertex& sink) -> bool { const bool missing = m_logicp->findSink<DfgVertex>([&](const DfgVertex& sink) -> bool {
const DfgUnresolved* const unresolvedp = sink.as<DfgUnresolved>(); const DfgUnresolved* const unresolvedp = sink.as<DfgUnresolved>();

View File

@ -280,7 +280,7 @@ class FuncOptVisitor final : public VNVisitor {
// VISIT // VISIT
void visit(AstNodeAssign* nodep) override { void visit(AstNodeAssign* nodep) override {
// TODO: Only thing remaining inside functions should be AstAssign (that is, an actual // TODO: Only thing remaining inside functions should be AstAssign (that is, an actual
// assignment statemant), but we stil use AstAssignW, AstAssignDly, and all, fix. // assignment statement), but we stil use AstAssignW, AstAssignDly, and all, fix.
iterateChildren(nodep); iterateChildren(nodep);
if (v3Global.opt.fFuncSplitCat()) { if (v3Global.opt.fFuncSplitCat()) {

View File

@ -874,8 +874,8 @@ class GateInline final {
// (driver is same as sink), however, okVisitor rejects a circular driver // (driver is same as sink), however, okVisitor rejects a circular driver
// and we would not reach here if the driver logic was actually circular. // and we would not reach here if the driver logic was actually circular.
// The reason we end up here is because during graph building, the driver // The reason we end up here is because during graph building, the driver
// was ciruclar, however, after committing some substituions to it, it // was circular, however, after committing some substitutions to it, it
// has become non-circualr due to V3Const being applied inside // has become non-circular due to V3Const being applied inside
// 'commitSubstitutions'. We will trust GateOkVisitor telling the truth // 'commitSubstitutions'. We will trust GateOkVisitor telling the truth
// that the logic is not actually circular, meaning this edge is not // that the logic is not actually circular, meaning this edge is not
// actually needed, can just delete it and move on. // actually needed, can just delete it and move on.

View File

@ -40,7 +40,7 @@
// that are marked with /*verilator hier_block*/ metacomment in Verilator run a). // that are marked with /*verilator hier_block*/ metacomment in Verilator run a).
// 2) If module type parameters are present, V3Control marks hier param modules // 2) If module type parameters are present, V3Control marks hier param modules
// (marked with hier_params verilator config pragma) as modp->hierParams(true). // (marked with hier_params verilator config pragma) as modp->hierParams(true).
// This is done in run b), de-parametrized modules are mapped with their params one-to-one. // This is done in run b), de-parameterized modules are mapped with their params one-to-one.
// 3) AstModule with HIER_BLOCK pragma is marked modp->hierBlock(true) // 3) AstModule with HIER_BLOCK pragma is marked modp->hierBlock(true)
// in V3LinkResolve.cpp during run a). // in V3LinkResolve.cpp during run a).
// 4) In V3LinkCells.cpp, the following things are done during run b) and c). // 4) In V3LinkCells.cpp, the following things are done during run b) and c).
@ -56,8 +56,8 @@
// 5) In V3LinkDot.cpp, // 5) In V3LinkDot.cpp,
// 5-1) Dotted access across hierarchical block boundary is checked. Currently hierarchical // 5-1) Dotted access across hierarchical block boundary is checked. Currently hierarchical
// block references are not supported. // block references are not supported.
// 5-2) If present, parameters in hier params module replace parameter values of de-parametrized // 5-2) If present, parameters in hier params module replace parameter values of
// module in run b). // de-parameterized module in run b).
// 6) In V3Dead.cpp, some parameters of parameterized modules are protected not to be deleted even // 6) In V3Dead.cpp, some parameters of parameterized modules are protected not to be deleted even
// if the parameter is not referred. This protection is necessary to match step 6) below. // if the parameter is not referred. This protection is necessary to match step 6) below.
// 7) In V3Param.cpp, use --lib-create wrapper of the parameterized module made in b) and c). // 7) In V3Param.cpp, use --lib-create wrapper of the parameterized module made in b) and c).
@ -82,7 +82,7 @@
// filename :Name of a hierarchical parameters file // filename :Name of a hierarchical parameters file
// //
// Added in a), used for b). // Added in a), used for b).
// Each de-parametrized module version has exactly one hier params file specified. // Each de-parameterized module version has exactly one hier params file specified.
#include "V3PchAstNoMT.h" // VL_MT_DISABLED_CODE_UNIT #include "V3PchAstNoMT.h" // VL_MT_DISABLED_CODE_UNIT

View File

@ -431,7 +431,7 @@ namespace ModuleInliner {
// the instance and the port variable, or simply inline the pin expression // the instance and the port variable, or simply inline the pin expression
// in place of the port variable. We will prefer to do the later whenever // in place of the port variable. We will prefer to do the later whenever
// possible (and sometimes required). When inlining, we need to create an // possible (and sometimes required). When inlining, we need to create an
// alias for the inined variable, in order to resovle hierarchical refrences // alias for the inlined variable, in order to resovle hierarchical references
// against it later in V3Scope (and also for tracing, which is inserted // against it later in V3Scope (and also for tracing, which is inserted
//later). Returns ture iff the given port variable should be inlined, //later). Returns ture iff the given port variable should be inlined,
// and false if a continuous assignment should be used. // and false if a continuous assignment should be used.
@ -445,7 +445,7 @@ bool inlinePort(AstVar* nodep) {
if (nodep->isForced()) return false; if (nodep->isForced()) return false;
// Note: For singls marked 'public' (and not 'public_flat') inlining // Note: For singls marked 'public' (and not 'public_flat') inlining
// of their contaning modules is disabled so they wont reach here. // of their containing modules is disabled so they wont reach here.
// TODO: For now, writable public signals inside the cell cannot be // TODO: For now, writable public signals inside the cell cannot be
// eliminated as they are entered into the VerilatedScope, and // eliminated as they are entered into the VerilatedScope, and
@ -618,7 +618,7 @@ void process(AstNetlist* netlistp, ModuleStateUser1Allocator& moduleStates) {
while (AstNodeModule* const modp = VN_CAST(nodep, NodeModule)) { while (AstNodeModule* const modp = VN_CAST(nodep, NodeModule)) {
nodep = nodep->backp(); nodep = nodep->backp();
// Consider each cell inside the current module for inling // Consider each cell inside the current module for inlining
for (AstCell* const cellp : moduleStates(modp).m_childCells) { for (AstCell* const cellp : moduleStates(modp).m_childCells) {
ModuleState& childState = moduleStates(cellp->modp()); ModuleState& childState = moduleStates(cellp->modp());
if (!childState.m_inlined) continue; if (!childState.m_inlined) continue;

View File

@ -199,7 +199,7 @@ class LifePostDlyVisitor final : public VNVisitorConst {
// We need to be able to pick up the first write of each variable. // We need to be able to pick up the first write of each variable.
// V3Order serializes all writes, and we trace AstExecGraph in // V3Order serializes all writes, and we trace AstExecGraph in
// dependency order, so the first one we encouner during tracing should // dependency order, so the first one we encounter during tracing should
// always be the one. It's somewhat expensive to assert so only with debugCheck(). // always be the one. It's somewhat expensive to assert so only with debugCheck().
if (v3Global.opt.debugCheck()) { if (v3Global.opt.debugCheck()) {
for (auto& pair : m_writes) { for (auto& pair : m_writes) {

View File

@ -2678,7 +2678,7 @@ class LinkDotResolveVisitor final : public VNVisitor {
} }
void classExtendImport(AstClass* nodep) { void classExtendImport(AstClass* nodep) {
// A class reference might be to a class that is later in Ast due to // A class reference might be to a class that is later in Ast due to
// e.g. parmaeterization or referring to a "class (type T) extends T" // e.g. parameterization or referring to a "class (type T) extends T"
// Resolve it so later Class:: references into its base classes work // Resolve it so later Class:: references into its base classes work
symIterateNull(nodep, m_statep->getNodeSym(nodep)); symIterateNull(nodep, m_statep->getNodeSym(nodep));
} }

View File

@ -1835,7 +1835,7 @@ V3Number& V3Number::opShiftR(const V3Number& lhs, const V3Number& rhs) {
} }
V3Number& V3Number::opShiftRS(const V3Number& lhs, const V3Number& rhs, uint32_t lbits) { V3Number& V3Number::opShiftRS(const V3Number& lhs, const V3Number& rhs, uint32_t lbits) {
// Correct number of zero bits/width matters (hance lbits passed) // Correct number of zero bits/width matters (hence lbits passed)
// L(lhs) bit return // L(lhs) bit return
// The spec says a unsigned >>> still acts as a normal >>. // The spec says a unsigned >>> still acts as a normal >>.
// We presume it is signed; as that's V3Width's job to convert to opShiftR // We presume it is signed; as that's V3Width's job to convert to opShiftR

View File

@ -548,7 +548,7 @@ class ParamProcessor final {
// constp can be nullptr // constp can be nullptr
if (const AstConst* const p = VN_CAST(nodep, Const)) { if (const AstConst* const p = VN_CAST(nodep, Const)) {
// Treat modules parametrized with the same values but with different type as the // Treat modules parameterized with the same values but with different type as the
// same. // same.
longname += p->num().ascii(false); longname += p->num().ascii(false);
} else if (nodep) { } else if (nodep) {

View File

@ -685,7 +685,7 @@ class TimingControlVisitor final : public VNVisitor {
} }
// Move `insertBeforep` into `AstCLocalScope` if necessary to avoid jumping over // Move `insertBeforep` into `AstCLocalScope` if necessary to avoid jumping over
// a variable initialization that whould be inserted before `insertBeforep`. All // a variable initialization that whould be inserted before `insertBeforep`. All
// access to this variable shoule be contained within returned `AstCLocalScope`. // access to this variable should be contained within returned `AstCLocalScope`.
AstCLocalScope* addCLocalScope(FileLine* const flp, AstNode* const insertBeforep) const { AstCLocalScope* addCLocalScope(FileLine* const flp, AstNode* const insertBeforep) const {
if (!insertBeforep || !m_underJumpBlock) return nullptr; if (!insertBeforep || !m_underJumpBlock) return nullptr;
VNRelinker handle; VNRelinker handle;

View File

@ -1,6 +1,6 @@
// DESCRIPTION: Verilator: Check initialisation of cloned clock variables // DESCRIPTION: Verilator: Check initialisation of cloned clock variables
// //
// This tests issue #1327 (Strange initialisation behaviour with // This tests issue #1327 (Strange initialization behavior with
// "VinpClk" cloned clock variables) // "VinpClk" cloned clock variables)
// //
// This file ONLY is placed into the Public Domain, for any use, // This file ONLY is placed into the Public Domain, for any use,

View File

@ -1,6 +1,6 @@
// DESCRIPTION: Verilator: Verilog Test module // DESCRIPTION: Verilator: Verilog Test module
// //
// A test that a package import declaration can preceed a parameter port list // A test that a package import declaration can precede a parameter port list
// in an interface declaration. See IEEE 1800-2023 25.3. // in an interface declaration. See IEEE 1800-2023 25.3.
// //
// This file ONLY is placed into the Public Domain, for any use, // This file ONLY is placed into the Public Domain, for any use,

View File

@ -62,7 +62,7 @@ module unused(input clk);
end end
endmodule endmodule
// no warning for loops under parametrized module // no warning for loops under parameterized module
module parametrized_initial #(parameter REPETITIONS = 0); module parametrized_initial #(parameter REPETITIONS = 0);
int prints_while = 0; int prints_while = 0;
int prints_do_while = 0; int prints_do_while = 0;
@ -228,21 +228,21 @@ module if_with_param;
initial begin initial begin
if (ZERO_PARAM) begin if (ZERO_PARAM) begin
// loop under false parametrized if - no warning // loop under false parameterized if - no warning
int prints = 0; int prints = 0;
while(prints < 5) begin while(prints < 5) begin
prints++; prints++;
end end
$write("Prints %d\n", prints); $write("Prints %d\n", prints);
end else if (!ONE_PARAM) begin end else if (!ONE_PARAM) begin
// loop under false parametrized if - no warning // loop under false parameterized if - no warning
int prints = 0; int prints = 0;
while(prints < 5) begin while(prints < 5) begin
prints++; prints++;
end end
$write("Prints %d\n", prints); $write("Prints %d\n", prints);
end else begin end else begin
// loop under true parametrized if - no warning // loop under true parameterized if - no warning
int prints = 0; int prints = 0;
while(prints < 5) begin while(prints < 5) begin
prints++; prints++;