我正在编写一些代码,要求我读取文件,然后将其用作SystemC模块的输入。这意味着我应该读取一个文件,例如abc.xxx,然后将其内容以二进制形式发送到端口(另一种解释方式:我想将一个文件读入缓冲区并通过一个文件发送SystemC端口)。我的问题是:
1)我可以使用文本文件作为输入。读取文本文件,并将其文本内容存储在一个字符串中(这对我来说已足够)。但是我如何通过systemC端口发送此字符串?
2)上述解决方案仅适用于文本文件,我想使用文本文件的文本内容。但就像我原来的查询一样,当我只想通过端口传输文件时,我会怎么做?
如果我的查询不完全清楚,我道歉。提前致谢!!
答案 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