我有一个简单的C ++函数,它逐行解析CSV(10-10k行)文件,并在定义的结构中插入每个字段,结构数组更具体。
现在我想使用systemc
方法测量解析时间(没有C ++实用程序,例如clock()
)并将其包含在模拟中,就像任何其他进程一样并生成跟踪文件 - 它是否可能?< / p>
几天来,我一直在努力做到这一点。实际上我已经意识到sc_time_stamp()
在这种特殊情况下没用,因为它只显示声明的sc_start()
模拟已用时间。
我认为它将如此简单:
wait() until pos.edg
parseFile()
signal.write(1)
doOtherStuff()
但显然它不是......
互联网上到处都是加法器,计数器和其他逻辑实例,但我没有找到与我的问题有关的任何内容。
提前致谢!
答案 0 :(得分:0)
SystemC是一个建模库。因此,您只能使用sc_time_stamp测量模拟时间。 如果要测量物理时间,则需要使用其他C / C ++库(Easily measure elapsed time)进行测量。
然后,如果您想将此时间添加到模拟时间,可以输入
wait( measured_parsing_time );
答案 1 :(得分:0)
您的问题“使用systemc衡量解析时间”和您提供的伪代码示例似乎表明您想要实时测量。伪代码
wait some-event
parseFile()
signal.write(1)
...
因为(除非parseFile()本身具有等待语句),所以将采用正好零模拟时间.parseFile()在一个增量循环中执行。如果parseFile()确实有等待语句(例如等待10ms),那么在模拟时间内需要10 ms。 systemc知道进程需要多长时间才能完成的唯一方法就是告诉它。