SystemC - 在systemc模拟中测量并包含文件解析时间

时间:2016-04-27 16:36:58

标签: c++ systemc

我有一个简单的C ++函数,它逐行解析CSV(10-10k行)文件,并在定义的结构中插入每个字段,结构数组更具体。

现在我想使用systemc方法测量解析时间(没有C ++实用程序,例如clock())并将其包含在模拟中,就像任何其他进程一样并生成跟踪文件 - 它是否可能?< / p>

几天来,我一直在努力做到这一点。实际上我已经意识到sc_time_stamp()在这种特殊情况下没用,因为它只显示声明的sc_start()模拟已用时间。

我认为它将如此简单:

  1. wait() until pos.edg
  2. parseFile()
  3. signal.write(1)
  4. doOtherStuff()
  5. 但显然它不是......

    互联网上到处都是加法器,计数器和其他逻辑实例,但我没有找到与我的问题有关的任何内容。

    提前致谢!

2 个答案:

答案 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知道进程需要多长时间才能完成的唯一方法就是告诉它。