文档目录

4.4. Avalon® 存储器映射Host接口

组件可以通过 Avalon® 存储器映射(MM)Host接口与外部存储器对接。
您可以指定默认使用函数指针函数或参考自变量的 Avalon® MM Host接口,或者指定明确使用"HLS/hls.h"头文件中定义的 mm_host<>类。通过将一个参考自变量(reference)包含到组件函数签名中的mm_host<>对象,来以您的代码描述自定义的 Avalon® MM Host接口。

组件的每个mm_host自变量会生成地址的输入管道(conduit)。该输入管道(conduit)与组件启动和繁忙信号相关联。除了此输入管道(conduit)之外,还为每个地址空间创建一个唯一的 Avalon® MM Host接口。在同一接口上对共享同一地址空间的主机接口进行仲裁。

组件上的 Avalon® MM Host接口始终发布仅字节(而非字)寻址的请求。例如,以下代码实例导致mm_host接口上的0x0018,因为0x0018 = 0x0006 << 2
// 32-bit wide word

ihc::mm_master<uint32_t, ihc::dwidth<32>, ihc::awidth<16>, ihc::latency<0>, ihc::waitrequest<true>, ihc::aspace<1>> mm_a;
uint32_t value = mm_a[0x0006];
相反,以下代码实例使得mm_host接口产生0x0006结果,因为0x0006 = 0x0006 << 2
// 8-bit wide word

ihc::mm_master<uint8_t, ihc::dwidth<32>, ihc::awidth<16>, ihc::latency<0>, ihc::waitrequest<true>, ihc::aspace<2>> mm_b;
uint32_t value = mm_a[0x0006];

关于 Avalon® MM Host接口的更多信息,请参阅Avalon Interface Specifications中的"Avalon Memory-Mapped Interfaces"。

表 13.   Intel® HLS Compiler Pro版存储器映射接口总结
模板对象或参数 描述
ihc::mm_host 底层指针类型
ihc::dwidth 存储器映射数据总线的宽度(以位为单位)。
ihc::awidth 存储器映射地址总线的宽度(以位为单位)。
ihc::aspace 与主机关联的接口的地址空间。
ihc::latency 从读取命令退出组件到外部存储器返回有效读取数据之间的保证延迟。
ihc::maxburst 与读或写事务相关的数据传输的最多个数。
ihc::align 基指针地址对齐(以字节为单位)。
ihc::readwrite_mode 接口的端口方向
ihc::waitrequest

添加waitrequest信号,该信号在agent(代理)无法响应读或者写请求时置位该信号。

getInterfaceAtIndex 该测试台函数用于mm_host对象中的索引。