在使用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