FPGA
FPGA資源優化tips
最近跑工程遇到布局階段slice資源不足,導緻不能繼續進行。多種資源優化後,工程得以繼續奔跑下去。
1)在可以允許的條件下,将異步複位改為同步複位。xilinx對于同步複位是推崇的。

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。
對于zynq7000系列晶片,control set的最佳數量不超過slice數量的7.5%(當然,大部分工程都是超過此門檻值,7020晶片實測工程基本都是9%-10%左右)。
btw,查詢control set數量(綜合後)可以用 report_control_sets -verbose,以上圖檔來自ug949.
删除同步複位同時可以減少lut的使用數量,這是顯而易見的。