可编程逻辑器件学习(day1):技术演进与应用解析

简介: 每日更新可编程逻辑器件(PLD)教程,涵盖基本概念、发展历史、分类体系、开发流程及应用展望,评论区答疑,助你从入门到精通!


目录


1 可编程逻辑器件的基本概念与特性


2 可编程逻辑器件的发展历史


2.1 第一阶段:初创期(20世纪70年代初至70年代中)


2.2 第二阶段:结构简化期(20世纪70年代中至80年代中)


2.3 第三阶段:结构扩展期(20世纪80年代至90年代末)


2.4 第四阶段:系统级集成期(20世纪90年代末至今)


3 可编程逻辑器件的分类体系


3.1 按结构复杂程度分类


3.2 按互连结构分类


3.3 按可编程特性分类


3.4 按编程元件分类


4 开发工具与设计流程


4.1 主流开发软件


4.2 PLD开发流程


5 应用领域与未来展望


5.1 应用领域


5.2 未来展望



1 可编程逻辑器件的基本概念与特性

可编程逻辑器件(Programmable Logic Device,简称PLD)是一类作为通用集成电路产生的半导体器件,其逻辑功能完全由用户通过软件进行配置和编程来确定。PLD的基本结构包括输入电路、与阵列、或阵列和输出电路。与固定逻辑器件不同,PLD内部的数字电路可以在出厂后才规划决定,某些类型的PLD甚至允许在规划决定后再次进行变更或改变,这为电子设计提供了极大的灵活性。


PLD的核心特性是能够完全由用户通过软件进行配置和编程,从而实现某种特定的功能,且可以反复擦写。这种特性使得工程师在修改和升级PLD时,不需要额外改变PCB电路板,只需在计算机上修改和更新程序,从而将硬件设计工作转变为软件开发工作,显著缩短了系统设计的周期,提高了实现的灵活性并降低了成本。正因为这些优势,PLD获得了广大硬件工程师的青睐,形成了巨大的产业规模。


与固定逻辑器件相比,PLD具有多方面的显著优势。固定逻辑器件中的电路是永久性的,一旦制造完成就无法改变;而PLD是能够为客户提供范围广泛的多种逻辑能力、特性、速度和电压特性的标准成品部件,并且可在任何时间改变,从而完成多种不同的功能。对于固定逻辑器件,从设计、原型到最终生产需要数月到一年多不等的时间,且需要投入高昂的非重发性工程成本(NRE),这些成本可能从数十万美元至数百万美元。相比之下,PLD设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计,然后立即编程到器件中进行实际测试,没有NRE成本,大大加快了产品上市时间。


此外,PLD还允许客户根据需要仅订购所需数量,从而更好地控制库存,避免过量库存导致的浪费或供货不足导致的生產延迟。更值得关注的是,某些PLD甚至可以在设备付运到客户现场后重新编程,通过互联网将新的编程文件上载到PLD,就能为已安装的产品增加新功能或进行升级,在系统中创建新的硬件逻辑。


2 可编程逻辑器件的发展历史

可编程逻辑器件的发展历程可划分为四个主要阶段,从20世纪70年代初的简单可编程器件,发展到当今高度集成的复杂系统。


2.1 第一阶段:初创期(20世纪70年代初至70年代中)

20世纪70年代标志着可编程逻辑器件的诞生时期,这一时期出现了最早的可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦只读存储器(EEPROM)三种器件。这些早期器件结构相对简单,由于技术限制,只能完成简单的数字逻辑功能。PROM(Programmable Read Only Memory)是首个商业化生产的可编程逻辑器件,用户可以根据需要编写内容,但只能编写一次。随后发展的EPROM(Erasable Programmable Read Only Memory)允许用户通过紫外线照射来擦除内容并重新编程,提高了器件的可重用性。EEPROM(Electrically Erasable Programmable Read Only Memory)则进一步改进了这一特性,允许通过电信号擦除和重编程,大大方便了使用。


2.2 第二阶段:结构简化期(20世纪70年代中至80年代中)

这一阶段出现了结构上更为复杂的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)器件,这些器件正式被称为PLD,能够完成各种逻辑运算功能。典型的PLD由“与”、“非”阵列组成,用“与或”表达式来实现任意组合逻辑,因此PLD能以乘积和形式完成大量的逻辑组合。70年代末,AMD公司推出了可编程阵列逻辑(PAL,Programmable Array Logic),它比PROM更为灵活,适用于实现组合逻辑电路。80年代,Lattice公司推出了通用阵列逻辑(GAL,Generic Array Logic),进一步扩展了PLD的能力。GAL采用输出逻辑宏单元(OLMC)结构,增加了设计灵活性,且可重复编程,大大提高了器件的实用价值。


2.3 第三阶段:结构扩展期(20世纪80年代至90年代末)

20世纪80年代中,可编程逻辑器件迎来了重大突破。Xilinx公司推出了现场可编程门阵列(FPGA,Field Programmable Gate Array),而Altera公司则推出了可擦除的可编程逻辑器件(EPLD,Erase Programmable Logic Device),这些器件的集成度更高,设计更灵活,可多次反复编程。这一阶段的FPGA和CPLD(复杂可编程逻辑器件)提高了逻辑运算的速度,具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,兼容了PLD和通用门阵列的优点,能够实现超大规模的电路,编程方式也很灵活,成为产品原型设计和中小规模(一般小于10000)产品生产的首选。在这一阶段,CPLD和FPGA器件在制造工艺和产品性能上都获得了长足发展,达到了0.18μm工艺和数百万系统门的规模。


2.4 第四阶段:系统级集成期(20世纪90年代末至今)

20世纪90年代初,Lattice公司又推出了在系统可编程概念(ISP)及其在系统可编程大规模集成器件(ispLSI)。90年代末至今,可编程逻辑器件进入了系统级集成阶段,出现了SOPC(可编程片上系统)和SOC(片上系统)技术,这些技术是PLD和ASIC技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。Xilinx和Altera也推出了相应的SOCFPGA产品,制造工艺达到65nm,系统门数也超过百万门。这一阶段的逻辑器件内嵌了硬核高速乘法器、Gbits差分串行接口、时钟频率高达500MHz的PowerPC微处理器、软核MicroBlaze、Picoblaze、Nios以及NiosII,不仅实现了软件需求和硬件设计的完美结合,还实现了高速与灵活性的完美结合,使其已超越了ASIC器件的性能和规模,也超越了传统意义上FPGA的概念,使PLD的应用范围从单片扩展到系统级。


3 可编程逻辑器件的分类体系

可编程逻辑器件根据不同的分类标准可以分为多种类型,每种分类方法都揭示了PLD在不同方面的特性。常见的PLD产品包括:编程只读存储器(PROM)、现场可编程逻辑阵列(FPLA)、可编程阵列逻辑(PAL)、通用阵列逻辑(GAL)、可擦除的可编程逻辑器件(EPLA)、复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)等。这些器件从规模上又可以细分为简单PLD(SPLD)、复杂PLD(CPLD)以及FPGA。


3.1 按结构复杂程度分类

从结构的复杂程度上,一般可将PLD分为简单PLD(SPLD)和复杂PLD(CPLD),或分为低密度PLD和高密度PLD(HDPLD)。通常,当PLD中的等效门数超过500门时,则认为它是高密度PLD。传统的PAL和GAL是典型的低密度PLD,等效门数通常不超过500门;而EPLD、FPGA和pLSI/ispLSI则称为HDPLD或CPLD,集成度更高,能够实现更复杂的逻辑功能。这种分类方法直接反映了PLD的处理能力,密度越高的PLD通常能够处理更复杂的设计任务。


3.2 按互连结构分类

从互连结构上,可将PLD分为确定型和统计型两类。确定型PLD提供的互连结构每次用相同的互连线实现布线,因此这类PLD的定时特性常常可以从数据手册上查阅而事先确定。这类PLD是由PROM结构演变而来的,目前除了FPGA器件外,基本上都属于这一类结构。统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线路的延时。因此,设计系统必须允许设计者提出约束条件,如关键路径的延时和关联信号的延时差等。这类器件的典型代表是FPGA系列。这种分类对设计人员尤为重要,因为它直接影响设计的时序规划和性能分析。


3.3 按可编程特性分类

从可编程特性上,可将PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是PROM、PAL和熔丝型FPGA,这些器件只能编程一次,编程后无法改变。重复可编程器件则允许多次擦写和重编程,其中,用紫外线擦除的产品的编程次数一般在几十次的量级,采用电擦除方式的产品的编程次数稍多些,采用EECMOS工艺的产品,擦写次数可达上千次,而采用SRAM(静态随机存取存储器)结构,则被认为可实现无限次的编程。这一分类对项目开发和原型设计至关重要,因为它决定了设计迭代的灵活性和成本。


3.4 按编程元件分类

从编程元件上,PLD主要采用五种不同的编程技术:(1)熔丝型开关(一次可编程,要求大电流);(2)可编程低阻电路元件(多次可编程,要求中电压);(3)EPROM的编程元件(需要有石英窗口,紫外线擦除);(4)EEPROM的编程元件;(5)基于SRAM的编程元件。这些编程技术各有利弊,熔丝型开关和反熔丝型器件具有非易失性,编程后数据永久保存,且抗干扰性强,但只能编程一次;基于浮栅技术的EPROM和EEPROM器件也具有非易失性,可多次编程,但编程复杂度较高;基于SRAM的器件可无限次编程,但数据易失,需要外挂配置芯片。这种分类反映了PLD的技术实现方式,直接影响器件的性能和应用场景。


表:可编程逻辑器件按编程元件的分类比较


编程元件类型 可编程次数 数据易失性 典型工艺 主要特点

熔丝型开关 一次 非易失 TTL 编程后永久保持,需要大电流

可编程低阻电路 多次 非易失 - 要求中电压

EPROM 数十次 非易失 NMOS/CMOS 需紫外线擦除,有石英窗口

EEPROM 上千次 非易失 EECMOS 电擦除,较方便

SRAM 无限次 易失 CMOS 需每次上电配置

4 开发工具与设计流程

4.1 主流开发软件

基于高复杂度PLD器件的开发,在很大程度上要依靠电子设计自动化(EDA)工具来完成。PLD的EDA工具以计算机软件为主,将典型的单元电路封装起来形成固定模块并形成标准的硬件开发语言(如HDL语言)供设计人员使用。目前,在PLD产业领域中,各个芯片提供商的PLD开发工具已成为影响其成败的核心成分。只有全面做到芯片技术领先、文档完整和PLD开发软件优秀,芯片提供商才能获得客户的认可。


Altera公司(现为Intel旗下)的开发软件包括早期的Max+Plus II和目前的Quartus II。Max+Plus II(Multiple Array Matrix and Programmable Logic User Systems)是Altera公司针对可编程芯片设计的开发环境,支持原理图和文本输入。但Altera基本已放弃对其升级,原MAX平台使用者建议转到Quartus平台。Quartus II是一个完整的多平台开发环境,支持可编程片上系统(SOPC)设计,具备渐进式编译、时序逼进技术、SOPC Builder和系统生成工具集成等功能。Quartus II技术支持主要的第三方EDA工具,内置Nios嵌入式处理器,能够立即使用IP内核扩展库,集成DSP Builder,并提供完整多样的验证方法。


Xilinx公司提供了ISE和Vivado两种开发环境。ISE是Xilinx较早期的集成软件环境,而Vivado是新一代的设计环境,专门用于设计与开发较新的Xilinx FPGA系列。Vivado针对Xilinx的7系列FPGAs提供设计、分析和验证功能,注重提高生产力与资源利用效率,采用基于IP的设计策略,有助于提升设计的复用性。


Lattice Semiconductor公司则提供了Lattice Diamond开发软件。该软件针对低功耗FPGA设计实现了特化的优化,策略调整更符合小型化及节能的设计要求。该软件提供了易于使用的图形界面,并且在某些简化版产品中免费提供,大大降低了开发门槛。


除了三大主要厂商提供的开发环境外,还有第三方开发工具,如Altium(原Protel International Limited)提供的独立于FPGA供应商的开发环境。此外,综合软件Synplify和仿真软件ModelSim等诸多第三方EDA开发软件也因其专业性能满足复杂设计的需求。


4.2 PLD开发流程

PLD编程的基本流程较为固定,通常包括了设计输入、设计编译和布局布线、生成配置文件以及下载与调试等步骤。


设计输入是指使用硬件描述语言(HDL),如VHDL或Verilog,撰写代码以定义PLD的逻辑功能。硬件描述语言是PLD设计的基础,最具知名度和最普遍使用的是VHDL与Verilog。这些语言使设计人员能够描述数字系统的行为和结构,从而进行仿真和综合。


设计编译则通过软件提供的编译器将HDL代码转换成设备可以识别的电路描述。在这一阶段,综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合。综合过程将高级语言描述转换为门级网表,为后续的布局布线做准备。


布局布线阶段是将编译后的电路逻辑映射到物理设备的实际资源上,并进行优化以满足时序等要求。这一步骤决定了逻辑电路在PLD芯片上的具体实现方式,对设计性能有至关重要的影响。布局布线完成后,开发软件会生成详细的时序报告和资源利用报告,供设计人员分析优化。


生成配置文件则是根据布线结果创建一个可以被下载到PLD设备的文件,通常是一个二进制文件。这一文件包含了配置PLD内部逻辑资源、互连资源和输入输出端口的所有信息。对于基于SRAM的PLD,这一配置文件通常在每次上电时加载;而对于基于Flash的PLD,配置文件可以永久保存在器件中。


下载与调试最后一步是将生成的配置文件下载至PLD设备,并对功能进行调试,确保电路行为符合设计要求。现代的PLD开发工具提供了丰富的调试手段,如Xilinx的ChipScope和Altera的SignalTap II逻辑分析仪,可以在设备没有额外硬件情况下进行信号的实时监控。


一个完美的PLD开发软件应当具备以下特点:能够准确地将用户设计转换为电路模块;能够高效地利用器件资源;能够快速地完成编译和综合;提供丰富的IP资源;用户界面友好、操作简单。随着开发规模的级数性增长,还必须减短PLD开发软件的编译时间、提高其编译性能以及提供丰富的知识产权(IP)核资源供设计人员调用。


5 应用领域与未来展望

5.1 应用领域

可编程逻辑器件在众多领域中获得了广泛应用,其灵活性和高性能使其成为现代电子系统的重要组成部分。在数字电路设计领域,PLD可以用于设计和实现各种数字电路,例如逻辑门电路、状态机、计数器等。通过编程PLD,设计人员可以灵活地实现这些电路,并在不同的应用中重复使用,大大提高了设计效率和灵活性。


在控制逻辑领域,PLD可以用于编写和实现控制逻辑,例如自动控制系统、机器人控制等。通过编程PLD,系统可以根据输入信号和状态来触发和控制输出操作,实现对设备或系统的灵活控制。PLD在控制应用中的可预测性非常理想,尤其适用于关键的控制应用。


现场可编程门阵列(FPGA)作为一种可重新编程的PLD,广泛应用于数字信号处理、通信系统和嵌入式系统等领域。通过编程FPGA,可以实现各种复杂的算法、信号处理和通信协议,提高系统的灵活性和性能。FPGA被应用于范围广泛的应用中,从数据处理和存储,到仪器仪表、电信和数字信号处理等。


此外,PLD在通信领域、汽车电子和工业控制等领域也发挥着重要作用。TI公司的PLD产品组合使用标准联合电子装置工程委员会(JEDEC)引线与无引线封裝选项,使其能够在汽车与工业应用中轻松实作可编程逻辑。这些装置不仅具有–40°C至125°C的广泛温度范围,并通过汽车电子委员会(AEC)Q-100认证,满足了苛刻环境下的应用需求。


5.2 未来展望

在半导体技术发展的推动下,可编程逻辑器件迎来了前所未有的发展机遇且实现了较大的突破,如今已成为电子设计领域中最具发展前途的器件。未来,可编程逻辑器件的发展将呈现以下几个趋势:


集成度不断提高:过去的几年里,可编程逻辑供应商取得了巨大的技术进步。例如,仅仅数年前,最大规模的FPGA器件也仅仅为数万系统门,工作在40 MHz。然而,当今具有最先进特性的FPGA可提供百万门的逻辑容量、工作在300 MHz,成本低至不到10美元,并且还提供了更高水平的集成特性,如处理器和存储器。这种集成度的提高趋势将继续延续,未来的PLD将集成更多的系统功能。


工艺技术持续进步:Xilinx等PLD供应商采用先进的0.13um低K铜金属工艺生产可编程逻辑器件,这也是业界最好的工艺之一。目前,主要厂商生产的FPGA单片可达上千万门、速度可实现550MHz,采用65nm甚至更高的光刻技术。随着半导体工艺的不断进步,PLD的性能将进一步提高,功耗和成本将进一步降低。


软硬件协同设计:随着SOPC(可编程片上系统)和SOC(片上系统)技术的发展,PLD和ASIC技术正在融合。这种融合涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。未来的PLD将更加注重软硬件的协同设计,实现软件需求和硬件设计的完美结合。


知识产权(IP)核心库的丰富:PLD有越来越多的知识产权(IP)核心库的支持,用户可利用这些预定义和预测试的软件模块在PLD内迅速实现系统功能。IP核心包括从复杂数字信号处理算法和存储器控制器直到总线接口和成熟的软件微处理器在内的一切。此类IP核心为客户节约了大量时间和费用,否则,用户可能需要数月的时间才能实现这些功能,而且还会进一步延迟产品推向市场的时间。


易用性的提升:为了扩大PLD的应用范围,厂商正在不断改进开发工具的易用性。例如,TI公司的PLD使用易于使用的图形介面来配置所需的电路,有效简化编程程序。设计人员使用InterConnect Studio无需编码经验即可配置TI PLD,在几分钟内完成开发和模拟,并在几秒内获得原型。这种趋势将使得PLD技术能够为更广泛的设计人员所采用。


综上所述,可编程逻辑器件作为电子设计领域的关键技术,已经发展成为一个庞大而成熟的产业。从最初简单的可编程器件,到今天集成了处理器、存储器和专用硬核的复杂系统级器件,PLD技术经历了革命性的发展。随着半导体技术的进步和应用需求的增长,PLD将继续在性能、集成度和易用性等方面不断创新,为电子系统设计提供更加强大和灵活的解决方案。无论是简单的逻辑功能实现,还是复杂的系统级设计,PLD都将持续发挥不可替代的作用,推动电子技术向前发展。


相关文章
|
消息中间件 缓存 监控
spring boot 高级篇
spring boot 高级篇
757 1
OFDM通信连路仿真学习
OFDM通信连路仿真学习
396 0
|
2月前
|
人工智能 缓存 监控
Coze AI 智能体工作流配置与实战全指南
Coze工作流让AI智能体从问答工具进化为复杂任务执行者。通过可视化编排,可构建如智能旅行规划等多步骤自动化系统,支持并行处理、条件分支与错误恢复。结合触发、LLM、工具与判断节点,实现高效、可维护的智能流程,助力AI成为真正的“数字同事”。
|
云安全 弹性计算 运维
BYOIP灵魂十问 | 详解阿里云自带公网IP上云
2020年6月11日,在阿里云“企业出海全球化网络新品发布会”上,阿里云洛神云网络宣布弹性公网IP产品全面升级,推出自带公网IP上云解决方案。本文通过十问十答方式详细解读。
BYOIP灵魂十问 | 详解阿里云自带公网IP上云
|
3月前
|
机器学习/深度学习 搜索推荐 算法
Python大数据驱动的图书推荐与分析系统:从数据到智能决策的实践探索
在信息爆炸时代,图书推荐系统利用Python大数据技术,融合用户行为、图书元数据与外部动态,构建“内容+协同+深度学习”混合模型,实现精准个性化推荐。通过三层架构与算法创新,破解冷启动、小众书推荐等难题,助力每本书找到真正读者。
325 0
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
拔俗戒毒所青少年AI心理疏导系统:用技术叩开“心门”的科学路径
针对青少年戒毒心理疏导难题,我们研发AI心理陪伴系统,融合语音、微表情与生理信号多模态识别技术,精准捕捉情绪;通过大模型生成个性化干预策略,动态评估疏导效果,实现“数据驱动”的人机协同疏导新模式,助力迷途少年回归正轨。
279 0
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
432 2
|
开发工具 git iOS开发
阿里同学都在用的开发环境和工具
本文主要介绍后端开发同学常用的工具以及开发环境搭建。
|
小程序 搜索推荐 数据挖掘
【开题报告】基于微信小程序的电子产品商城的设计与实现
【开题报告】基于微信小程序的电子产品商城的设计与实现
1693 0
|
SQL 存储
数据权限就该这么实现(实践篇),yyds!
数据权限就该这么实现(实践篇),yyds!
1350 0