FPGA入门

FPGA简介

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)、可编程逻辑器件PLD(Programmable Logic Device)等可编程器件的基础什么是FPGA上进一步发展的产物。

它是作为专用集成电路ASIC(Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74系列电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图什么是输入法,或是硬件描述语言自由设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了电子设计自动化EDA(Electronic Design Automatic)软件和硬件描述语言VHDL(Very-High-Speed Integrated Circuit Hardware Description)的进步。

FPGA的特点

FPGA具有体系结构和逻辑单元灵活、集成度高以及适用范围宽FPGA等特点。兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC相比,它又具有设计开发什么是周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:

一是采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

二是FPGA可做其它全定制或半定制ASIC电路的中试样片。

三是FPGA内部有丰富的触发器和I/O引脚。

四是FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

五是FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

FPGA与ASIC、CPLD

1、FPGA和ASIC的比较

ASIC是英文的Application Specific Integrated Circuits缩写,即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。ASIC的特点是面向特定用户的需求,品种多、批量少,要求设计和生产周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。

FPGA特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易的由ASIC实现,因此开发风险也大为降低。但ASIC也有它固有的优势,芯片可以获得最优的性能,即面积利用率高、速度快、功耗低,批量成本低,所以在今后一段时间内ASIC仍然会占据高端芯片市场和大批量应用的成熟中低端市场。

2、FPGA与CPLD的比较

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

一是CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序FPGA逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

二是CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

三是在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。

四是FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

五是CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

六是PLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

七是在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

八是CPLD保密性好,FPGA保密性差。

九是一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

NUM91

个人博客式公众号

用心做好文

本文来自企鹅号 - MASCHNOLOGIES媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

程序员如何提一个好问题

开始 我实际上是那种总是会问出愚蠢问题或“不好”问题的大信徒。我一直在问人们一些愚蠢并且完全可以通过谷歌搜索或搜索代码库解决的问题。大多数时候我都不愿意自己去搜...

2964
来自专栏日常学python

用数据分析来看哪种 Python 程序员最赚钱?

本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取了相应的职位信息和任职...

4264
来自专栏web前端教室

刚进公司,接手了一个烂项目,要不要继续?

如题,刚进公司,说是做新项目,刚开始有一些眉目。结果领导不知从哪接了个活儿过来,代码各种烂,重复代码一堆,一个大函数1000多行。说是临时抽你过来顶上去做,做一...

3048
来自专栏FreeBuf

极客DIY:如何利用树莓派提高睡眠质量?

众所周知睡眠是人类生活不可或缺的一部分,如果睡眠不足会引发很多问题(身体、情绪等),那么怎么和树莓派有关系呢?请看看下面文章相信对你会很有帮助。 写在前面 过去...

2825
来自专栏CDA数据分析师

Python告诉你:这类程序员最赚钱!

都说程序员钱多靠谱话稳重,那么我们身边的程序员究竟月薪高到什么程度呢?本文将以Python爬虫、数据分析、全栈开发、运维开发、机器学习、架构师这7个岗位,从某招...

3392
来自专栏王清培的专栏

.NET领域驱动设计—实践(穿过迷雾走向光明)

阅读目录 开篇介绍 1.1示例介绍 (OnlineExamination在线考试系统介绍) 1.2分析、建模 (对真实业务进行分析、模型化) 1.2.1 用例...

28210
来自专栏编程坑太多

打字速度对编程的影响大吗?

1885
来自专栏牛客网

这可能不只是一篇面经!2万字干货分享校招备战、笔试、面试的详细经验(上)

5月份一个很偶然的机会,加了叶神的微信,还收到了祝福。一激动就承诺说写篇最详细的面经分享给大家,毕竟用了这么久的牛客网,收获真的很大。 校招真的是段劳心伤神的经...

76318
来自专栏我有一个梦想

游戏开发完整学习路线(各个版本都有)

在软件开发中,游戏开发这个方向看起来目标很明确,但其实是个领域很广的方向,入门的时候如果得不到指点一二,很容易误入歧途,相反,如果走这条路之前能得到前人的一些指...

3828
来自专栏大数据挖掘DT机器学习

Python、 R 语言、SAS、SPSS 的优缺点比较

(致各位挚爱的数粉,因近期小编忙于处理其他急事,未能及时回复给大家资料链接,且微信公众号目前已经限制必须在48小时内回复,否则公众号后台消息发不出去,导致现在仍...

5989

扫码关注云+社区

领取腾讯云代金券