(1)查看综合后的原语
在outflow <project>.map是网表对FPGA资源的映射。比如gbuf,dspt等原语的是怎样适配的,可以从这里找到。下面是一个乘加在原语上的映射情况。
module top(a, b,c, clk, o);
input signed [17:0] a;
input signed [17:0] b;
input signed [17:0] c;
input clk;
output signed [35:0] o;
wire signed [35:0] p;
(* syn_use_dsp = "yes" *) reg [35:0] sum;
assign p = a * b;
always @(posedge clk) begin
sum <= p + c;
end
assign o = sum;
endmodule
![图片[1]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019142842576-81729319322.png?v=1729319323)
(2)latch的检查
如果使用了latch,在<project>.map.out文件中会有提示:
WARNING: latch inferred for net 'c' (VERI-2580)
WARNING: latch inferred for net 'o[1]' (VERI-2580)
latch警告,efinity会用Lut来实现latch效果,而且会非常占用LUT,所以要尽量避免使用它。
(3)编译告警信息列表
在outflow 文件夹中会生成一个EFX.warn.log文件。当我们遇到程序运行异常或者模块被优化时,可以查看该文件的指示信息。
![图片[2]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019142844934-61729319324.png?v=1729319326)
(4)布线资源使用情况。
xxx.map.rpt文件
各个模块布局布线后的资源使用情况 。
![图片[3]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019142847863-11729319327.png?v=1729319327)
(5)时序约束生效检查
在编译完成后outflow文件夹<项目名 >.place.out搜索“SDC”关键字可以查看相关的SDC约束是否被软件忽略。
例如:由于添加了set_false_path之后时序问题依然存在,我就搜索sdc:56,因为我的约束在56行,发现了下面的提示。
WARNING : [SDC D:/FPGA_Prj/03_Ti60F225_DemoBoard/Prj_demo/13_carrychin_demo/carrychain/carrychain_prj_v2/carrychain_prj.pt.sdc:56] Unable to run ‘set_false_path’ constraint due to warnings found
(6)查看Unassigned Core Pins。
在placement下面的palce.rpt文件中搜索Unassigned Core Pins就可以看到。它说明这些管脚没有用于内部连接。
![图片[4]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019142848900-01729319328.png?v=1729319328)
![图片[5]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug](http://chipdebug.com/wp-content/uploads/2024/10/20241019142849558-11729319329.png?v=1729319329)





没有回复内容