对初级 FPGA工程师而言,必须掌握FPGA相关基础知识、精通硬件描述语言、熟练数字 电路设计、加强工程项目的实践。应广大初级FPGA工程师/FPGA爱好者之需, 电子发烧友网策划整合并隆重推出《FPGA核心基础知识详解》系列技术文章,以后会陆续推出其他章节,敬请广大工程师朋友继续关注和留意。
一、FPGA基础知识
1. 什么是 FPGA?
现场可编程门阵列 (FPGA) 是由通过可编程互连连接的可配置逻辑块 (CLB) 矩阵构成的可编程 半导体器件。相对于专为特定设计定制构建的专用集成电路 (ASIC) 而言,FPGA 能通过编程来满足应用和功能要求。
虽然市面上也有一次性可编程 (OTP) FPGA,但绝大多数是基于 SRAM 的类型,可随着设计的演化进行重编程。
请参考下面的内容来具体了解方框图中的各个突出显示区域。
图1.1 FPGA单元结构
(1)IOB 细节
目前的 FPGA 可支持许多种 I/O 标准,因而为您的系统提供了理想的接口桥接。FPGA 内的 I/O 按 bank 分组 (见下图) ,每个 bank 能独立支持不同的 I/O 标准。 目前最先进的 FPGA 提供了十多个 I/O bank,能够提供灵活的 I/O 支持。
图1.2 FPGA内的 I/O 按bank分组图示
(2)CLB 细节
可配置逻辑块是 FPGA 的基本逻辑单元。实际数量和特性会依器件的不同而改变,但是每个 CLB 都包含一个由 4 或 6 个输入、一些选择电路(多路复用器等)和触发器组成的可配置开关矩阵。开关矩阵具有高度的灵活性,经配置可以处理组合型逻辑、移位寄存器或 RAM。
图1.3高层次的 CLB 简介
(3)DCM 细节
业界大多数 FPGA 均提供数字时钟管理(Xilinx 所有 FPGA 均具有此特性),几乎消除了过去设计者在将全局信号设计到 FPGA 中时不得不面对的歪斜及其它问题。
|