读取文件并通过端口传递

时间:2013-10-14 01:50:34

标签: systemc

我正在编写一些代码,要求我读取文件,然后将其用作SystemC模块的输入。这意味着我应该读取一个文件,例如abc.xxx,然后将其内容以二进制形式发送到端口(另一种解释方式:我想将一个文件读入缓冲区并通过一个文件发送SystemC端口)。我的问题是:

1)我可以使用文本文件作为输入。读取文本文件,并将其文本内容存储在一个字符串中(这对我来说已足够)。但是我如何通过systemC端口发送此字符串?

2)上述解决方案仅适用于文本文件,我想使用文本文件的文本内容。但就像我原来的查询一样,当我只想通过端口传输文件时,我会怎么做?

如果我的查询不完全清楚,我道歉。提前致谢!!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望从一个SC_MODULE中的文件中获取输入,并将其发送给另一个SC_MODULE。您没有给出任何约束,因此假设您只想使用二进制ASCII编码发送文本,您可以使用宽度为8位的sc_port无符号整数:sc_uint<8>来逐字符发送字符串。

发送模块的步骤。
要获得正确的硬件传输,您需要一些握手信号:

  • 就绪信号:sc_in<bool> rdy以检查接收模块是否准备好接收新数据。
  • 一个有效信号:bool向接收模块发信号通知端口上有新数据。
  • 和数据端口sc_out<bool> vld发送字节。注意使用受保护的词&#34;数据&#34;。

现在让我们假设您要发送一个包含10个字符的文本文件,我认为for循环将是最简单直观的方法。将此代码放在SC_THREAD中,因为它包含您只想执行一次的控制逻辑。假设此设计的时钟周期为10 ns,您将得到类似的结果:

bool