删除复位对FPGA资源优化影响

FPGA

FPGA资源优化tips

最近跑工程遇到布局阶段slice资源不足,导致不能继续进行。多种资源优化后,工程得以继续奔跑下去。
1)在可以允许的条件下,将异步复位改为同步复位。xilinx对于同步复位是推崇的。
删除复位对FPGA资源优化影响_第1张图片
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资源优化影响_第2张图片
对于zynq7000系列芯片,control set的最佳数量不超过slice数量的7.5%(当然,大部分工程都是超过此阈值,7020芯片实测工程基本都是9%-10%左右)。
删除复位对FPGA资源优化影响_第3张图片
btw,查询control set数量(综合后)可以用 report_control_sets -verbose,以上图片来自ug949.

删除同步复位同时可以减少lut的使用数量,这是显而易见的。

你可能感兴趣的:(FPGA)