一、黑盒设计
1.rtl支持将预先设计的RTL IP集成到HLS设计中,从而通过HLS来设计更加复杂的设计。
2.rtl ip可以在顺序区域中使用
3.rtl ip可以在pipeline流水线区域使用
4.rtl ip可以在数据流区域内使用
二、rtl ip集成到HLS需要具备的条件
1.json黑盒描述文件
2.rtl ip文件
3.rtl的c语言实现
三、如何将rtl ip集成到hls中呢
1.创建rtl ip的c语言实现函数
2.在hls设计中调用此c语言实现函数
3.创建必要字段的json文件
4.使用add_files选项将json文件添加到script.tcl这个脚本文件中
add_files –blackbox my_file.json
5.运行hls的设计流程,包括c仿真,综合和协同仿真即可。
四、黑盒设计的要求
在 HLS 内部,仅限 C++ 才支持 RTL 黑盒。
• 在 HLS 内部,RTL 黑盒无法连接到顶层接口 I/O 信号。
• 在 HLS 内部,RTL 黑盒无法直接充当 DUT。
• 在 HLS 内部,RTL 黑盒不支持接口类型为结构体或类。
• 在 HLS 内部,RTL 黑盒支持以下接口协议:
• hls::stream:RTL 黑盒 IP 支持 hls::stream 接口。在 C 语言中使用此特定数据类型时,请针对 RTL 黑盒 IP 中的
该实参使用 FIFO 接口。
数组:RTL 黑盒 IP 支持 RAM(数组)接口。在 C 语言中使用此构造时,请针对 RTL 黑盒 IP 中的对应实参使用
下列 RAM 接口之一:
•
单端口 RAM - RAM_1P
•
双端口 RAM - RAM_T2P
• C 语言标量和输入指针:RTL 黑盒 IP 仅支持在顺序区域和流水线区域中使用 C 语言标量和输入指针,不支持在
数据流区域内使用。在 C 语言中使用此构造时,请在 RTL IP 中使用 wire。
• 输入输出指针和输出指针:RTL 黑盒 IP 仅支持在顺序区域和流水线区域中使用输入输出指针和输出指针,不支
持在数据流区域内使