FPGA基础及电路设计

  • 前言
  • 1 FPGA概述
  • 2 FPGA基础及7系列FPGA基本原理
  • 3 FPGA基本逻辑结构
  • 4 补充:FPGA基本结构
    • 4.1 可配置逻辑单元(Configurable Logic Block,CLB)
    • 4.2 可编程输入输出单元(IOB)
    • 4.3 嵌入式块RAM
    • 4.4 内嵌的底层功能单元和嵌入式专用硬核
    • 4.5 完整的时钟管理
    • 4.6 丰富的布线资源

前言

本系列是记录卢有亮老师的《数字设计FPGA应用》的学习笔记,视频课程链接MOOC平台数字设计FPGA应用
教材《Xilinx FPGA原理与实践—基于Vivado和Verilog HDL》——卢有亮

1 FPGA概述

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,
它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既
解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者的设计而改变,所以FPGA可以完成所需要的逻辑功能。

2 FPGA基础及7系列FPGA基本原理

Xilinx Artix-7 系列器件以28纳米高性能低功耗 ,尤其适合于可满足航空电子和通信等领域的尺寸、重量、功耗和成本敏感型市场需求。提供大量的可供开发者直接使用的IP核,是市场的主流。

3 FPGA基本逻辑结构

Xilinx FPGA采用了阵列逻辑单元LCA(Logic Cell Array)概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

通过查找表LUT实现逻辑函数。

1个可配置逻辑块CLB包含多个SLICE

1个SLICE包含多个查找表,进位链和寄存器。

4 补充:FPGA基本结构

主要由以下几部分组成:
(1)基本可编程逻辑单元(CLB)
(2)可编程输入输出单元(IOB)
(3)嵌入式块RAM
(4)内嵌的底层功能单元和嵌入式专用硬核
(5)完整的时钟管理模块
(6)丰富的布线资源

4.1 可配置逻辑单元(Configurable Logic Block,CLB)

CLB由两个SLICE构成,SLICE可分为SLICEL(L:Logic)和SLICEM(M:Memory),因此CLB也可分为CLBLL和CLBLM两类。
SLICE由查找表(LUT)和寄存器(Register)组成,查找表完成纯组合逻辑功能。FPGA内部寄存器可配置为带同步/异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。FPGA一般依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。

学习底层配置单元的LUT和Register比率的重要意义在于器件选型和规模估算。
注意:FPGA中组合逻辑全部使用查找表LUT实现,此外,查找表也可用来作为分布式存储使用。

4.2 可编程输入输出单元(IOB)

目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。

4.3 嵌入式块RAM

目前大多数FPGA都有内嵌的块RAM。嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。

CAM,即为内容地址存储器。写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。简单的说,RAM是一种写地址,读数据的存储单元;CAM与RAM恰恰相反。

除了块RAM,Xilinx和Lattice的FPGA还可以灵活地将LUT配置成RAM、ROM、FIFO等存储结构。

4.4 内嵌的底层功能单元和嵌入式专用硬核

底层嵌入功能单元是指通用程度较高的嵌入式功能模块。如锁相环(Phase Locked Loop,PLL)、DLL(Delay Locked Loop)、DSP(Digital Signal Processing)和CPU等。
与“底层嵌入单元”是有区别的,这里指的硬核主要是那些通用性相对较弱,不是所有FPGA器件都包含硬核。

4.5 完整的时钟管理

全局时钟是一种专用互联网络,是专为覆盖对FPGA中各种资源的所有时钟输入设计的。这些时钟网络的设计旨在降低歪斜、占空比失真和功耗。其设计的目的还在于支持甚高频信号。
全局时钟控制资源和网络通常由以下通路和组件构成:全局时钟输入 、全局时钟缓冲器 、时钟树和时钟网络-GCLK 、时钟区域。

4.6 丰富的布线资源

长线资源、短线资源及逻辑单元內部布线资源。

参考链接:FPGA的基本结构
FPGA的基本结构

1.1 FPGA基础及电路设计相关推荐

  1. FPGA基础入门篇(四) 边沿检测电路

    FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...

  2. FPGA基础知识|芯片设计基础知识

    FPGA 基础知识 可查看原文:FPGA基础知识 1.查找表 LUT 和编程方式第一部分: 查找表 LUT FPGA 是在 PAL.GAL.EPLD.CPLD 等可编程器件的基础上进一步发展的产物.它 ...

  3. (54)FPGA基础编码D触发器(三)

    (54)FPGA基础编码D触发器(三) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA基础编码D触发器(三) 5)技术交流 6)参考资料 2 FPGA入门与 ...

  4. (53)FPGA基础编码D触发器(二)

    (53)FPGA基础编码D触发器(二) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA基础编码D触发器(二) 5)技术交流 6)参考资料 2 FPGA入门与 ...

  5. (52)FPGA基础编码D触发器(一)

    (52)FPGA基础编码D触发器(一) 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA基础编码D触发器(一) 5)技术交流 6)参考资料 2 FPGA入门与 ...

  6. FPGA基础资源之IOB的应用

    FPGA基础资源之IOB的应用 1.应用背景 在我们做时序约束时,有时候需要对FPGA驱动的外围器件进行input_delay/output_delay进行约束.不知道,大家有没有被以下这种类似的现象 ...

  7. FPGA基础实验:点亮LED

    FPGA基础实验"点亮LED" 进行FPGA 入门,先了解实验 项目创建.编译和下载的基础步骤 注:本系列实验使用的都是Altera-DE0开发板 新建一个工程,命名为" ...

  8. 初学者必须要知道的FPGA基础知识

    初学者必须要知道的FPGA基础知识 一.FPGA是什么? 在<FPGA至简设计原理与应用>一书里是这样描述的:『FPGA的全称为Field-Programmable Gate Array, ...

  9. 【FPGA基础篇】底层结构组成

    文章目录 前言 CPU和DSP.FPGA.ASIC对比 FPGA和CPLD比较 FPGA基础 IOB--输入输出单元 CLB--可编程逻辑模块 LUT--查找表 MUX--选择器(复用器) Carry ...

最新文章

  1. Bossy智能便贴:让工作更有效率
  2. ANSYS静力学分析时如何添加重力
  3. Java的知识点31——封装拷贝、封装释放、实现放大器对声音的放大功能
  4. 通过输入流获取json格式数据转为map格式
  5. 长安大学第三届ACM-ICPC程序设计竞赛 L题
  6. Android权限申请的学习实践
  7. Linux 下shell中exec解析
  8. as3 浅复制 深复制
  9. 学习笔记——本地事务ACID四大特性
  10. 怎么钢枪_和平精英有战术钢枪和无脑冲有何区别?你们怎么看待这个问题
  11. 异常捕获,返回错误码code给前端
  12. java io类filereader,39. Java IO: FileReader
  13. 在net.tcp模式下,由SvcUtil.exe生成代理类文件和配置文件(转)
  14. 刚刚卸任的谷歌搜索及AI负责人,被苹果挖走了
  15. Discuz! 7.2 二次开发基础 (一)
  16. 数据仓库与数据挖掘-挖掘高价值B站up主案例
  17. mysql/jdbc:设置useInformationSchema=true读取表注释信息(table_comment)
  18. 弹出框和提示框效果以及代码展示
  19. 4.Python数据容器之字符串(str)
  20. 独立成分分析ICA/FastICA

热门文章

  1. Android 地理位置定位
  2. 微信小程序实现身份证识别-ocr
  3. WingIDE下载和安装
  4. vue影院在线选座--可拖拽、缩放--A/B/C三级座位
  5. 发两个可以装逼的网址
  6. React 教程及其API接口文档
  7. “获取硬盘信息失败,请谨慎操作”的解决方案
  8. 尚硅谷--尚品汇项目笔记
  9. 如何开发一个直播类 APP 项目开发原理
  10. 数据结构题集(c语言版)第1章:绪论