ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:168.90KB ,
资源ID:17733553      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17733553.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA技术概述文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA技术概述文档格式.docx

1、这提高了 设计成本和复杂度。但是,现在能够把 CPU、I/O和DSP都放在一个可编程逻辑芯片中,如图1.2所示。采用一片 FPGA,可以从系统中去掉很多硬件,从而降低了成本和功耗。FPGA器件汞強处理器ITGA闪存SDRAM乖统处理器数字逻辑 单元图1.2集成后的系统图1.1典型的系统设计框图现在可编程逻辑几乎无处不在。 从家里的HDTV到附近的蜂窝电话发射塔, 直至银行的ATM,这些都含有可编程逻辑器件形式的数字逻辑,它实现了从控制系统怎样工作的 CPU到网络和通信应用中高速交换流量管理等方方面面的功能。1.2可编程逻辑器件的发展简介在早期的数字逻辑设计中,设计人员在电路板或者面包板上把多个

2、芯片连在一起构成 系统。每个芯片包括一个或者多个逻辑门(如 NAND、AND、OR或者非门),或者简单 逻辑结构(如触发器和复用器等)。 20世纪60和70年代的很多设计都采用美国德州仪器公司的7400系列TTL,即晶体管-晶体管逻辑器件。设计 TTL时,其目的一般是以尽量少 的芯片来实现设计,以降低成本,减小电路板面积。而且,还需要尽量采用已有的器件来 进行设计。1.2.1逻辑设计基本流程在实现逻辑功能时,首先要建立真值表,如表 1.1所示。真值表列出了逻辑所有可能的输入及输入组合可能产生的相关输出。对于 n输入,有2n种可能的输入组合,这些都需要进行考虑。根据真值表,我们可以建立卡诺图,如

3、图 1.3所示。用卡诺图很容易建立简单的逻辑表达式。表1.1 真值表ABCDY1XDO 01 1110000 0 010 1 1111 1 I图1.3根据真值表建立的卡诺图根据卡诺图中含有1的每个框,结合每个框的公共输入,我们可以建立函数的一个“乘 积和”式的逻辑表达式,如公式 1所示。Y 二AB CD BD BC AD AC (公式 1)表达式由6个乘积项组成,每个乘积项对应一个与门。 要在硬件中直接实现这一功能, 需要6个2输入与门,1个6输入或门,如果希望同步输出,还需要一个输出寄存器或者 触发器。6输入或门不支持 TTL,因此,需要级联更小的或门,这增加了延时和元件数量。 为解决这些问

4、题,TTL设计人员使用与非逻辑重写公式,如公式 2所示。(公式2)Y =AB LCD _BD _BCADAC这样,使用7400系列标准元件来最终实现这些逻辑,如图 1.4所示。图1.4实现逻辑的电路图这一实现方案只使用了两级逻辑来产生乘积和,使用一个寄存器来建立同步输出。总体上,可以使用这一例子中介绍的方法把大部分数字电路的逻辑功能简化为乘积 和。使用两个组合逻辑级来实现这些功能,与门建立乘积项,或门对乘积求和。在输入上可以采用非门来置反输入,以产生所需的功能。为了存储输出,或者使输出 与其他输出同步,需要寄存器形式的同步逻辑。如果不需要存储器或者同步,可以旁路输 出寄存器。采用TTL逻辑器件

5、,在实验面包板或者印刷电路板上,用铜线把这些分立元件 连在一起。1.2.2可编程逻辑器件PAL思考一下逻辑功能实现的共性,如果把这些逻辑门和寄存器组合到一个器件中会怎 样?从与门到或门,从或门到寄存器有固定的连接会怎样呢?更进一步,如果有一种方法 来设置输入和与门之间的连接,以确定应使用哪些输入,以及在哪里使用,又会怎样呢?这方面的思考导致了第一款可编程阵列逻辑器件 PAL的产生,如图1.5所示。将逻辑门和输出寄存器固定为通用逻辑后,选择使用逻辑输入及其互补逻辑,就可以建立任何逻辑功能。PAL主要由图1.5中的三部分构成,多次复制这三部分就可以形成复 杂PAL器件。这里显示的可编程阵列是所选择

6、的输入, 将其连接到需要的与门。在输入和进入与门的线之间进行连接,可实现线与操作。与门输出构成乘积项。乘积项通过或门完 成乘积和,从而产生最终函数输出。A B 图1.5可编程阵列逻辑示意图然后,将其送入寄存器进行存储或者同步。这一部分 PAL通常被称为宏单元。某些PAL包括了阵列反馈选项,以实现更复杂的逻辑功能,还可以完全旁路输出寄存器,以建 立异步输出。需要指出的是,在目前的大部分器件中,所有这三部分共同构成了宏单元。 这就是CPLD器件的情况。这类器件的优点非常明显。一个器件中的逻辑越多,电路板上需要的器件就越少。器 件越少,意味着占用更少的电路板来实现逻辑,空出的电路板可以用于放置其他元

7、件。更 少的器件还意味着较低的总成本及功耗。逻辑功能连接不必跨过多个器件,避免了连接错 误,也简化了逻辑功能的测试和调试。 PAL还可以实现设计安全性。PAL在设计上还非常灵活,设计人员采用一类器件就能够建立很多不同的设计,不用 担心逻辑的可用性。这种灵活性使可编程逻辑设计实现起来更复杂, 但与PAL配套产生了很多自动设计工具,它们简化了设计过程,缩短了设计时间。 PAL最强的功能在于它可以支持在系统编程和重新编程,很容易修复故障或者更新设计,而不需要替换电路板元件。早期PAL器件编程甚至当前闪存技术的关键都在于编程阵列中跨线连接所使用的特 殊晶体管。这些特殊晶体管被称为浮栅晶体管,因为它们含

8、有第二个栅极,浮在标准选择 栅极和器件基底其他部分之间。两类最典型的浮栅晶体管是 FAMOS (浮栅雪崩注入MOS晶体管)和FLOTOX (浮栅沟道氧化晶体管)。如果不进行任何设置,这两类晶体管都可以用做标准 n型晶体管:当电压加在栅极上时,晶体管源极和漏极之间导通。两类晶体管都可以采用相似的方法进行设置来改变这种 工作方式。漏极和栅极之间加上足够的设置电压后,电子被“限制”在浮栅上,即使在所 选栅极上加上标准工作电压,晶体管也不会导通。这样,设置浮栅晶体管使之总是“关断”,这实际上是一个开关。 FLOTOX晶体管还需要一个额外的选择晶体管, 这是因为未设置的 FLOTOX晶体管有时像p型晶体

9、管,栅极 接地时导通。选择晶体管防止了这一现象的发生。这两类浮栅晶体管的主要不同点在于它们重新编程的方式。 FAMOS晶体管需要用紫外强光迫使被俘获的电子回到基底。 使用FAMOS晶体管的器件是可擦除可编程 ROM,即EPROMS。简单的置反漏极-栅极编程电压就可以擦除 FLOTOX晶体管。由于用电就可以擦除FLOTOX晶体管,用于实现电擦除可编程 ROM,即EEPROM,它们非常适合在系统编程。1.2.3从PAL到PLD到复杂可编程逻辑器件 CPLDPAL之后是PLD , PLD和PAL器件非常相似,但是加入了一些其他特性,成为真正 的可编程器件,而且更实用。该器件区别于简单 PAL器件的主

10、要进步是它含有全面可编程 宏单元,以及可变乘积项分配。宏单元提供多种可编程选择,实现乘积和输出。可编程宏单元还能够反馈至阵列或者 使用输出引脚作为输入。灵活的 PLD宏单元成为实现逻辑功能真正实用的器件,第一款1214:8一=-=_=_=三_=- -! = ,!-,an !! . *_=E - - - Eb_PLD如图1.6所示。图1.7 CPLD结构图图1.6 第一款PLD示意图PLD理念进一步扩展便产生了 CPLD。与由多个PAL和宏单元构成的 PLD相似,CPLD包含多个和I/O引脚连接的PLD逻辑模块,彼此之间通过可编程互连架构进行连接,如图 1.7所示。这种措施可在一个器件中提高逻辑

11、数量。CPLD中的逻辑模块通常被称为逻辑阵列模块( LAB ),每个LAB就像一个PLD。 CPLD LAB 一般含有4到20个宏单元。LAB中的可编程阵列非常类似于 PAL或者PLD 阵列。然而,CPLD和PLD中的可变乘积项分配不同, CPLD LAB中的宏单元通常包括额外的与门逻辑,这些逻辑直接反馈回阵列。这一额外的逻辑可用于形成额外的乘积项,名为 扩展项。扩展逻辑产生的额外乘积项可用于当前的宏单元中,以扩展逻辑功能。其他宏单元还可以共享使用扩展项。这样,对于需要乘积项的宏单元而言,只建立一 次乘积项即可,而不必每次都建立。这是减少逻辑浪费更高效的方法,如图 1.8所示。AS B B人

12、人 人 只 旷瞩乘枳商A A A AA B 图1.8 CPLD LAB中的宏单元注意:使用扩展项逻辑的缺点是由扩展乘积项导致的额外时延,而使用扩展项逻辑的时延是已知的。因此,放置逻辑和进行时序分析时,应对此进行考虑。除了 LAB,CPLD中的其他结构与 PAL和PLD相似,但配置更高级。 LAB之间的互连被称为可编程互连阵列,即 PI或者PIA。 PI与PAL和PLD中的可编程阵列相似,使用了相同的编程技术。而PI提供了 LAB之间以及LAB和I/O引脚之间数据传送需要的所有 走线。通过PI,任何LAB的输入和输出都可以连接至任一其他 LAB或者I/O。这是实现非常灵活的可编程器件的关键。CP

13、LD相对于PLD的另一改进是加入了单独的 I/O控制模块。在PLD中,I/O引脚直接连接至逻辑。 在CPLD中,PI将I/O引脚和器件的主要逻辑分开。I/O引脚有自己的控制逻辑来实现多种特性,任一引脚有多种 I/O标准,输入、输出,或者双向工作,并不需要迫使某些引脚只能用做输入。CPLD相对于PLD最大的优点在于逻辑数量及布线选择。 LAB逻辑和PI是全面可编程的,在单片器件中具有很大的设计灵活性。 CPLD的I/O特性和功能远远超出了 PLD的简单I/O,在I/O怎样工作上提供更多的选项和控制功能。与PAL和PLD 一样,CPLD在电路板上电时即可瞬时接通工作。它们具有很低的成 本,占用了很

14、少的电路板面积。非易失 EEPROM编程体系结构使其非常适合使用在系统编程方法进行测试和调试, 不需要在电路板上电时对其进行重新编程。 目前的Altera CPLD包括MAX 3000和7000系列器件,以及 MAX II和MAX IIZ系列。1.2.4从CPLD至U FPGA的产生CPLD相对于老的PLD器件的最大进步在于它能够在单个器件中容纳大量的逻辑。 理论上,可以不断在 CPLD中加入LAB,继续增加逻辑数量。但是,这样做需要有额外的 PI布线,实现所有这些 LAB的连接,其连接数量会呈指数增长,直到芯片管芯的连线数 量超过逻辑数量,这限制了容量的扩展。解决方法是把LAB排列在网格中,

15、从而产生了现场可编程门阵列 FPGA的概念,LAB都被排列在大型阵列中,器件可以现场编程或者重新编程,和 CPLD 一样。没有采用中心全局器件互连,而是把布线放置在 LAB之间的空格上,就像大城市的街道。 这种布线被排 列成行列互连的形式。它可以跨过器件的整个长度和宽度,或者器件的一小部分,只覆盖 行列中的几个LAB,如图1.9所示。列耳连、仃互连 分段互连图1.9 FPGA互连结构图FPGA LAB和CPLD的LAB设计不同。CPLD LAB由宏单元构成,包括自己的本地 可编程阵列,而 FPGA LAB由大量的逻辑模块构成,这些模块被称为逻辑单元,即 LE,而且本地互连和逻辑分开。 LE看起

16、来可能和 CPLD宏单元相似,但更容易配置,有更丰富的特性来提高性能,减少逻辑资源的浪费。1.2.5在系统编程问题的解决由于可编程逻辑器件越来越大,越来越复杂,器件本身编程也越来越复杂。对前面介 绍的浮栅晶体管器件进行编程时, PAL或者PLD必须放在特殊的自动编程单元中,在正确的I/O弓I脚上加上正确的编程电压。这基本违背了在系统编程的理念,因为它需要把器 件从电路板上拿下来,放在编程单元中重新编程,或者在电路板上放一些特殊装置来进行 编程。为了实现在系统编程, CPLD和FPGA增加了和设计I/O分开的编程接口。这就是几乎所有CPLD和FPGA都采用的一种流行接口一一 JTAG接口,如图1

17、.10所示。JTAG接口是简单的4线或者5线串行接口,器件上的 JTAG接口一般作为器件自测 试的一部分来保证器件制造合格、正常工作。数据在 TDI输入上移入,在 TDO输出上移出。如果输出和输入相匹配,则器件通过测试。如果PLD本身可以产生编程所需要的电压, 那么JTAG接口能够控制并指导芯片, 在PLD的编程。器件的哪一部分加上编程电压。这就简化了在实验室或者电路板产品线上对 JTAG是业界标准,因此,任何 JTAG接口器件都可以进行器件自测试。I岱TCKUSB-BlEisler “BvtcBlasier I或其他JTAG F 戟电纜TMSTDI TDOFI )1Ir-THSTCKPI.D

18、ITDI IDOIMSTDO图1.10 JTAG接口示意图然而,通常需要特殊控制器才能通过链接和供应商的器件进行编程。例如, Altera器件需要使用 Altera编程电缆,USB-Blaster或者ByteBlaster II下载电缆等。JTAG编程非常 适合应用在EEPROM器件上,这是因为编程是非易失的。1.3FPGA系统结构和资源由于技术的进步,产生了百万级的 FPGA,同时为了照顾用户的特殊需求,现在包含了 4种可编程资源,即位于芯片内部的可编程逻辑单元 (LE)、位于芯片四周的可编程 I/O、分布在芯片各处的可编程布线资源和片内嵌入式存储器块 RAM。也增加了嵌入式乘法器、锁相环的

19、资源,如图1.11所示。逻辑单止一用户町选【心图1.11 FPGA内部资源结构图F面将对FPGA内部资源进行简单介绍。1.3.1可编程逻辑单元(LE)图1.12所示是一个典型的 LE的结构图。LE包括3个主要部分:查找表(LUT )、进 位逻辑和输出寄存器逻辑。LE图1.12 典型的LE的结构图其中,FPGA用查找表(LUT )替代了 CPLD中的乘积项阵列,它是 FPGA中组合逻 辑输出乘积和的关键。大部分器件使用4输入LUT,而有些器件提供输入数量更大的 LUT, 以建立更复杂的功能。LUT由一系列级联复用器构成,如图 1.13所示。I.IIKUM nJcSRAM图1.13 查找表(LUT

20、 )结构示意图复用器输入可以被设置为高或者低逻辑电平。逻辑之所以被称为查找表,是因为通过 “查找”正确的编程级来选择输出,并根据 LUT输入信号通过复用器将输出送到正确的地方。LUT本质上就是一个 RAM。对于4输入的LUT,每一个LUT可以看成一个有 4位地 址线的16 X 1的RAM。当用户通过原理图或 HDL语言描述了一个逻辑电路以后, PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果, 并把结果事先写入 RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容, 然后输出即可。相对于CPLD宏单元,产生 LUT输出可能需要更多的逻辑级。但是,它能

21、够灵 活地建立函数和 LE链,从而提高了性能,有助于减少资源的浪费。LE的同步部分来自可编程寄存器, 非常灵活,通常由全局器件时钟来驱动它, 而任何时钟域都可以驱动任何 LE。寄存器的异步控制信号,如清位、 复位或者预设等,都可以由其他逻辑产生,也可以来自 I/O引脚。寄存器输出通过 LE后驱动至器件布线通道,还可以反馈回LUT。可以把寄存器旁路, 产生严格的组合逻辑功能,也可以完全旁路 LUT,只使用寄存器用于存储或者同步。这种灵活的LE输出级使其非常适合所有类型的逻辑操作。FPGA LE含有专门的进位逻辑和 LAB中的寄存器链布线,为这些信号提供最短链接。 进位比特可以来自 LAB中的其他

22、LE,也可以来自器件中的其他 LAB。产生的进位比特可 以输出到其他LE,或者器件互连中。LAB中的LUT和进位逻辑可以被完全旁路,链接 LAB中的所有LE寄存器,把它们变成移位寄存器,这适合DSP工作。和CPLD相比,进位逻辑和寄存器链布线的通用性进 一步提高了性能,增强了对资源的管理。由于LUT和寄存器都能够输出至器件中的任一位置, 不论是位于相同的 LAB中,还是通过器件的布线通道。因此, FPGA LE可以配置完成寄存器封装功能。采用寄存器封装,一个 LE可以输出两路不同的函数,一路来自 LUT和进位链逻辑,另一路来自输出寄存器。只使用模块的组合逻辑部分,完全不相关的寄存器函数 可以封

23、装到一个 LE中。因此,这有助于节省器件资源。目前为止,所讨论的 FPGA LE的确要比CPLD宏单元在设计上更加灵活,但还是需要LE级联和反馈才能产生具有较多输入的函数。为解决这个问题,一些高级 FPGA使用自适应逻辑模块(ALM )。ALM和LE相似,但有一些重要优势。首先,ALM包括两个输出寄存器, 为逻辑链和寄存器封装提供更多的选项, 在一个逻辑模块中生成多个函数。ALM还具有内置硬件加法器模块。ALM中的加法器是专用资源, 完成标准算术操作,不需要在LUT或者在DSP中生成这些数学函数。这提高了数学性能, 简化了 LUT逻辑。ALM 中的LUT和LE的主要不同点是 ALM 中的LUT

24、是自适应 LUT,即ALUT ALUT 与LUT相似,但可以对它进行划分,配置为大小不同的 LUT,以适应两种类型不同的函数,包括最简单到非常复杂的函数。 所有8个输入都可以用于完成复杂算术函数, 而ALUT可以按照不同的方式来进行划分,实现简单函数。例如,两个LUT,一个是3输入,一个是5输入。还可以划分 ALUT以支持更复杂的 7输入函数,其额外的输入用于寄存器封装。分成两个 4输入LUT,使ALUT后向兼容标准LE中的4输入LUT技术。最后,如果两个函数之间可以共享输入,还能够进行其他方 式的划分。基于 ALM的FPGA使用较少的资源和智能资源管理技术,大大提高了逻辑工 作的性能。1.3

25、.2可编程布线FPGA器件中的布线通道看起来简单,但实际上提供更多的功能和互连。 FPGA布线通道使器件资源能够与芯片任何地方的所有其他资源进行通信。老款的非 FPGA器件是无法实现的。曼哈顿型布线通道及大小不同的固定长度逻辑段,大大简化了通过布线调整来达到设计时序要求。随着器件资源的增加,布线通道数量线性增长就可以连接所有的器件资源。FPGA布线通道可以分成两类: 本地互连及行列互连。 本地互连直接连接 LE或者LAB 中的ALM,邻近LAB之间进行最短连接,称为直接链路。另一类互连是行列互连。这类 互连的长度固定,跨过一定数量的 LAB,或者整个器件。LAB I/O可以连接到本地互连,实现

26、高速本地操作,或者直接连接至行列互连,向芯片的其他部分发送数据。1.3.3可编程I/OFPGA I/O控制功能含在阵列边沿的模块中,所有器件资源都可以通过 FPGA布线通道使用该功能。FPGA中的I/O模块通常被称为I/O单元。I/O单元含有和老款 CPLD I/O控 制模块相同的基本功能,但是功能更丰富,使 FPGA I/O单元非常适合用于所有类型的设计。除了基本输入、输出及双向信号, I/O引脚还支持多种I/O标准,包括多种最新的低电压高速标准。其他特性包括可变电流驱动能力和摆率控制等,以提高电路板级信号完整性。上拉电 阻形式的片内匹配功能有助于减少电路板上的匹配元件数量。有些器件的 I/O单元还含有钳位二极管,使能后可以用做 PCI总线的I/O。根据设计需要

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1