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
| ADDRESS | BINARY | CONTENTS |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 2 | 0010 | 1 |
| 3 | 0011 | 0 |
| 4 | 0100 | 1 |
| 5 | 0101 | 0 |
| 6 | 0110 | 0 |
| 7 | 0111 | 1 |
| 8 | 1000 | 1 |
| 9 | 1001 | 0 |
| 10 | 1010 | 0 |
| 11 | 1011 | 1 |
| 12 | 1100 | 0 |
| 13 | 1101 | 1 |
| 14 | 1110 | 1 |
| 15 | 1111 | 0 |
三、FPGA设计流程
设计规范 → RTL实现 → RTL仿真 → 综合 → 布局布线 → 时序分析 → 门级模拟 → 板级测试
- RTL实现:面向结构或功能的描述
- 功能仿真:确认逻辑功能,不考虑延时
- 综合:将设计转化为和器件相关的描述
- 布局布线:将逻辑实体映射到目标器件
- 时序分析:静态时序分析,确认性能
- 门级模拟:时序仿真,确认设计正常工作
- 板级测试:仿真版设计,板上程序测试
四、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构架优化
- 增加设计弹性
两类模块
- Altera专用Megafunctions
- 可配置模块库(LPMs)- 工业标准逻辑函数
六、HardCopy技术
- 将验证成功的FPGA设计转移到结构化ASIC
- 不再具有可编程特性,适合大批量生产
- 功耗降低40%,内部时延降低
七、FPGA vs ASIC对比
| 方面 | FPGA | ASIC |
|---|---|---|
| 设计周期 | 短 | 长 |
| 修改成本 | 低 | 高 |
| 速度 | 较低 | 高 |
| 功耗 | 较高 | 低 |
| 成本(批量) | 高 | 低 |
八、适用场景
适合使用FPGA的场景:
- 需要高速吞吐的I/O(高速ADC/DAC)
- 需要高速接口(千兆以太网、HDMI、SATA、PCIe)
- 需要实时DSP功能
- 需要额外接口(SPI、I2S、I2C等)
- 中低量产品
不适用场景:
- 大批量产品(ASIC或HardCopy更优)
关键要点
- 风险双刃剑:决定使用FPGA解决问题,就有了两个问题
- 生命周期:超长的器件生命周期,保障产品长期维护
- 设计门槛:FPGA设计需要软硬件双重要求,设计周期更长