步骤6:为了瓶颈对循环进行优化和修改
1. 在工具栏中选择New solution按钮或用菜单Project>New Solution来创建新的方案
2. 点击Finish并且接收默认设置来创建solution3
3. 保证C源代码显示在信息窗口中
4. 在指令标签中
a. 在dct_1d函数中,选择对DCT_Inner_Loop使用流水线指令
b. 右击,并且选择Remove Directive
c. 任然在dct_1d函数中,选择loop DCT_Outer_Loop
d. 右击,并选择Insert Directive
e. 在Directives Editor的对话框中,在上部激活Directives下拉菜单并选择PIPELINE
f. 点击OK并选择默认最大的流水线率
指令窗口展示了如下的优化指令(高亮的)如图125
5. 在工具栏里点击Run C Synthesis按钮,把设计综合成RTL级
6. 当综合完成,用Compare Reports工具栏按钮或者用菜单Project>Compare Reports来比较方案2和3
图126展示了方案2和3的比较结果。输出循环流水线有提高性能和增加资源的实际结果。
获得改善的延迟好处,因为在这个设计中有多个循环调用dct_1d这个函数很多次。在这个模块中节省延迟是翻倍的,因为这个函数在很多循环中用到。