diff --git a/include/verilated.h b/include/verilated.h index fd784b48f..9f04ceb4e 100644 --- a/include/verilated.h +++ b/include/verilated.h @@ -186,15 +186,6 @@ struct VlIsCustomStruct : public std::false_type {}; template struct VlContainsCustomStruct : VlIsCustomStruct {}; -//============================================================================= -// Utility functions - -template -inline constexpr size_t roundUpToMultipleOf(size_t value) { - static_assert((N & (N - 1)) == 0, "'N' must be a power of 2"); - return (value + N - 1) & ~(N - 1); -} - //========================================================================= // Mutex and threading support diff --git a/include/verilated_types.h b/include/verilated_types.h index a2e39b6cc..f31d6da1f 100644 --- a/include/verilated_types.h +++ b/include/verilated_types.h @@ -172,7 +172,7 @@ class VlTriggerVec final { // TODO: static assert N_Size > 0, and don't generate when empty // MEMBERS - alignas(16) std::array(N_Size) / 64> m_flags; // The flags + alignas(16) std::array(N_Size) / 64> m_flags; public: // CONSTRUCTOR diff --git a/include/verilated_vcd_c.cpp b/include/verilated_vcd_c.cpp index 350f349fb..8cca02c0e 100644 --- a/include/verilated_vcd_c.cpp +++ b/include/verilated_vcd_c.cpp @@ -264,7 +264,7 @@ void VerilatedVcd::bufferResize(size_t minsize) { // writing when we are 3/4 full (with thus 2*minsize remaining free) if (VL_UNLIKELY(minsize > m_wrChunkSize)) { const char* oldbufp = m_wrBufp; - m_wrChunkSize = roundUpToMultipleOf<1024>(minsize * 2); + m_wrChunkSize = vlstd::roundUpToMultipleOf<1024>(minsize * 2); m_wrBufp = new char[m_wrChunkSize * 8]; std::memcpy(m_wrBufp, oldbufp, m_writep - oldbufp); m_writep = m_wrBufp + (m_writep - oldbufp); @@ -493,7 +493,7 @@ VerilatedVcd::Buffer* VerilatedVcd::getTraceBuffer(uint32_t fidx) { // cppcheck-suppress unreadVariable // cppcheck bug, used below constexpr size_t pageSize = 4096; // 4 * m_maxSignalBytes, so we can reserve 2 * m_maxSignalBytes at the end for safety - size_t startingSize = roundUpToMultipleOf(4 * m_maxSignalBytes); + size_t startingSize = vlstd::roundUpToMultipleOf(4 * m_maxSignalBytes); m_freeBuffers.emplace_back(new char[startingSize], startingSize); ++m_numBuffers; } diff --git a/include/verilatedos.h b/include/verilatedos.h index 7fd03f1e8..3d762e167 100644 --- a/include/verilatedos.h +++ b/include/verilatedos.h @@ -729,6 +729,13 @@ T const& as_const(T& v) VL_MT_SAFE { return v; } +// Utility function +template +inline constexpr size_t roundUpToMultipleOf(size_t value) { + static_assert((N & (N - 1)) == 0, "'N' must be a power of 2"); + return (value + N - 1) & ~(N - 1); +} + }; // namespace vlstd //=========================================================================