买芯片网
XILINX(AMD),ALTERA(INTEL),LATTICE
聚焦三大FPGA芯片品牌,强大的现货交付能力
Xilinx,Altera,Lattice
买芯片网代理Altera(英特尔)、Lattice(莱迪思)、Xilinx(赛灵思 AMD)
首页 >> Xilinx新闻 >> Xilinx的增量编译技术
Xilinx的增量编译技术

通常FPGA工程师编译较大的工程时比较头疼,因为编译时间非常长,常常需要花费几个小时,如果是在调试阶段,每次修改一个错误需要几小时,这样效率就非常低。导致编译时间较长的原因有两点:1. 设计中资源利用比较大,synthesis、translate和map需要的时间较长;2. 设计的时序比较紧张,需要反复PR来达到最佳时序状态。

买芯片网专注整合全球优质赛灵思代理商现货资源,是国内领先的Altera(英特尔)、Lattice(莱迪思)、Xilinx(赛灵思 AMD)芯片采购服务平台,买芯片网轻松满足您的芯片采购需求.

如果不想修改工程代码,想要缩短编译时间,则可以采用增量编译技术,其基本原理就是根据前一次编译的结果,只重新编译部分修改过设计,其它部分则沿用前一次编译的结果,这样就可以缩短总体的编译时间。Xilinx增量编译技术有两种:SmartGuide和Partition。

SmartGuide:这个ISE中的全局优化选项,使能这个选项,编译器在Implementation时会比较前一次编译的Implementation结果,未修改部分则沿用前一次的结果,但是如果时序比较紧张,会根据情况重新实现相应未修改部分来达到时序要求。SmartGuide主要能缩短MAP和PAR的时间。

SmartGuide具体的使用方法如下:

1. 右击top module,然后点击SmartGuide选项。

图1

2. 选择前一次的编译信息,其中NCD文件包含当前设计的物理映射信息。

图2

3. 点击OK,使能SmartGuide。

Partition:基于partition(分区)的设计,如果一个partition的HDL代码、时序、物理约束和实现选项未修改,实现工具会采用“复制粘贴”操作保留这部分partition的信息,从而缩短了实现的时间。partition设置后能缩短综合、实现的时间。

自ISE12.1版本后,ISE软件就不再支持partition选项,但是在PlanAhead软件中支持partition功能(ISE快退出Xilinx软件舞台了,据说以后有个Rodin的软件,界面与现在的PlanAhead类似)。,在Netlist窗口中右击需要分区的module,然后选择Set Partition即可。

图3

参考文献

XAPP918:Incremental Design Reuse with Partitions

注:在 最近的项目中,为了缩短编译时间,使能了SmartGuide选项,但是发现时序一直很差,记得以前timing score都是0分的,然后采用了各种优化:加bufg、关键路径加register打拍等等,但是时序始终达不到0分。在快绝望的时候,突然发现之前使 能过SmartGuide选项,把它去了试试,结果版本跑出来时序0分了,当时是既欣喜又崩溃。 通过这次的经历,得到了一些教训,在debug阶段虽然使用增量编译技术能加快效率,但是前提是你的代码功能、时序都需要满足条件,之后才能使用增量编译 继续debug

 

Xilinx中国海量优质的信息资源、行业资讯、最新开发方案等资讯信息平台。

Xilinx芯片今日搜索排行榜(2024年5月18日)
XCS30-3TQ144I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:144-LQFP
XC5VLX50-1FF324I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:324-BBGA,FCBGA
XC7A12T-2CPG238C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:238-LFBGA,CSPBGA
XC3190A-3PC84C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:84-LCC(J 形引线)
XC4010XL-2BG256I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:256-BBGA
XC3S50AN-4TQG144I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:144-LQFP
XC5VLX50-2FF676I
嵌入式 - FPGA(现场可编程门阵列)
产品封装:676-BBGA,FCBGA
XC3S2000-4FG456C
嵌入式 - FPGA(现场可编程门阵列)
产品封装:456-BBGA
Xilinx产品及其应用
Xilinx公司新闻
买芯片网轻松满足您的芯片采购需求
买芯片网,独家代理渠道,专注三大品牌:XILINX(赛灵思 AMD)ALTERA(英特尔 INTEL)LATTICE(莱迪思)