FPGA的定义
FPGA(Field Programmable Giate Array):现场可编程逻辑门阵列是专用集成电路(ASIC)领域的一种半定制电路
主要特点:可以实现硬件灵活定制,门电路多
用途:功能验证、算法加速、数据处理。
与单片机的对比
单片机(MCU) FPGA
结构: 哈佛结构/冯诺伊曼结构 查找表
代码执行: 串行 并行
侧重: 软件设计(软件代码) 硬件设计
编程语言: C/C++/汇编 Verilog HDL/ VHDL
FPGA的优点
1.高密度集成以创建复杂的逻辑功能
2.高性能、低成本
3.有许多可用的I/O标准和功能
4.包含大量IP核,方便开发
5.设计灵活、可重复编程
主要制造商
1.Intel(Altera)
2.Xilinx(赛灵思)
3.Lattice(莱迪思)
4.Microsemi(美高森美)
应用领域和前景
凭借其灵活性高、开发周期短、并行计算效率高等特点,广泛应用于5G无线、自动驾驶、人工智能、云计算等前沿科技领域。
FPGA内部结构
1.可编程逻辑单元
LAB(s)逻辑阵列块/或自适应逻辑模块(inter的说法)
- 逻辑单元(LE(s))
- 自适应逻辑模块(ALM(s))(功能比LE要复杂但与LE同级,c5的芯片)
- 查找表(LUT)
- 进位逻辑(辅助逻辑)
- 输出寄存器逻辑(辅助逻辑)
(核心内容是查找表和寄存器)
2.可编程连线
LAB排成阵列,行和列通过可编程互连线互连
3.可编程I/O
IOB输入/输出模块
- 输入/输出/双向
- 多个IO标准
- 差分信号输出
- 电流驱动强度/速率调节
- 片上终端/上拉电阻
- 开漏/三态
4.时钟资源(FPGA本身不产生时钟,只对外部时钟资源进行管理)
- 专用输入时钟引脚
- 锁相环(PLL)
- 时钟控制模块
1.选择时钟以提供时钟布线网
2.可启用/禁用时钟以节能
- 时钟布线网络
1.全局时钟网络驱动整个设备
2.局部时钟网络驱动特定设备
5.嵌入式功能单元
DSP模块
- 高性能乘法/加法/累加运算
- 可代替LE逻辑提高设计中的数据运算性能
6.存储器资源
- 单/双口RAM
- 只读存储器ROM
- 位移寄存器或FIFO缓冲器
FPGA开发流程
1,确定功能需求 分析功能
2.设计模块框架
3.确定子模块功能与模块间信号
(设计前准备)
经典开发流程(自顶向下)
1.设计输入:VerilogHDL/VHDL
2.RTL功能仿真:验证逻辑功能&数据流,Modelsim工具
3.分析综合:将设计映射为器件模型,生成网表文件(此时器件未映射)
4.布局布线:功能映射、指定布线资源
5.门级仿真:根据估计的布局布线延时进行时序仿真(一般不做)
6.时序分析:验证设计是否满足时序和性能要求——Timing Analyzer 工具
7.板级验证:板级调试—Signal Tap嵌入式逻辑分析工具