FPGA设计概述 - 基础概念与设计流程

核心内容概述

本资料是飞凌嵌入式FPGA培训的第一讲,系统介绍了可编程逻辑器件(PLD)的基础概念、设计流程和选型建议。

一、可编程逻辑器件分类

1. PLA(Programmable Logic Array)

  • 最简单的可编程器件,由AND plane和OR plane组成
  • 理论依据:任何逻辑函数都可写成积之和形式
  • 示例:F(A,B,C) = A’B’C + AB’C + ABC

2. CPLD(Complex PLD)

  • 由多个PLA组成,具有一定的互联结构
  • 适合中等规模逻辑设计

3. FPGA(Field Programmable Gate Array)

  • 采用类似RAM的结构,实现LUT(查找表)逻辑单元
  • 集成了更多内存单元
  • LUT是一个一位宽的内存单元,可被编程和重编程

二、LUT原理

一个四输入的与门可被LUT取代为四位地址输入、一位数据输出的存储器:

  • 存储器有16个位置
  • 下标为15的存储1,其他为0
ADDRESSBINARYCONTENTS
000000
100011
200101
300110
401001
501010
601100
701111
810001
910010
1010100
1110111
1211000
1311011
1411101
1511110

三、FPGA设计流程

设计规范 → RTL实现 → RTL仿真 → 综合 → 布局布线 → 时序分析 → 门级模拟 → 板级测试
  1. RTL实现:面向结构或功能的描述
  2. 功能仿真:确认逻辑功能,不考虑延时
  3. 综合:将设计转化为和器件相关的描述
  4. 布局布线:将逻辑实体映射到目标器件
  5. 时序分析:静态时序分析,确认性能
  6. 门级模拟:时序仿真,确认设计正常工作
  7. 板级测试:仿真版设计,板上程序测试

四、Altera产品系列

高性能系列(Stratix)

  • Stratix, Stratix GX, Stratix II, Stratix III, Stratix IV, Stratix V
  • 与Xilinx Vertex系列竞争

低成本系列(Cyclone)

  • Cyclone V, Cyclone IV, Cyclone II
  • 与Xilinx Spartan和Artix系列竞争

CPLD系列(MAX)

  • MAX V, MAX II, MAX 7000, MAX 3000
  • 零功耗、低成本特性

嵌入式处理器

  • Nios II, MP32, ARM Cortex-M1

五、Mega Wizard与IP核

优势

  • 加速设计
  • Altera构架优化
  • 增加设计弹性

两类模块

  1. Altera专用Megafunctions
  2. 可配置模块库(LPMs)- 工业标准逻辑函数

六、HardCopy技术

  • 将验证成功的FPGA设计转移到结构化ASIC
  • 不再具有可编程特性,适合大批量生产
  • 功耗降低40%,内部时延降低

七、FPGA vs ASIC对比

方面FPGAASIC
设计周期短长
修改成本低高
速度较低高
功耗较高低
成本(批量)高低

八、适用场景

适合使用FPGA的场景:

  1. 需要高速吞吐的I/O(高速ADC/DAC)
  2. 需要高速接口(千兆以太网、HDMI、SATA、PCIe)
  3. 需要实时DSP功能
  4. 需要额外接口(SPI、I2S、I2C等)
  5. 中低量产品

不适用场景:

  • 大批量产品(ASIC或HardCopy更优)

关键要点

  1. 风险双刃剑:决定使用FPGA解决问题,就有了两个问题
  2. 生命周期:超长的器件生命周期,保障产品长期维护
  3. 设计门槛:FPGA设计需要软硬件双重要求,设计周期更长