原创 cyclone与spartan开发对比

2010-11-11 16:52 5256 11 15 分类: FPGA/CPLD

有人问,倒底是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要强大。


 

文章评论4条评论)

登录后参与讨论

用户1278632 2010-11-15 18:56

是的,说得很对 IP也是一大优势

用户177038 2010-11-13 23:31

ise的IP要丰富些(免费的)

用户1278632 2010-11-13 23:21

还有两点值的提的就是,XILINX的软核支持的是大端格式,即字数据的高字节存储在低地址中,低字节则存放在高地址,和altera的nios相反;还有在xilinx的ip core中,数据位的排列也是逆序的,如通常的数据是dat[31:0],而xilinx的则是dat[0:31]。

xucun915_925777961 2010-11-12 12:44

走过路过来学习学习……
相关推荐阅读
用户1278632 2011-09-15 12:49
解决FPGA配置成功,但不能初始化运行的BUG
摘要:    遇到两次FPGA配置完成,却不能正常运行的问题,一次是ALTERA的A1C3,另一次是XILINX的XC3S700A。两次都是DONE信号的问题。问题虽不大,但却很折腾人,今天在这里作下...
用户1278632 2011-09-15 12:41
Code Edit的神器UltraEdit
摘要:      我不是一个专职的程序员,但经常会要写一些单片机底层的code和hdl code,起初用UE,是因为查找和批量修改很方便,而且不会额外的生成一些“垃圾”文件;现在用UE三年多了,一直都...
用户1278632 2010-12-29 09:29
ISE与EDK联合设计报错 ERROR:NgdBuild:604 logical block
做一个很简单的测试在ISE的SCH里调用EDK的symbol,EDK的功能也很简单,就是CPU通过串品打印一串字符首先,我建一个ISE工程再建一source  sch类型,并设置为顶层,取名为top....
用户1278632 2010-12-22 14:49
EDK12.2中 mch_emc IP的时序问题
mch_emc IP可以将PLB总线时序转为inter 8080时序 下面是我用chipscope抓到的波形Mem_DQ_O_In :  数据输入 Mem_OEN:      读信号  Mem_A: ...
用户1278632 2010-12-22 14:29
xilinx FPGA的配制与应用程序引导-范例
两个Xilinx FPGA应用程序引导的范例1、run_in_flash是直接在NOR FLASH里运行程序2、spi_flash_boot是将BIT和bootloader和APP全部固化到SPI F...
用户1278632 2010-12-19 13:48
EDK下sram IP的使用
EDK软件的memory and memory controller中有一个xps multi-channel external memory controller(sram/flash)的IP,用来...
我要评论
4
11
关闭 站长推荐上一条 /2 下一条