课程背景

FPGA技术经过20多年的发展,现在已经被应用到各个领域,并且正在逐渐成为越来越多领先技术的系统级解决方案。为了帮助从事或者即将从事FPGA设计的工程师尽快的了解FPGA技术,掌握设计的方法和手段,我们针对FPGA的初学者设计了这个为期四天的课程,着重介绍FPGA技术基础、Verilog语言及基于嵌入式软核处理器的SOPC系统设计方法。

课程说明

本初级培训班分为“Altera FPGA设计应用初级培训班”和“Xilinx FPGA设计应用初级培训班”两个课程,将分别对Altera和Xilinx两个主流的FPGA制造商的FPGA解决方案进行针对性的培训,实验课也将分别在两大厂商的经典硬件平台及开发工具上进行。学员可根据需求和兴趣进行选择。

课程目标

1、熟悉FPGA典型器件型号及结构
2、熟练FPGA设计流程及开发方法
3、掌握Verilog语言设计方法
4、掌握状态机设计方法
5、掌握FPGA的仿真及调试方法
6、熟练SOPC系统设计流程
7、掌握NIOS II/Microblaze硬件系统设计方法
8、掌握NIOS II/Microblaze软件系统设计方法
9、掌握自定义组件的硬件设计、驱动设计及软件设计方法
10、掌握嵌入式软核系统的调试方法
11、掌握FPGA常用接口的设计方法
12、掌握相关开发工具的使用方法

教学平台

◆ 【Altera FPGA开发板】红色飓风3代Altera CycloneII开发板
◆ 【Xilinx FPGA开发板】红色飓风3代Xilinx Spartan3AN开发板

课程安排

时间
课程大纲

阶段目标

第一天的课程将帮助学员了解FPGA系统设计的基础知识,使学员对FPGA的典型应用及解决方案,典型型号及结构特点有一个深入的认识。学员将掌握FPGA系统设计的方法、流程及手段,学会操作FPGA开发软件来完成简单的FPGA设计和开发。


9:00-12:00
1. FPGA典型应用及解决方案

本节将介绍FPGA在不同领域应用的优势,帮助学员了解FPGA的应用场合及常见的解决方案。

本节要点:

1.1 嵌入式应用,DSP应用,高速互联应用,ASIC验证应用,外设接口互联应用

1.2 FPGA典型应用案例分享

2. FPGA典型器件型号及结构

本节将介绍主流FPGA厂商的传统、主流及最新型号的器件特点,帮助学员掌握几种最常见的FPGA器件的结构,了解最新的FPGA器件型号特点,掌握FPGA器件选型的原则和方法。

本节要点:

2.1 Altera:CPLD,CycloneI/II,Arria,Stratix

2.2 Xilinx:CPLD,Spartan3/6,Virtex5/6

2.3 FPGA兼容设计案例分析

3. FPGA设计流程及开发方法

本节围绕FPGA的设计流程,介绍主流FPGA厂商的开发工具链,重点讲授关键设计环节的工具特点,使学员掌握FPGA设计流程的各个环节及对应的开发方法。

本节要点:

3.1 FPGA PCB设计要点

3.2 Altera:Quartus II,EDS,DSP Builder,SignalTap

3.3 Xilinx:ISE,XPS/EDK,System Generator,AccelDSP,ChipScope

3.4 Synplify,Modelsim,Matlab,Simulink


13:00-16:00
1. FPGA实验平台介绍

本节简要介绍课程使用的实验开发平台:红色飓风系列开发板,对其资源配置、设计理念、使用方法等进行介绍,使学员具备在此实验平台开展FPGA设计开发的基础。

本节要点:

1.1 PCB设计,电源设计,FPGA配置链路,接口设计,使用方法

2. 解剖一个典型的FPGA工程

本节以一个典型的FPGA工程为基础,手把手为学员讲授FPGA工程中的关键要素,要素的设计方法及作用。帮助学员迅速掌握FPGA开发的主要环节。

本节要点:

2.1 设计输入文件,约束文件,仿真激励文件,波形文件,下载文件,调试文件,设计报告

3. 实战训练

本节由学员动手,在FPGA实验平台上完成第一个FPGA工程设计。学员根据实验手册一步一步的完成一个功能直观步骤完整的FPGA设计,总结在FPGA设计过程中常见的错误和问题。

本节要点:

3.1 工程创建及属性设置,源文件设计输入方式,约束设计,工程编译,功能仿真,时序仿真,硬件下载,硬件调试

时间
课程大纲

阶段目标

第二天的课程以设计输入、仿真激励设计及测试调试为主要内容,学员可以掌握FPGA开发的基本设计输入方法:原理图输入及Verilog硬件描述语言输入,配合丰富的实例使学员了解FPGA资源的语言描述方法及数字系统的测试验证方法,同时通过对设计原则和设计技巧部分的课程可以帮助学员提高系统设计的能力,为SOPC的系统设计打下良好的基础。


9:00-12:00
1. FPGA设计输入方法

本节针对FPGA开发过程中的主要工作——设计输入——进行详细分析,帮助学员掌握常见设计输入方法,仿真激励文件设计方法,理解硬件描述语言的可综合设计风格。

本节要点:

1.1 原理图设计方法,Verilog语言基本结构,可综合设计,仿真激励设计

1.2 常用设计输入方法实例分析

2. FPGA常用资源结构特点及调用方法

本节将学习FPGA器件的工艺结构,详细介绍FPGA的各种逻辑资源特点及调用方法,帮助学员深刻理解FPGA的各种内部资源,为系统的进行FPGA开发打下基础。

本节要点:

2.1 PLL/DCM等时钟资源,Select IO资源,RAM资源,乘法器资源,SERDES资源

2.2 FPGA常用资源调用方法实例分析

3. 有限状态机设计

本节讲授数字系统设计中最常见的结构设计方法——有限状态机,通过学习学员将掌握状态机设计中的状态划分原则及硬件描述语言实现方法。

本节要点:

3.1 状态机编码,三段式状态机设计

3.2 状态机实例分析


13:00-16:00
1. FPGA设计原则及常用设计技巧

本节介绍FPGA设计中应遵循的设计原则和常用设计技巧,通过学习学员可从更高的层次上理解数字系统的设计方法。

本节要点:

1.1 设计原则:模块化设计,基于IP设计,时钟复位系统设计

1.2 设计技巧:面积与速度互换、兵乓操作、流水线

1.3 流水线设计实例分析

2. 设计输入与验证实战训练

本节让学员动手去完成既定的实验任务,在实践中掌握硬件描述语言的编写方法及系统设计的模块化设计方法。

本节要点:

2.1 用Verilog语言实现特定功能组合逻辑电路

2.2 用Verilog语言实现特定功能时序逻辑电路

2.3 顶层文件设计方法及模块调用方法

2.4 测试激励的编写方法及仿真

3. 实时硬件调试实战训练

本节通过实验演示及学员动手相结合,是学员掌握FPGA实时调试工具——虚拟逻辑分析仪——的使用方法,提高FPGA调试测试的技能。

本节要点:

3.1 虚拟逻辑分析仪的原理及特点

3.2 使用虚拟逻辑分析仪进行调试的设计流程

3.3 Altera实战:使用SignalTap进行实时硬件调试

3.4 Xilinx实战:使用ChipScope进行实时硬件调试

时间
课程大纲

阶段目标

第三天的课程以SOPC系统概念为切入点,重点介绍FPGA EDS解决方案的体系结构及硬件设计流程。围绕软核处理器、Avalon总线及外围组件三个方面对SOPC的硬件结构进行介绍。通过简单实用的SOPC工程使学员掌握EDS/XPS工具的基本使用方法及硬件设计流程。


9:00-12:00
1. SOPC系统基础及典型解决方案

本节讲授SOPC系统的基础知识及SOPC的构成要素,介绍当前典型的几种SOPC解决方案及优缺点,使学员对SOPC有一个基本的认识。

本节要点:

1.1 SOPC构成要素,典型软核SOPC解决方案,典型硬核SOPC解决方案,SOPC系统优缺点

2. Altera NIOS II解决方案

本节基于Altera NIOS II软核处理器,通过一个典型的工业数据采集SOPC系统工程,详细介绍NIOS II SOPC解决方案的构成要素。通过学习,学员将从整体上理解NIOS II SOPC解决方案的架构和重要的构成要素,学会使用原理图和硬件描述语言的方式调用SOPC工程模块。

本节要点:

2.1 一个典型的工业采集系统SOPC工程

2.2 NIOS II解决方案架构,开发工具链

2.3 NIOS II 软核处理器,Avalon总线,典型外设组件

2.4 NIOS II硬件抽象层HAL及系统库

2.5 定制指令及定制组件

2.6 SOPC的时钟与复位系统

2.7 NIOS II软核系统的调用方法


13:00-16:00
1. NIOS II解决方案的系统设计流程

本节为学员讲述NIOS II解决方案的系统设计流程,通过学习学员可以从流程上清晰地理解SOPC设计的各个主要环节。

本节要点:

1.1 NIOS II解决方案的系统设计流程

1.2 NIOS II解决方案的硬件设计流程

1.3 NIOS II解决方案的软件设计流程

1.4 NIOS II解决方案的软硬件下载流程

2. SOPC Builder开发环境及使用方法

本节基于实验平台的一个SOPC最小系统工程,介绍SOPC Builder工具环境的使用方法。学员可学会使用该工具建立SOPC系统,掌握该工具提供的主要功能。

本节要点:

2.1 实验平台上的一个SOPC最小系统工程

2.2 NIOS II处理器的调用与配置

2.3 Avalon总线互联方法

2.4 常用外设组件及调用及其配置

2.5 定制外设组件的实现方法

2.6 SOPC系统的地址及中断

2.7 SOPC系统软件设计初步

3. SOPC Builder实战训练

本节由学员动手设计并实现一个简单的处理器控制系统,在实践中加深对SOPC硬件设计流程及常见组件的使用方法,熟练SOPC Builder工具的操作。

本节要点:

3.1 在FPGA开发板上组建一个简单的处理器控制系统

3.2 SOPC Builder工具操作方法

时间
课程大纲

阶段目标

第四天的课程以软件开发及调试为主。通过第四天的学习,学员应掌握NIOS II SOPC系统的软件开发流程及相关工具,能够针对不同的系统需求进行系统配置,并选择或设计相应的API接口进行软件开发。配合前三天讲授的内容,掌握SOPC系统的软硬件协同设计设计。


9:00-12:00
1. NIOS II解决方案的软件架构

本节主要讲授NIOS II解决方案的软件架构,主要围绕硬件抽象层,API和用户应用程序三个方面进行介绍,使学员深入了解NIOS II解决方案的软件设计要素。

本节要点:

1.1 软件架构,软件开发工具链

1.2 HAL硬件抽象层

1.3 HAL API接口

1.4 用户应用程序

1.5 标准系统库,嵌入式操作系统

2. NIOS II IDE开发环境及使用方法

本节为学员介绍NIOS II IDE软件及其工具链的使用方法,按照SOPC软件设计流程对重要的设计步骤进行讲解,使学员学会使用NIOS II IDE工具,了解SOPC软件设计及调试方法。

本节要点:

2.1 系统工程向导及模板

2.2 系统库及用户工程的管理与配置

2.3 SOPC软件设计方法

2.4 SOPC软硬件协同调试方法

2.5 SOPC软件的固化方法

3.NIOS II IDE实战训练

本节由学员动手在前一天设计的简单的处理器控制系统上添加软件功能,理解SOPC系统中软件实现方法和硬件实现方法的区别,掌握SOPC软件设计及调试方法,熟练NIOS II IDE工具的操作。

本节要点:

3.1 在组建的简单处理器控制系统上添加软件工程

3.2 NIOS II IDE工具操作方法


13:00-16:00
1. SOPC软件工程实例分析

本节基于典型的工业数据采集SOPC系统的软件结构,为学员介绍常见的SOPC外围组件的软件控制方法,介绍自定义外围组件的HAL设计及API封装方法,使学员具备开发SOPC外围接口的能力。

本节要点:

1.1 常见外围组件的软件控制方法

1.2 用户自定义组件的HAL设计及API封装方法

2. SOPC系统综合训练

本节提出一个SOPC系统需求,要求学员设计一个图像显示系统的SOPC结构,并在实验平台上实现。通过这个综合训练,使学员融会贯通的使用SOPC系统结构设计、FPGA硬件设计、SOPC软硬件协同设计等方法。具备从需求到实现的设计开发能力。

本节要点:

2.1 SOPC系统结构设计

2.2 FPGA硬件设计

2.3 SOPC软硬件协同设计

2.4 SOPC工具链使用

3. 课程总结与展望

本节由学员动手设计并实现一个简单的处理器控制系统,在实践中加深对SOPC硬件设计流程及常见组件的使用方法,熟练SOPC Builder工具的操作。

本节要点:

本节将回顾四天SOPC课程的主要内容,帮助学员总结课程的要点和课程培训中常见的问题,同时为学员介绍进一步学习SOPC系统的相关内容和资源。

讲师信息

        陈士阳,硕士研究生,毕业于北京航空航天大学电子信息工程学院,微电子专业。曾经就职于中国电子科技集团某研究所,主要负责FPGA声音信号同步采集与处理等工作。现任keysightFPGA研发工程师,负责下一代移动网络5G的高速信号采集与处理的相关工作。

培训地址

北航致真大厦(北京市海淀区知春路7号)

上课时间

2017年10月21日至22日

2017年10月28日至29日

主办方