当前课程知识点:EDA技术与应用 >  第二章 可编程逻辑器件概述 >  2.3 FPGA的结构和原理 >  2.3.2 FPGA的结构和原理 教学视频

返回《EDA技术与应用》慕课在线视频课程列表

2.3.2 FPGA的结构和原理 教学视频在线视频

下一节:2.3.4 FPGA的结构和原理 讨论

返回《EDA技术与应用》慕课在线视频列表

2.3.2 FPGA的结构和原理 教学视频课程教案、知识点、字幕

我们上节课主要讲授了

CPLD的内部结构和工作原理

从CPLD的结构可以看到

它和前面讲的PAL、GAL等

PLD电路的结构形式基本一样

都采用与或阵列加上输出逻辑单元

而今天要讲的FPGA电路的结构形式

则完全不同

它由若干独立的可编程逻辑块组成

用户通过编程

将这些逻辑块连接成所需的数字系统

和CPLD的结构类似

FPGA内部也主要由三部分构成

可配置逻辑块CLB

可编程互连资源PIR

输入输出模块IOB

主要由这三部分构成

CLB,可配置逻辑块

主要实现逻辑功能的单元组成

可编程互连资源PIR实现互连方式

即CLB与CLB之间

CLB与IOB之间的互连

输入输出模块IOB

主要是实现引脚的配置

那么三者之间功能和CPLD类似

但构成方式却不相同

CPLD宏单元采用的是

与或阵列方式实现组合电路

而FPGA内部的CLB

却采用查找表结构实现组合逻辑电路

查找表简称为LUT

LUT本质上就是一个RAM

FPGA中多使用四输入的LUT

每一个LUT可以看成一个有4位地址线的

16x1的RAM

例如,当用户通过原理图

描述了一个四输入与门的时候

那么软件会自动计算16种结果

存到16×1.的RAM之中

当我们输入信号,如四个1时

就相当于输了一个地址进行查表

要么将其对应的结果“1”就会输出

在FPGA中所有组合电路

都是采用这种查找表方式实现的

下面我们以Xilinx的XC4000为例

介绍各模块的构成及工作原理

可配置逻辑块CLB的构成如图所示

主要包括三个函数发生器

可编程数据选择器和可编程触发器

三个函数发生器实际上也是三个LUT

用于实现9变量的组合逻辑电路

组合逻辑函数的输出可以通过

4选1数据选择器和可编程触发器相连

构成时序逻辑电路

组合逻辑电路的输出也可通过

可编程的2选1数据选择器直接输出

即实现组合逻辑电路

图中的4选1数据选择器和2选1数据选择器

只画出了数据输入端和输出端

其地址线并没有画出

4选1数据选择器和2选1数据选择器

它们分别需要两根地址线和一根地址线

其地址码都受编程数据的控制

从分析CLB构成可以知道

在FPGA中

可编程阵列块是实现逻辑功能的基本单元

可以实现小规模的组合或时序电路

下面,我们将继续分析FPGA的互连线

和CPLD的连线是否有所不同

FPFA的可编程互连线

由金属连线、可编程开关点

以及开关矩阵组成

金属连线按照相对长度

可分为单长线、双长线和长线

那么长线用于关键信号的布线

如全局时钟、全局清零信号等

双长线用于较长距离或分支信号的传递

单长线用于完成

基本逻辑单元之间的逻辑互连和布线

图中的可编程开关矩阵的连接点上

有六个选通晶体管

进入开关矩阵信号

可与任何方向的单长线或长线互连

并且每经过一个选通晶体管

就有一个延长时间

显然,FPGA内部信号传输延时是不可确定的

FPGA的输入输出模块内部结构如图

IOB控制模块允许每个 I/O引脚

单独被配置为输入、输出和双向工作方式

在此不再详细讲述

下面我们分析一下FPGA的编程工艺

FPGA主要采用SRAM编程

SRAM编程是用每一个触发器去控制编程点

通过交叉点上所存放的0、1

来控制电路的组态

SRAM编程单元如图所示

这个电路实际上就是

我们半导体存储器SRAM的存储单元

从前面学过的知识可知

这样的存储单元断电

内部的存储信息就消失

因而,每次接通电源以后

我们必须给FPGA的存储器装载编程数据

这个装载过程

是在FPGA内部一个时序电路的控制下

自动进行的

FPGA理论上可以无数次编程

前面以XC4000为例

介绍了FPGA的基本架构和工作原理

由于FPGA芯片推陈出新速度快

结构上也在不断发生变化

不同厂家、不同规模

不同系列的FTP的内部结构

也不完全相同

如Xilinx公司的virtex II

根据数据手册上的分类

主要包括以下几个部分:

输入输出模块

可配置逻辑单元

嵌入块RAM

嵌入式18×18乘法器

全局时钟网络

数字时钟管理模块

布线资源等等

同学们,本次课我们共同学习了

FPGA的构成、各模块工作原理

以及FPGA的编程工艺

下节课,我们将共同学习

CPLD和FPGA的编程与配置

再见

EDA技术与应用课程列表:

第一章 EDA技术概述

-1.1 EDA技术概述

--1.1.1 EDA技术概述 导学

--1.1.2 EDA技术概述 教学视频

--1.1.3 EDA技术概述 单元测验

--1.1.4 EDA技术概述 讨论

第二章 可编程逻辑器件概述

-2.1 可编程逻辑器件(PLD)概述

--2.1.1 可编程逻辑器件 导学

--2.1.2 可编程逻辑器件概述 教学视频

--2.1.3 可编程逻辑器件概述 单元测验

--2.1.4 可编程逻辑器件概述 讨论

-2.2 CPLD的结构和原理

--2.2.1 CPLD结构和原理 导学

--2.2.2 CPLD的结构和原理 教学视频

--2.2.3 CPLD的结构和原理 单元测验

--2.2.4 CPLD的结构和原理 讨论

-2.3 FPGA的结构和原理

--2.3.1 FPGA的结构和原理 导学

--2.3.2 FPGA的结构和原理 教学视频

--2.3.3 FPGA的结构和原理 单元测验

--2.3.4 FPGA的结构和原理 讨论

-2.4 FPGA和CPLD的选用

--2.4.1 FPGA和CPLD的选用 导学

--2.4.2 FPGA和CPLD的选用 教学视频

--2.4.3 FPGA和CPLD的选用 单元测验

--2.4.4 FPGA和CPLD的选用 讨论

-2.5 FPGA与CPLD的编程和配置

--2.5.1 FPGA与CPLD的编程与配置 导学

--2.5.2 FPGA与CPLD的编程与配置 教学视频

--2.5.3 FPGA与CPLD的编程与配置 单元测验

--2.5.4 FPGA与CPLD的编程与配置 讨论

第三章 EDA开发平台——QuartusII应用

-3.1 QuartusII概述

--3.1.1 Quartus Ⅱ概述 导学

--3.1.2 Quartus Ⅱ概述 教学视频

--3.1.3 Quartus Ⅱ概述 单元测验

--3.1.4 Quartus Ⅱ概述 讨论

-3.2 新建工程

--3.2.1 新建工程 导学

--3.2.2 新建工程 教学视频

--3.2.3 新建工程 单元测验

-3.3 设计输入

--3.3.1 设计输入 导学

--3.3.2 设计输入 教学视频

--3.3.3 设计输入 单元测验

--3.3.4 设计输入 讨论

-3.4 设计编译

--3.4.1 设计编译 导学

--3.4.2 设计编译 教学视频

--3.4.3 设计编译 单元测验

--3.4.4 设计编译 讨论

-3.5 仿真验证

--3.5.1 仿真验证 导学

--3.5.2 仿真验证 教学视频

--3.5.3 仿真验证 单元测验

--3.5.4 仿真验证 讨论

-3.6 器件编程

--3.6.1 器件编程 导学

--3.6.2 器件编程1 教学视频

--3.6.3 器件编程2 教学视频

--3.6.4 器件编程 单元测验

--3.6.5 器件编程 讨论

-3.7层次化设计

--3.7.1 层次化设计 导学

--3.7.2 层次化设计 教学视频

--3.7.3 层次化设计 单元测验

--3.7.4 层次化设计 讨论

-3.8 宏功能模块的使用

--3.8.1 宏功能模块的使用 导学

--3.8.2 宏功能模块的使用 教学视频

--3.8.3 宏功能模块的使用 单元测验

--3.8.4 宏功能模块的使用 讨论

第四章 VHDL语言概述

-4.1 VHDL语言概述

--4.1.1 VHDL概述 导学

--4.1.2 VHDL语言概述 教学视频

--4.1.3 VHDL语言概述 单元测验

--4.1.4 VHDL概述 讨论

-4.2 VHDL代码的结构

--4.2.1 VHDL代码的结构 导学

--4.2.2 VHDL代码的结构 教学视频

--4.2.3 VHDL代码的结构 单元测验

--4.2.4 VHDL代码的结构 讨论

-4.3 库和库声明

--4.3.1 库和库声明 导学

--4.3.2 库和库声明 教学视频

--4.3.3 库和库声明 单元测验

--4.3.4库和库声明 讨论

-4.4 实体说明

--4.4.1 实体说明 导学

--4.4.2 实体说明 教学视频

--4.4.3 实体说明 单元测验

--4.4.4 实体说明 讨论

-4.5 结构体

--4.5.1 结构体 导学

--4.5.2 结构体 教学视频

--4.5.3 结构体 单元测验

--4.5.3 结构体 讨论

-4.6 VHDL预定义数据类型

--4.6.1 VHDL预定义数据类型 导学

--4.6.2 VHDL预定义数据类型 教学视频

--4.6.3 VHDL预定义数据类型 单元测验

--4.6.4 VHDL预定义数据类型 讨论

-4.7 常量、变量和信号

--4.7.1 常量、变量和信号 导学

--4.7.2 常量、变量和信号 教学视频

--4.7.3 常量、变量和信号 单元测验

--4.7.4 常量、变量和信号 讨论

-4.8 运算操作符和属性

--4.8.1 运算操作符和属性 导学

--4.8.2 运算操作符和属性 教学视频

--4.8.3 运算操作符和属性 单元测验

--4.8.4 运算操作符和属性 讨论

-4.9 IF语句和WAIT语句

--4.9.1 IF语句和WAIT语句 导学

--4.9.2 IF语句和WAIT语句 教学视频

--4.9.3 IF语句和WAIT语句 单元测验

--4.9.4 IF语句和WAIT语句 讨论

-4.10 CASE语句

--4.10.1 CASE语句 导学

--4.10.2 CASE语句 教学视频

--4.10.3 CASE语句 单元测验

--4.10.4 CASE语句 讨论

-4.11 LOOP循环语句

--4.11.1 LOOP循环语句 导学

--4.11.2 LOOP循环语句 教学视频

--4.11.3 LOOP循环语句 单元测验

--4.11.4 LOOP循环语句 讨论

-4.12 进程

--4.12.1 进程 导学

--4.12.2 进程 教学视频

--4.12.3 进程 单元测验

--4.12.4 进程 讨论

-4.13 条件信号赋值语句

--4.13.1 条件信号赋值语句 导学

--4.13.2 条件信号赋值语句 教学视频

--4.13.3 条件信号赋值语句 单元测验

-4.14 选择信号赋值语句

--4.14.1 选择信号赋值语句 导学

--4.14.2 选择信号赋值语句 教学视频

--4.14.3 选择信号赋值语句 单元测验

-4.15 元件例化语句

--4.15.1 元件例化语句 导学

--4.15.2 元件例化语句 教学视频

--4.15.3 元件例化语句 单元测验

--4.15.4 元件例化语句 讨论

-4.16 VHDL模块化设计

--4.16.1 VHDL模块化设计

--4.16.2 VHDL模块化设计 教学视频

--4.16.3 VHDL模块化设计 单元测验

--4.16.4 VHDL模块化设计 讨论

第五章 设计方法概述

-5.1 设计方法概述

--5.1.1 设计方法概述 导学

--5.1.2 设计方法概述 教学视频

--5.1.3 设计方法概述 单元测验

--5.1.4 设计方法概述 讨论

-5.2 EDA综合设计案例(1)— 数字钟的设计

--5.2.1 EDA综合设计案例1 导学

--5.2.2 EDA综合设计设计案例1— 数字钟的设计 教学视频

--5.2.3 EDA综合设计案例1 单元测验

--5.2.4 EDA综合设计案例1 讨论

-5.3 EDA综合设计案例(2)—16×16点阵控制器设计

--5.3.1 EDA综合设计案例2 导学

--5.3.2 EDA综合设计案例2—16×16点阵控制器设计 教学视频

--5.3.3 EDA综合设计案例2 单元测验

--5.3.4 EDA综合设计案例2 讨论

思政教育

-国产EDA技术如何突破?

2.3.2 FPGA的结构和原理 教学视频笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。