发布时间:2011年3月11日
课程背景
FPGA技术经过20多年的发展,现在已经被应用到各个领域,并且正在逐渐成为越来越多领先技术的系统级解决方案。为了帮助从事或者即将从事FPGA设计的工程师尽快的了解FPGA技术,掌握设计的方法和手段,我们针对FPGA的初学者设计了这个为期四天的课程,着重介绍FPGA技术基础、Verilog语言及基于嵌入式软核处理器的SOPC系统设计方法。
课程目标
1.熟悉FPGA典型器件型号及结构
2.熟练FPGA设计流程及开发方法
3.掌握Verilog语言设计方法
4.掌握状态机设计方法
5.掌握FPGA的仿真及调试方法
6.熟练SOPC系统设计流程
7.掌握NIOS II/Microblaze硬件系统设计方法
8.掌握NIOS II/Microblaze软件系统设计方法
9.掌握自定义组件的硬件设计、驱动设计、及软件设计方法
10.掌握嵌入式软核系统的调试方法
11.掌握FPGA常用接口的设计方法
12.掌握相关开发工具的使用方法
课程内容
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
4. FPGA实验平台介绍
本节简要介绍课程使用的实验开发平台:红色飓风系列开发板,对其资源配置、设计理念、使用方法等进行介绍,使学员具备在此实验平台开展FPGA设计开发的基础。
本节要点:
4.1 PCB设计,电源设计,FPGA配置链路,接口设计,使用方法
5. 解剖一个典型的FPGA工程
本节以一个典型的FPGA工程为基础,手把手为学员讲授FPGA工程中的关键要素,要素的设计方法及作用。帮助学员迅速掌握FPGA开发的主要环节。
本节要点:
5.1 设计输入文件,约束文件,仿真激励文件,波形文件,下载文件,调试文件,设计报告
6. 实战训练
本节由学员动手,在FPGA实验平台上完成第一个FPGA工程设计。学员根据实验手册一步一步的完成一个功能直观步骤完整的FPGA设计,总结在FPGA设计过程中常见的错误和问题。
本节要点:
6.1 工程创建及属性设置,源文件设计输入方式,约束设计,工程编译,功能仿真,时序仿真,硬件下载,硬件调试
7. FPGA设计输入方法
本节针对FPGA开发过程中的主要工作——设计输入——进行详细分析,帮助学员掌握常见设计输入方法,仿真激励文件设计方法,理解硬件描述语言的可综合设计风格。
本节要点:
7.1 原理图设计方法,Verilog语言基本结构,可综合设计,仿真激励设计
7.2 常用设计输入方法实例分析
8. FPGA常用资源结构特点及调用方法
本节将学习FPGA器件的工艺结构,详细介绍FPGA的各种逻辑资源特点及调用方法,帮助学员深刻理解FPGA的各种内部资源,为系统的进行FPGA开发打下基础。
本节要点:
8.1 PLL/DCM等时钟资源,Select IO资源,RAM资源,乘法器资源,SERDES资源
8.2 FPGA常用资源调用方法实例分析
9. 有限状态机设计
本节讲授数字系统设计中最常见的结构设计方法——有限状态机,通过学习学员将掌握状态机设计中的状态划分原则及硬件描述语言实现方法。
本节要点:
9.1 状态机编码,三段式状态机设计
9.2 状态机实例分析
9. FPGA设计原则及常用设计技巧
本节介绍FPGA设计中应遵循的设计原则和常用设计技巧,通过学习学员可从更高的层次上理解数字系统的设计方法。
本节要点:
9.1 设计原则:模块化设计,基于IP设计,时钟复位系统设计
9.2 设计技巧:面积与速度互换、兵乓操作、流水线
9.3 流水线设计实例分析
10. 设计输入与验证实战训练
本节让学员动手去完成既定的实验任务,在实践中掌握硬件描述语言的编写方法及系统设计的模块化设计方法。
本节要点:
10.1 用Verilog语言实现特定功能组合逻辑电路
10.2 用Verilog语言实现特定功能时序逻辑电路
10.3 顶层文件设计方法及模块调用方法
10.4 测试激励的编写方法及仿真
11. 实时硬件调试实战训练
本节通过实验演示及学员动手相结合,是学员掌握FPGA实时调试工具——虚拟逻辑分析仪——的使用方法,提高FPGA调试测试的技能。
本节要点:
11.1 虚拟逻辑分析仪的原理及特点
11.2 使用虚拟逻辑分析仪进行调试的设计流程
11.3 Altera实战:使用SignalTap进行实时硬件调试
11.4 Xilinx实战:使用ChipScope进行实时硬件调试
12. SOPC系统基础及典型解决方案
本节讲授SOPC系统的基础知识及SOPC的构成要素,介绍当前典型的几种SOPC解决方案及优缺点,使学员对SOPC有一个基本的认识。
本节要点:
12.1 SOPC构成要素,典型软核SOPC解决方案,典型硬核SOPC解决方案,SOPC系统优缺点
13. Altera NIOS II解决方案
本节基于Altera NIOS II软核处理器,通过一个典型的工业数据采集SOPC系统工程,详细介绍NIOS II SOPC解决方案的构成要素。通过学习,学员将从整体上理解NIOS II SOPC解决方案的架构和重要的构成要素,学会使用原理图和硬件描述语言的方式调用SOPC工程模块。
本节要点:
13.1 一个典型的工业采集系统SOPC工程
13.2 NIOS II解决方案架构,开发工具链
13.3 NIOS II 软核处理器,Avalon总线,典型外设组件
13.4 NIOS II硬件抽象层HAL及系统库
13.5 定制指令及定制组件
13.6 SOPC的时钟与复位系统
13.7 NIOS II软核系统的调用方法
14. NIOS II解决方案的系统设计流程
本节为学员讲述NIOS II解决方案的系统设计流程,通过学习学员可以从流程上清晰地理解SOPC设计的各个主要环节。
本节要点:
14.1 NIOS II解决方案的系统设计流程
14.2 NIOS II解决方案的硬件设计流程
14.3 NIOS II解决方案的软件设计流程
14.4 NIOS II解决方案的软硬件下载流程
15. SOPC Builder开发环境及使用方法
本节基于实验平台的一个SOPC最小系统工程,介绍SOPC Builder工具环境的使用方法。学员可学会使用该工具建立SOPC系统,掌握该工具提供的主要功能。
本节要点:
15.1 实验平台上的一个SOPC最小系统工程
15.2 NIOS II处理器的调用与配置
15.3 Avalon总线互联方法
15.4 常用外设组件及调用及其配置
15.5 定制外设组件的实现方法
15.6 SOPC系统的地址及中断
15.7 SOPC系统软件设计初步
16. SOPC Builder实战训练
本节由学员动手设计并实现一个简单的处理器控制系统,在实践中加深对SOPC硬件设计流程及常见组件的使用方法,熟练SOPC Builder工具的操作。
本节要点:
16.1 在FPGA开发板上组建一个简单的处理器控制系统
16.2 SOPC Builder工具操作方法
17. NIOS II解决方案的软件架构
本节主要讲授NIOS II解决方案的软件架构,主要围绕硬件抽象层,API和用户应用程序三个方面进行介绍,使学员深入了解NIOS II解决方案的软件设计要素。
本节要点:
17.1 软件架构,软件开发工具链
17.2 HAL硬件抽象层
17.3 HAL API接口
17.4 用户应用程序
17.5 标准系统库,嵌入式操作系统
18. NIOS II IDE开发环境及使用方法
本节为学员介绍NIOS II IDE软件及其工具链的使用方法,按照SOPC软件设计流程对重要的设计步骤进行讲解,使学员学会使用NIOS II IDE工具,了解SOPC软件设计及调试方法。
本节要点:
18.1 系统工程向导及模板
18.2 系统库及用户工程的管理与配置
18.3 SOPC软件设计方法
18.4 SOPC软硬件协同调试方法
18.5 SOPC软件的固化方法
19. NIOS II IDE实战训练
本节由学员动手在前一天设计的简单的处理器控制系统上添加软件功能,理解SOPC系统中软件实现方法和硬件实现方法的区别,掌握SOPC软件设计及调试方法,熟练NIOS II IDE工具的操作。
本节要点:
19.1 在组建的简单处理器控制系统上添加软件工程
19.2 NIOS II IDE工具操作方法
20. SOPC软件工程实例分析
本节基于典型的工业数据采集SOPC系统的软件结构,为学员介绍常见的SOPC外围组件的软件控制方法,介绍自定义外围组件的HAL设计及API封装方法,使学员具备开发SOPC外围接口的能力。
本节要点:
20.1 常见外围组件的软件控制方法
20.2 用户自定义组件的HAL设计及API封装方法
21. SOPC系统综合训练
本节提出一个SOPC系统需求,要求学员设计一个图像显示系统的SOPC结构,并在实验平台上实现。通过这个综合训练,使学员融会贯通的使用SOPC系统结构设计、FPGA硬件设计、SOPC软硬件协同设计等方法。具备从需求到实现的设计开发能力。
本节要点:
21.1 SOPC系统结构设计
21.2 FPGA硬件设计
21.3 SOPC软硬件协同设计
21.4 SOPC工具链使用
22. 课程总结与展望
本节将回顾四天SOPC课程的主要内容,帮助学员总结课程的要点和课程培训中常见的问题,同时为学员介绍进一步学习SOPC系统的相关内容和资源。