2.FPGA的工作原理

在数字电路中,有众多可编程器件,常见的有诸如PROM(Programmable Read Only Memory,可编程只读存储器)、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦除可编程只读存储器)等可编程器件,这些器件通常是通过高压或者紫外线作用使晶体管/MOS管内部的载流子发生变化而实现编程,但是这些器件通常只能实现单次编程而FPGA则是另外的实现方式,FPGA内部使用的是LCA(Logic Cell Array,逻辑单元阵列),LCA内部包括CLB、IOB、和内部连线等逻辑资源。FPGA的重新烧写实际上只是改变了CLB和IOB的触发器状态以实现多次重复编程。
由于FPGA需要被反复烧写,所以它实现组合逻辑的基本结构和ASIC(专用集成电路)使用的固定与非门实现不同,FPGA采用了一种叫做LUT(Look Up Table,查找表)的结构实现。目前主流FPGA采用的都是SRAM型查找表,这种类型的结构掉电会丢失数据;另外还有基于Flash型或者反熔丝工艺的FPGA,这些通常用在军品或者航天器件上。
一个N输入的逻辑运算,最多只有2^N个结果,如果事先将这些结果存储在一个存储单元中,就相当于实现了与非门的功能,FPGA就是基于此原理,它通过程序文件配置LUT的内容,从而在相同的电路结构中实现不同的逻辑功能。LUT的本质就是一个小型RAM。​目前FPGA中多使用4~6输入的LUT,所以每个LUT都可以看成一个具有4~6位地址线的RAM。当用户通过原理图或HDL描述一个逻辑电路时,FPGA的开发工具会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM中,这样每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。LUT与门的真值表如下图所示。
在这里插入图片描述

从上图可以看到,LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。基于LUT的FPGA具有很高的集成度,其器件密度从数万个到数千万个不等,可以完成极其复杂的时序逻辑电路与组合逻辑电路功能,所以适用于高速、高密度的数字逻辑电路。
​FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此在工作时需要对片内RAM进行编程。用户可以根据不同的设置模式,采用不同的编程方式来编程。在加电时,FPGA将EPROM/Flash中的数据读入片内RAM中,完成设置后FPGA进入工作状态。在掉电时,FPGA恢复成白片,内部的逻辑关系消失,因此FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只需要使用通用的EPROM、PROM编程器即可。Actel等公司还提供反熔丝(Flash)技术的FPGA,具有抗辐射、耐高/低温、低功耗和速度快等优点,在军品和航空航天领域中应用较多,但这种FPGA不能重复擦写,开发初期比较麻烦,费用也比较昂贵。

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值