如何更改转储的VCD文件的时间刻度
How to change timescale of VCD file dumped?
我正在尝试在"现实世界"项目中使用 Chisel,并且我正在用C++编写测试平台代码部分。这很好用,我可以使用 gtkwave 在转储.vcd文件中看到我所有转储的信号。
但是我在时间刻度方面有一个问题,默认情况下,函数模块>dump() 记录信号的时间刻度为 1ps:
$timescale 1ps $end
你知道怎么改变它吗?
我发现在测试平台C++代码中更改它的唯一方法是在关闭 vcd 后重新打开它并修改第一行:
#define CYCLE_PERIOD_NS 10
FILE *f = fopen("./dump.vcd", "w");
module->set_dumpfile(f);
[...]
/*several module->dump() call */
[...]
if (f) {
fclose(f);
std::string line;
std::ifstream input("./dump.vcd");
std::ofstream output("./tmp.vcd");
std::getline(input, line);
output << "$timescale " << CYCLE_PERIOD_NS << "ns $end" << endl;
while(std::getline(input, line)) {
output << line << endl;
}
rename("./tmp.vcd", "./dump.vcd");
}
我给出的方法仅适用于后端C++如果我们使用凿子类 Test,问题保持不变。我修改了 Chisel 代码以在隐式时钟对象中添加句点。然后我修改了 Vcd 类以使用正确的周期值转储 VCD。您可以在此处查看补丁。
然后要更改时间刻度,您只需在顶部凿子模块中添加以下行:
class myModule extends Module {
[...]
Driver.implicitClock.period = "10ns"
[...]
}
此修补程序已针对 Chisel 的 2.2.28 版提交。
相关文章:
- 从文本文件中读取时钟时间和事件时间并进行处理
- Levenshtein 两个文件的距离花费了太多时间
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- 如何将消息时间戳写入日志文件?
- Chilkat SFTP 文件修改时间不与上传更新
- 如何在 Windows 上的 C++ 中根据文件的修改时间读取目录中的文件
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- C++-需要读取存储在文件(.txt)中的时间戳并正确检索
- 测量任何 Windows 可执行文件的内存使用情况和执行时间
- std::fstream 需要很长时间才能将大数据写入.csv文件中
- 如何减少编译时间:在包含未触及的头文件的情况下
- 当字节在文件上写入0时,是否可以保持写作时间稳定
- 在C++中将数据和时间分配给文件时间结构
- VC++ 中的文件时间结构
- c++ 将文件时间转换为秒
- 系统时间、本地时间、文件时间和正常时间
- 为什么我的程序终止调用KERNEL32!文件时间到系统时间 ()
- 时间刻度到日期格式
- 如何更改转储的VCD文件的时间刻度
- CUDA中的系统时间和文件时间