天天看點

删除複位對FPGA資源優化影響FPGA資源優化tips

FPGA

FPGA資源優化tips

最近跑工程遇到布局階段slice資源不足,導緻不能繼續進行。多種資源優化後,工程得以繼續奔跑下去。

1)在可以允許的條件下,将異步複位改為同步複位。xilinx對于同步複位是推崇的。

删除複位對FPGA資源優化影響FPGA資源優化tips

2)删掉不必要的複位信号;資料類資料不需要進行複位,可直接删掉;

always @(posedge clk) begin
//        if (st_arbit) begin
//            req_data_len                <= 'b0;
//        end
//        else if (st_cmd) begin
        if (st_cmd) begin
            req_data_len                <= axi_wr_cmd[grant_index_r][33:30];
        end
    end
           

本次實驗中,删除的複位是同步複位,可減少control set數量,control set包含時鐘,時鐘使能,複位,在FPGA中每個slice内部的reg和lut必須是同一種control set。

删除複位對FPGA資源優化影響FPGA資源優化tips

對于zynq7000系列晶片,control set的最佳數量不超過slice數量的7.5%(當然,大部分工程都是超過此門檻值,7020晶片實測工程基本都是9%-10%左右)。

删除複位對FPGA資源優化影響FPGA資源優化tips

btw,查詢control set數量(綜合後)可以用 report_control_sets -verbose,以上圖檔來自ug949.

删除同步複位同時可以減少lut的使用數量,這是顯而易見的。