fpga基础入门知识

1.查找表 LUT 和编程方式第一部分: 查找表 LUT

FPGA 是在 PAL、GAL、EPLD、CPLD 等可编程器件的基础上进一步发展的产物。它是作为 ASIC 领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。

由于 FPGA 需要被反复烧写,它实现组合逻辑的基本结构不可能像 ASIC 那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好 地满足这一要求,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表结构,也有一些军品和宇航级 FPGA 采用 Flash 或者熔丝与反熔丝工艺的查找表结 构。通过烧写文件改变查找表内容的方法来实现对 FPGA 的重复配置。

根据数字电路的基本知识可以知道,对于一个 n 输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在 2n 种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA 的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。

查找表(Look-Up-Table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 的 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,PLD/FPGA 开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,这样, 每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

下面给出一个 4 与门电路的例子来说明 LUT 实现逻辑功能的原理。

例 1-1:给出一个使用 LUT 实现 4 输入与门电路的真值表。

fpga基础入门知识_第1张图片 

从中可以看到,LUT 具有和逻辑电路相同的功能。实际上,LUT 具有更快的执行速度和更大的规模。

第二部分: 编程方式

由于基于LUT 的FPGA 具有很高的集成度,其器件密度从数万门到数千万门不等, 可以完成极其复杂的时序与逻辑组合逻辑电路功能,所以适用于高速、高密度 的高端数字逻辑电路设计领域。其组成部分主要有可编程输入/输出单元、基本可编程逻辑单元、内嵌 SRAM、丰富的布线资源、底层嵌入功能单元、内嵌专用单 元等,主要设计和生产厂家有 Xilinx、Altera、Lattice、Actel、Atmel 和 QuickLogic 等公司,其中最大的是 Xilinx、Altera、Lattice 三家。

FPGA 是由存放在片内的 RAM 来设置其工作状态的,因此工作时需要对片内 RAM 进行编程。用户可根据不同的配置模式,采用不同的编程方式。FPGA 有如下几种配置模式:

1、并行模式:并行 PROM、Flash 配置 FPGA;

2、主从模式:一片 PROM 配置多片 FPGA;

3、串行模式:串行 PROM 配置 FPGA;

4、外设模式:将 FPGA 作为微处理器的外设,由微处理器对其编程。

目前,FPGA 市场占有率最高的两大公司 Xilinx 和 Altera 生产的 FPGA 都是基于SRAM 工艺的,需要在使用 时外接一个片外存储器以保存程序。上电时,FPGA 将外部存储器中的数据读入片内 RAM,完成配置后,进入工作状态;掉电后 FPGA 恢复为白片,内部逻辑 消失。这样 FPGA 不仅能反复使用,还无需专门的 FPGA 编程器,只需通用的 EPROM、PROM 编程器即可。Actel、QuickLogic 等公司还 提供反熔丝技术的 FPGA,只能下载一次,具有抗辐射、耐高低温、低功耗和速度快等优点,在军品和航空航天领域中应用较多,但这种 FPGA 不能重复擦写, 开发初期比较麻烦,费用也比较昂贵。Lattice 是 ISP 技术的发明者,在小规模 PLD 应用上有一定的特色。早期的 Xilinx 产品一般不涉及军品和宇航级市场,但目前已经有 Q Pro-R 等多款产品进入该类领域。

2、FPGA 芯片结构

目前主流的 FPGA 仍是基于查找表技术的,已经远远超出了先前版本的基本性能, 并且整合了常用功能(如 RAM、时钟管理 和 DSP)的硬核(ASIC 型)模块。如图 1-1 所示(注:图 1-1 只是一个示意图,实际上每一个系列的 FPGA 都有其相应的内部结构),FPGA 芯片主 要由 6 部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式 RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件 模块。

fpga基础入门知识_第2张图片

每个模块的功能如下:

1.可编程输入输出单元(IOB)

可编程输入/输出单元简称 I/O 单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图 1-2 所示。FPGA 内的 I/O 按组分类,每组都能够独立地支持不同的 I/O 标准。通过软件的灵活配置,可适配不同的电气标准与 I/O 物理特性,可以调整驱动电流的大 小, 可以改变上、下拉电阻。目前,I/O 口的频率也越来越高,一些高端的 FPGA 通过 DDR 寄存器技术可以支持高达 2Gbps 的数据速率。

fpga基础入门知识_第3张图片

 外部输入信号可以通过 IOB 模块的存储单元输入到 FPGA 的内部,也可以直接输入 FPGA 内部。当外部输入信号经过 IOB 模块的存储单元输入到 FPGA 内部时, 其保持时间(Hold Time)的要求可以降低,通常默认为 0。

为了便于管理和适应多种电器标准,FPGA 的 IOB 被划分为若干个组(bank), 每个 bank 的接口标准由其接口电压 VCCO 决定,一个 bank 只能有 一种 VCCO, 但不同 bank 的 VCCO 可以不同。只有相同电气标准的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。

2.可配置逻辑块(CLB)

CLB 是 FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同, 但是每个 CLB 都包含一个可配置开关矩阵,此矩阵由 4 或 6 个输入、一些 选型 电路(多路复用器等)和触发器组成。 开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或 RAM。在 Xilinx 公司的 FPGA 器件中,CLB 由多个(一般为 4 个或 2 个) 相同的 Slice 和附加逻辑构成,如图 1-3 所示。每个 CLB 模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式 RAM 和分布式 ROM。

fpga基础入门知识_第4张图片

 Slice 是 Xilinx 公司定义的基本逻辑单位,其内部结构如图 1-4 所示,一个 Slice 由两个 4 输入的函数、进位 逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个 Slice 实现 2bit 全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作; 4 输入函数发生 器用于实现 4 输入 LUT、分布式 RAM 或 16 比特移位寄存器

(Virtex-5 系列芯片的 Slice 中的两个输入函数为 6 输入,可以实现 6 输入 LUT 或 64 比特移位寄存器);进位逻辑包括两条快速进位链,用于提高 CLB 模块的处理速度

你可能感兴趣的:(fpga开发,经验分享,c++,c语言,数据库开发)