FPGA学习——FPGA硬件基础常识
一、 FPGA基本原理
(一)厂商发展
目前FPGA主要厂商有两个——Xilinx和Altera(被Intel收购)。
1. Xilinx简介
FPGA市场的龙头,占有率达50%,其主要产品为:Sparten系列、Virtex系列、Artix系列、Kintex系列、Virtex系列等。
其六代以及之前的产品开发工具均为ISE,从七代开始全部移植到vivado平台。
2. Altera简介
FPGA市场的二把手,占有率40%以上,2015年被Intel收购,主要产品为:Max系列、Cyclone系列、Arria系列、Stratix系列等。
其开发工具为Quartus。
(二)Xilinx FPGA实现原理
1. 基本电路工艺
现如今绝大多数集成电路采用CMOS工艺,CMOS电路是互补型金属氧化物半导体电路(Complementary Metal-Oxide-Semiconductor)的英文字头缩写,它由绝缘场效应晶体管组成,由于只有一种载流子,因而是一种单极型晶体管集成电路,其基本结构是一个N沟道MOS管和一个P沟道MOS管。
2. LUT(Look Up Table,查找表)
FPGA基于查找表技术实现,通过LUT可以实现与门、非门、或门、与非门等基础逻辑运算,LUT本质上就是1bit位宽的RAM,通过输入进行寻址,输出寻址到的数据。
使用LUT的好处是延迟固定,且由LUT组成的组合逻辑电路的功能只与配置有关,电路复杂度不会指数级提升。
3. Slice
(1)Slice基本组成
Slice由4个6输入LUT和8个寄存器组成,每4个寄存器为一组,4可配置为D触发器或者锁存器,另外4个只能配置为D触发器。
同时,Slice内还有多路复用器(1位宽的数据选择器mux),由于足够使用,所以一般不用考虑;其还有进位逻辑(carry chain),它是异或门,是FPGA内自带的进位链逻辑,当实现计数器等功能时可能会调用它。
(2)Slice分类
其分为SliceM(memory)和SliceL(logic)两种(还有说有SliceX,但是没找到),它们两个的区别是SliceM内含有可以将LUT重新整合为32位的移位寄存器或者Distributed RAM(分布式RAM)。
4. CLB(Configurable Logic Blocks,可配置逻辑块)
CLB是FPGA的最小逻辑单元,1个CLB包含两个Slice,一般是两个SliceL或者一个SliceL、一个SliceM。
5. block RAM
块随机存储器,SP3系列含有最多1.87Mbit的Block RAM,主要应用于构造数据高速缓冲存储器、深的FIFO和缓冲器等。
与分布式RAM的区别是,它是固定存在的,可以减少对于CLB的使用。
6. 时钟管理(CMT)单元
1个CMT由1个MMCM和1个PLL组成,MMCM、PLL均可实现时钟整数倍的频率综合、去抖、去偏斜,但MMCM还可以实现分数倍的频率综合、反相时钟输出以及动态的时钟相位调整。
7. 数字信号处理(DSP)单元
对于FPGA来说,它可以进行大量的简单运算,并将其高速并行运行,但是它对于复杂运算并不擅长,比如乘法运算,实现乘法运算需消耗大量的资源,所以厂家就加入了硬件DSP核,从而利用DSP进行复杂运算。
8. 端口控制(IOB)单元
IOB即可编程输入输出单元,是FPGA与外部连接的电路部分。