第三章 可编程元器件的工作原理
什么叫做现场可编程性?
指用户任何时候都可以通过电路板上的下载电缆或硬件编程器来修改FPGA/CPLD的配置,以达到修改逻辑功能的目的。也就是说用户可以在实际系统的现场对PLD进行内部结构修改。
可编程逻辑器件有什么优点?
- 体系、结构和逻辑单元灵活
- 集成度高
- 使用范围宽
- 设计开发周期短、成本低
- 开发工具先进
- 标准产品无需测试、质量稳定,可实时在线检验
了解基于乘积项和基于查找表实现组合逻辑的原理。
- 基于乘积项:任何一个组合逻辑都可以表示为乘积项之和的形式,每个乘积项是输入变量的一个组合,通过逻辑门将这些乘积项组合起来形成输出。
- 基于查找表:将逻辑函数的真值表的每一行作为查找表的一项存储在内存中,形成地址和数据的映射,输入的组合用于查找表中的地址,得到相应的输出。
FPGA和CPLD是如何实现时序逻辑的?
FPGA 和 CPLD 都通过时钟信号和时序元件(如触发器)来实现时序逻辑。
- CPLD 的逻辑阵列块(LAB)的宏单元中包含逻辑阵列/乘积项选择矩阵/可编程触发器三个功能块。其中,乘积项选择矩阵可以分配一些乘积项信号作为触发器的控制信号,对触发器进行清除、预置、提供时钟和时钟使能等控制操作;可编程触发器可以单独编程设计成D/T/JK/RS触发器工作模式,并有可编程的时钟控制信号。
- FPGA 的可配置逻辑块(CLB)中包含函数发生器/进位逻辑/存储单元。其中,存储单元可以被配置成边沿触发的D触发器,也可以被配置成电平触发的锁存器。同时 FPGA 还集成了大量的可选择存储块,每一个存储块是完全的双端口 RAM,两个端口是具有独立时钟信号和控制信号的同步端口,功能相同。可编程的输入/输出块(IOB)中包含的寄存器也可以配置成边沿触发的D触发器或电平触发的锁存器。
Xilinx公司的XC3000系列FPGA结构中包括哪几个主要部分?各部分的功能是什么?
- 可配置存储器(SRAM阵列):是静态存储器,主要作用是装载配置文件,控制 CLB、IOB 和 PI 的连接,可重复使用。
- 可编程逻辑块(CLB):编程实现逻辑功能。
- 可编程输入输出模块(IOB):依据可配置存储器单元控制输入和输出。
- 可编程内部连线(PI):实现 FPGA 芯片内部 CLB 之间、IOB 之间、IOB 与 CLB 之间的连接。
ALTERA的FLEX10K系列器件结构中包括哪几个主要部分?各部分的功能是什么?
- 嵌入式阵列(EAB):实现逻辑功能和存储功能。
- 逻辑阵列块(LAB):实现逻辑功能。
- 快速通道:连接逻辑单元(IE)和器件I/O引脚,可以驱动I/O引脚或馈送到器件中的其他LAB。
- I/O单元:作为输入/输出或双向引脚
FPGA和CPLD在结构上有什么不同点?由此产生的性能的不同点有哪些?
结构上
- FPGA 逻辑单元的粒度比 CPLD 小。
- FPGA 芯片的逻辑门密度比 CPLD 芯片高。
- CPLD 的内连线采用 PIA 结构,内连率很高;FPGA 采用有限的布线线段连接内部各部件。
- CPLD 中采用 EPROM/E^2PROM 和 Flash 等存储器来保存编程信息,FPGA 大多采用 SRAM 来存储配置信息。
- CPLD 的 LAB 采用宏单元结构。
性能上
- FPGA 设计更为灵活。
- FPGA 内部连线长度会产生积累,需要人工布局布线来优化速度和面积。
- 在输入设计不变的情况下,每次布局布线后,CPLD 的布线延时是一定的,而 FPGA 的延时是不一样的。
- CPLD 更适合完成各类算法和组合逻辑;FPGA 具有更丰富的触发器资源,更适合完成时序较多的逻辑电路。
- CPLD 是非易失性的 PLD,FPGA 大多是易失性的 PLD。
- CPLD 的功耗比 FPGA 高,集成度越高越明显。
简述FPGA/CPLD的设计流程。
- 设计输入
- 前仿真
- 设计输入编译(综合)
- 设计输入的优化
- 布局布线
- 后仿真
- 芯片配置
Cyclone V SoC的硬件结构中除了可编程逻辑之外,还有哪些主要部分?
- 精度可调的 DSP 模块
主要包括输入寄存器组、预加器、内部系数表、乘法器、加法器、累加器/链式输出加法器、脉动寄存器、双累加寄存器和输出寄存器等。 - 嵌入式存储器
- 时钟网络
- I/O 单元
- 外部存储器接口
- 低功耗串行收发器
- 硬核处理器系统
- 精度可调的 DSP 模块