概叙设计方法:
- 综合设计
- 回顾最初的结果
- 应用优化的 directives去提高效率
你可以重复上述步骤,直到达到要求。然后,你可以重新审查设计去提高面积。此过程的关键部分是分析结果,下面通过一个project来介绍如何使用reports和 GUI perspective 去分析设计,并且决定用哪种solution去应用相应的优化。
directive简介
创建solution时,directive分为两种:
directive前面如果是”%“的话,说明存放于单独的 directive.tcl文件里,此时就是一个tcl.command,
优点:
1). 每个solution都有独立的directive
2). 如果这个solution需要重新综合,那么只有这个solution下面的directive会起到作用缺点:
1). 如果我们想把C source code 给到第三方工具,相应的directive也要被包含其中
2). 如果我们需要获得同样的C综合后的结果,也必须有相应的directivedirective前面如果是”#“的话,说明存放于相应的source file,此时会以“#pragma“形式在source code里显示,
优点:
我们在使用第三方工具时,只需要把C source code给过去就可以重现综合后的结果
缺点:
1).如果这个solution需要重新综合,由于directive写在source code里,这时候所有的directive都会被执行
2).如果把相应的 directive存放到C/C++的代码里,就不能从另外一个solution里copy过来,同时也不便于 directives的管理。
注意:在C代码的里,如果有for loop,最好给这个loop写一个标签,可以方便我们找到这个for循环,对其做相应的优化的时候可以很容易识别出来。
不同soluotion的对比
下面开门见山,直奔主题,通过一个project介绍 directives的神奇之处,在这里先定下一个interval为125 clock的小目标
Solution1:
step1 打开Vivado Hls
1.在 command 里写入vivado_hls–f run_hls.tcl,如下图