精品资源可编程逻辑器件课件fpga讲义_第1页
精品资源可编程逻辑器件课件fpga讲义_第2页
精品资源可编程逻辑器件课件fpga讲义_第3页
精品资源可编程逻辑器件课件fpga讲义_第4页
精品资源可编程逻辑器件课件fpga讲义_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 可编程逻辑器件讲义 西南民族大学电信学院 向强 课程简介 n脉冲与数字电路为基础:学习了数 字电路的基本设计方法。 n可编程逻辑器件:面向实际工程应 用,紧跟技术发展,掌握数字系统新的 设计方法。 n数字信号处理:后续课程,应用的 一个方面,由fpga代替dsp来实现算法, 提高系统的速度。 课程宗旨 n更新数字电路的设计观念,建立用pld器 件取代传统ttl器件设计数字电路的思想 n更新数字系统设计手段,学会使用硬件 描述语言(hardware description language)代替传统的数字电路设计方 法来设计数字系统。 可编程逻辑器件的定义和功能 n逻辑器件:用来实现某种特定逻

2、辑功能的电子 器件,最简单的逻辑器件是与、或、非门 (74ls00,74ls04等),在此基础上可实现 复杂的时序和组合逻辑功能。 n可编程逻辑器件(pldprogrammable logic device):器件的功能不是固定不变的, 而是可根据用户的需要而进行改变,即由编程 的方法来确定器件的逻辑功能。 pld是可编程逻辑器件(programable logic device)的简称,fpga是现场可编程门阵列 (field programable gate array)的简称,两 者的功能基本相同,只是实现原理略有不同, 所以我们有时可以忽略这两者的区别,统称 为可编程逻辑器件或pld/

3、fpga。pld是电子 设计领域中最具活力和发展前途的一项技术, 它的影响丝毫不亚于70年代单片机的发明 和使用。pld能完成任何数字器件的功能, 上至高性能cpu,下至简单的74电路,都可 以用pld来实现。pld如同一张白纸或是一 堆积木,工程师可以通过传统的原理图输 入法,或是硬件描述语言自由的设计一个 数字系统。通过软件仿真,我们可以事先 验证设计的正确性。在pcb完成以后,还可 以利用pld的在线修改能力,随时修改设计 而不必改动硬件电路。使用pld来开发数字 电路,可以大大缩短设计时间,减少pcb面 积,提高系统的可靠性。 pld的这些优点使 得pld技术在90年代以后得到飞速的发

4、展, 同时也大大推动了eda软件和硬件描述语言 (hdl)的进步。 可编程逻辑器件的学习与开发 其实pld的使用很简单,学习pld比学习单片 机要简单的多,有数字电路基础,会使用计 算机,就可以进行pld的开发。开发pld需要 了解两个部分: 1. pld开发软件 2. pld本身的结构 课程内容 n器件为什么能够编程 n了解大规模可编程逻辑器件的结构及工作原 理 n怎样对器件编程 n熟悉一种eda软件的使用方法(工具) n以xilinx公司的ise 5.x为例 n掌握一种硬件描述语言(方法),以设计软 件的方式来设计硬件(重点) n以vhdl语言为例 参考书 n王金明,数字系统设计与veri

5、log hdl, 电子工业出版社。 n杨晖,大规模可编程逻辑器件与数字系 统设计,北京航空航天大学出版社。 n褚振勇,fpga设计及应用,西安电子科 技大学出版社。 一、pld开发软件介绍 pld开发软件 由于pld软件已经发展的相当完善,用户甚 至可以不用详细了解pld的内部结构,也可 以用自己熟悉的方法:如原理图输入或hdl 语言来完成相当优秀的pld设计。所以对初 学者,首先应了解pld开发软件和开发流程。 了解pld的内部结构,将有助于提高我们设 计的效率和可靠性。 如何获得pld开发软件呢? 许多pld公司 都提供免费试用版或演示版(当然商业版 大都是收费的),例如:可以免费从www

6、. 上下载altera公司的 quartusii (web版),或向其代理商索取这套软件。 xilinx 公司也提供免费软件:ise webpack, 这套可以从xilinx网站下载。lattice提供 isplever base版下载,actel等公司也都有 类似的免费软件提供。以上免费软件都需 要在网上注册申请license文件。通常这些 免费软件已经能够满足一般设计的需要, 当然,要想软件功能更强大一些,只能购 买商业版软件。 如果打算使用vhdl或verilog hdl硬件描 述语言来开发pld/fpga,通常还需要使用 一些专业的hdl开发软件,这是因为fpga 厂商提供的软件的hd

7、l综合能力一般都不 是很强,需要其他软件来配合使用。 1、集成的pld/fpga开发环境 这类软件都是由pld/fpga芯片厂家提供,基 本都可以完成所有的设计输入(原理图或hdl), 仿真,综合,布线,下载等工作。 如: quartusii(altera公司新一代pld开发软 件,适合大规模fpga的开发); ise( xilinx公司目前的fpga/pld开发软 件); isplever(lattice公司的pld开发软件) 为了提高设计效率,优化设计结果,很多厂 家提供了各种专业软件,用以配合pld/fpga 芯片厂家提供工具进行更高效率的设计,最 常见的组合是:同时使用专业hdl逻辑综

8、合 软件和pld/fpga芯片厂家提供的软件。 2、hdl前端输入与系统管理软件 这类软件主要是帮助用户完成hdl文本的 编辑和输入工作,提高输入效率,并不是 必须的,更多人更习惯使用集成开发软件 或者综合/仿真工具中自带的文本编辑器, 甚至可以直接使用普通文本编辑器。如: ultraedit、hdl turbo writer等。 3、hdl逻辑综合软件 这类软件将把hdl语言翻译成最基本的与 或非门的连接关系(网表),输出edf文 件,导给pld/fpga厂家的软件进行适配和 布线。 为了优化结果,在进行复杂hdl设 计时,基本上都会使用这些专业的逻辑综 合软件,而不使用pld/fpga厂家

9、的集成开 发软件中自带的逻辑综合功能。如: synplify / synplify pro, vhdl/verilog综 合软件,synplicity公司出品; leonardospectrum,vhdl/veriloghdl综 合软件。(mentor公司)等。 4、hdl仿真软件 对设计进行校验仿真,包括布线以前的功 能仿真(前仿真)和布线以后包含延时的 时序仿真(后仿真),对于一些复杂的hdl 设计可能需要这些软件专业的仿真功能。 如: modlesim软件 vhdl/veriloghdl仿真软件,功能比 activehdl强大,使用比activehdl复 杂。mentor的子公司mode

10、l tech出品。 active hdl 软件 vhdl/veriloghdl仿真软件,人机界面 较好,简单易用。aldec公司出品, pld器件的程序下载 在pld/fpga开发软件中完成设计以后,软 件会产生一个最终的编程文件(如 .jed .pof )。如何将编程文件烧到pld芯片中去呢? 1.对于基于乘积项(product-term)技术, eeprom(或flash)工艺的pld(如altera的max 系列,lattice的大部分产品,xilinx的xc9500, coolrunner系列), 厂家提供编程电缆,电缆 一端装在计算机的并行打印口上,另一端接 在pcb板上的一个十芯插

11、头,pld芯片有四 个管脚(编程脚)与插头相连。(如图) 电缆如:altera 编程电缆(byteblaster mv)、xilinx编程电缆、lattice的电缆向 系统板上的器件提供配置或编程数据,这 就是所谓的在线可编程(isp,如下图)。 byteblaster使用户能够独立地配置pld器 件,而不需要编程器或任何其它编程硬件。 编程电缆可以向代理商购买,也可以根据 1.将将pld焊在焊在pcb 板上板上 2.接好编程电缆接好编程电缆3.现场烧写现场烧写pld芯芯 片片 厂家提供的编程电缆的原理图自己制作, 成本仅需一,二十元。 早期的pld是不 支持isp的,它们需要用编程器烧写。目

12、 前的pld都可以用isp在线编程,也可用 编程器编程。这种pld可以加密,并且 很难解密,所以常常用于单板加密。 2.对于基于查找表(lut,look-up table) 技术,sram工艺的fpga(如altera的所有 fpga,如acex,cyclone,stratix系列;xilinx 的所有fpga,如spartan,virtex系列,lattice 的ec/ecp系列等),由于sram工艺的特点, 掉电后数据会消失,因此调试期间可以用下 载电缆配置pld器件,调试完成后,需要将 数据固化在一个专用的eeprom中(用通 用编程器烧写,也有一些可以用电缆直接 改写),上电时,由这片

13、配置eeprom先 对fpga加载数据,十几个毫秒到几百个毫 秒后,fpga即可正常工作。(亦可由cpu配 置fpga)。但sram工艺的pld一般不可以 直接加密。 3.还有一种反熔丝(anti-fuse)技术的fpga, 如actel,quicklogic的部分产品就采用这种 工艺。但这种的pld是不能重复擦写,需要 使用专用编程器,所以开发过程比较麻烦, 费用也比较昂高。但反熔丝技术也有许多优 点:布线能力更强,系统速度更快,功耗更 低,同时抗辐射能力强,耐高低温,可以加 密,所以在一些有特殊要求的领域中运用 较多,如军事及航空航天。 为了解决反熔 丝fpga不可重复擦写的问题,acte

14、l等公司 在90年代中后期开发了基于flash技术的fpga, 如proasic系列,这种fpga不需要配置,数 据直接保存在fpga芯片中,用户可以改写 (但需要10几伏的高电压)。 二、 pld的结构、原理 脉冲与数字电路课程的回顾 n布尔函数数字系统数学基础(卡诺 图) n数字电路设计的基本方法 n组合电路设计 问题逻辑关系真值表化简逻辑图 n时序电路设计 列出原始状态转移图和表状态优化状态分 配触发器选型求解方程式逻辑图 脉冲与数字电路课程的回顾 n使用中、小规模器件设计电路(74、54 系列) n编码器(74ls148) n译码器(74ls154) n比较器(74ls85) n计数器

15、(74ls193) n移位寄存器(74ls194) n 脉冲与数字电路课程的回顾 n设计方法的局限 n卡诺图只适用于输入比较少的函数的化简。 n采用“搭积木”的方法的方法进行设计。必 须熟悉各种中小规模芯片的使用方法,从中 挑选最合适的器件,缺乏灵活性。 n设计系统所需要的芯片种类多,且数量很大。 脉冲与数字电路课程的回顾 n采用中小规模器件的局限 n电路板面积很大,芯片数量很多,功耗很大, 可靠性低提高芯片的集成度 n设计比较困难能方便地发现设计错误 n电路修改很麻烦提供方便的修改手段 npld器件的出现改变了这一切 pld出现的背景 n电路集成度不断提高 nssimsilsivlsi n计

16、算机技术的发展使eda技术得到广泛应用 n设计方法的发展 n自下而上自上而下 n用户需要设计自己需要的专用电路 n专用集成电路(asicapplication specific integrated circuits)开发周期长,投入大,风险大 n可编程器件pld:开发周期短,投入小,风险小 pld器件的优点 n集成度高,可以替代多至几千块通用ic芯片 n极大减小电路的面积,降低功耗,提高可靠性 n具有完善先进的开发工具 n提供语言、图形等设计方法,十分灵活 n通过仿真工具来验证设计的正确性 n可以反复地擦除、编程,方便设计的修改和升 级 n灵活地定义管脚功能,减轻设计工作量,缩短 系统开发时

17、间 n保密性好 n管脚数目: n208个 n电源: n3.3v(i/o) n2.5v(内核) n速度 n250mhz n内部资源 n4992个逻辑单元 n10万个逻辑门 n49152 bit的ram pld的发展趋势 n向高集成度、高速度方向进一步发展 n最高集成度已达到400万门 n向低电压和低功耗方向发展, 5v3.3v2.5v1.8v更低 n内嵌多种功能模块 nram,rom,fifo,dsp,cpu n向数、模混合可编程方向发展 大的pld生产厂家 n最大的pld供应商之一 nfpga的发明者,最大的pld供应 商之一 nisp技术的发明者 n提供军品及宇航级产品 pldpld的发展历

18、程的发展历程 熔丝编程的熔丝编程的 prom和和 pla器件器件 amd公公 司推出司推出 pal器件器件 gal器件器件 fpga器器 件件 epld器器 件件 cpld器器 件件 内嵌复杂内嵌复杂 功能模块功能模块 的的sopc 20世纪世纪70年代年代 20世纪世纪70年代末年代末 20世纪世纪80年代初年代初 20世纪世纪80年代中期年代中期 20世纪世纪80年代末年代末 进入进入20世纪世纪90年代后年代后 pld 概述概述 pld器件的分类按集成度 n低密度 nprom,eprom,eeprom,pal,pla,gal n只能完成较小规模的逻辑电路 n高密度,已经有超过400万门的

19、器件 nepld ,cpld,fpga n可用于设计大规模的数字系统集成度高,甚 至可以做到soc(system on a chip) pldpld的分类的分类 可编程逻辑器件(pld) 简单 pld 复杂 pld prom pal pla gal cpld fpga 图图2-2 按集成度按集成度(pld)分类分类 pld器件的分类按结构特点 n基于与或阵列结构的器件阵列型 nprom,eeprom,pal,gal,cpld ncpld的代表芯片如:altera的max系列 n乘积项结构器件 n基于门阵列结构的器件单元型 nfpga(查找表结构器件) pld器件的分类按编程工艺 n熔丝或反熔丝

20、编程器件actel的fpga器件 n体积小,集成度高,速度高,易加密,抗干扰,耐 高温 n只能一次编程,在设计初期阶段不灵活 nsram大多数公司的fpga器件 n可反复编程,实现系统功能的动态重构 n每次上电需重新下载,实际应用时需外挂eeprom 用于保存程序 neeprom大多数cpld器件 n可反复编程 n不用每次上电重新下载,但相对速度慢,功耗较大 数字电路的基本组成 n任何组合电路都可表示为其所有输入信 号的最小项的和或者最大项的积的形式。 n时序电路包含可记忆器件(触发器), 其反馈信号和输入信号通过逻辑关系再 决定输出信号。 输入 电路 输出 电路 或 阵 列 与 阵 列 输入

21、项 乘积项或项 pld的逻辑符号表示方法 与门乘积项 prom结构 早期的可编程逻辑器件只有可编程只读 存贮器(prom)、紫外线可按除只读存贮 器(eprom)和电可擦除只读存贮器(eeprom) 三种。由于结构的限制,它们只能完成简 单的数字逻辑功能。 n与阵列为全译码阵 列,器件的规模将 随着输入信号数量 n的增加成2n指数 级增长。因此 prom一般只用于 数据存储器,不适 于实现逻辑函数。 neprom和eeprom 用用prom实现组合逻辑电路功能实现组合逻辑电路功能 实现的函数为:实现的函数为: babaf 1 babaf 2 baf 3 固定连接点固定连接点 (与)(与) 编程

22、连接点编程连接点 (或)(或) 其后,出现了一类结构上稍复杂的可编程 芯片,即可编程逻辑器件(pld),它能够完 成各种数字逻辑功能。典型的pld由一个 “与”门和一个“或”门阵列组成,而任意一个 组合逻辑都可以用“与一或”表达式来描述, 所以, pld能以乘积和的形式完成大量的组 合逻辑功能。 pla结构 npla的内部结构在 简单pld中有最高 的灵活性。 n由“与”平面和 “或”平面构成, 两个平面可编程。 可编程逻辑阵列(pla) pal结构 n与阵列可编程使 输入项增多,或 阵列固定使器件 简化。 n或阵列固定明显 影响了器件编程 的灵活性 pal(可编程阵列逻辑) bnan “或”

23、阵列 (固定) sncn+1 “与”阵列 (可编程) cn nnnnnnn nnnnnnnnnnnnn cbcabac cbacbacbacbas 1 anbncn anbncn anbncn anbncn anbnancn bncn 用pal实现全加器 gal结构 ngal器件与 pal器件的 区别在于用 可编程的输 出逻辑宏单 元(olmc) 代替固定的 或阵列。可 以实现时序 电路。 逻辑宏单元 olmc 通用阵列逻辑gal 如gal16v8,gal22v10 等 gal器件的olmc output logic macro cell n每个olmc包含或阵列 中的一个或门 n组成: n异

24、或门:控制输出 信号的极性 nd触发器:适合设 计时序电路 n4个多路选择器 输出使 能选择 反馈信 号选择 或门控 制选择 输出 选择 fpga(现场可编程门阵列)与 cpld(复杂可 编程逻辑器件)都是可编程逻辑器件,它们 是在pal,gal等逻辑器件的基础之上发展起 来的。同以往的pal,gal等相比较,fpga cpld的规模比较大,它可以替代几十甚至 几千块通用ic芯片。这样的fpgacpld实 际上就是一个子系统部件。这种芯片受到世 fpgacpld 概述 界范围内电子工程设计人员的广泛关注 和普遍欢迎。 cpld器件结构 一.基于乘积项(product-term)的pld结构 采

25、用这种结构的pld芯片有:altera的 max7000,max3000系列(eeprom 工艺),xilinx的xc9500系列(flash工 艺)和lattice,cypress的大部分产品 (eeprom工艺)。 cpld内部结构(altera的max7000s系列) 逻辑阵 列模块 i/o单元 连线资源 逻辑阵列模块中包含多个宏单元 这种pld可分为三块结构:宏单元(marocell), 可编程连线(pia)和i/o控制块。 宏单元是pld 的基本结构,由它来实现基本的逻辑功能。图 中兰色部分是多个宏单元的集合(因为宏单元 较多,没有一一画出)。可编程连线负责信号 传递,连接所有的宏单

26、元。i/o控制块负责输入 输出的电气特性控制,比如可以设定集电极开 路输出,摆率控制,三态输出等。 图 中左上 的input/gclk1,input/gclrn,input/oe1, input/oe2 是全局时钟,清零和输出使能信 号,这几个信号有专用连线与pld中每个宏单 元相连,信号到每个宏单元的延时相同并且 延时最短。 宏单元内部结构 乘积项逻辑阵列 乘积项选择矩阵 可编程 触发器 图左侧是乘积项阵列,实际就是一个与或 阵列,每一个交叉点都是一个可编程熔丝, 如果导通就是实现“与”逻辑。后面的乘积 项选择矩阵是一个“或”阵列。两者一起完 成组合逻辑。图右侧是一个可编程d触发 器,它的时

27、钟,清零输入都可以编程选择, 可以使用专用的全局清零和全局时钟,也 可以使用内部逻辑(乘积项阵列)产生的 时钟和清零。如果不需要触发器,也可以 将此触发器旁路,信号直接输给pia或输出 到i/o脚。 可编程的i/o单元 n能兼容ttl和cmos多种接口和电压标准 n可配置为输入、输出、双向、集电极开路和三 态等形式 n能提供适当的驱动电流 n降低功耗,防止过冲和减少电源噪声 n支持多种接口电压(降低功耗) n1.20.5um,5v n0.35um,3.3v n0.25um,internal 2.5v,i/o3.3v n0.18um,internal 1.8v,i/o2.5v and 3.3v

28、i/oi/o控制块控制块 图图2-23 epm7128s器器 件的件的i/o控制块控制块 可编程连线阵列 n在各个逻辑宏单元之间以及逻辑宏单元 与i/o单元之间提供信号连接的网络 ncpld中一般采用固定长度的线段来进行 连接,因此信号传输的延时是固定的, 使得时间性能容易预测。 可编程连线阵列可编程连线阵列(pia)(pia) 图图2-22 pia信号布线到信号布线到lab的方式的方式 扩展乘积项扩展乘积项 共享扩展乘积项结构共享扩展乘积项结构 共享扩展项共享扩展项 扩展乘积项扩展乘积项 并联扩展项馈送方式并联扩展项馈送方式 并联扩展项并联扩展项 xilinx的xc9500系列cpld xc

29、9500的宏单元内部结构 二.乘积项结构pld的逻辑实现原理 下面我们以一个简单的电路为例,具体说明 pld是如何利用以上结构实现逻辑的,电路 如下图: 假设组合逻辑的输出(and3的输出)为f,则 f=(a+b)*c*(!d)=a*c*!d + b*c*!d ( 我们 以!d表示d的“非”) pld将以下面的方式来实现组合逻辑f: a,b,c,d由pld芯片的管脚输入后进入可编 程连线阵列(pia),在内部会产生a,a反, b,b反,c,c反,d,d反8个输出。图中每一个 叉表示相连(可编程熔丝导通),所以得 到:f= f1 + f2 = (a*c*!d) + (b*c*!d) 。 这样组合

30、逻辑就实现了。 图示电路中d触 发器的实现比较简单,直接利用宏单元中 的可编程d触发器来实现。时钟信号clk由 i/o脚输入后进入芯片内部的全局时钟专用 通道,直接连接到可编程触发器的时钟端。 可编程触发器的输出与i/o脚相连,把结果 输出到芯片管脚。这样pld就完成了图中所 示电路的功能。(以上这些步骤都是由软 件自动完成的,不需要人为干预) 上图的电路是一个很简单的例子,只需要一 个宏单元就可以完成。但对于一个复杂的 电路,一个宏单元是不能实现的,这时就 需要通过并联扩展项和共享扩展项将多个 宏单元相连,宏单元的输出也可以连接到 可编程连线阵列,再做为另一个宏单元的 输入。这样pld就可以

31、实现更复杂逻辑。 这种基于乘积项的pld基本都是由eeprom 和flash工艺制造的,一上电就可以工作, 无需其他芯片配合。 一.查找表(look-up-table)的原理与结构 采用这种结构的pld芯片我们也可以称之 为fpga:如altera的acex,apex系列,xilinx 的spartan,virtex系列等。 fpga结构原理 fpga结构原理图 n内部结构称为 lca(logic cell array)由三个部 分组成: n可编程逻辑块 (clb) n可编程输入输出 模块(iob) n可编程内部连线 (pic) iob clb包含多 个逻辑单元 pic xilinx spar

32、tan-ii的内部结构 xilinx spartan-ii 芯片内部结构 slices结构 spartan-ii主要包括clbs,i/o块,ram块和 可编程连线(未表示出)。在spartan-ii中, 一个clb包括2个slices,每个slices包括两个 lut,两个触发器和相关逻辑。 slices可以 看成是spartanii实现逻辑的最基本结构 。 (xilinx其他系列,如spartanxl,virtex的 结构与此稍有不同,具体请参阅数据手册) altera的flex/acex等芯片的结构 le内部结构 flex/acex的结构主要包括lab,i/o块, ram块(未表示出)和可

33、编程行/列连线。 在flex/acex中,一个lab包括8个逻辑 单元(le),每个le包括一个lut,一个 触发器和相关的相关逻辑。le是flex/acex 芯片实现逻辑的最基本结构(altera其他系 列,如apex的结构与此基本相同,具体 请参阅数据手册) 查找表(look-up-table)简称为lut,lut 本质上就是一个ram。 目前fpga中多使用 4输入的lut,所以每一个lut可以看成一个 有4位地址线的16x1的ram。 当用户通过原 理图或hdl语言描述了一个逻辑电路以后, pld/fpga开发软件会自动计算逻辑电路的所 有可能的结果,并把结果事先写入ram,这样, 查

34、找表(look-up-table) 每输入一个信号进行逻辑运算就等于输 入一个地址进行查表,找出地址对应的 内容,然后输出即可。 下面是一个4输入与门的例子: 查找表的基本原理 实际逻辑电路lut的实现方式 a,b,c,d 输入逻辑输出地址ram中 存储的内容 0000000000 0001000010 . 0 . 0 1111111111 n个输入的逻辑函数需要2的n次方的容量的sram 来实现,一般多个输入的查找表采用多个逻辑块 级连的方式 查找表的基本原理 n个输入的逻辑函数需要2的n次方的容量的sram 来实现,一般多于输入的查找表采用多个逻辑块 级连的方式 查找表与门 查找表与门 查

35、找表与门 d3. . 0 d7. . 4 d11. . 0 fpga中的嵌入式阵列(eab) n可灵活配置的ram块 n用途 n实现比较复杂的函数的查找表,如正弦、余 弦等。 n可实现多种存储器功能,如ram,rom,双 口ram,fifo,stack等 n灵活配置方法:2568,也可配成5124 内部晶体震荡器 n高速反向放大 器用于和外部 晶体相接,形 成内部晶体振 荡器。 n提供将振荡波 形二分频成对 称方波的功能。 二.查找表结构的fpga逻辑实现原理 还是以上面这个电路为例: a,b,c,d由fpga芯片的管脚输入后进入可编 程连线,然后作为地址线连到到lut,lut中 已经事先写入

36、了所有可能的逻辑结果,通过 地址查找到相应的数据然后输出,这样组合 逻辑就实现了。 该电路中d触发器是直接利 用lut后面d触发器来实现。时钟信号clk由 i/o脚输入后进入芯片内部的时钟专用通道, 直接连接到触发器的时钟端。触发器的输出 与i/o脚相连,把结果输出到芯片管脚。这 样pld就完成了图3所示电路的功能。(以上 这些步骤都是由软件自动完成的,不需要人 为干预) 这个电路是一个很简单的例子,只需要一 个lut加上一个触发器就可以完成。对于 一个lut无法完成的的电路,就需要通过 进位逻辑将多个单元相连,这样fpga就 可以实现复杂的逻辑。 由于lut主要适合sram工艺生产,所以 目

37、前大部分fpga都是基于sram工艺的, 而sram工艺的芯片在掉电后信息就会丢 失,一定需要外加一片专用配置芯片,在 上电的时候,由这个专用配置芯片把数据 加载到fpga中,然后fpga就可以正常工 作,由于配置时间很短,不会影响系统正 常工作。 也有少数fpga采用反熔丝或flash 工艺,对这种fpga,就不需要外加专用的 配置芯片。 其他类型的fpga和pld 随着技术的发展,在2004年以后,一些厂家 推出了一些新的pld和fpga,这些产品模糊 了pld和fpga的区别。例如altera最新的 maxii系列pld,这是一种基于fpga(lut) 结构,集成配置芯片的pld,在本质

38、上它就 是一种在内部集成了配置芯片的fpga,但 由于配置时间极短,上电就可以工作,所 以对用户来说,感觉不到配置过程,可与 传统的pld一样使用,加上容量和传统pld 类似,所以altera把它归作pld。 还有像 lattice的xp系列fpga,也是使用了同样的 原理,将外部配置芯片集成到内部,在使用 方法上和pld类似,但是因为容量大,性能 和传统fpga相同,也是lut架构,所以lattice 仍把它归为fpga。 cpld与fpga的区别 cpldfpga 内部结构 producttermlookup table 程序存储 内部eepromsram,外挂eeprom 资源类型 组合

39、电路资源丰富触发器资源丰富 集成度低高 使用场合 完成控制逻辑能完成比较复杂的算法 速度慢快 其他资源eab,锁相环 保密性可加密一般不能保密 fpga与cpld的区别 nfpga采用sram进行功能配置,可重复 编程,但系统掉电后,sram中的数据丢 失。因此,需在fpga外加eprom,将配 置数据写入其中,系统每次上电自动将数 据引入sram中。cpld器件一般采用 eeprom存储技术,可重复编程,并且系 统掉电后,eeprom中的数据不会丢失, 适于数据的保密。 fpga与cpld的区别 nfpga器件含有丰富的触发器资源,易于 实现时序逻辑,如果要求实现较复杂的 组合电路则需要几个

40、clb结合起来实现。 cpld的与或阵列结构,使其适于实现大 规模的组合功能,但触发器资源相对较 少。 fpga与cpld的区别 nfpga为细粒度结构,cpld为粗粒度结构。 fpga内部有丰富连线资源,clb分块较 小,芯片的利用率较高。cpld的宏单元 的与或阵列较大,通常不能完全被应用, 且宏单元之间主要通过高速数据通道连接, 其容量有限,限制了器件的灵活布线,因 此cpld利用率较fpga器件低。 fpga与cpld的区别 nfpga为非连续式布线,cpld为连续式布线。 fpga器件在每次编程时实现的逻辑功能一样, 但走的路线不同,因此延时不易控制,要求开 发软件允许工程师对关键的路线给予限制。 cpld每次布线路径一样,cpld的连续式互连 结构利用具有同样长度的一些金属线实现逻辑 单元之间的互连。连续式互连结构消除了分段 式互连结构在定时上的差异,并在逻辑单元之 间提供快速且具有固定延时的通路。cpld的 延时较小。 pld分解组合逻辑的功能很强,一个宏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论