基础概念
Xilinx系FPGA使用vivado全家桶进行开发
性价比/低功耗:Spartan系列,常见Spartan-6、Spartan-7
中端/性价比:Artix系列,常见Artix-6、Artix-7
中高端:Kintex系列,常见Kintex-7
旗舰:Virtex系列,常见Virtex-7
命名规则:以Spartan-7 xc7s15ftgb196-1为例
| 用途级别 | 哪一代产品 | 逻辑单元数 | 封装类型 | RoHS | 封装元件号 | 引脚数 | 速度等级 |
|---|---|---|---|---|---|---|---|
| xc | 7 | 15 | ft | g | b | 196 | -1 |
| 商业级 | 第7代 | 15k个逻辑单元(单位为k) | 1mm | 6/6 | 共196引脚 | 慢速 |
速度等级如下
| -1 | -L1 | -L2 | -2 | -3 |
|---|---|---|---|---|
| 慢速 | 慢速低功耗 | 中等速度低功耗 | 中等速度 | 高速 |
FPGA内部资源简介
常用可编程逻辑器件:
- CPLD:复杂可编程逻辑器件。基于乘积项的与或逻辑阵列,基于FLASH运行,逻辑写入后会一直保存,掉电不丢失
- FPGA:现场可编程门阵列。基于查找表的CLB阵列,基于SRAM运行,采用CMOS工艺制造,逻辑写入后需要上电才能保存,掉电丢失
这两种器件都只能编程数字电路,无法在其上建立模拟电路
FPGA的编程数据实际上存储在其中的SRAM里,运行时将数据读出配置好片上硬件资源运行;很多FPGA会配有单独的PROM,在运行时先将PROM读入片内RAM,配置完成后,FPGA开始工作;掉电后FPGA内部逻辑关系清空
FPGA可以反复使用,一块Artix传祖孙三代天天用都不成问题;如果使用外接PROM的方法,FPGA的编程不需要专用的FPGA编程器,只要用通用的PROM编程器编程即可
FPGA内部一般有以下硬件资源:
- 可编程逻辑单元(Xilinx制造的FPGA中将其称为CLB可编程逻辑块,由多个基本的LUT查找表、REG寄存器、MUX多路选择器组成)
- 可编程IO单元(用于可编程逻辑与外部引脚的连接)
- 底层嵌入功能单元(包括但不限于PLL、ADC等数字/模拟电路器件)
- 嵌入式块RAM(用于存储内部数据和可编程的硬件逻辑)
- 布线资源(将各个功能模块之间连接起来)
- 硬核(只有一部分FPGA才会嵌入,一般功能比较专用)
其中CLB是组成FPGA的基本逻辑单元,LUT则是FPGA中逻辑表达式的基础
常用电路结构
FPGA不擅长顺序结构,更擅长并行结构,如果要使用FPGA处理顺序结构的算法,比较常用有限状态机模型(FSM)
有限状态机FSM(Finite State Machine)
有限状态机:在有限个状态之间按一定规律转换的时序电路
在FPGA中经常使用mealy状态机,它由当前输入和当前状态共同决定其输出
状态机内部使用状态寄存器来存储当前状态:状态寄存器由一组触发器组成,用于记忆状态机当前所处的状态,这个状态的改变一般只发生在时钟信号跳变沿
状态是否改变、如何改变都取决于当前输入和当前状态的组合逻辑F(F是当前状态和输入信号的函数)
状态机的输出则由当前输入和当前状态的输出组合逻辑G决定(G也是当前状态和输入信号的函数)
组合逻辑F是状态寄存器的激励,当时钟信号跳变时,组合逻辑被读入状态寄存器,同时当前状态被输出到组合逻辑G
输出只取决于当

本文详细介绍了Xilinx FPGA的不同产品系列,如Spartan、Artix、Kintex和Virtex,以及它们的特性。深入解析了Vivado开发工具的使用,从设计流程到资源介绍,涵盖了工程模式、非工程模式、IP集成、约束设置和比特流烧录等内容。

7127

被折叠的 条评论
为什么被折叠?



