数组array在高层次综合中应用

张开发
2026/4/21 4:02:45 15 分钟阅读

分享文章

数组array在高层次综合中应用
一、数组说明1.数组在高层次综合中的编码规范和样式2.数组在c语言仿真期间会出现的问题3.数组在C综合期间会出现的问题4.数组在c-rtl联合仿真中会出现的问题二、数组在FPGA上的应用1.c语言的数组通常综合为RAM,ROM或FIFO2.顶层函数接口上的数组通常作为外部内存的RTL接口来进行综合实现的3.在设计内部大小小于 1024 的数组将作为 SRL 来综合。大小大于 1024 的数组将综合到块 RAM、LUTRAM 或 UltraRAM 中取决于最优化设置4.数组访问通常会造成性能瓶颈。作为内存来实现时内存端口的数量会限制对数据的访问。5.在 RTL 中将只需读访问权的数组作为 ROM 来实现6.组大小必须固定。例如支持固定大小的数组如Array[10];。但不支持非固定大小的数组如Array[];。7.数组作为 FIFO 实现时应留意数组访问的顺序需要是连续的访问方式8.数组最优化指令Array_Partition、Array_Map 或 Array_Reshape来重新配置数组结构三、数组的初始化1.赛灵思建议但并不强制将数组指定为作为含静态 (static) 限定符的内存来实现。这不仅可确保 Vivado®HLS 以 RTL 中的内存来实现数组还允许使用静态类型的初始化行为。2. static 限定符那么 Vivado HLS 会对 RTL 设计和 FPGA 比特流中的变量进行初始化。因此无需经历多个时钟周期来初始化内存并且可确保大型内存初始化不会产生任何运算开销。

更多文章