第1拿1SE系统简介 XILINX 于实现片上系统(SOC). FPGA/CPLD设 了许多潜在的花费。所以不但许多复杂系统使用FPGA完成,芒至设计ASIC 也要把实现FPGA功能样机作为必需的步聚。 ·FPGA/CPLD一殷可以反复地编程、擦除。在不改变外围电路的情况下,设计不 同片内逻辑就能实现不同的电路功能。所以,用FPGA/CPLD试制功能样机,能 甚至在有些领域,因为相关标准协议发展太快,设计 ·FPGA/CPLD开发工具智能化,功能强大。现在,FPGA/CPLD开发工具种类 繁多、智能化高、功能强大。应用各种工具可以完成从输入、综合、实现到配 置芯片等一系列功能。还有很多工具可以完成对设计的仿真、优化、约束、在 线调试等功能。这些工具易学易用,可以使设计人员更能集中精力进行电路设 计,快速将产品推向市场 。新型FPGA内嵌CPU或DSP内核,支持软硬件协同设计,可以作为片上可编 程系统(SOPC)的硬件平台。 表1-1为CPLD与FPGA的区别与联系对比表,希望通过对照,加深读者对FPGA和 CPLD特点的整体把握。 表11 CPLD与FPGA的区别与联系 项目 FPGA CPLD $ SRAM 触发数量 多 Pin to Pin延时 不可预测 固定 装要时快 规桢与逻辑复杂度 据贸件费务食皮 规小,逐辑复杂度低 阳以交餐餐经计 成本与价格 成本高,价格高 成本低,价格低 CLD用于实现低成本设计 编程与配置 方法多,一般为RAM型 一股保密性较差 好 件在内 入了的 很率性 互联结构,找资源分布式。丰富的选线资源集总式,相对线资源有限 适用的设计类型 复杂的时序功能 简单的逐辑功能 尽管FPGA与CPLD在硬件结构上有一定的差异,但是对用户而言,FPGA和CPLD的
第 1 章 ISE 系统简介 8 于实现片上系统(SOC)。 • 开发过程投资小。FPGA/CPLD 芯片在出厂之前都做过百分之百的测试,而且 FPGA/CPLD 设计灵活,发现错误时可直接更改设计,减少了投片风险,节省 了许多潜在的花费。所以不但许多复杂系统使用 FPGA 完成,甚至设计 ASIC 也要把实现 FPGA 功能样机作为必需的步骤。 • FPGA/CPLD 一般可以反复地编程、擦除。在不改变外围电路的情况下,设计不 同片内逻辑就能实现不同的电路功能。所以,用 FPGA/CPLD 试制功能样机,能 以最快的速度占领市场。甚至在有些领域,因为相关标准协议发展太快,设计 ASIC 可能跟不上技术的更新,只能用 FPGA/CPLD 完成系统的研制与开发。 • FPGA/CPLD 开发工具智能化,功能强大。现在,FPGA/CPLD 开发工具种类 繁多、智能化高、功能强大。应用各种工具可以完成从输入、综合、实现到配 置芯片等一系列功能。还有很多工具可以完成对设计的仿真、优化、约束、在 线调试等功能。这些工具易学易用,可以使设计人员更能集中精力进行电路设 计,快速将产品推向市场。 • 新型 FPGA 内嵌 CPU 或 DSP 内核,支持软硬件协同设计,可以作为片上可编 程系统(SOPC)的硬件平台。 表 1-1 为 CPLD 与 FPGA 的区别与联系对比表,希望通过对照,加深读者对 FPGA 和 CPLD 特点的整体把握。 表 1-1 CPLD 与 FPGA 的区别与联系 项目 FPGA CPLD 备注 工艺 SRAM 乘积项,物理上有多种实现方法: EPROM、EEPROM、Flash、反熔丝等 触发器数量 多 少 所以 FPGA 更适合实现时序 逻辑,CPLD 多用于实现组 合逻辑 Pin to Pin 延时 不可预测 固定 所以对 FPGA 而言时序约束 和仿真非常重要 规模与逻辑复杂度 规模大,逻辑复杂度高, 新型器件高达千万门级 规模小,逻辑复杂度低 FPGA 用以实现复杂设计, CPLD 用以实现简单设计 成本与价格 成本高,价格高 成本低,价格低 CPLD 用于实现低成本设计 编程与配置 方法多,一般为 RAM 型 一般为 ROM 型。有两种编程方式,一 种是通过编程器烧写 ROM,另一种较 方便的方式是通过 ISP 模式 FPGA 如果不外挂存储器 (EPROM 等),掉电将丢失 逻辑功能 保密性 一般保密性较差 好 一般 FPGA 不容易实现加 密,但是目前一些采用 EECMOS 加 SRAM 工艺的新 型器件在内部嵌入了加载 FLASH,如 Lattice XP 系列 与 Altera MaxII 系列等 互联结构,连线资源 分布式,丰富的连线资源 集总式,相对连线资源有限 适用的设计类型 复杂的时序功能 简单的逻辑功能 尽管 FPGA 与 CPLD 在硬件结构上有一定的差异,但是对用户而言,FPGA 和 CPLD 的
XILINX FPGACPLD的设计流程 设计流程是相的,使用DA软件的设计方法也沿有太大的差别。设计时,只需根据所洗 器件型号充分发挥器件的特性就可以了,所以后文多数情况下的论述,并未加以区分,而统 称为可编程逻辑器件。 1.2FPGA/CPLD的设计流程 般来说,完整的FPGA/CPLD设计流程包括电路设计与输入、功能仿真、综合、综合 后仿真、实现、布线后仿真与验证和下板调试等主要步骤,如图13所示。 图1-3完整的FPGA/CPLD设计流程
FPGA/CPLD 的设计流程 9 设计流程是相似的,使用 EDA 软件的设计方法也没有太大的差别。设计时,只需根据所选 器件型号充分发挥器件的特性就可以了,所以后文多数情况下的论述,并未加以区分,而统 称为可编程逻辑器件。 1.2 FPGA/CPLD 的设计流程 一般来说,完整的 FPGA/CPLD 设计流程包括电路设计与输入、功能仿真、综合、综合 后仿真、实现、布线后仿真与验证和下板调试等主要步骤,如图 1-3 所示。 图1-3 完整的 FPGA/CPLD 设计流程
第1拿1SE系统简介 XILINX 1)电路设计与输入 1路设计与输入是根据工程师的设计方法将所设计的功能描述给EDA软件。常用的设 计输入方法有硬件描述语言(HDL)和原理图设计输入法。原理图设计输入法在早期应用 得比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。这种方法的优点是 直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于 模块建设与重用。更主要的缺点是:当所选用芯片升级换代后,所有的原理图都要做相应的 改动。目前进行大型工程设计时,最常用的设计方法是HDL设计输入法。其中影响最为 泛的HD 是 HD Verilog HDL. 它们的共同特点是利 顶向下设计 利 的划分与复用,可移植性好,通用性好,设计不因芯片的工艺 结构的变化而变化,更利 向ASIC的移植。波形输入和状态机输入方法是两种常用的辅助设计输入方法。使用波形输 入法时,只要绘制出激励波形和输出波形,EDA软件就能自动地根据响应关系进行设计。 而使用状态机输入法时,设计者只需画出状态转移图,EDA软件就能生成相应的HDL代码 或者原理图,使用十分方便。Xilinx ISE工具包中的StateCAD就能完成状态机输入的功 能。但是需要指出的是, 后两种设计方法只能在 某些特殊情况下缓解设 者的工作量, 并不 适合所有的设计。 (2)功能仿真 电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设 计要求。功能仿真有时也被称为前仿真。常用的仿真工具有Model Tech公司的ModelSim Synopsys公司的 公司的NCer g和NC-VHDL Aldec公司的Active VHDL/Verilog HDL等。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可 靠性。 3)综合优化 综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与、或、非门, RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优 化所生成的逻辑 连接 出e f和edn等文件,供FPGA/CPLD 家的布局布线器进行实 现。常用的专业综合优化工具有Synplicity公司的Synplify/.Synplify Pro、Amplify,Synopsys 公司的FPGA CompilerⅡ(Synopsys公司将停止发展FPGA Express软件,致力于FPGA CompilerⅡ平台的开发),Mentor公司旗下的Exemplar Logic公司出品的LeonardoSpectrum 等。另外,FPGA/CPLD厂商的集成开发环境也带有一些综合工具,如Xilinx ISE中的XST 。 ④)综合后仿 综合完成后需要检查综合结果是否与原设计一致,需要做综合后仿真。在仿真时,把综 合生成的延时文件反标到综合仿真模型中去,可估计门延时带来的影响。综合后仿真虽然比 功能仿真精确一些,但是只能估计门延时,而不能估计线延时,仿真结果与布线后的实际情 况不有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器的综合结果是否与 设计输入一致 (⑤)实现 综合结果的本质是一些由与、或、非门,触发器,RAM等基本逻辑单元组成的逻辑网 表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA/CPLD厂商提供的工具软 10
第 1 章 ISE 系统简介 10 (1) 电路设计与输入 电路设计与输入是根据工程师的设计方法将所设计的功能描述给 EDA 软件。常用的设 计输入方法有硬件描述语言(HDL)和原理图设计输入法。原理图设计输入法在早期应用 得比较广泛,它根据设计要求,选用器件、绘制原理图、完成输入过程。这种方法的优点是 直观、便于理解、元件库资源丰富。但是在大型设计中,这种方法的可维护性较差,不利于 模块建设与重用。更主要的缺点是:当所选用芯片升级换代后,所有的原理图都要做相应的 改动。目前进行大型工程设计时,最常用的设计方法是 HDL 设计输入法。其中影响最为广 泛的 HDL 语言是 VHDL 和 Verilog HDL。它们的共同特点是利于由顶向下设计,利于模块 的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于 向 ASIC 的移植。波形输入和状态机输入方法是两种常用的辅助设计输入方法。使用波形输 入法时,只要绘制出激励波形和输出波形,EDA 软件就能自动地根据响应关系进行设计。 而使用状态机输入法时,设计者只需画出状态转移图,EDA 软件就能生成相应的 HDL 代码 或者原理图,使用十分方便。Xilinx ISE 工具包中的 StateCAD 就能完成状态机输入的功 能。但是需要指出的是,后两种设计方法只能在某些特殊情况下缓解设计者的工作量,并不 适合所有的设计。 (2) 功能仿真 电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设 计要求。功能仿真有时也被称为前仿真。常用的仿真工具有 Model Tech 公司的 ModelSim, Synopsys 公司的 VCS,Cadence 公司的 NC-Verilog 和 NC-VHDL,Aldec 公司的 Active HDL VHDL/Verilog HDL 等。通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可 靠性。 (3) 综合优化 综合优化(Synthesize)是指将 HDL 语言、原理图等设计输入翻译成由与、或、非门, RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优 化所生成的逻辑连接,输出 edf 和 edn 等文件,供 FPGA/CPLD 厂家的布局布线器进行实 现。常用的专业综合优化工具有 Synplicity 公司的 Synplify/Synplify Pro、Amplify,Synopsys 公司的 FPGA Compiler II(Synopsys 公司将停止发展 FPGA Express 软件,致力于 FPGA Compiler II 平台的开发),Mentor 公司旗下的 Exemplar Logic 公司出品的 LeonardoSpectrum 等。另外,FPGA/CPLD 厂商的集成开发环境也带有一些综合工具,如 Xilinx ISE 中的 XST 等。 (4) 综合后仿真 综合完成后需要检查综合结果是否与原设计一致,需要做综合后仿真。在仿真时,把综 合生成的延时文件反标到综合仿真模型中去,可估计门延时带来的影响。综合后仿真虽然比 功能仿真精确一些,但是只能估计门延时,而不能估计线延时,仿真结果与布线后的实际情 况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器的综合结果是否与 设计输入一致。 (5) 实现 综合结果的本质是一些由与、或、非门,触发器,RAM 等基本逻辑单元组成的逻辑网 表,它与芯片实际的配置情况还有较大差距。此时应该使用 FPGA/CPLD 厂商提供的工具软
XILINX ISE系列产品的特点 件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体FPGA/CPLD器件上,这个过 程就叫做实现 ,Xinx的实现过程分为翻译(Transate)、映射 (Map)和布局布线(Place&Route)等3个步聚。因为只有器件开发商最了解器件的内部 结构,所以实现步骤必须选用器件开发商提供的工具软件。 (6)时序仿真与验证 布局布线之后首先应该做时序仿直。时序仿直申应该将布局布线的时证文件反标到设 中,使仿真既包含门延时, 又包含线延时信总。与前面各种仿真相比,这种后仿真包含的延 时信息最为全面、准确,能较好地反映芯片的实 工作情况。有时为了保证设计的可靠性 在时序仿真后还要做一些验证。验证的手段比较丰富,可以用SE内嵌时序分析工具完成薛 态时序分析(STA,Static Timing Analyzer),也可以用第三方验证工具(如Synopsys的 Formality验证工具,PrimeTime静态时序分析工具等)进行验证。可以用ISE内嵌的 EPGA Editor和Chin viewer观察芯片内部的连接与配留情况,或者用ISE内张的ChinScon P0对设计进行在线逻辑分析。在有些高速设计情况下还需要使用第三方的板级验证工具进 行仿真与验证,如Mentor Tau、Forte Design-Timing Designer、.Mentor Hyperlynx、Mento ICX、Cadence SPECCTRAOuest、Synopsys HSPICE等工具。需要强调的是,对于一般的题 辑设计,可能选择或者忽略复杂的验证手段,但是布局布线后时序仿真是必选项,只有通过 时序仿真检查布局布线结果有无时序违规,才能在较大程度上保证设计的稳定性与可靠性。 (7)调试与加载配置 没计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。在SE 中对应的工具是MPACT· 任何仿真或验证步聚出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设 1.3ISE系列产品的特点 本节将介绍SE系列产品的特点,并重点介绍SE的新增功能。 1.3.1特点综述 Xilinx作为当今世界上最大的FPGA/CPLD生产商之一,长期以来一直推动着 FPGA/CPLD技术的发展。其开发的软件也不断升级换代,由早期的Foundation系列逐步发 展到目前的ISE6.x系列。ISE是集成综合环境的简称,它是Xilinx FPGA/CPLD的综合性集 成设计平台,该平台集成了从设计输入、仿真、逻辑综合、布局布线与实现、时序分析、芯 片下载与配置、功率分析等几乎所有设计流程所需工具 利用ISE集成的工具可以完成上述整个FPGA/CPLD的开发过程 ISE的主要特点如下: ·ISE是一个集成环境,可以完成整个FPGA/CPLD开发过程。ISE集成了很多 著名的FPGA/CPLD设计工具,报据设计流程合理应用这些工具,会使工程师 的设计工作如鱼得水 11
ISE 系列产品的特点 11 件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体 FPGA/CPLD 器件上,这个过 程就叫做实现(Implementation)过程。Xilinx 的实现过程分为翻译(Translate)、映射 (Map)和布局布线(Place & Route)等 3 个步骤。因为只有器件开发商最了解器件的内部 结构,所以实现步骤必须选用器件开发商提供的工具软件。 (6) 时序仿真与验证 布局布线之后首先应该做时序仿真。时序仿真中应该将布局布线的时延文件反标到设计 中,使仿真既包含门延时,又包含线延时信息。与前面各种仿真相比,这种后仿真包含的延 时信息最为全面、准确,能较好地反映芯片的实际工作情况。有时为了保证设计的可靠性, 在时序仿真后还要做一些验证。验证的手段比较丰富,可以用 ISE 内嵌时序分析工具完成静 态时序分析(STA,Static Timing Analyzer),也可以用第三方验证工具(如 Synopsys 的 Formality 验证工具, PrimeTime 静态时序分析工具等)进行验证。可以用 ISE 内嵌的 FPGA Editor 和 Chip Viewer 观察芯片内部的连接与配置情况,或者用 ISE 内嵌的 ChipScope Pro 对设计进行在线逻辑分析。在有些高速设计情况下还需要使用第三方的板级验证工具进 行仿真与验证,如 Mentor Tau、Forte Design - Timing Designer、Mentor Hyperlynx、Mentor ICX、Cadence SPECCTRAQuest、Synopsys HSPICE 等工具。需要强调的是,对于一般的逻 辑设计,可能选择或者忽略复杂的验证手段,但是布局布线后时序仿真是必选项,只有通过 时序仿真检查布局布线结果有无时序违规,才能在较大程度上保证设计的稳定性与可靠性。 (7) 调试与加载配置 设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。在 ISE 中对应的工具是 iMPACT。 任何仿真或验证步骤出现问题,就需要根据错误的定位返回到相应的步骤更改或者重新设 计。 1.3 ISE 系列产品的特点 本节将介绍 ISE 系列产品的特点,并重点介绍 ISE 的新增功能。 1.3.1 特点综述 Xilinx 作为当今世界上最大的 FPGA/CPLD 生产商之一,长期以来一直推动着 FPGA/CPLD 技术的发展。其开发的软件也不断升级换代,由早期的 Foundation 系列逐步发 展到目前的 ISE 6.x 系列。ISE 是集成综合环境的简称,它是 Xilinx FPGA/CPLD 的综合性集 成设计平台,该平台集成了从设计输入、仿真、逻辑综合、布局布线与实现、时序分析、芯 片下载与配置、功率分析等几乎所有设计流程所需工具。 利用 ISE 集成的工具可以完成上述整个 FPGA/CPLD 的开发过程。 ISE 的主要特点如下: • ISE 是一个集成环境,可以完成整个 FPGA/CPLD 开发过程。ISE 集成了很多 著名的 FPGA/CPLD 设计工具,根据设计流程合理应用这些工具,会使工程师 的设计工作如鱼得水
第1拿1SE系统简介 XILINX ·SE果面风格简洁流场,易学易用。SE的界面委承了可视化编程技术,果面 根据设计流程而组织,整个设计过程只需按照界面组织结构依次点击相应的按 或选择相应的选项即可。 ·ISE有丰富的在线帮助信息,结合Xix的技术支持网站,一般设计过程中可 能通到的问题都能得到很好的解决。 ·强大的设计铺助功能。ISE秉承了Xiix设计软件的强大辅助功能。在编写代 码时可以使用编写向导生成文件头和模块框架,也可使用语言模板(La Template 帮助编写代码。在图形输入时可以使用ECS 理图。另 ,ISE的Core Generator和LogiBLOX 地生成 Cor心(P核)与高效模块为用户所用,大大减少了设计者的工作量,提高了 设计放率与质量。 1.3.21SE的新增特性 目前,SE的最新版本是SE6.2,工程界流行的1SE主要版本为ISE5.x与ISE6.x,它 们的新特性如下: 。ISE62支持包括景新Spartan3系列县件的所有Xilinx epga/CpLD主流票 件。这些器件从速度到察量上涵盖了大多数用户的需求。 ISE6.2支持局部重构技术(Partial Recor 况下,对FPGA局部进行重新加载与配置 计(Modular Design)方法,并且使FPGA的加载与配置更加灵活。Xilinx是 首家支持局部重构技术的FPGA制造商。 ·I$E使大多数设计工作更高效。这主要表现在设计的速度和设计所占用的面 积两个方面。新版ISE通过改进综合、实现等关键环节的优化手段与方法,提 高了设计的工作频率,减小了设计消耗的面积,使设计结果能更好地调用芯片 的内部资源 工作更高效。 ISE采用了增量式设计(Incremental Design)流程。这里的增量设计主要包含 两方面:增量式综合与增量式布局布线。增量式综合是在综合过程仅对修改过 的模块进行重新编译,保持未改变设计的原有综合结果。增量式布局布线与之 相似。对未化模块持原有布局布线结果仅对更改部分行重新右局右 增量设计流程大大道少 了综合与布局布线所消耗的时间, 保证了未改变部 分的实现结果与上次一致,良好地继承了以往的成功设计,提高了设计的可靠 ·结构设计向导(Architecture Wizard)是ISE5.x新增的一个重要工具。它能方 便地定制数字时钟管理器(DCM,Digital Clock Manager)和高速I/O(Rocket IO),生成可综合的HDL源代码。 SE6x对Archi ture Wizard进行了改 进,即在Rocket I/O Wizard中可以通过选项直接控制编码、解码、参考 钟、接收指示信号(Receiver Comma)等参数特性。 ·引脚与区域约束编辑器(PACE,Pinout and Area Constraints Editor)也是ISE
第 1 章 ISE 系统简介 12 • ISE 界面风格简洁流畅,易学易用。ISE 的界面秉承了可视化编程技术,界面 根据设计流程而组织,整个设计过程只需按照界面组织结构依次点击相应的按 钮或选择相应的选项即可。 • ISE 有丰富的在线帮助信息,结合 Xilinx 的技术支持网站,一般设计过程中可 能遇到的问题都能得到很好的解决。 • 强大的设计辅助功能。ISE 秉承了 Xilinx 设计软件的强大辅助功能。在编写代 码时可以使用编写向导生成文件头和模块框架,也可使用语言模板(Language Templates)帮助编写代码。在图形输入时可以使用 ECS 的辅助项帮助设计原 理图。另外,ISE 的 Core Generator 和 LogiBLOX 工具可以方便地生成 IP Core(IP 核)与高效模块为用户所用,大大减少了设计者的工作量,提高了 设计效率与质量。 1.3.2 ISE 的新增特性 目前,ISE 的最新版本是 ISE 6.2,工程界流行的 ISE 主要版本为 ISE 5.x 与 ISE 6.x,它 们的新特性如下: • ISE 6.2 支持包括最新 Spartan 3 系列器件的所有 Xilinx FPGA/CPLD 主流器 件。这些器件从速度到容量上涵盖了大多数用户的需求。 • ISE 6.2 支持局部重构技术(Partial Reconfiguration),即在 FPGA 在线工作情 况下,对 FPGA 局部进行重新加载与配置。这项技术能更好的支持模块化设 计(Modular Design)方法,并且使 FPGA 的加载与配置更加灵活。Xilinx 是 首家支持局部重构技术的 FPGA 制造商。 • ISE 使大多数设计工作更高效。这主要表现在设计的速度和设计所占用的面 积两个方面。新版 ISE 通过改进综合、实现等关键环节的优化手段与方法,提 高了设计的工作频率,减小了设计消耗的面积,使设计结果能更好地调用芯片 的内部资源,工作更高效。 • ISE 采用了增量式设计(Incremental Design)流程。这里的增量设计主要包含 两方面:增量式综合与增量式布局布线。增量式综合是在综合过程仅对修改过 的模块进行重新编译,保持未改变设计的原有综合结果。增量式布局布线与之 相似,对未变化模块保持原有布局布线结果,仅对更改部分进行重新布局布 线。增量设计流程大大减少了综合与布局布线所消耗的时间,保证了未改变部 分的实现结果与上次一致,良好地继承了以往的成功设计,提高了设计的可靠 性。 • 结构设计向导(Architecture Wizard)是 ISE 5.x 新增的一个重要工具。它能方 便地定制数字时钟管理器(DCM,Digital Clock Manager)和高速 I/O(Rocket I/O™),生成可综合的 HDL 源代码。ISE 6.x 对 Architecture Wizard 进行了改 进,即在 Rocket I/O Wizard 中可以通过选项直接控制编码、解码、参考时 钟、接收指示信号(Receiver Comma)等参数特性。 • 引脚与区域约束编辑器(PACE,Pinout and Area Constraints Editor)也是 ISE