一、违规案例for(i0; iN; i) {temp 0;for(j0; jN; j) {#pragma HLS PIPELINE II1temp coeff[i][j] * data[j];}out[i] temp;}如果上述代码tem *这个操作时序违规了你怎么处理二、处理办法一static u32 temp1 0;for(i0; iN; i) {temp 0;for(j0; jN; j) {#pragma HLS PIPELINE II1temp1 coeff[i][j] * data[j];temp temp1;}out[i] temp;}这个方式想法是好的但是是否有效果用户控制不了这个看HLS综合工具来判断是否遵守设计者的意图说白了看天吃饭。三、处理方式二static u32 temp1 0;for(i0; iN; i) {temp 0;for(j0; jN; j) {#pragma HLS PIPELINE II1temp1 coeff[i][j] * data[j];{#pragma HLS LATENCY min2 max2temp temp1;}}out[i] temp;}这种处理效果比方法一在大多数情况下是有效果的但是有时候也看天吃饭。四、处理方式三hls::streamu32 temp1;for(i0; iN; i) {temp 0;for(j0; jN; j) {#pragma HLS PIPELINE II1temp1 coeff[i][j] * data[j];}}for(i0; iN; i) {temp 0;temp2 0;for(j0; jN; j) {#pragma HLS PIPELINE II1temp temp1.read();temp2 temp;}out[i] temp2;}五、总结1.hls::stream做逻辑去耦合设计做逻辑拆分寄存器隔离slice是比较有效的方式2.除了这种优化方式是否还有其他优化方式呢如果你有请告知我共勉尽自己绵薄之力构建HLS高层次综合设计生态