在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3700|回复: 0

[资料] FPGA/CPLD简介

[复制链接]
发表于 2011-7-14 23:26:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

用户:

密码:

保存一月登录关闭

发表于 2010/6/3 16:36:39

标签: FPGA设计基础篇  

基础篇:第一章 FPGA/CPLD简介

涵盖了所有altera主流的FPGA/CPLD硬件结构与特点,详尽讨论了Quartus II与第三方EDA工具的设计方法,系统阐述了altera可编程设计优化技术。

第一章 FPGA/CPLD简介

FPGA基本由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核(hard core)等。

(1)可编程输入/输出单元(input / output单元)


完成不同电气特性下对输入/输出信号的驱动与匹配需求。FPGA可灵活应用I/O单元的可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。常见的电气标准有LVTTL、LVCMOS、SSTL、HSTL、LVDS、LVPECL、PCI等,值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高,一些高端FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的数据速率。

(2)基本可编程逻辑单元。

          FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都是由查找表(LUT, look up table)和寄存器(register)组成的。FPGA内部查找表一般为4输入(注:altera stratix II的自适应逻辑模块ALM结构比较特殊),查找表一般完成纯组合逻辑功能。FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器(FF, flip flop),也可配置成锁存器(latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。一般,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但是不同厂商的寄存器和查找表的内部结构有一定差异,而且寄存器和查找表的组合模式也不同。例如,altera可编程逻辑单元通常被称为LE(logic element,逻辑单元),由一个register加一个LUT构成。altera 大多数FPGA将10个LE有机地组合起来,构成更大功能单元---- 逻辑阵列模块(LAB, logic array block),LAB中除了LE还包含LE间的进位链、LAB控制信号、局部互联线资源、LUT级联链、寄存器级联链等连线与控制资源。xilinx可编程逻辑单元叫slice,它是由上下两个部分构成,每个部分都由一个register加一个LUT组成,被称为LC(logic cell),两个LC之间有一些共用逻辑,可以完成LC之间的配合与级联。Lattic的底层逻辑单元叫PFU(programmable function Unit),由8个LUT和8~9个register构成。

(3)嵌入式RAM。


可灵活配置为单口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等常用存储结构。

         CAM即content addressable memory,内容地址储存器。CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。


不同器件商或不同器件族的内嵌块RAM的结构不同。xilinx常见的块RAM大小是4kbit和18Kbit,Lattice常用的块RAM大小是9Kbit,altera的块RAM最为灵活,一些高端器件内部同时含有3种块RAM结构,分辨是M512 RAM(512bit),M4K RAM(4Kbit),M-RAM(512Kbit)。


需要补充的是,除了块RAM,xilinx和Lattice的FPGA还可以灵活的将LUT配置成RAM、ROM、FIFO等存储结构,这种技术被称为分布式RAM(distributed RAM)。

(4)丰富的布线资源。


布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA内部根据工艺、长度、宽度和分布位置的不同而被划分为不同的等级,有一些是专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;一些叫长线资源,用于完成器件Bank间的一些高速信号和一些第二全局时钟信号(有时也被称为Low Skew信号)的布线;还有一些短线资源,用以完成基本逻辑单元之间的逻辑互联与布线;另外,在基本逻辑单元内部还有着各式各样的布线资源和专用时钟、复位等控制信号线。

(5)底层嵌入功能单元。

          PLL(phase locked loop)、DLL(delay locked loop)、DSP、CPU等。


可以通过在综合、实现步骤的约束文件中编写约束属性来完成时钟模块的约束。


越来越多的高端FPGA产品将包含DSP或CUP等软处理核,从而FPGA将由传统的硬件设计手段逐步过渡为系统级设计平台。

        altera的系统级开发工具是SOPC builder 和DSP builder,通过这些平台用户可以方便地设计标准的DSP处理器(如ARM, NIOS等),专用硬件结构和软硬件协同处理模块等。

       xilinx的系统级设计工具是EDK和platform studio,

      Lattice的嵌入式DSP开发工具是MATLAB的simulink。

(6)内嵌专用硬核


通用性相对较弱,不是所有FPGA器件都包含硬核。

       FPGA两个阵营:1.通用性较弱。目标市场范围很广,价格适中的FPGA;

                                       2.针对性较强,目标市场明确,价格较高的FPGA.


前者主要指低成本FPGA,后者主要指某些高端通信市场的可编程逻辑器件。例如,altera的stratix GX器件族内部集成了3.1875Gbit/s SERDES(串并收发单元);xilinx的对应器件族是virtex II pro和virtex II proX;Lattice器件的专用hard core 的比重更大,有两类器件族支持SERDES功能,分布是lattice高端SC系列和FPGA和现场可编程系统芯片。


目前Lattic和Xilinx都已经推出内嵌10 Gbit/s SERDES模块的系统级可编程逻辑器件。

1.3 FPGA/CPLD设计流程

包括:

(1)电路设计与输入

(2)功能仿真。前仿真;验证电路功能是否符合设计要求。仿真工具有model Tech公司的modelsim、aldec公司的Active HDL VHDL/Verilog HDL等

(3)综合。将设计输入翻译成与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标语要求(约束条件)优化所生成的逻辑连接,输出edf和edn等标准格式的网表文件,供布局布线器进行实现。

(4)综合后仿真。检查综合结果是否与原设计一致。

(5)实现与布局布线。将由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表)适配到具体FPGA/CPLD器件上。

(6)布线后仿真与验证。目的在于验证是否存在时序违规(timing violation),即不满足时序约束条件或者器件固有时序规则(建立时间、保持时间等)的情况。

(7)板级仿真验证与调试。

SignalTap II是一种FPGA在线片内信号分析工具,它的主要功能是通过JTAG口,在线、实时地读出FPGA的内部信号。其基本原理是利用FPGA中位使用的block RAM,根据用户设定的触发条件将信号实时地保存到这些block RAM中,然后通过JTAG口传送到计算机,然后在计算机屏幕上显示出时序波形。

实现与优化工具:Quartus II集成的实现工具主要有assignment Editor(约束编辑器)、logiclock(逻辑锁定工具)、powerfit fitter(布局布线器)、timing analyzer(时序分析器)、floorplan Editor(布局规划器)、chip Editor(底层编辑器)、Design Space Explorer(设计空间管理器)和Design Assistant(检查设计可靠性)等。

assignment Editor(约束编辑器):用户约束输入工具。约束文件包含时钟属性、延时特性、管脚位置、寄存器分组、布局布线要求和特殊属性等信息。

logiclock(逻辑锁定工具):用以完成模块化设计流程,通过划分每个模块的设计区域,然后单独设计和优化每个模块,最后将每个模块融合到顶层设计中。

1.5 下一代可编程逻辑器件硬件上的四大发展趋势


最先进的ASIC生产工艺将被更广泛的应用于以FPGA为代表的可编程逻辑器件;越来越多的高端FPGA产品将包含DSP或CPU等处理器内核,从而FPGA将由传统的硬件设计手段逐步过渡为系统级设计平台;FPGA将包含功能越来越丰富的硬核(hard IP core),与传统ASIC进一步融合,并通过结构化ASIC技术加快占领部分ASIC市场;低成本FPGA的密度越来越高,价格越来越合理,将成为FPGA中的中坚力量。 概括为:先进工艺、处理器内核、硬核与结构化ASIC、低成本器件。


某些高端FPGA的最高工作频率可达到500MHz。高的工作频率配合高速I/O,使FPGA除了能适应传统的数字系统设计需求,也能适应高速数字系统设计,为FPGA在高速领域中取代传统ASIC提供了技术上的支持。

cyclone III 的工作频率见如下表:

1.时钟树的最高工作频率为

2、PLL的特性

3、嵌入式乘法器的特性

4、Memory Block的特性

外围的工作性能

1.
专用LVDS发送模块的性能

2.
加电阻网络的LVDS发送模块的性能

3.
专用LVDS接收模块的性能

其中HSIODR指高速IO块:最大/最小 LVDS 数据速率。

fHSCLK指高速IO块:高速接收器/发送器的输入/输出时钟频率。

4.
外部存储器接口特性(详见手册,包括DDR2 SDRAM和DDR SDRAM等)

5.
时钟占空比失真特性


以上参数可作为设计的参考。

Cyclone III 使用DDR和DDR2性能(来自http://edacn.net/html/17/t-122117.html

1. 很多Cyclone III 的开发板使用了DDR2,但最高时钟运行频率在速度等级为C8的器件上是166.667MHZ,C6才可以达到200MHZ(DDR2 400)

  2. DDR400的核心工作频率是200MHz,而DDR2-400的核心工作频率是100MHz,也就是说DDR2-400的延迟要高于DDR400、若使用DDR400(时钟同样为200M)性能还会优于DDR2 400。

  3. 一般来说DDR2内存起始频率从DDR内存最高标准频率400Mhz开始,现已定义可以生产的频率支持到533Mhz到667Mhz等等。可以看到DDR2的要在高得频率下才能发挥出性能。
这样看来受cycloneIII速度限制使用DDR已经是cyloneiii的极限,使用DDR2对性能提高没有帮助。若要得到高的性能只能采用高级别得FPGA了。

可见,在选用DDR的时候需首先考虑到其在FPGA上的运行速度。

Altera还曾与ARM公司合作,在其FPGA上可以实现ARM7处理器的功能。

Xilinx集成了Power PC、Micro Blaze等处理器内核。

Altera和Xilinx都是在其高端FPGA器件内嵌DSP/CPU Block,只有Lattice另辟蹊径,在其低成本FPGA上内嵌了DSP Block。

SOPC Builder 和DSP Builder开发流程在《Altera FPGA/CPLD设计(高级篇)》第6章有较详细介绍。

必须强调的是SOPC Builder 和DSP Builder这类内嵌在FPGA之中的DSP或CPU处理模块的硬件主要由一些加、乘、快速进位链、pipeline和Mux等结构组成,加上用逻辑资源和块RAM实现的软核部分,就组成了功能较强大的软计算中心。但是由于其并不具备传统DSP和CPU的各种译码机制、复杂的通信总线、灵活的中断和调度机制等硬件结构,所以还不是真正意义上的DSP和CPU。如果要实现完整的Nios、RAM、Power PC和Micro Blaze等处理器core,还需要消耗大量的FPGA逻辑资源。

ASIC和FPGA设计比较:

. ASIC功耗比FPGA要低的多。

.ASIC能完成高速设计。ASIC工作频率在10GHz以上,而FPGA宣称的最快频率不过500MHz,而对于大规模器件,资源利用率达到250MHz都是非常困难的。

. ASIC设计密度大。由于FPGA底层硬件结构一致,在实现用户设计时会有大量单元不能充分利用,所以FPGA的设计效率并不高。与ASIC相比,FPGA的等效系统门合ASIC门的设计效率比约为 1:10。

目前主流FPGA厂商都的设计平台都支持模块化设计方法,如Altera的模块化设计工具是LogicLock, Xilinx的模块化设计工具叫做Modular Design; Lattice通过Floorplanner也可以完成模块化设计。

最新EDA工具都支持增量式设计(Incremental Design),能在小范围改动情况下节约综合、实现时间并继承以往设计成果的设计手段。

Altera的模块化设计方法、增量式设计方法和LogicLock工具的详细介绍参见《Altera FPGA/CPLD设计(高级篇)》第3章“LogicLock设计方法”。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-29 06:09 , Processed in 0.016940 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表