HLS高层次综合设计技巧--数组

一、数组仿真说明

1.数组在c仿真可能出现堆栈空间不够的问题

如果指定数组过大,可能导致C仿真失败,这种情况建议使用指针,然后使用malloc进行分配;

如果指定数组过大,导致C仿真失败,可以使用增加 C/C++ 代码开发中的内存资源的标准方法是使用连接器选项增大堆栈大小

例如以下选项将堆栈大小显式设置为

-Wl,--stack,10485760。在 Vivado® HLS 中可转至"Project Settings" → "Simulation" → "Linker flags"来应

用此类选项,或者还可作为 Tcl 命令的选项来提供此类选项:

csim_design -ldflags {-Wl,--stack,10485760}

cosim_design -ldflags {-Wl,--stack,10485760}

2.数组在c仿真中可能出现数组越界问题

二、数组综合

1.进行综合。而在设计内部,大小小于 1024 的数组将作为 SRL 来综合。大小大于 1024 的数组将综合到块 RAM、

LUTRAM 或 UltraRAM 中(取决于最优化设置)。

2.数组访问通常会造成性能瓶颈。作为内存来实现时,内存端口的数量会限制对数据的访问。数组初始化如未谨慎执

行,则可能导致 RTL 中不必要的长时间复位和初始化。

相关推荐
kakakahahahaha6 分钟前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows
朝朝辞暮i12 分钟前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
朝朝辞暮i44 分钟前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法
笨笨饿1 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
Godspeed Zhao1 小时前
现代智能雷达技术14——算法(0)
线性代数·算法·雷达
YOLO数据集集合1 小时前
EvoAgent:面向PR研发治理的自进化Multi-Agent Harness系统
java·开发语言·目标检测·agent·自进化
可乐ea1 小时前
Agent 模型分级升级路由:用置信度阈值把贵模型省下来
人工智能·算法·机器学习·结构化输出·置信度路由·模型升级路由·大模型成本优化
Navigator_Z2 小时前
LeetCode //C - 1278. Palindrome Partitioning III
c语言·算法·leetcode
Godspeed Zhao2 小时前
现代智能雷达技术18——算法(4)
算法
CHEEVEN_QY2 小时前
液冷板热阻计算与流阻优化的实战方法
人工智能·算法·机器学习