【经验整理.01】Xilinx网站资源导读 ISE11版

标签:  ISE  Xilinx  入门  资源  2009-09-01 20:41

虽然自己也曾想过,但如果不是向农要求,把曾经写过的文章编排整理,我是静不下心来好好做这件事的。温故而知新,可以为师已。与大家共勉。

俗话说,好的开始是成功的一半。在这个信息爆炸的时代,好的资料就是成功学习的一半。
时常看到有人在论坛上跪求资料,也有人在论坛上灌水换积分排队下资料。如果这篇文章能帮助大家花更少的时间找到更有价值的资料,那么我花时间维护这篇文章也就值了。

---------版权声明-----------
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com

欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
---------版权声明-----------

好,废话不多说,我们言归正传。写这篇文章主要想介绍Xilinx各种资料的找法、分类方法和什么问题该看哪些资料。限于经验,难免有错漏,希望大家指出错误并继续补充。

Topics:
1. Xilinx软件介绍
2. 软件版本和软件更新
3. 软件教程哪里找
4. 硬件资料
5. 参考设计
6. 问题解决

---------版权声明-----------
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com

欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
---------版权声明-----------

1. Xilinx软件介绍

用Xilinx的软件做FPGA开发,主要涉及到得软件是Xilinx自家的ISE, EDK, ChipScope Pro, System Generator, PlanAhea 和第三方的ModelSim和Synplify。

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版支持的,那么就从网上下载免费版就好了,不用费劲心机地找Fondation版却用不到他支持的功能。

ChipScope Pro 是片内的逻辑分析仪。可以让用户方便地抓取片内信号进行debug。ChipScope支持的Trig方式非常多样,用熟悉了以后几乎是想要观察什么内部信号都可以观察到,即使他有BRAM深度的限制。
www.xilinx.com/chipscope

PlanAhead工具自从ISE7时代被开发出来并发展了这么多年之后,已经成为了提高设计效率和提高产品性能的有力工具。
它可以帮我们在布局布线之前做好管脚定位和DRC检查、规划区域约束、查看综合网表,并且可以跑多次实现,找出最佳的布局并分析时序。
www.xilinx.com/planahead

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

ISE 产品现在被包装为 ISE Design Suite 发布。Suite 分为 Logic Edition, Embedded Edtion 和 DSP Edition。每个套装都包含了必要的设计和调试工具。任何套装都可以从网站上下载30天免费评估版。
http://www.xilinx.com/ise_eval/index.htm

除了Xilinx的软件,我们通常还会用到一些第三方的软件,比如Synopsys (曾经Synplicity) 的 Synplify 综合工具,Mentor Graphic 的 ModelSim 工具等。

Synplify 可以替代 ISE 自带的 XST。他的优势是编译速度快,编译产生的网表质量可能更高(面积小,频率高);缺点是1. 2.对新器件的支持比原厂慢一拍。

ModelSim 是一款常用的仿真工具。其他和ISE搭配使用的仿真工具有Cadence的NC-Sim和Synopsys的VCS。ModelSim根据价格高低和支持功能的多少分为SE, PE, XE 等版本。其中XE是Xilinx Edition的意思,也就是Xilinx定制版。

ModelSim MX有免费的starter version,也有付费取得License的版本。ModelSim XE 可以和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/support/answers/24506.htm

ModelSim XE自带有Xilinx的仿真库。如果ISE软件升级,可以从Download Center下载更新的仿真库。如果使用ModelSim PE/SE,那么就需要使用compxlib工具编译仿真库。

2. 软件版本和软件更新

Xilinx的软件工具更新很频繁。自从IDS10以后,基本是三个月出一次升级包 (Service Pack),一年出一个新版本 (Major Version)。如此高的升级速度,一方面是为了更上新器件的支持要求,一方面是为了修补前期版本的bug。

那么我们是否需要以最快的速度更上更新的速度呢? 我的建议通常是:
- 正在进行中的项目,如果不是需要新功能或绕过某些已经存在的Bug,那么就不要盲目升级大版本,但是一定要勤快地升级到最新的升级包。
- 新设计尽量用新版本的最稳定版本。比如现在最近版本是11的时候,还是不要急于追新,用最稳定的10.1.03来做开发。

对于操作系统,建议也是类似的:
- 习惯使用Windows的用户还是用Windows XP SP2,最好还是英文版
- 公司最好能有一台大内存64位服务器跑RHEL Linux,提供多用户使用,也更适合跑大器件
(操作系统支持参考http://www.xilinx.com/ise/ossupport/index.htm)

所有以上的建议,目的归根到底可以总结为:
1. 以最大努力保证设计平台的稳定(Windows XP 用的人最多;Linux的内存管理比Windows好,64位系统上的软件业更成熟)
2. 避免陷入已知的Bug中浪费时间
3. 减小遇到未知的Bug的可能性

在产品开发过程中,设计软件总是稳定比功能多来得重要,操作系统总是稳定比好看来得重要。

Xilinx所有的软件下载都可以在Download Center找到(www.xilinx.com/download) 。其内容包括:
- IDS的完整版下载
- IDS更新包的下载
- CAE Vendor Library 就是第三方工具需要使用到的库文件,比如Cadence/Synopsys的综合工具、形式验证工具等。
- ModelSim XE 版本的仿真库更新 (记得我们上面说过ModelSim XE不需要自己编译仿真库吗?)
- Device Models 可以下载用于第三方仿真工具(HSpice, HyperLinks等)所需要使用的 IBIS、HSpice、BSDL模型等。

过往版本的ISE WebPack,可以到ISE Classic页面下载,但是不再提供付费软件的Evaluation。
http://www.xilinx.com/tools/classics.htm
过往版本的最终Update,也可以在Download Center找到,但是中间版本需要在以下这些Answer Record中查找:
http://www.xilinx.com/support/answers/10959.htm
http://www.xilinx.com/support/answers/31741.htm

---------版权声明-----------
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com

欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
---------版权声明-----------

3. 软件教程

作为入门教程来说,Xilinx的Free Course视频教程应该是最合适的了。访问http://www.xilinx.com/support/training/free-courses.htm可以找到关于Architecture, Software tools, HDL Coding technique等各方面的视频教程,内容丰富,且原汁原味,属于自我学习最好的参考资料。

放在Demosondemond网站上的那些视频教程的链接现在在主页上找不到了,但是可以从下面的链接进入:
http://www.demosondemand.com/clients/xilinx/001/page/index.asp
里面的视频教程内容有关于最新的硬件的,也有各种软件的,也算齐全,只不过不再有新内容更新了。
最近要查看demosondemand网站的录像需要注册了,dod的注册比较严格,注册需要公司邮件地址或者学校带edu的邮件地址。

视频资料还有一类,就是WebCast(网上研讨会录像)。WebCast不是Tutorial,它最主要不是说明工具怎么用,解释FPGA的具体结构等,而是根据当前的热门问题告诉大家你可以尝试哪些Solution来解决设计问题。看了WebCast后可以知道我可以再继续读哪方面资料来了解更详细的情况。
Xilinx网站上登录的过往的WebCast:http://www.xilinx.com/events/webcasts_od.htm
以前在TechOnline上搞过的WebCast:http://www.techonline.com/electronics_directory/webinar/896

最新的WebCast都是可以与演讲者实时互动的。就像我在这篇文章中提到的,曾经WebCast只在美国开设,时区跟我们有差异,中国用户很难参与到互动环节,但是中国的WebCast也逐渐多起来了。最新的中文研讨会信息,可以查询http://china.xilinx.com/china/company/ch_events.htm。参加研讨会不仅有机会抽奖得到小礼品,活跃互动者更有可能得到比较丰厚的礼品(看着IPOD就口水~~)。

接下来应该看的是Tutorial。
http://www.xilinx.com/support/techsup/tutorials/
主要是ISE, EDK, PlanAhead的,还有Timing Constraint的。

ISE做了Tutorial基本操作应该没问题了。
ChipScope比较简单看了Demosondemond的视频教程应该就会了。还不清楚的话看看安装目录里的UG029。
PlanAhead虽然比ChipScope复杂,但是视频教程还是很不错的,再加上Tutorial,应该也够了。
时序约束的那篇文档算是讲得比较全的,还有可以深入阅读的一篇文档就是wp237,关于offset约束的。

更进阶地了解ISE,需要阅读ISE的Manual。打开Manual可以从开始菜单中ISE->Documentation->Software Manuals;也可以在开始菜单中的ISE --> Documentation中找到。

列出几个重要的Manual:
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.model.com/resources/resources_demos.asp
安装目录下的User Guide如果能跟着做一遍,基本使用已经没有问题。

关于HDL的写法,除了XST User Guide中说明的支持的HDL语句,wp231也很实用。

关于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

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可以找到。

关于DSP的特性,System Generator教程,XtremeDSP Kit的演示,在Demosondemond的视频教程里也都有。

另外,Xilinx有丰富的客户培训教程,大客户由Xilinx直接上课,小客户交给第三方来完成的,中国这边是E-Elements。有机会参加的话也不错。对于学校教授,赛灵思大学计划还会在各高校不定时举办各种讲座,部分讲座可以从openhard观看视频。除此之外还有一个特别优待:只要是XUP大学计划的成员,就可以通过访问大学计划网页得到丰富的教学资料。

---------版权声明-----------
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com

欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
---------版权声明-----------

4. 硬件资料

所有的硬件资料不外乎DataSheet和User Guide。这些文档都可以在主页右上角的Documentation链接中找到。

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
在注册网站之后可以选择收取文档更新通知。

5. 参考资源

整体应用设计的参考资源可以分为三类:Demo板的参考设计(Reference Design)、应用设计文档(Application Notes)和XCELL杂志中报道的各种应用。

在Demo板的网页上可以找到参考设计的链接。它通常都提供了Demo板上各种接口的驱动例程。比如
www.xilinx.com/ml507
www.xilinx.com/ml403

Xilinx Application Notes是另一种针对特定应用的说明文档。每篇文章期望解决一个问题,比如:怎样通过外部CPU配置FPGA?有哪些使用方法来帮助我debug嵌入式设计?Application Notes文档编号都以xapp开头。地址www.xilinx.com/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找答案。大多数已知问题的答案那里边都有了。能不能找到就看会不会搜索了。

Xilinx的高级搜索http://www.xilinx.com/company/advanced-search.htm,在Answer Database选项上打勾,就能查找Answer Record。

当软件报出一个Error或者Warning,我们一定要先将错误信息通读一遍。英文的错误信息可能理解得不是很透彻,无法从这些信息里看到解决方法,不知道是自己错了还是软件bug,就可以按这个Error Message去Answer Database查找。

可以说解决问题有两种途径,一是自己解决,一是寻求帮助。通常我都觉得先尝试自己解决问题比较好,一来培养能力,二来仔细研究问题后,寻求别人的帮助更容易理解别人的指点,另一方面也更尊重给你指点的人。

---------版权声明-----------
本文作者 Ricky Su
www.fpganotes.com
rickysu.fpga@gmail.com

欢迎转载,转载请保持原样及署名
商业使用须得到本人授权
---------版权声明-----------

7. 总结

在信息爆炸的时代,我们的资源太多,我们的时间太少。谨希望此文能够为在学习FPGA路途上的朋友们节省一些寻找资源的时间,而用更多的时间来创造自己的价值

2009.08.31

History
2007-04-05 -- Initial Release
2007-04-06 -- 添加ML403,UG071,UG072,修改错别字
2007-04-13 -- 添加WebCast,DSP,Manual说明
2007-05-14 -- 修改ModelSim MXE Starter Version的说明
2007-05-26 -- 添加声明和dod注册信息
2007-05-30 -- 添加PlanAhead简介
2007-10-07 -- 软件-->download center不需要注册登陆
2008-12-14 -- 添加EDK、Sysgen说明,并更新一些已经改变的功能
2009-02-17 -- 更新视频教程的那部分,添加了Xilinx Free Course视频链接
2009-03-02 -- 添加Hiden in Plain View链接
2009-08-31 -- 更新为ISE11相匹配的版本

xilinx 网站资源导读的更多相关文章

  1. Xilinx 网站资源导读2

    Xilinx 网站资源导读 ———版权声明———–本文作者 Ricky Suwww.fpganotes.comrickysu.fpga@gmail.com 欢迎转载,转载请保持原样及署名商业使用须得到 ...

  2. Xilinx 网站资源导

    Xilinx 网站资源导读 ———版权声明———–本文作者 Ricky Suwww.fpganotes.comrickysu.fpga@gmail.com 欢迎转载,转载请保持原样及署名商业使用须得到 ...

  3. 使用KRPano资源分析工具分析动态网站资源

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  4. JS版本网站资源状态检测

    Title:JS版本网站资源状态检测  --2012-08-28 14:08 前几天需要一个网站状态检测的东东,后面写了个蹩脚的JS版本,里面用到了以前没用过的东西,在这里记下来,其实批处理加curl ...

  5. SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

    SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期 一.拦截器配置 <mvc:interceptors> <mvc:interceptor> < ...

  6. 获取网站资源 getResourceAsStream

    获取网站资源(重点) public void doGet(HttpServletRequest request, HttpServletResponse response)throws Servlet ...

  7. 用Mediawiki做百科网站资源大参考

    MediaWiki简易安装教程**关于mediawiki 一些好的资料: http://codex.wordpress.org.cn/Mediawiki%E5%BB%BA%E7%AB%99%E7%BB ...

  8. 使用HttpWebRequest请求API接口以及其他网站资源

    很多时候,我们项目需要其他网站的资源,而这个被请求的网站可能属于你们自己开发管理的网站.也可能是公网上其他网站对外开发的API接口,比如说腾讯的微信公众平台的API接口.各大短信服务商的短信API接口 ...

  9. 添加ASP.NET网站资源文件夹

    ASP.NET应用程序包含7个默认文件夹,分别为Bin.APP_Code.App_GlobalResources.App_LocalResources.App_WebReferences.App_Br ...

随机推荐

  1. codeforce 606C - Sorting Railway Cars

    题意:给你一串数,没个数只能往前提到首位,或则往后放末尾.问最少步骤使操作后的序列成上升序列. 思路:最长连续子序列. #include<iostream> #include<std ...

  2. Java Script after Douglas Crockford's Training (JSON father)

    有幸能参加大牛的培训,学到了很多东西,下面总结一下: 1.总的思想是每一门语言都有好有坏,我们要通过好的代码规范和其他一些方式去避免使用糟糠的那一部分.JS有很多缺点,但是也有很多优点,我们就用他的优 ...

  3. 机器学习-----线性回归浅谈(Linear Regression)

    Linear Regreesion          在现实生活中普遍存在着变量之间的关系,有确定的和非确定的.确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),比如人的身 ...

  4. Serach

    1.二分查找 public class BubbleSort { public static int binarySerach(int[] a,int value){ int low=0; int h ...

  5. 数组(Array)

    1. 数组(Array):相同类型数据的集合就叫做数组. 2. 数组的定义与赋值(系统会默认初始化) 普通数组: package com.li; public class Array{ public ...

  6. algorithm@ Strongly Connected Component

    Strongly Connected Components A directed graph is strongly connected if there is a path between all ...

  7. SSH权威指南(转载)

    本书是一本介绍通信安全的书籍,如果你想保障你的通信安全,本书能给你一个很好的解决方案.本书从ssh协议介绍起,到具体的开源实现和商业实现.但本书同时介绍开源实现和商业实现,给人感觉比较乱.注意:由于o ...

  8. Java经典面试题

    1. Java中的异常处理机制的简单原理和应用. 当Java 程序违反了Java的语义规则时,Java虚拟机就会将发生的错误表示为一个异常.违反语义规则包括2种情况.一种是Java类库内置的语义检查. ...

  9. ZOJ1111:Poker Hands(模拟题)

    A poker deck contains 52 cards - each card has a suit which is one of clubs, diamonds, hearts, or sp ...

  10. SQLite使用教程4 创建数据库

    http://www.runoob.com/sqlite/sqlite-create-database.html SQLite 创建数据库 SQLite 的 sqlite3 命令被用来创建新的 SQL ...