一、static静态变量说明1.static静态变量在循环迭代之间会保留数据这个会导致最终生成寄存器2.如果在pipeline流水线实现的函数中遇到了static修饰的变量那么vivado hls工具优化就比较保守这个会导致无法对设计进行充分的优化从而导致启动时间间隔II超过了所需要的时间。二、static阻碍工具优化的案例function_foo(){static bool change 0if (condition_xyz){change x; // store}y change; // load}这个代码中将x存储到store需要一个周期load到y需要一个周期。上述代码为什么会影响优化呢上述代码的真实表达为function_foo(){static bool change 0if (condition_xyz){change x; // store}else{change change; // store}y change; // load}所以一个流程下来store执行完成后再执行load可不是需要两个时钟周期。三、优化后的情况function_readstream(){static bool change 0;bool change_temp 0;if (condition_xyz){change x; //store,将数据存入寄存器change1_regchange_temp x;}else{change_temp change; //load将数据从寄存器中读取出来:change2_reg}y change_temp;}通过修改代码可以确保每次迭代中只有store操作或者只有load操作这II1就可以完成了