diff options
| author | Miodrag Milanovic <mmicko@gmail.com> | 2022-01-31 10:52:47 +0100 | 
|---|---|---|
| committer | Miodrag Milanovic <mmicko@gmail.com> | 2022-01-31 10:52:47 +0100 | 
| commit | 543feb75cb3765746ea865c11aa6ceccaf0adeac (patch) | |
| tree | 4080c23526e8ff4e36388744f32b64af11ab3649 /kernel/fstdata.cc | |
| parent | a6959d30df067c27da75d12bc0bd5233eb91d3ca (diff) | |
| download | yosys-543feb75cb3765746ea865c11aa6ceccaf0adeac.tar.gz yosys-543feb75cb3765746ea865c11aa6ceccaf0adeac.tar.bz2 yosys-543feb75cb3765746ea865c11aa6ceccaf0adeac.zip | |
Display simulation time data
Diffstat (limited to 'kernel/fstdata.cc')
| -rw-r--r-- | kernel/fstdata.cc | 22 | 
1 files changed, 21 insertions, 1 deletions
| diff --git a/kernel/fstdata.cc b/kernel/fstdata.cc index 5d6d85ed8..a7a2c80f7 100644 --- a/kernel/fstdata.cc +++ b/kernel/fstdata.cc @@ -21,10 +21,30 @@  USING_YOSYS_NAMESPACE +  FstData::FstData(std::string filename) : ctx(nullptr)  { +	const std::vector<std::string> g_units = { "s", "ms", "us", "ns", "ps", "fs", "as", "zs" };  	ctx = (fstReaderContext *)fstReaderOpen(filename.c_str()); -	timescale = pow(10.0, (int)fstReaderGetTimescale(ctx)); +	int scale = (int)fstReaderGetTimescale(ctx);	 +	timescale = pow(10.0, scale); +	timescale_str = ""; +	int unit = 0; +	int zeros = 0; +	if (scale > 0)  { +		zeros = scale; +	} else { +		if ((scale % 3) == 0) { +			zeros = (-scale % 3); +			unit = (-scale / 3); +		} else { +			zeros = 3 - (-scale % 3); +			unit = (-scale / 3) + 1; +		} +	} +	for (int i=0;i<zeros; i++) timescale_str += "0"; +	if (zeros>0)timescale_str += " "; +	timescale_str += g_units[unit];  	extractVarNames();  } | 
