当前课程知识点:EDA技术与应用 >  第二章 可编程逻辑器件概述 >  2.5 FPGA与CPLD的编程和配置 >  2.5.2 FPGA与CPLD的编程与配置 教学视频

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

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

下一节:2.5.4 FPGA与CPLD的编程与配置 讨论

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

2.5.2 FPGA与CPLD的编程与配置 教学视频课程教案、知识点、字幕

前面介绍了CPLD、FPGA的结构

工作原理及二者的选用方法

还有一个问题需要我们解决

即我们在上位机上编写的程序、设计的电路

是如何写入到我们的母片之中的呢?

这就是我们今天要讲的在系统编程技术

在系统编程ISP

是指电路板上的空白器件

可以编程写入最终的用户代码

而不需要从电路板上取下器件

已经编程的器件

也可以用在系统编程方式擦除或再编程

这种在系统编程技术的应用

使硬件随时能够改变组态

实现了硬件设计软件化

使硬件修改变得像软件修改一样方便

系统的可靠性也因此而得到提高

另外我们知道

CPLD一般采用

EEPROM和FLASH编程技术

FPGA为SRAM型编程工艺

那么,二者之间编程方式不同

其在系统编程的方法

即数据装载的过程也会不同

我们把CPLD的在系统下载称为编程

FPGA的在系统下载称为配置

CPLD的编程和FPGA的配置

可以使用专用的编程设备

也可以使用编程电缆

目前,我们主要使用编程电缆

首先我们看一下CPLD的编程过程

我们将编程电缆的一端

接USB口或计算机的并口

另一端接编程电缆的10芯接口

连接好后,在计算机上点击下载命令

在CPLD的内部控制电路的操作下

会自动将在软件平台上编译形成的

.pof编程文件装载到CPLD芯片中

10芯接口亦称为JTAG口

引脚信号如下

JTAG口与CPLD的连接关系如图

下面我们认识一下JTAG口

JTAG是一种国际标准测试协议

最初主要用于芯片内部测试

后来为了减少连线

JTAG还用于实现在系统编程

多数的CPLD、FPGA、DSP等器件

都支持JTAG协议

标准的JTAG接口是四线

TMS、TCK、TDI、TDO

其定义如下

TCK是测试或编程时钟输入

TDI是测试或编程的数据输入端

数据通过TDI输入JTAG口

TDO是测试或编程数据的输出

TDO主要用于将编程数据移出器件

主要用在多个器件构成JTAG编程链时

可将编程数据移到下一个器件

TMS是测试模式选择

TMS用来设置

JTAG口处于某种特定的测试模式

还有一个可选引脚TRST——测试复位端

输入引脚,低电平有效

JTAG的内部还有一个状态机

称为TAP控制器

TAP控制器的状态机

通过TCK和测试模式

选择TMS进行状态的改变

实现数据和指令的输入

FPGA配置方式

由于FPGA采用的是SRAM工艺

配置在掉电后就丢失

因此根据需要不同

有着多种配置模式

这些模式主要是通过FPGA的模式选择引脚

MSEL上设定的电平来决定

常用的模式有下面三种

JTAG模式、AS模式和PS模式

JTAG模式

JTAG在线配置FPGA原理图如图所示

这实际上和使用JTAG

对CPLD编程是类似的

只不过FPGA是使用JTAG

将配置文件*.sof配置到FPGA芯片中

其中模式选择引脚MSEL全部接地

前面我们讲过

FPGA采用的是SRAM编程工艺

其特点是:一旦芯片掉电

则 SRAM中的数据将丢失

再次上电后

SRAM中将不再有有效的数据

这就是我们常见的

使用JTAG下载sof固件到FPGA中后

板子重新上电

之前下载的固件又不在了的原因

当我们的系统稳定并量产时

当然希望让FPGA上电后

其存储器中就被写入有效的数据

但是我们又不能每次系统上电

就用JTAG去下载一次程序固件

因此,FPGA支持另外一种配置方式

主动串行配置

所谓主动串行配置

就是在FPGA芯片外部

放置一片能够掉电数据不丢失的存储器

来存储设计好的电路固件

例如

EPCS系列中的EPCS1、EPCS4等

这些存储器称之为配置芯片

我们为配置芯片配置数据的方式有两种

第一种,使用专用的AS接口,如图所示

来直接烧写该配置芯片

该种方式需要我们在电路板上

设置一个独立的AS接口

会占用PCB板面积

第二种方式,也是现在流行的方式

则是通过 JTAG接口

经由FPGA芯片间接烧写该配置芯片

下图为利用JTAG

将配置文件下载配置芯片的方式

连接好电路

我们就可以在PC的软件上进行相关设置

软件将配置数据烧录到配置芯片中

而FPGA芯片内部

则设计了一个专用的硬件电路

在芯片刚上电的时刻

就会主动去读取配置芯片的固件

并配置到FPGA芯片的每一个SRAM中

通过这样一个方式

即可在不改变FPGA芯片

SRAM工艺的查找表结构前提下

让每次芯片上电后

都能获得有效的配置数据

配置器件与FPGA的接口

为简单的四个信号线

DATA、DCLK、nCS、ASDI

DCLK为串行时钟输入

是在配置模式下FPGA内部的振荡器产生的

在配置完成后,该振荡器将被关掉

AS的控制信号——ASDI

这是控制信号的输入端

nCS为片选信号端

DATA是串行数据输出

这些引脚的作用,在器件手册上都有说明

AS模式适用于不需要经常升级的场合

FPGA的被动串行配置模式是指

FPGA被动的等待配置起始信号

然后接受配置文件,完成配置

即每次在FPGA上电时

是由外部器件来完成FPGA的配置

外部器件可以是PC机

可以是配置器件,如EPC1、EPC4

也可以是单片机或CPLD

实际上,不管配置数据源来自哪里

只要可以模拟出

FPGA配置的时序所需要的时序图来

就可以将配置数据写入FPGA

时序如图所示,这里不作过多解释

我们下图给出了

单片机对FPGA进行配置的原理图

图中五个信号分别是

配置时钟、配置数据、配置命令

状态信号和配置完成指示

那么这种配置模式可以实现

对FPGA在线可编程

升级方便,也是使用最多的一种配置模式

同学们

到现在为止

第二章——可编程逻辑器件的内容

就全部介绍完了

我们重点学习了CPLD、FPGA的构成

工作原理及二者编程与配置等

下节课,我们将继续学习

EDA技术的第二个构成要素

软件开发工具

同学们,再见

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.5.2 FPGA与CPLD的编程与配置 教学视频笔记与讨论

也许你还感兴趣的课程:

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