Xilinx 网站资源导读
———版权声明———–
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com
欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
———版权声明———–
0. 序
俗话说,好的开始是成功的一半。在这个信息爆炸的时代,好的资料就是成功学习的一半。
时常看到有人在论坛上跪求资料,也有人在论坛上灌水换积分排队下资料。如果这篇文章能帮助大家花更少的时间找到更有价值的资料,那么我花时间维护这篇文章也就值了。
好,废话不多说,我们言归正传。写这篇文章主要想介绍Xilinx各种资料的找法、分类方法和什么问题该看哪些资料。限于经验,难免有错漏,希望大家指出错误并继续补充。
———版本更新说明———–
Dec, 2012
本文第一版写于ISE 10的时代。经历数年为大家广为转载。时值ISE Design Suite 即将发布14的最后一个升级版本,将来也将切换到Vivado套件系列。在此更新一些内容,与时俱进。
1. Xilinx软件介绍
套件的由来
Xilinx的软件设计理念曾经是基于Linux工具的理念:每个工具都负责一项具体功能,多个工具组合成一个套件完成系统的设计功能。在设计初期由于应用还相对简单,独立的工具版本维护还是得以进行,比如ISE, EDK, ChipScope Pro 等软件单独给出安装和升级包。
随着设计越来越复杂,各个软件之间的互动也越来越多,众多独立软件更新给用户更新带来不便,因此产生了软件套件的概念,称为 ISE Design Suite。从10的版本开始,IDS基本是以每年一个大版本号,每个季度一个小版本升级的步伐在向前推进,比如第一个版本是IDS 10.1, 下季度更新到 IDS 10.2. 每一次升级,都只需要一个包,就能升级所有的工具。
由于工具软件众多,IDS又被分成不同的Edition。其中WebPack Edition是面向小器件的免费版本,除了 ISE 逻辑设计工具之外,它还包含仿真器 ISim 和 新一代的布局规划工具 PlanAhead。
除了免费的WebPack Edition之外,还有各种收费版本,比如可以设计大容量FPGA的 Logic Edition, 包含嵌入式开发工具EDK的Embedded Edition, 包含数字信号处理设计工具的 DSP Edition, 以及包含所有工具的 System Edition.
各个Edition支持的功能可以看这里:
http://www.xilinx.com/products/design-tools/ise-design-suite/
详细的每个Edition支持的器件列表、操作系统列表等信息可以查看:
http://www.xilinx.com/publications/matrix/Software_matrix.pdf
一方面由于PlanAhead工具在用户中得到了非常好的反响,另一方面在FPGA芯片容量设计得越来越大之后,原始的布局布线工具已经不能非常好地胜任在短时间内满足时序收敛的要求,Xilinx又着手开发了一套新的开发工具,命名为Vivado。
Vivado 的前端界面以 PlanAhead 为原型,后端的综合、布局布线、时序分析工具根据新的大容量器件的设计要求完全重写,以期望在更短的时间内将更大的设计实现时序收敛。它支持7系列所有的器件。如果是大器件比如Virtex 7 2000T,那么就只能用Vivado来设计。它与IDS 14.x 是并行发展的,但是 IDS 将来的更新将仅限于对已经支持的器件的维护和更新。新的8系列器件将都使用Vivado来设计。
Vivado 的版本号也与IDS有所区别,将单纯以数字作为版本号改为以发布年份作为版本号,比如2012.4就表示2012年的第四次更新发布。
了解更多Vivado套件的说明可以看这里:
http://www.xilinx.com/products/design-tools/vivado/index.htm
根据以上的说明,你可以更方便地找到适合自己的开发工具。如果开发所使用的器件是WebPack版支持的,并且仅开发逻辑,不需要嵌入式功能,那么免费的WebPack最适合。
如果希望试用收费版本,可以在这个网址申请30天的评估License。
http://www.xilinx.com/ise_eval/index.htm
所有版本的软件都可以在下载中心找到
http://www.xilinx.com/support/download/index.htm
独立工具说明
ChipScope Pro 是片内的逻辑分析仪。可以让用户方便地抓取片内信号进行debug。ChipScope支持的Trig方式非常多样,用熟悉了以后几乎是想要观察什么内部信号都可以观察到,即使他有BRAM深度的限制。
www.xilinx.com/chipscope
PlanAhead工具自从ISE7时代被开发出来并发展了这么多年之后,已经成为了提高设计效率和提高产品性能的有力工具。
它可以帮我们在布局布线之前做好管脚定位和DRC检查、规划区域约束、查看综合网表,并且可以跑多次实现,找出最佳的布局并分析时序。
在 PlanAhead 工具变得越来越强大之后,原先必须使用 ISE 的设计工程顶层也可以仅使用 PlanAhead 来完成。www.xilinx.com/planahead
EDK - Embedded Development Kit,顾名思义就是用来做嵌入式系统的。
EDK提供对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
在 Vivado 套件中除了包含以上这些独立工具之外,还有一项新的工具叫做 Vivado HLS,即 High Level Synthesis。它可以完成从 C 到 HDL 的综合,使一个以C实现的复杂算法仅通过工具的自动转换,就能完成到FPGA芯片的硬件实现,大大加速了算法设计、验证、实现的效率。
除了Xilinx的软件,我们通常还会用到一些第三方的软件,比如Synopsys (曾经Synplicity) 的 Synplify 综合工具,Mentor Graphic 的 ModelSim 工具等。
Synplify 可以替代 ISE 自带的 XST。他的优势是编译速度快,编译产生的网表质量可能更高(面积小,频率高);缺点是1.贵 2.对新器件的支持比原厂慢一拍。
ModelSim (QuestaSim) 是一款常用的仿真工具。其他和ISE搭配使用的仿真工具有Cadence的NC-Sim和Synopsys的VCS。ModelSim根据价格高低和支持功能的多少分为SE, PE 等版本。曾经有一个为Xilinx特别优化的 XE 版本,但是后来取消了。
除了设计工具,套件中新增的 Document Navigator (DocNav) 工具也是提高设计效率的有力工具。由于Xilinx的工具越来越多,越来越复杂、器件家族越来越丰富,产品文档和使用手册数量和更新频率都急剧增加,导致用户比较难管理、发现有用的文档。 DocNav 提供了一个集中化的管理界面,它收录了多数常用文档,并以器件、软件、文档类型做了分类,提供方便的搜索功能,并且能一键下载所有文档以提供本地离线阅读。有了它,查阅文档就方便很多。
2. 软件版本和软件更新
Xilinx的软件工具更新很频繁。自从IDS10以后,基本是三个月出一次升级包 (Service Pack),一年出一个新版本 (Major Version)。如此高的升级速度,一方面是为了更上新器件的支持要求,一方面是为了修补前期版本的bug。
那么我们是否需要以最快的速度更上更新的速度呢? 我个人的建议通常是:
-
正在进行中的项目,如果不是需要新功能或绕过某些已经存在的Bug,那么就不要盲目升级大版本(13→14),但是一定要勤快地升级到最新的升级包(13.3→13.4)。
-
新设计尽量用新版本的最稳定版本。比如现在最近版本是14.1的时候,还是不要急于追新,用最稳定的13.4来做开发。
对于操作系统,建议也是类似的:
-
Windows的用户建议使用英文版 Windows7 或 Windows XP SP2。
-
公司最好能有一台大内存64位服务器跑RHEL Linux,即能提供多用户使用,也更适合跑大器件
(操作系统支持参考http://www.xilinx.com/publications/matrix/Software_matrix.pdf)
所有以上的建议,目的归根到底可以总结为:
-
以最大努力保证设计平台的稳定(Linux的内存管理比Windows好,系统也更稳定)
-
避免陷入已知的Bug中浪费时间
-
减小遇到未知的Bug的可能性 (中文版操作系统上不一定跑过详尽的软件测试)
在产品开发过程中,设计软件总是稳定比功能多来得重要,操作系统总是稳定比好看来得重要。
Xilinx所有的软件下载都可以在Download Center找到(www.xilinx.com/download) 。其内容包括:
-
IDS的完整版下载
-
IDS更新包的下载
-
CAE Vendor Library 就是第三方工具需要使用到的库文件,比如Cadence/Synopsys的综合工具、形式验证工具等。
-
Device Models 可以下载用于第三方仿真工具(HSpice, HyperLinks等)所需要使用的 IBIS、HSpice、BSDL模型等。
过往版本的ISE WebPack,可以到ISE Classic页面下载,但是不再提供付费软件的Evaluation。
http://www.xilinx.com/tools/classics.htm
过往版本的最终Update,也可以在Download Center找到,但是中间版本需要在以下这些Answer Record中查找:
Download Center: http://www.xilinx.com/support/download/index.htm
Old Service Pack: http://www.xilinx.com/support/answers/10959.htm
Old IP Update: http://www.xilinx.com/support/answers/31741.htm
3. 软件教程
要学习使用Xilinx的软件工具,比较好的资源有这些:
-
Xilinx官方网站的视频教程
-
放在YouTube和Youku的视频教程
-
WebCast 网上研讨会
-
Tutorial
-
工具的 User Guide
作为入门教程来说,Xilinx的Online视频教程应该是最合适的了。访问
http://www.xilinx.com/training/index.htm
可以找到关于FPGA Architecture, Software tools, HDL Coding technique 等各方面的视频教程,内容丰富,且原汁原味,属于自我学习最好的参考资料。
YouTube里也有大量视频教学资料,比如一些现场Demo, ChipScope Debug技巧等。
http://www.youtube.com/user/XilinxInc
http://i.youku.com/u/id_UMjU4NDk1ODg4
如果想了解Xilinx的最新技术,参加WebCast (网上研讨会)是最好的途径。通常订阅了Xilinx Newsletter就会收到WebCast的邮件通知。如果有感兴趣的网上研讨,记得注册参加,通常还会有抽奖活动。
要真的开始动手,可以跟着Tutorial来一步一步练习。Tutorial是一种提供原始设计和详细操作步骤的文档。跟着Tutorial把一个实验做完,就能对软件工具有一个基本的了解。Training网页上有Tutorial列表
http://www.origin.xilinx.com/training/fpga-tutorials.htm
在做完Tutorial后如果对工具的某一部分功能还是有疑惑,那么可以查看这个工具的 User Guide,它是对这个工具功能最详细的解释。User Guide可以从DocNav中找到。
逻辑设计入门
除了以上提到的资源,Vivado Tutorial 在文档中心有专门的Tutorial分类。比如Vivado 2012.3 Tutorial:
http://www.xilinx.com/support/documentation/dt_vivado2012-3_tutorials.htm
文档中心: http://www.xilinx.com/support/
Vivado的文档在DocNav中有专门的分类,很容易查找辨认,ISE中几个重要工具的文档不是很容易找到,在此列出几个重要的Manual,有必要的话可以在Xilinx网站中搜索:
-
XST User Guide (xst.pdf):关于XST的开关选项等
-
Command Tool and 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.mentor.com/products/fv/multimedia/overview/modelsim-demo-overview-34d471dc-cb74-400b-be98-5a81213cf45a
安装目录下的User Guide如果能跟着做一遍,基本使用已经没有问题。
关于HDL的写法,除了XST User Guide和Vivado Synthesis User Guide中说明的支持的HDL语句,wp231很实用,YouTube教程中也有介绍对于某个特定器件优化代码的方法。
嵌入式入门
关于EDK,最好的起步教程是EDK Concepts, Tools, and Techniques,可以在EDK Documents页面找到。这是一份既有讲解又有实战的Hands-on Guide。跟着他做一遍,EDK的大概功能心中就能有个数了。
EDK最重要的几篇文档也在安装目录的doc目录下。像ISE一般罗列几份最重要的如下:
-
est_rm.pdf : EDK系统的构成工具使用指南
-
psf_rm.pdf : EDK系统使用的各种文件格式的语法说明
-
oslib_rm.pdf: EDK提供的库文件说明
-
mb_ref_guide.pdf : MicroBlaze体系结构说明
由与非网登载的《基于XILINX FPGA片上嵌入式系统的用户IP开发》是一本关于设计Custom IP方面非常好的参考资料,现在也已经出版。
China-pub链接在此:http://www.china-pub.com/43606
在发布了基于双核 ARM Cortex A9 的片上 SoC 芯片 ZYNQ 之后,Xilinx在开源软件方面也大大增强。一方面它提供了 Open Source Linux 以及其他开源工具的源代码库,一方面还开通了对源代码库作说明的Wiki站点。
http://git.xilinx.com
http://wiki.xilinx.com
EDK系统由于既牵涉到FPGA硬件和很多IP Core,又牵涉到C语言软件的编写和GNU工具链甚至Linux操作系统的相关知识,只是涉及范围之广,不是三言两语可以概括,限于篇幅,未能详述。
数字信号处理入门
关于Sysgen,它自带的User Guide就很不错。他不仅提供了功能描述,并且详述了操作步骤,而且还带有实例工程,安装目录中提供例子很有参考价值。User Guide位于help目录下的sysgen_user.pdf
关于系统设计,Xilinx有本中文版的DSP书,名字叫《DSP:最佳结果设计》。免费放出PDF版本, 在http://china.xilinx.com/publications/books/dsp/index.htm可以找到。
另外,Xilinx有丰富的客户培训教程,大客户由Xilinx直接上课,小客户交给第三方来完成的,中国这边是E-Elements。有机会参加的话也不错。对于学校教授,赛灵思大学计划还会在各高校不定时举办各种讲座。
4. 硬件资料
所有的硬件资料不外乎DataSheet和User Guide。 这些文档都可以在主页右上角的Documentation链接或者DocNav中找到。
User Guide 详细阐述器件使用方法,DataSheet标明器件的具体参数。
User Guide 包括很多种。以Virtex5为例,User Guide的种类从片内资源 - 基本的Slice功能, BRAM, DSP, IOB的使用、复杂硬核GTP, EMAC, PPC等,到片外使用包括Configuration和PCB设计指导,都有自己的User Guide。
Datasheet也根据内容分类到不同的文档中。同样以Virtex5为例,Datasheet Overview 介绍了V5的Feature,所有家族成员的资源列表和提供的封装列表。DC and Switching Characteristics 文档中介绍了各种电压参数和时序参数。
文档网页http://www.xilinx.com/support/documentation/index.htm 在注册网站之后可以选择收取文档更新通知。DocNav 可以自动发现文档更新,并提醒用户下载更新。
5. 参考资源
整体应用设计的参考资源可以分为三类:
-
Demo板的参考设计(Reference Design)
-
应用设计文档(Application Notes)
-
XCELL杂志中报道的各种应用。
在Demo板的网页上可以找到参考设计的链接。它通常都提供了Demo板上各种接口的驱动例程。比如
www.xilinx.com/kc705
www.xilinx.com/zc702
www.xilinx.com/ml605
www.xilinx.com/sp605
Xilinx Application Notes是另一种针对特定应用的说明文档。每篇文章期望解决一个问题,比如:
-
怎样通过外部CPU配置FPGA?
-
有哪些使用方法来帮助我debug嵌入式设计?
-
Application Notes文档编号都以xapp开头。
对于CPLD,有一个Application Note的合集,叫做CPLD Applications Handbook。
http://www.xilinx.com/publications/products/cpld/cpld_applications_handbook.pdf
XCELL不会提供设计文件,因为他是一项成功应用的介绍文档,通常他们会讲解一个真正产品中FPGA设计的结构和设计难点。
http://www.xilinx.com/publications/
Xilinx现在推行的“目标平台”概念,照我的理解其目的是希望让用户站在巨人的肩膀上,尽量少操心底层的细节,而更多地关注真正提供价值的设计。对于“目标平台”覆盖到的应用,都提供了从芯片选型、Demo板设计到参考设计。于是我们应该尽量多地利用现有资源,以降低设计难度加快上市速度。相信随着“目标平台”的发展,我们可以看到越来越多的有价值的参考设计。
6. 问题解决
再次重申,遇到软件问题先考虑自己有没有打上最新的Service Pack和IP Update。
如果有疑问,其实最快的方法不是到论坛提问,而是到Xilinx Answer Database找答案。大多数已知问题的答案那里边都有了。能不能找到就看会不会搜索了。
Answer Database 搜索方法:
-
先进入Xilinx的高级搜索页面 http://www.xilinx.com/company/advanced-search.htm。
-
在Answer Database选项上打勾,就能查找Answer Record。
当软件报出一个Error或者Warning,我们一定要先将错误信息通读一遍。英文的错误信息可能理解得不是很透彻,无法从这些信息里看到解决方法,不知道是自己错了还是软件bug,就可以按这个Error Message去Answer Database查找。
如果 Answer Database 中没有收录相关的错误信息,还可以在Xilinx Forums上提问。Xilinx 官方论坛分类很细。上面不仅有来自Xilinx的工程师,更有来自世界各地的工程师分享经验解答问题。
http://forums.xilinx.com/
可以说解决问题有两种途径,一是自己解决,一是寻求帮助。通常我都觉得先尝试自己解决问题比较好,一来培养能力,二来仔细研究问题后,寻求别人的帮助更容易理解别人的指点,另一方面也更尊重给你指点的人。
7. 总结
在信息爆炸的时代,我们的资源太多,我们的时间太少。谨希望此文能够为在学习FPGA路途上的朋友们节省一些寻找资源的时间,而用更多的时间来创造自己的价值。
8. 更新记录
点击日期查看原始版本
-
2012.12 (This Version)- 更新到14.3/2012.3;添加Vivado, Vivado HLS;添加ZYNQ Git, wiki
-
2011.05 - 维护原来基于10.1的版本