Add verilator --pins-uint8 option to use sc_in<uint8_t/uint16_t>.
This commit is contained in:
parent
cd9b15b2a6
commit
348c43de63
4
Changes
4
Changes
|
|
@ -5,7 +5,9 @@ indicates the contributor was also the author of the fix; Thanks!
|
|||
|
||||
* Verilator 3.711 2009/**
|
||||
|
||||
**** Add verilator -V option, to show verbose version.
|
||||
*** Add verilator --pins-uint8 option to use sc_in<uint8_t/uint16_t>.
|
||||
|
||||
*** Add verilator -V option, to show verbose version.
|
||||
|
||||
**** Add BLKLOOPINIT error code, and describe --unroll-count. [Jeff Winston]
|
||||
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@ descriptions in the next sections for more information.
|
|||
--output-split <bytes> Split .cpp files into pieces
|
||||
--output-split-cfuncs <statements> Split .ccp functions
|
||||
--pins-bv <bits> Specify types for top level ports
|
||||
--pins-uint8 Specify types for top level ports
|
||||
--prefix <topname> Name of top level class
|
||||
--profile-cfuncs Name functions for profiling
|
||||
--private Debugging; see docs
|
||||
|
|
@ -514,10 +515,16 @@ Backward compatible alias for "--pins-bv 65". Note that's a 65, not a 64.
|
|||
|
||||
=item --pins-bv I<width>
|
||||
|
||||
Specifies SystemC outputs of greater than or equal to I<width> bits wide
|
||||
should use sc_bv's instead of uint32/uint64_t's. The default is "--pins-bv
|
||||
65". Versions before Verilator 3.671 defaulted to "--pins-bv 33". The
|
||||
more sc_bv is used, the worse for performance.
|
||||
Specifies SystemC inputs/outputs of greater than or equal to I<width> bits
|
||||
wide should use sc_bv's instead of uint32/uint64_t's. The default is
|
||||
"--pins-bv 65". Versions before Verilator 3.671 defaulted to "--pins-bv
|
||||
33". The more sc_bv is used, the worse for performance.
|
||||
|
||||
=item --pins-uint8
|
||||
|
||||
Specifies SystemC inputs/outputs that are smaller than the --pins-bv
|
||||
setting and 8 bits or less should use uint8_t instead of uint32_t.
|
||||
Likewise pins of width 9-16 will use uint16_t instead of uint32_t.
|
||||
|
||||
=item --prefix I<topname>
|
||||
|
||||
|
|
|
|||
|
|
@ -122,7 +122,13 @@ string AstVar::scType() const {
|
|||
} else if (widthMin() == 1) {
|
||||
return "bool";
|
||||
} else if (widthMin() <= VL_WORDSIZE) {
|
||||
return "uint32_t";
|
||||
if (widthMin() <= 8 && v3Global.opt.pinsUint8()) {
|
||||
return "uint8_t";
|
||||
} else if (widthMin() <= 16 && v3Global.opt.pinsUint8()) {
|
||||
return "uint16_t";
|
||||
} else {
|
||||
return "uint32_t";
|
||||
}
|
||||
} else {
|
||||
return "uint64_t";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -653,6 +653,7 @@ void V3Options::parseOptsList(FileLine* fl, int argc, char** argv) {
|
|||
else if ( onoff (sw, "-lint-only", flag/*ref*/) ) { m_lintOnly = flag; }
|
||||
else if ( !strcmp (sw, "-no-pins64") ) { m_pinsBv = 33; }
|
||||
else if ( !strcmp (sw, "-pins64") ) { m_pinsBv = 65; }
|
||||
else if ( onoff (sw, "-pins-uint8", flag/*ref*/) ){ m_pinsUint8 = flag; }
|
||||
else if ( !strcmp (sw, "-private") ) { m_public = false; }
|
||||
else if ( onoff (sw, "-profile-cfuncs", flag/*ref*/) ) { m_profileCFuncs = flag; }
|
||||
else if ( onoff (sw, "-psl", flag/*ref*/) ) { m_psl = flag; }
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ class V3Options {
|
|||
bool m_l2Name; // main switch: --l2name
|
||||
bool m_lintOnly; // main switch: --lint-only
|
||||
bool m_outFormatOk; // main switch: --cc, --sc or --sp was specified
|
||||
bool m_pinsUint8; // main switch: --pins-uint8
|
||||
bool m_profileCFuncs;// main switch: --profile-cfuncs
|
||||
bool m_psl; // main switch: --psl
|
||||
bool m_public; // main switch: --public
|
||||
|
|
@ -214,6 +215,7 @@ class V3Options {
|
|||
bool traceDups() const { return m_traceDups; }
|
||||
bool outFormatOk() const { return m_outFormatOk; }
|
||||
bool keepTempFiles() const { return (V3Error::debugDefault()!=0); }
|
||||
bool pinsUint8() const { return m_pinsUint8; }
|
||||
bool profileCFuncs() const { return m_profileCFuncs; }
|
||||
bool psl() const { return m_psl; }
|
||||
bool allPublic() const { return m_public; }
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
# include "Vt_var_pins_sc32.h"
|
||||
#elif defined(T_VAR_PINS_SC64)
|
||||
# include "Vt_var_pins_sc64.h"
|
||||
#elif defined(T_VAR_PINS_SCUI)
|
||||
# include "Vt_var_pins_scui.h"
|
||||
#else
|
||||
# error "Unknown test"
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue