mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 10:03:44 +02:00
Support timeunit/timeprecision in $unit.
This commit is contained in:
@@ -100,10 +100,16 @@ void V3LinkLevel::timescaling(const ModVec& mods) {
|
||||
if (unit.isNone()) unit = VTimescale(VTimescale::TS_DEFAULT);
|
||||
v3Global.rootp()->timeunit(unit);
|
||||
|
||||
bool dunitTimed = false; // $unit had a timeunit
|
||||
if (const AstPackage* const upkgp = v3Global.rootp()->dollarUnitPkgp()) {
|
||||
if (!upkgp->timeunit().isNone()) dunitTimed = true;
|
||||
}
|
||||
|
||||
for (AstNodeModule* nodep : mods) {
|
||||
if (!v3Global.opt.timeOverrideUnit().isNone()) nodep->timeunit(unit);
|
||||
if (nodep->timeunit().isNone()) {
|
||||
if (modTimedp // Got previous
|
||||
&& !dunitTimed
|
||||
&& ( // unit doesn't already include an override
|
||||
v3Global.opt.timeOverrideUnit().isNone()
|
||||
&& v3Global.opt.timeDefaultUnit().isNone())
|
||||
|
||||
Reference in New Issue
Block a user