欣欣工作室——带你走进单片机世界

         
累计访问3895708
当前在线82
首   页 | 常用器件 | 问答集萃 | 技术文摘 | 在线学习 | 共享工程 | 资料下载 | 网友交流

 
Web xinworks
 开发板概述
 安装QuartusII6.0软件
 安装Nios II EDS6.0
 电源测试
 时钟与FPGA测试
 AS配置功能测试
 SDRAM测试
 Flash测试
 PS配置功能测试
 以太网接口测试
 PLD器件概述
 Quartus II 使用入门
 安装ModelSim6.0SE
 使用ModelSim仿真
 使用ModelSim做后仿真
 观察FPGA内部信号
 NiosII处理器简介
 建立一个NiosII系统
 软件开发流程
 实现用户自定义外设
 实现用户自定义指令
 Flash 编程
 添加RTL8019以太网接口
 运行LwIP网络协议栈
 运行uClinux操作系统
 HDL 语言例程
 相关软件及技术文档



NiosII/FPGA学习板

PLD器件概述


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需要了解两个部分:1.PLD开发软件 2.PLD本身

 

1.PLD开发软件   

由于PLD软件已经发展的相当完善,用户甚至可以不用详细了解PLD的内部结构,也可以用自己熟悉的方法:如原理图输入或HDL语言来完成相当优秀的PLD设计。所以对初学者,首先应了解PLD开发软件和开发流程。了解PLD的内部结构,将有助于提高我们设计的效率和可靠性。

    如何获得PLD开发软件软件呢?   许多PLD公司都提供免费试用版或演示版(当然商业版大都是收费的),例如:可以免费从http://www.altera.com/ 上下载Altera公司的 QuartusII (web版),或向其代理商索取这套软件。Xilinx 公司也提供免费软件:ISE WebPack,这套可以从xilinx网站下载。Lattice 提供isplever Base版下载,Actel等公司也都有类似的免费软件提供。以上免费软件都需要在网上注册申请License文件,如果您对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门以上的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各种算法。

    目前有多家公司生产CPLD/FPGA,最大的三家是:ALTERA,XILINX,Lattice。

2.PLD/FPGA的分类和使用

    在PLD/FPGA开发软件中完成设计以后,软件会产生一个最终的编程文件(如 .pof )。如何将编程文件烧到PLD芯片中去呢?

    1.对于基于乘积项(Product-Term)技术,EEPROM(或Flash)工艺的PLD(如Altera的MAX系列,Lattice的大部分产品,Xilinx的XC9500,Coolrunner系列), 厂家提供编程电缆,电缆一端装在计算机的并行打印口上,另一端接在PCB板上的一个十芯插头,PLD芯片有四个管脚(编程脚)与插头相连。(如图)         

它向系统板上的器件提供配置或编程数据,这就是所谓的在线可编程(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。




粤ICP备06035157号