Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

Efinity编译生成文件使用指导-v1

 

(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

(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

(4)布线资源使用情况。

xxx.map.rpt文件

 

各个模块布局布线后的资源使用情况 。

图片[3]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

 

(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

图片[5]-Efinity编译生成文件使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

 

请登录后发表评论

    没有回复内容