Struct:被分解为成员变量
操作符:硬件核
The Initial Optimizations
INTERFACE | |
---|---|
DATA_PACK | |
LOOP_TRIPCOUNT | 对综合没有影响,只是在报告中看循环次数 |
Config Interface | 去除与顶层设计无关的 |
Pipeline for Performance
PIPELINE | 减少了II(启动时间) |
---|---|
DATA_FLOW | 使任务级流水线,允许函数和 同时循环执行。用来减少间隔 |
Directives to Enable Pipelined Performance
ARRAY_PARTITION | 解决BRAM瓶颈问题 |
---|---|
DEPENDENCE | 用于提供额外的信息 克服循环负载的依赖性和允许循环流水线(或较低的流水线间隔)。 |
INLINE | 提高延迟/间隔,减少函数调用开销。 |
UNROLL | 展开for循环 |
Config Array Partition | 决定有多少个数组可以分割 |
Config Compile | 控制综合特定的优化,例如自动循环流水和数字浮点数优化 |
Config Schedule | 配置输出变异信息 |
如果这些都不能提高II,那么就需要修改c代码(书写硬件有效的c coding);
如果II都满足了,则需要在性能满足的情况下,减少面积。
Ø Improving the Area
ALLOCATION | 限制硬件数 |
---|---|
ARRAY_MAP | 将多个小的array组合成一个大的array,减少BRAM面积 |
ARRAY_RESHAPE | |
LOOP_MERGE | 融合循环,减少总延迟 |
OCCURRENCE | |
RESOURCE | 指定某个变量为具体的功能核 |
STREAM | 指定一个数字实现为fifo或者RAM |
Config Bind | |
Config Dataflow |
Ø Reducing Latency
Latency | |
---|---|
LOOP_FLATTEN | |
LOOP_MERGE |