倒底是Altera的FPGA好,還是 Xilinx的FPGA好,其實這個問題還真不好怎么回答,兩家都是全球最大的FPGA供應商,而且用量都很廣。本人用過cyclone和spartan系列的FPGA,現就開發工具及開發流程對這兩家FPGA進行對比。
一、 開發工具
Altera的開發工具有Quartus II 、Sopc builder、Nios II、signal tap II、DSP Builder;
Xilinx的開發工具有ISE、EDK、SDK、ChipScope 、System Generator;
Quartus II相對於ISE,都是邏輯設計軟件,功能相當;
Sopc builder相對於EDK,用來建立軟核,Sopc builder是生成bsf文件與quartus接口,生成ptf文件與nios接口,而edk則可直接生成目標文件(bit),而且還可以用EDK進行軟件設計,也就是說EDK可以不依賴ISE和SDK就可獨立完成一個設計。相比之下EDK要勝sopc builder一籌。
Nios II相對於SDK,兩者功能相當,而且界面相似度達到99%。用SDK進行軟件開發比在EDK中還是要好一些,界面比EDK中的友好。
signal tap II相對於ChipScope,嵌入式邏輯分析儀,方便調試;DSP Builder相對於System Generator用來建立DSP的算法模塊。由於沒用過ChipScope和System Generator,所以不做分析。
二、 開發流程
先說說ALTERA的SOPC開發流程
硬件設計
首先,通過QUARTUS II建立工程,新建一個Block Diagram/Schematic File文件;
再打開SOPC Builder建立CPU系統,添加IP,點擊Genenater生成.bsf和.ptf目標文件;
再回到QUARTUS II,將bsf文件導到入Schematic中,分配引腳,編譯生成sof和pof文件。
硬件設計算是完成。
軟件設計
打開nios II,新建工程,select target hardware為前面生成的pft文件,建立軟件程序,編譯生成elf文件。
下載調試
先通過JTAG接口下載sof文件(硬件),再下載elf文件查運行或debug。
固化
通過AS接口下載POF文件,再通過JTAG下載ELF文件。
再看看xilinx 的sopc開發流程
硬件設計
打開EDK,建立CPU系統,添加IP,點擊update bitstream,生成硬件bit流文件。
軟件設計
方式一、在EDK里添加C代碼,將軟件與硬件合成一個bit文件,這樣程序在片內運行,適合於比較小的程序。
方式二、在EDK里添加C代碼,硬件生成bit文件,軟件生成elf文件,bit下載到片內,elf下載到片外。
方式三、在SDK里進行軟件設計,同樣生成elf文件,界面比edk的要友好。
下載調試與固化
如果軟件與硬件合成了一個bit文件,則只需要下載和固化mcs(bit轉化而來)文件了。如果軟件比較大,則需要分兩次下載,bit下載到片內,elf下載到片外,若要固化到flash里,則還需要在edk里添加bootloader代碼,將其與硬件合成一個bit文件。再將bit轉化為mcs后固化到FPGA配置芯片里,elf文件下載到片外flash里。
從開發流程來看, EDK可以不依賴ISE就能完成SOPC的設計,當然它也可以像altera那樣,將cpu軟核導入到ise中去。由此看來,xilinx的開發流程更加的靈活,相比altera要強大。