PLD/FPGA新手入门知识

pld/fpga新手入门知识
pld是可编程逻辑器件(programable logic device)的简称,fpga是现场可编程门阵列(field programable gate array)的简称,两者的功能基本相同,只是实现原理略有不同,所以我们有时可以忽略这两者的区别,统称为可编程逻辑器件或pld/fpga。
pld是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。
pld能做什么呢?可以毫不夸张的讲,pld能完成任何数字器件的功能,上至高性能cpu,下至简单的74电路,都可以用pld来实现。pld如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在pcb完成以后,还可以利用pld的在线修改能力,随时修改设计而不必改动硬件电路。使用pld来开发数字电路,可以大大缩短设计时间,减少pcb面积,提高系统的可靠性。 pld的这些优点使得pld技术在90年代以后得到飞速的发展,同时也大大推动了eda软件和硬件描述语言(hdl)的进步。
如何使用pld呢?其实pld的使用很简单,学习pld比学习单片机要简单的多,有数字电路基础,会使用计算机,就可以进行pld的开发。不熟悉pld的朋友,可以先看一看可编程逻辑器件的发展历程。
开发pld需要了解两个部分:1.pld开发软件 2.pld本身
1.pld开发软件
由于pld软件已经发展的相当完善,用户甚至可以不用详细了解pld的内部结构,也可以用自己熟悉的方法:如原理图输入或hdl语言来完成相当优秀的pld设计。所以对初学者,首先应了解pld开发软件和开发流程。了解pld的内部结构,将有助于提高我们设计的效率和可靠性。
如何获得pld开发软件软件呢? 许多pld公司都提供免费试用版或演示版(当然商业版大都是收费的),例如:可以免费从www.altera.com 上下载altera公司的 quartusii (web版),或向其代理商索取这套软件。xilinx 公司也提供免费软件:ise webpack,这套可以从xilinx网站下载。lattice 提供isplever base版下载,actel等公司也都有类似的免费软件提供。以上免费软件都需要在网上注册申请license文件,如果您对license的安装还有不清楚,请仔细阅读相关网页上的说明,也可以下载这篇文档:eda软件的license管理与安装。 通常这些免费软件已经能够满足一般设计的需要,当然,要想软件功能更强大一些,只能购买商业版软件。
如果您打算使用vhdl或verilog hdl硬件描述语言来开发pld/fpga,通常还需要使用一些专业的hdl开发软件,这是因为fpga厂商提供的软件的hdl综合能力一般都不是很强,需要其他软件来配合使用,详细情况可以通过浏览:开发软件栏目获得等多信息.
对于pld产品,一般分为:基于乘积项(product-term)技术,eeprom(或flash)工艺的中小规模pld,以及基于查找表(look-up table)技术,sram工艺的大规模pld/fpga。eeprom工艺的pld密度小,多用于5,000门以下的小规模设计,适合做复杂的组合逻辑,如译码。sram工艺的pld(fpga),密度高,触发器多,多用于10,000门以上的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各种算法。如希望进一步了解pld/fpga结构与原理,请点击此处。
目前有多家公司生产cpld/fpga,最大的三家是:altera,xilinx,lattice, 您可以参阅pld厂商栏目获得更多信息
2.pld/fpga的分类和使用
在pld/fpga开发软件中完成设计以后,软件会产生一个最终的编程文件(如 .pof )。如何将编程文件烧到pld芯片中去呢?
1.对于基于乘积项(product-term)技术,eeprom(或flash)工艺的pld(如altera的max系列,lattice的大部分产品,xilinx的xc9500,coolrunner系列), 厂家提供编程电缆,电缆一端装在计算机的并行打印口上,另一端接在pcb板上的一个十芯插头,pld芯片有四个管脚(编程脚)与插头相连。(如图)
下载 altera 编程电缆(byteblaster mv)的数据手册
下载 xilinx编程电缆的电路原理图
下载 lattice的电缆资料
它向系统板上的器件提供配置或编程数据,这就是所谓的在线可编程(isp,如下图)。byteblaster使用户能够独立地配置pld器件,而不需要编程器或任何其它编程硬件。编程电缆可以向代理商购买,也可以根据厂家提供的编程电缆的原理图自己制作,成本仅需一,二十元。 早期的pld是不支持isp的,它们需要用编程器烧写。目前的pld都可以用isp在线编程,也可用编程器编程。这种pld可以加密,并且很难解密,所以常常用于单板加密。
1.将pld焊在pcb板上 2.接好编程电缆 3.现场烧写pld芯片
2.对于基于查找表(lut,look-up table)技术,sram工艺的fpga(如altera的所有fpga,如acex,cyclone,stratix系列,xilinx的所有fpga,如spartan,virtex系列,lattice的ec/ecp系列等),由于sram工艺的特点,掉电后数据会消失,因此调试期间可以用下载电缆配置pld器件,调试完成后,需要将数据固化在一个专用的eeprom中(用通用编程器烧写,也有一些可以用电缆直接改写),上电时,由这片配置eeprom先对fpga加载数据,十几个毫秒到几百个毫秒后,fpga即可正常工作。(亦可由cpu配置fpga)。但sram工艺的pld一般不可以直接加密。
3.还有一种反熔丝(anti-fuse)技术的fpga,如actel,quicklogic的部分产品就采用这种工艺。但这种的pld是不能重复擦写,需要使用专用编程器,所以开发过程比较麻烦,费用也比较昂高。但反熔丝技术也有许多优点:布线能力更强,系统速度更快,功耗更低,同时抗辐射能力强,耐高低温,可以加密,所以在一些有特殊要求的领域中运用较多,如军事及航空航天。 为了解决反熔丝fpga不可重复擦写的问题,actel等公司在90年代中后期开发了基于flash技术的fpga,如proasic系列,这种fpga不需要配置,数据直接保存在fpga芯片中,用户可以改写(但需要10几伏的高电压)。
随着技术的发展,在2004年以后,一些厂家推出了一些新的pld和fpga,这些产品模糊了pld和fpga的区别。例如altera最新的maxii系列pld,这是一种基于fpga(lut)结构,集成配置芯片的pld,在本质上它就是一种在内部集成了配置芯片的fpga,但由于配置时间极短,上电就可以工作,所以对用户来说,感觉不到配置过程,可以传统的pld一样使用,加上容量和传统pld类似,所以altera把它归作pld。 还有像lattice的xp系列fpga,也是使用了同样的原理,将外部配置芯片集成到内部,在使用方法上和pld类似,但是因为容量大,性能和传统fpga相同,也是lut架构,所以lattice仍把它归为fpga。
怎么样?对pld/fpga的使用有了一定的了解了吧,如有疑问,可在本站论坛:新手入门栏目上提出上提出,大家一起讨论。

中国移动OneOS智能工控方案亮相STM32峰会,并荣膺ST合作伙伴奖项
AI加速落地后,华为呼吁加大发展“数权”研究
如何对基于Arduino的金属探测器进行编程
锂电池又叫锂离子电池吗?
程序员为什么要学数学 又如何学数学
PLD/FPGA新手入门知识
什么是IGBT固态脉冲,它的工作原理是什么?IGBTa安装与应用技术
扩频时钟发生器
e络盟针对汽车与工业应用扩充ROHM独有汽车级产品系列
苹果多项服务中断 包括Apple Books、iCloud备忘录、iCloud Drive等
智能运维物联网平台:为分布式设备打造高效、安全的运维体验
魅族M9手机连接器方案
超声波清洗机传来的声响有放射性物质吗?
苹果快讯:正在自研5G基带 解决AirPods Max致命BUG
百度携两款最新智能音箱亮相CES Asia_国内智能音箱市场最低价
李洁:2020年将是Wi-Fi6正式进军市场的元年
Microchip:2021年将会是丰收的一年
陕西光子产业创新联合体在西安成立
溢水报警器的工作原理及制作
畜禽养殖管理系统解决方案,定时喂料,智能化畜禽养殖