基于FPGA的基础知识概全

基于FPGA的基础知识概全

  • 一、常用术语
    • 1、FPGA
    • 2、CPLD
    • 3、PAL
    • 4、GAL
    • 5、RTL
    • 6、PLL
    • 7、LAB、ALM、LE【LC】
    • 8、DSP
    • 9、IP
    • 0、LUT
  • 二、存储器类型
    • 1、ROM
    • 2、EEPROM
    • 3、RAM
    • 4、SDRAM
    • 5、Flash
  • 三、逻辑运算
    • 1、&—按位与
    • 2、|—按位或
    • 3、^—按位异或
    • 4、<<—左移
    • 5、>>—右移
  • 四、基本概念
  • 五、参考资料

一、常用术语

1、FPGA

  • FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点;
  • FPGA(现场可编程门阵列)作为可编程通用芯片已成为数字系统设计的重要硬件平台,与CPU、DSP(数字信号处理器)并列为三大通用信号处理器件。

基本结构

FPGA是基于查找表【LUT】结构的;有六个组成部分。

  1. 可编程输入/输出单元(I/O单元)
    大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。
  2. 可编程逻辑单元
    FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。
  3. 时钟管理
    时钟资源部分主要包括全局时钟树和锁相环两部分。
    全局时钟树又称全局时钟网络,负责把时钟分配到器件内部的各个单元,控制器件内部所有资源。锁相环则可以完成分频、倍频、移项等相关时钟的基本操作。全局时钟树是一种时钟网络结构,可以为FPGA内部的所有资源提供时钟信号,这些资源包括内部的寄存器、内部的存储器、输入输出管脚寄存器等。
    锁相环在FPGA中除了分频、倍频操作外,还进场用于内部时钟和外部时钟保持沿同步,提供需要的外部时钟输出等。
  4. 嵌入式块RAM
    目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。
    CAM,即为内容地址存储器。写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。简单的说,RAM是一种写地址,读数据的存储单元;CAM与RAM恰恰相反。
    除了块RAM,Xilinx和Lattice的FPGA还可以灵活地将LUT配置成RAM、ROM、FIFO等存储结构。
  5. 布线资源
    布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。布线资源的划分:
      (1)全局性的专用布线资源:以完成器件内部的全局时钟和全局复位/置位的布线;
      (2)长线资源:用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线。
      (3)短线资源:用来完成基本逻辑单元间的逻辑互连与布线;
      (4)其他:在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。
  6. 底层嵌入功能单元
    底层嵌入功能模块主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP和CPU等软处理核(Soft Core)。
    内嵌专用硬核
    内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。

2、CPLD

CPLD采用CMOS EPROM、EEPROM、快闪存储器和SRAM等编程技术,从而构成了高密度、高速度和低功耗的可编程逻辑器件。

  • CPLD中的逻辑块类似于一个小规模PLD,通常一个逻辑块包含4~20个宏单元;
  • 宏单元一般由乘积项阵列、乘积项分配和可编程寄存器构成。
  • 中文名:复杂可编程逻辑器件
  • 英文名:Complex Programmable logic device
  • 构成:逻辑块、可编程互连通道和I/O块
  • 特色:高密度、高速度和低功耗

3、PAL

PAL(Programmable Array Logic)可编程阵列逻辑,是70年代末由MMI公司率先推出的一种低密度,一次性可编程逻辑器件,第一个具有典型实际意义的可编程逻辑器件(PLD-Programmable Logic Device)。它采用双极型工艺制作,熔丝编程方式。PAL在EDA中是指 一种现场可编程的门阵列逻辑器件,内部电路是在PLA基础上进行改进的。

  • 中文名:可编程阵列逻辑
  • 英文名:Programmable Array Logic
  • 构成:可编程的与逻辑阵列、固定的或逻辑阵列和输出电路
  • 特色:现场可编程;低密度;一次性可编程;方便构成各种时序逻辑电路

4、GAL

GAL是Lattice在PAL的基础上设计出来的器件,即通用阵列逻辑器件。GAL首次在PLD上采用了EEPROM工艺,使得其具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。GAL的输出部分增加了输出逻辑宏单元OLMC。
GAL

  • 中文名:通用阵列逻辑器件
  • 英文名:generic array logic
  • 构成:输入端;与阵列部分;输出宏单元;系统时钟;输出三态控制端。
  • 特色:电可擦除,改写次数超过100次;加密【保护知识产权】;存储区域存放识别标志【电子标签】

5、RTL

Register Transfer Level,直译为寄存器传输级,顾名思义,也就是在这个级别下,要描述各级寄存器(时序逻辑中的寄存器),以及寄存器之间的信号的是如何转换的(时序逻辑中的组合逻辑)。

  • 中文名:寄存器传输级
  • 英文名:Register Transfer Level
  • 构成:寄存器以及寄存器之间的逻辑操作
  • 作用:描述同步数字电路操作的抽象级

6、PLL

PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。
锁相环

  • 中文名:锁相环
  • 英文名:Phase Locked Loop
  • 构成:由鉴相器(PD,Phase Detector)、环路滤波器(LF,Loop Filter)和压控振荡器(VCO,Voltage Controlled Oscillator)
  • 基本特色:
    (1)利用外部输入的参考信号控制环路内部振荡信号的频率和相位;
    (2)可以实现输出信号频率对输入信号频率的自动跟踪;
    (3)当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住【锁相】
  • 优点:
    (1)锁定是无剩余频差;
    (2)具有良好的窄带载波跟踪性能
    (3)具有良好的宽带调制跟踪性能
    (4)门限性能好,易于集成。

7、LAB、ALM、LE【LC】

  • LAB【逻辑阵列块】即Logic Array Blocks,由数个LE、LE进位链、LAB控制信号、寄存器链以及本地互连信号等组成。
  • ALM【自适应逻辑资源块】Adapive Logic Module;ALM的操作模式有四种,分别是普通模式、扩展LUT模式、动态算术模式以及共享算术模式。
  • LE【LC】:FPGA器件内部,最小逻辑单元

8、DSP

数字信号处理(Digital Signal Processing,简称DSP)
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。

  • 数字信号处理是将信号以数字方式表示并处理的理论和技术。
  • 数字信号处理与模拟信号处理是信号处理的子集。
  • 目的是对真实世界的连续模拟信号进行测量或滤波。

9、IP

  • IP是知识产权(Intellectual Property)的英文简称。
  • 芯片行业中的知识产权可称为硅知识产权(Silicon Intellectual Property),简称SIP。
  • SIP的保护形式主要包括专利权保护(Patent Protection)和集成电路布图保护(IC Layout Protection)。
    参考:零基础学FPGA(四):IP是什么东西(什么是软核,硬核)

IP的种类

IP核有行为(Behavior)级、结构(Structure)级和物理(Physical)级三个层次的分类,对应着三个种类型的IP核,它们是由硬件描述语言设计的软核(Soft IP Core)、完成结构描述的固核(Firm IP Core) 和基于物理描述并经过工艺验证的硬核(Hard IP Core)。

  • 软核: 它是用硬件描述语言(HDL)设计的独立功能的电路模块。从芯片设计程度来看,它只经过了RTL级设计优化和功能验证,通常是以HDL文本形式提交给用户。所以它不包含任何物理实现信息;可以综合出正确的门电路级设计网表,并可以进行后续的结构设计,具有很大的灵活性。借助于EDA综合工具,用户可以很容易与其它IP软核,以及自主设计的电路部分合成一体,并根据各种不同半导体工艺,设计成具有不同性能的芯片。
  • 固核: 设计程度介于IP软核和IP硬核之间,它除了完成IP软核所有的设计外,还完成了门级电路综合和时序仿真等设计环节。一般地,它以门级电路网表的形式提供给用户;
  • 硬核: 它提供了电路设计最后阶段掩模级的电路模块。它以最终完成的布局布线网表形式提供给用户。IP硬核既具有结果的可预见性,也可以针对特定工艺或特定IP提供商进行功耗和尺寸的优化。

三种类型的IP核是电路功能模块设计在不同设计阶段的产物
基于FPGA的基础知识概全_第1张图片

0、LUT

查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个(S)RAM。

二、存储器类型

参考:ROM

1、ROM

只读存储器(Read-Only Memory,ROM)以非破坏性读出方式工作,只能读出无法写入信息。信息一旦写入后就固定下来,即使切断电源,信息也不会丢失,所以又称为固定存储器。ROM所存数据通常是装入整机前写入的,整机工作过程中只能读出,不像随机存储器能快速方便地改写存储内容。ROM所存数据稳定 ,断电后所存数据也不会改变,并且结构较简单,使用方便,因而常用于存储各种固定程序和数据。

  • 中文名:只读存储器
  • 英文名:Read-Only Memory
  • 构成:地址译码器、存储体、读出线及读出放大器
  • 特点:断电数据不丢失;速度快、结构简单、集成度高、造价低、功耗小、可靠性高。

2、EEPROM

EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。

  • 中文名:带电可擦可编程只读存储器
  • 英文名:Electrically Erasable Programmable read only memory
  • 特点:EEPROM,一般用于即插即用(Plug & Play);常用在接口卡中,用来存放硬件设置数据;也常用在防止软件非法拷贝的"硬件锁"上面;断电数据不丢失。

3、RAM

参考:随机存取存储器

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。

  • 中文名:随机存取存储器
  • 英文名:Random Access Memory
  • 构成:存储矩阵、地址译码器、读/写控制器、输入/输出、片选控制
  • 特点:除刷新时外可随时读写;速度很快;随机存取;断电数据丢失

类别
静态随机存储器(SRAM)

静态存储单元是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。SRAM存放的信息在不停电的情况下能长时间保留,状态稳定,不需外加刷新电路,从而简化了外部电路设计。但由于SRAM的基本存储电路中所含晶体管较多,故集成度较低,且功耗较大。
SRAM特点如下:
●存储原理:由触发器存储数据。
●单元结构:六管NMOS或OS构成。
●优点:速度快、使用简单、不需刷新、静态功耗极低;常用作Cache。
●缺点:元件数多、集成度低、运行功耗大。
●常用的SRAM集成芯片:6116(2K×8位),6264(8K×8位),62256(32K×8位),2114(1K×4位)。

动态随机存储器(DRAM)

DRAM利用电容存储电荷的原理保存信息,电路简单,集成度高。由于任何电容都存在漏电,因此,当电容存储有电荷时,过一段时间由于电容放电会导致电荷流失,使保存信息丢失。解决的办法是每隔一定时间(一般为2ms)须对DRAM进行读出和再写入,使原处于逻辑电平“l”的电容上所泄放的电荷又得到补充,原处于电平“0”的电容仍保持“0”,这个过程叫DRAM的刷新。
DRAM的刷新操作不同于存储器读/写操作,主要表现在以下几点:
(1)刷新地址由刷新地址计数器产生,不是由地址总线提供。
(2)DRAM基本存储电路可按行同时刷新,所以刷新只需要行地址,不需要列地址。
(3)刷新操作时存储器芯片的数据线呈高阻状态,即片内数据线与外部数据线完全隔离。
DRAM与SRAM相比具有集成度高、功耗低、价格便宜等优点,所以在大容量存储器中普遍采用。DRAM的缺点是需要刷新逻辑电路,且刷新操作时不能进行正常读,写操作。
DRAM特点如下:
●存储原理:利用MOS管栅极电容可以存储电荷的原理,需刷新(早期:三管基本单元;之后:单管基本单元)。
●刷新(再生):为及时补充漏掉的电荷以避免存储的信息丢失,必须定时给栅极电容补充电荷的操作。
●刷新时间:定期进行刷新操作的时间。该时间必须小于栅极电容自然保持信息的时间(小于2ms)。
●优点: 集成度远高于SRAM、功耗低,价格也低。
●缺点:因需刷新而使外围电路复杂;刷新也使存取速度较SRAM慢,所以在计算机中,DRAM常用于作主存储器。

4、SDRAM

参考:SDRAM

同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。

  • 中文名:同步动态随机存取内存
  • 英文名:synchronous dynamic random-access memory
  • 取址:bank块地址—定位逻辑块;行地址和列地址—定位存储单元
  • 容量定义:地址数位宽Bank(存储块)

5、Flash

参考:Flash

FLASH在电子以及半导体领域内往往表示Flash Memory的意思,即平时所说的“闪存”,全名叫Flash EEPROM Memory。
flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。

  • 中文名:闪存
  • 英文名:Flash EEPROM Memory
  • 特点:带电可擦可编程;读取数据快;数据断电不丢失。

三、逻辑运算

参考:位与&, 位或| ,位异或 ^ 总结

1、&—按位与

按位与运算符“&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位都为1时,结果位才为1。参与运算的两个数均以补码出现。

规则:
1&1=1
1&0=0
0&1=0
0&0=0

    1 1 0 1
  & 1 0 0 1
    1 0 0 1  //结果

补充:&& —逻辑与;返回结果为0或1.【同时为真才为真】

2、|—按位或

按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位(也就是最后一位)相或。只要对应的二个二进位有一个为1时,结果位就为1。

128:     (0001 0000 0000127:     (0000 1111 1111) (高位用0补齐)

按位或就是(0001 1111 1111)=255

补充:||—逻辑或;两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。

3、^—按位异或

参加运算的两个数据,按二进制位进行“异或”运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0
异或的几条性质:

  • 交换律;
  • 结合律(即(a ^ b) ^ c == a^ (b ^ c));
  • 对于任何数x,都有x ^ x=0,x ^ 0=x;
  • 自反性: a ^ b ^ b=a^0=a;

4、<<—左移

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a<< 2将a的二进制位左移2位,右补0,
左移1位后a = a *2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。

5、>>—右移

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
例如:a = a>> 2 将a的二进制位右移2位,
左补0 or 补1得看被移数是正还是负。

四、基本概念

建立时间与保持时间

静态时序分析中最基本的就是setup和hold时序分析,其检查的是触发器时钟端CK与数据输入端D之间的时序关系

建立时间:(setup time)指在时钟有效沿之前,数据输入端信号必须保持稳定的最短时间
基于FPGA的基础知识概全_第2张图片
保持时间:(hold time)指在时钟有效沿之后,数据输入端信号必须保持稳定的最短时间;hold time时序检查确保新数据不会在触发器稳定输出初始数据之前过早到达D端而覆盖其初始数据。
基于FPGA的基础知识概全_第3张图片
时钟抖动和时钟偏移
时钟抖动:(Clock Jitter)指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。
基于FPGA的基础知识概全_第4张图片
时钟偏斜(skew)是指同样的时钟产生的多个子时钟信号之间的延时差异。它表现的形式是多种多样的,既包含了时钟驱动器的多个输出之间的偏移,也包含了由于PCB走线误差造成的接收端和驱动端时钟信号之间的偏移。
时钟偏斜指的是同一个时钟信号到达两个不同寄存器之间的时间差值,时钟偏斜永远存在,到一定程度就会严重影响电路的时序。利用全局时钟网络可尽量将其消除。
同步电路和异步电路的区别
同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。
异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,只有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。
竞争和冒险

五、参考资料

建立时间和保持时间关系详解

你可能感兴趣的:(FPGA,fpga开发)