俗话说“授之鱼不如授之以渔”,看到这边有人要资料有人送资料的,其实论坛不更应该是一个交流的空间么?那就让找资料更有效率一点,让大家花更多时间来交流吧。
言归正传,写这篇文章主要想介绍Xilinx各种资料的找法、分类方法和什么问题该看哪些资料。限于经验,难免有错漏,希望大家指出错误并继续补充。
一、软件
Xilinx的软件主要是ISE, EDK, ChipScope Pro, System Generator, PlanAhead, ModelSim,如果要算上AccelDSP也凑合,不过相信国内没多少人用。
ISE是主要的逻辑设计软件,其他软件的具体实现功能都依附于ISE。ISE有Foundation版和WebPack版。WebPack版免费,Foundation版收费。两者的区别是支持的器件不同。功能是相同的。
WebPack版支持的功能可以看 http://www.xilinx.com/ise/products/webpack_config.htm 。
Foundation的话当然全支持拉,要看的话在这里 http://www.xilinx.com/ise/logic_design_prod/foundation.htm 。
说这些的目的就是,如果你的器件WebPack支持,就直接到网上下载WebPack吧,没有版权之类的后顾之忧;如果不行,Verycd上找些东西还是挺方便的。
ModelSim MX有免费的starter version,可以和ISE WebPack一起下载,安装以后在开始里面点licens_e request就可以申请starter的使用权了。另外,可以VHDL和Verilog各申请一个,那么就可以仿真两种语言了,不过不支持mix language。http://www.xilinx.com/ise/verification/mxe_details.html
不过那一页说的ModelSim XE的use case不准的,XE,PE,SE的差别还是仔细看这里吧。http://www.xilinx.com/xlnx/xil_ans_display.jsp?getPagePath=24506
ChipScope是片内的逻辑分析仪,可以让用户方便地抓取片内信号进行debug。ChipScope有60天的评估版。
www.xilinx.com/chipscope
PlanAhead(稍微介绍下子,没有接触过的朋友可能不知道这是什么)
PlanAhead是ISE7以后推出的软件,它的主要功能是对一个综合后的NGC/EDIF网表进行布局布线的规划。听上去功能有点像FloorPlanner,但是功能却强大得多。
罗列一下我喜欢它的地方:
1、因为使用了GateVision的EDIF显示引擎,使综合网表显示非常漂亮。
2、ExplorerAhead可以控制具体使用哪些MAP/PAR的参数,比使用Xplorer更方便,提高Timing结果很有效率,还支持多CPU。
3、Show Hierarchy可以看出每个层次的连接以及每个层次占地大小的比例。
4、画Pblock,规划布局布线。这个就有点像FloorPlanner,但是可以显示每个画出的Pblock包括多少资源,并可以仅对某个Pblock布局布线,布局后还能整体移动整个Pblock。
5、自带的Tutorial很周到,容易上手。
以上是我用过的功能,还没用过的功能是:
1、PinAhead自动检查DRC和WASSO,自动放Pin。
2、用PlanAhead做Partial Reconfiguration,流程比以前方便很多很多。
PlanAhead有30天的免费评估版。曾经可以30天试用期过后再申请一次评估版,但现在随着PlanAhead的日渐成熟和广受好评,再次试用的功能已经取消了。
www.xilinx.com/planahead
以上这些工具是通常做一些HDL代码开发/实现是所需要使用到的工具,除了这些,Xilinx还提供有EDK和System Generator这些已经将部分功能模块化,让用户方便得点几下鼠标就可以建立起一个基本系统,并在此基础上再次开发的工具。
EDK - Embedded Development Kit,顾名思义就是用来做嵌入式系统的。它提供对PowerPC硬核和MicroBlaze软核的支持,免费提供一些常用的硬件IP Core,比如各种Memory Controller、各种外设如IIC, SPI, GPIO,并集成了GNU工具链,使之成为软硬件设计一体化的设计工具。设计出的嵌入式系统集标准性与灵活性于一身,可以支持Linux等操作系统,也可让用户自己设计用户IP用作模块接口或硬件加速。
www.xilinx.com/edk
System Generator借助Matlab Simulink的框架使DSP算法用图形化的数据流来说明,在Sysgen的帮助下DSP算法可以轻易在FPGA上实现。特别是它的Hardware Co-simulation功能大大降低了Debug的难度。
www.xilinx.com/sysgen
二、软件更新
www.xilinx.com/download 是Xilinx的Download Center,ISE的Service Pack, IP Update在那里都有下。现在Download Center里的Service Pack和IP Update等软件更新不用注册帐号就可以下载了。
关于更新,多说两句。不管正在使用ISE的哪个版本,出了新的Service Pack就及时下载更新一下,这样会省去你很多可能会有的麻烦。一般Service Pack 1在公开发布的主要版本的3天后就会发布,而后的每个Service Pack都相隔一个月左右。
ISE Service Pack是指ISE除了CoreGen和IP Core以外的所有更新;IP Update当然就指CoreGen和IP Core的更新了。
IP Update打上了以后,用ModelSim XE的要下载XE的更新的库,用SE或者PE的要用compxlib重新编译一下库。
有一个东西可能不是很多人用,就是Download Center里的CAE Vendor Library。里面是给第三方软件使用的库,比如Cadence/Synopsys的综合工具、形式验证工具等。
Download Center中一般只显示每个版本的最新的Service Pack,比如ISE 9.1只能找到Service Pack 3,而找不到SP2,那是因为SP3已经包含了所有SP2的更新。但是如果有特定需要,也可以在以下这些Answer Record中找到特定版本的Service Pack:
AR #10959 - ISE Install - Where can I find and download old service packs for ISE?
AR #31741 - ISE Install - Where can I find and download old ip updates for ISE?
AR #25399 - EDK Install - Where can I find and download old service packs for EDK?
三、软件教程
作为入门教程来说,Xilinx放在Demosondemond网站上的那些视频教程可以说是最好的了。链接就在Xilinx主页左下角的位置。
http://www.demosondemand.com/clients/xilinx/001/page/index.asp 视频教程内容有关于最新的硬件的,也有各种软件的,基本算挺齐全的。有多好,自己看就知道了:)
最近要查看demosondemand网站的录像需要注册了,dod的注册很严格,注册需要公司邮件地址或者学校带edu的邮件地址。
视频资料还有一类,就是放在TechOnline上的WebCast。涉及面不止软件,也还有很多硬件的资料。alex_yyp总结得很好,我抄一下嘿嘿: http://www.techonline.com/electronics_directory/webinar/896
WebCast都是可以与演讲者实时互动的(虽然大多是美国的,时区跟我们有差异,但是中国的WebCast也还是有的),最新的WebCast信息可以订阅TechOnline,或者在Xilinx.com的网站右上角察看。
接下来应该看的是Tutorial。
http://www.xilinx.com/support/techsup/tutorials/
主要是ISE, EDK, PlanAhead的,还有Timing Constraint的。时序约束的那篇文档算是讲得比较全的,还有可以深入阅读的一篇文档就是wp237,关于offset约束的。
ISE做了Tutorial基本操作应该没问题了。
ChipScope比较简单看了Demosondemond的视频教程应该就会了。还不清楚的话看看安装目录里的UG029。
PlanAhead虽然比ChipScope复杂,但是视频教程还是很不错的,再加上Tutorial,应该也够了。
更进阶了解ISE,需要阅读ISE的Manual。打开Manual可以从开始菜单中ISE->Documentation->Software Manuals;也可以在ISE安装目录下的doc目录查找。
列出几个重要的Manual:
XST User Guide (xst.pdf):关于XST的开关选项等
Development System Reference Guide (dev.pdf) :除了XST外的实现工具比如map, par, trce等的实用指南
Constraint Guide (cgd.pdf) :约束的指南。包括时序约束/非时序约束;UCF约束/XCF约束。
Synthesis and Simulation Guide (sim.pdf):其实主要是说明仿真的具体内容。
Library Guide:针对每个器件不同的primitive例化模板和说明。
ModelSim官方网站有些Flash的演示也很不错
http://www.model.com/resources/resources_demos.asp
安装目录下的User Guide如果能跟着做一遍,应该也很不错了。
关于HDL的写法,wp231非常不错。
关于EDK,最好的起步教程是EDK Concepts, Tools, and Techniques,可以在EDK Documents页面找到。
EDK最重要的几篇文档也在安装目录的doc目录下。像ISE一般罗列几份最重要的如下:
est_rm.pdf : EDK系统的构成工具使用指南
psf_rm.pdf : EDK系统使用的各种文件格式的语法说明
mb_ref_guide.pdf : MicroBlaze体系结构说明
由与非网登载的《基于XILINX FPGA片上嵌入式系统的用户IP开发》是一本关于设计Custom IP方面非常好的参考资料,据说最近也已经出版。
EDK系统由于既牵涉到FPGA硬件和很多IP Core,又牵涉到C语言软件的编写和GNU工具链甚至Linux操作系统的相关知识,只是涉及范围之广,不是三言两语可以概括,因此文档也是多得数不过来,日后将再撰文祥述。
关于Sysgen,其实它的User Guide写的还是很不错的,并且安装目录中就提供了很多例子很有参考价值。
起步:help目录下的sysgen_user.pdf
关于系统设计,Xilinx有本中文版的DSP书,名字叫《DSP:最佳结果设计》。免费放出PDF版本,
在 http://china.xilinx.com/publications/books/dsp/index.htm 可以找到 。
关于DSP的特性,System Generator教程,XtremeDSP Kit的演示,在Demosondemond的视频教程里也都有。
另外,Xilinx有丰富的客户培训教程,大客户由Xilinx直接上课,小客户交给第三方来完成的,中国这边是E-Elements。有机会参加的话也不错。对于学校教授,赛灵思大学计划还会在各高校不定时举办各种讲座,部分讲座可以从openhard观看视频。除此之外还有一个特别优待:只要是XUP大学计划的成员,就可以通过访问大学计划网页得到丰富的教学资料。
四、硬件资料
所有的硬件资料不外乎DataSheet和User Guide。
基本就是使用方法在User Guide里找,各种参数在DataSheet里找。
关于DCM,有一篇关于Spartan 3的DCM的文档很全。
其他的基本都可以参考Virtex 4各种各样的User Guide,讲得全。
做硬件设计,V4的Configuration Guide (UG071),PCB Guide (UG072)都是值得一读的。
UG112是Package Guide。
五、参考设计
对于各种常见的应用,Xilinx都有现成的参考设计或者IP core,只需要修改少量的代码就可以放在自己的设计中使用了。这时候就应该查阅Xilinx Application Notes。Application Notes都以xapp开头。地址 www.xilinx.com/xapp
对于CPLD,有一个Application Note的合集,叫做CPLD Applications Handbook。
http://www.xilinx.com/publications/products/cpld/cpld_applications_handb...
还有一些可以研究的Reference Design是随板子附带的参考设计,ML40x, XUP, Spartan3/3E的参考设计都非常全。
www.xilinx.com/ML403
六、问题解决
再次重申,遇到软件问题先考虑自己有没有打上最新的Service Pack和IP Update。
如果有疑问,其实最快的方法不是到论坛提问,而是到Xilinx Answer Database找答案。大多数能想到的问题的答案那里边都有了。能不能找到就看会不会搜索了。
Xilinx的高级搜索 http://www.xilinx.com/company/advanced-search.htm ,在Answer Database 选项上打勾,就能查找Answer Record了。
当软件报出一个Error或者Warning,不明白他的意思,不知道怎么修改,不知道是自己错了还是软件bug,就可以按这个Error Message去查找。
可以说解决问题有两种途径,一是自己解决,一是寻求帮助。通常我都觉得先尝试自己解决问题比较好,一来培养能力,二来仔细研究问题后,寻求别人的帮助更容易理解别人的指点,另一方面也更尊重给你指点的人。
七、总结
写得仓促,到最后感觉有些虎头蛇尾,以后有机会会更新。
希望此文是抛砖引玉,大家有更好的经验可以一起分享。