在使用FPGA时,设计输入文件一般是原理图、HDL或者IP核,最终得到的是FPGA内部配置信息。
中间的过程由ISE逐步实现,总体来说,可以分为3步:
1、综合(synthesis)
2、执行(implement)
3、生成配置文件(generate programming file)
一、综合(synthesis)
综合是将设计输入转为网表的过程。
网表提取出了设计输入文件中器件或端口的连接方式,如下图:
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。
二、执行(implement)
执行是利用网表与约束文件,生成对应型号的FPGA所需的配置信息。
一般分为3步:
1、translate
2、map
3、place&route
1、翻译(translate)
将网表文件与约束文件转为一种新的数据库文件,把两个文件的信息放到一个文件中,便于后续处理。
注:约束文件一般由用户编写,例如FPGA引脚配置就是一种约束。
输入文件:网表文件(ngc或edf)、约束文件(ucf)
输出文件:xilinx数据库文件(ngd)、translate报文(bld)
2、映射(map)
将数据库文件里的信息映射成具体的FPGA基元(Slices,RAM和IOBs)
一般MAP过程会根据约束信息,剔除多余逻辑、合并组合逻辑等。最终生成xilinx私有电路文件ncd,包含了设计与FPGA基元具体的映射关系。
对于大部分FPGA而言,MAP时,顺便也完成了后面基元的布局(Place)工作。
输入文件:xilinx数据库文件(ngd)
输出文件:xilinx私有电路描述文件(ncd)、物理约束文件(pcf)【约束各个基元之间的位置关系等】、map过程报告(mrp)
3、place&route
负责放置基元的实际位置,并布线。
布线时,根据时序约束不断布线,直到满足时序要求。
输入文件:xilinx私有电路文件(ncd)、物理约束文件(pcf)
输出文件:ncd
原文地址:https://www.cnblogs.com/guofeng95/p/9180433.html