我有一个简单的C++函数,它解析CSV (10-10k行)文件逐行并将每个字段插入到定义的结构中,结构数组更具体。
现在,我希望使用systemc方法(没有C++实用程序,例如clock())来测量解析时间,并像其他任何进程一样将其包含在仿真中并生成跟踪文件--这完全可能吗?
几天来,我一直在以各种可能的方式努力做到这一点。实际上,我已经意识到sc_time_stamp()在这种特殊情况下是无用的,因为它只显示声明的sc_start()模拟运行时间。
我以为它会很简单:
wait() until pos.edgparseFile()signal.write(1)doOtherStuff()但很明显这不是..。
互联网上充满了加法器、计数器和其他逻辑类的例子,但我没有发现任何与我的问题相关的东西。
提前感谢!
发布于 2016-04-28 14:39:01
您的问题“使用systemc度量解析时间”和您给出的伪代码示例似乎表明您希望测量实时。伪码
wait some-event
parseFile()
signal.write(1)
...由于(除非parseFile()本身有等待语句) parseFile()是在一个增量循环中执行的,那么模拟时间将完全为零。如果parseFile()确实有等待语句(例如等待10 ms ),那么在模拟时间内它将花费10 ms。systemc知道一个进程需要多长时间才能完成的唯一方法就是告诉它。
发布于 2016-04-28 14:37:56
SystemC是一个建模库。因此,您只能测量仿真时间与sc_time_stamp。如果您想要测量物理时间,则需要使用其他C/C++库(Easily measure elapsed time)来度量它。
然后,如果要将此时间添加到模拟时间,则可以将
wait( measured_parsing_time );https://stackoverflow.com/questions/36895796
复制相似问题