描述
我试图在几个文件中定义ap_stream,并且没有收到来自AutoESL的警告。
但是,生成的RTL不正确;它没有通过我的测试平台(当设计的所有部分都在一个文件中时它确实通过)。
内部ap_stream被转换为用于子功能输出的ap_vld接口和用于子功能输入的ap_none接口,而我期望ap_fifo。
发生什么事?
解
不支持在源文件之间共享内部AP_STREAM。
AP_STREAMS可用于不同文件中定义的函数。
但是,如果AP_STREAM未出现在设计界面中,则通过使用静态限定符将其定义为仅内部。
根据“静态”限定符的定义,这使得流专用于定义它的源文件。
因此,必须在同一文件中定义任何需要访问流的函数。
对于2011.4.2 AutoESL和之前,所有内部(静态)AP_STREAM也需要在顶级源文件中定义,以便作为FIFO正确实现。
即使使用内部AP_STREAM的所有函数都在同一源文件中定义,该文件也必须包含顶级函数。
此限制在AutoESL的2012.1版本中得到修复。
建议对内部流使用AP_STREAM_SIZE()宏以用于底层内存的大小规范。
没有回复内容