vcd timescale prefix orfs issue1806
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
8bf51ab7ee
commit
36645618b7
|
|
@ -231,8 +231,7 @@ ReadVcdActivities::findVarActivity(const VcdValues &var_values,
|
||||||
if (prev_value == '1')
|
if (prev_value == '1')
|
||||||
high_time += time_max - prev_time;
|
high_time += time_max - prev_time;
|
||||||
duty = static_cast<double>(high_time) / time_max;
|
duty = static_cast<double>(high_time) / time_max;
|
||||||
activity = transition_count
|
activity = transition_count / (time_max * vcd_.timeScale() / clk_period_);
|
||||||
/ (time_max * vcd_.timeUnitScale() / clk_period_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -240,7 +239,7 @@ ReadVcdActivities::checkClkPeriod(const Pin *pin,
|
||||||
double transition_count)
|
double transition_count)
|
||||||
{
|
{
|
||||||
VcdTime time_max = vcd_.timeMax();
|
VcdTime time_max = vcd_.timeMax();
|
||||||
double sim_period = time_max * vcd_.timeUnitScale() / (transition_count / 2.0);
|
double sim_period = time_max * vcd_.timeScale() / (transition_count / 2.0);
|
||||||
|
|
||||||
ClockSet *clks = sdc_->findLeafPinClocks(pin);
|
ClockSet *clks = sdc_->findLeafPinClocks(pin);
|
||||||
if (clks) {
|
if (clks) {
|
||||||
|
|
|
||||||
|
|
@ -135,12 +135,14 @@ VcdReader::parseTimescale()
|
||||||
vector<string> tokens = readStmtTokens();
|
vector<string> tokens = readStmtTokens();
|
||||||
if (tokens.size() == 1) {
|
if (tokens.size() == 1) {
|
||||||
size_t last;
|
size_t last;
|
||||||
vcd_->setTimeScale(std::stod(tokens[0], &last));
|
double time_scale = std::stod(tokens[0], &last);
|
||||||
setTimeUnit(tokens[0].substr(last));
|
setTimeUnit(tokens[0].substr(last));
|
||||||
|
vcd_->setTimeScale(time_scale * vcd_->timeUnitScale());
|
||||||
}
|
}
|
||||||
else if (tokens.size() == 2) {
|
else if (tokens.size() == 2) {
|
||||||
vcd_->setTimeScale(std::stod(tokens[0]));
|
|
||||||
setTimeUnit(tokens[1]);
|
setTimeUnit(tokens[1]);
|
||||||
|
double time_scale = std::stod(tokens[0]);
|
||||||
|
vcd_->setTimeScale(time_scale * vcd_->timeUnitScale());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
report_->fileError(801, filename_, stmt_line_, "timescale syntax error.");
|
report_->fileError(801, filename_, stmt_line_, "timescale syntax error.");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue