当前课程知识点:EDA技术与应用 >  第三章 EDA开发平台——QuartusII应用 >  3.6 器件编程 >  3.6.3 器件编程2 教学视频

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

3.6.3 器件编程2 教学视频在线视频

下一节:3.6.5 器件编程 讨论

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

3.6.3 器件编程2 教学视频课程教案、知识点、字幕

同学们,上一讲我们介绍了

器件编程中引脚分配的内容

本讲我们来介绍第二部分——编程模式

Quartus Ⅱ软件的编程模式

有如下几种:

第一种,JTAG模式

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

可将编程数据

直接下载到FPGA的SRAM中

该模式下载速度快,便于调试

但是,断电后配置信息立即丢失

第二种,主动串行模式(AS)

可将编程数据

下载到FPGA专用串行配置器件中

断电后配置数据不会丢失

系统上电后

FPGA会主动读取配置器件中的配置信息

多用于调试成功后的固化配置

第三种,被动串行模式(PS)

由外部计算机或控制器控制配置过程

系统上电后

FPGA会被动接收来自外部的配置信息

第四种,套接字内编程模式

下面我们来介绍一下具体的实现过程

在调试阶段,通常采用JTAG模式

首先给实验箱或开发板上的电源供电

同时下载线的USB接口连接至计算机

并确保安装好

USB-Blaster驱动程序

准备工作完成之后

正式进入编程下载

首先点击“工具”菜单栏下的“编程”选项

或直接点击快捷工具栏上的“编程”按钮

弹出编程配置窗口

编程模式选择JTAG

界面中会显示以sof为后缀的编程数据文件

以及目标器件的相关信息

再次确认器件型号是否正确

然后选中“编程/配置”

然后点击左上角的“硬件设置”按钮

在弹出的对话框中选择

“USB-Blaster”

点击“关闭”,返回编程配置窗口

最后点击左侧的“开始”按钮,开始编程

在右上角上会显示编程的进度

编程结束后会提示相关信息

若出现错误报告

则说明编程失败

需要进一步检查硬件连接和电源情况等

编程数据下载成功后

便可利用实验箱的相关资源进行电路测试了

拨码开关SW1、SW2、SW3分别代表

1位全加器的三个输入端

拨码开关置于下方时表示输入为“0”

至于上方时表示输入为“1”

LED1、LED2分别代表

1位全加器的两个输出端

灯灭为“0”,灯亮为“1”

下面按照真值表的八种状态分别进行验证

第一种,输入000,输出为00

第二种,输入001,输出为01

第三种,输入010,输出为01

第四种,输入011,输出为10

第五种,输入100,输出为01

第六种,输入101,输出为10

第7种,输入110,输出为10

第8种,输入111,输出为11

上述八种情况,均符合真值表

说明我们设计的电路满足1位全加器的功能

如果在验证过程中出现与逻辑不符的情况

则需检查引脚分配是否正确

然后进行相关修改

现在我们将系统断电,再上电

然后将拨码开关置于不同的状态

此时会发现LED灯一直处于灭的状态

验证了在JTAG模式下

系统断电后,编程信息就会丢失

所以JTAG模式只适是用于调试阶段

当电路调试成功后,为避免掉电信息丢失

通常会将编程信息固化到硬件资源里

固化的方式有两种

第一种,是之前提到的AS模式

也就是利用AS配置端口

将AS模式下生成的.pof文件

固化到目标器件中

第二种,是利用JTAG模式间接实现固化

也就是利用JTAG配置端口

将JTAG间接配置文件固化到目标器件中

目前在多数的FPGA开发中

为了节省空间

选择去掉AS配置端口,只保留JTAG端口

因此,本讲只介绍如何利用JTAG模式

间接实现固化

具体的操作如下

点击“文件”菜单栏下的

“转换编程文件”选项

在弹出的对话框中

需要进行如下几步设置

第一步,选择编程文件的类型为:

“JTAG间接配置文件”

该文件的后缀为“jic”

第二步

根据系统的Flash资源选择配置器件

这里依据实验箱中的资源选择

“EPCS16”

第三步,命名所要输出的编程文件的名称

这里命名为“add1.jic”

第四步,选中“Flash Loader”

然后点击右侧的“添加器件”按钮

在弹出的对话框中选择FPGA芯片的型号

根据自身情况选择即可

这里我们选择Cyclone Ⅲ 系列的

EP3C25

然后点击”确定“

最后一步,选中“SOF Data”

点击右侧的”添加文件“按钮

在名为”输出文件“的文件夹下

找到要转换的后缀为sof的编程文件

点击”打开“

上述所有操作完成之后

点击右下角的”生成“按钮

文件生成成功后,点击”确定“

然后关闭”转换编程文件“窗口

接下来打开编程下载界面

选中之前的.sof编程文件

点击左侧的”删除“按钮将其移除

然后点击”添加文件“按钮

在工程文件夹下找到刚生成的

“add1.jic”编程文件

将其添加至页面,勾选“编程/配置”

最后点击左侧的”开始“按钮

此时可通过右上角的进度条观察固化进度

可发现固化过程速度要比在线配置慢很多

当进度条显示成功后,固化配置便完成了

固化配置完成后

我们来验证一下系统掉电后

编程信息是否会丢失

首先将系统断电,然后再次上电

将拨码开关置于不同的状态

此时LED灯的亮灭情况符合真值表

由此验证了固化配置后

即使系统掉电,之前载入的信息依然存在

电路可直接使用

以上就是关于器件编程的相关内容

通过以上几讲

我们系统地学习了

如何设计一个简单的数字电路

以及每一步的具体操作

但是对于一个复杂的数字系统而言

我们需要采用层次化的结构设计

具体的实现方法

将会在下一章当中进行介绍

同学们,再见

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技术如何突破?

3.6.3 器件编程2 教学视频笔记与讨论

也许你还感兴趣的课程:

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