在使用FPGA时,设计输入文件通常是原理图、HDL或者IP核,最终获得的是FPGA内部配置信息。数据库
中间的过程由ISE逐步实现,整体来讲,能够分为3步:布局
一、综合(synthesis)spa
二、执行(implement)翻译
三、生成配置文件(generate programming file)设计
1、综合(synthesis)code
综合是将设计输入转为网表的过程。blog
网表提取出了设计输入文件中器件或端口的链接方式,以下图:class
Net1: t.p1,b1.a;
Net2: t.p2,b1.b;
Net3: t.p3,b1.c;
Net4: b1.d,b2.e;
Net5: t.p4,b2.f;
Net6: b2.g,t.p5;
在ISE中,能够选择自带的XST用于综合,生成的网表文件后缀为ngc,也能够选择synplify用于综合,生成的网表文件后缀为edf。原理
2、执行(implement)配置
执行是利用网表与约束文件,生成对应型号的FPGA所需的配置信息。
通常分为3步:
一、translate
二、map
三、place&route
一、翻译(translate)
将网表文件与约束文件转为一种新的数据库文件,把两个文件的信息放到一个文件中,便于后续处理。
注:约束文件通常由用户编写,例如FPGA引脚配置就是一种约束。
输入文件:网表文件(ngc或edf)、约束文件(ucf)
输出文件:xilinx数据库文件(ngd)、translate报文(bld)
二、映射(map)
将数据库文件里的信息映射成具体的FPGA基元(Slices,RAM和IOBs)
通常MAP过程会根据约束信息,剔除多余逻辑、合并组合逻辑等。最终生成xilinx私有电路文件ncd,包含了设计与FPGA基元具体的映射关系。
对于大部分FPGA而言,MAP时,顺便也完成了后面基元的布局(Place)工做。
输入文件:xilinx数据库文件(ngd)
输出文件:xilinx私有电路描述文件(ncd)、物理约束文件(pcf)【约束各个基元之间的位置关系等】、map过程报告(mrp)
三、place&route
负责放置基元的实际位置,并布线。
布线时,根据时序约束不断布线,直到知足时序要求。
输入文件:xilinx私有电路文件(ncd)、物理约束文件(pcf)
输出文件:ncd