|
课 程 大 纲 |
|
第一天 |
| 学习目标: |
|
帮助学员了解FPGA系统设计的基础知识,掌握FPGA发展最新技术动态,同时基于QuartusⅡ7.2工具软件,引导学员一步步完成从设计输入到下载调试,掌握完整FPGA设计流程. |
| 1.1.CPLD/FPGA技术现状和发展方向 |
|
◇CPLD/FPGA典型应用领域 ◇传统CPLD(基于CMOS,EEPROM工艺)结构,性能指标及应用介绍 ◇新一代CPLD(MAXⅡ系列)的结构, 性能指标与布线规则以及应用介绍 |
| 1.2.新型FPGA核心技术概述与结构分析 |
|
◇低成本Cyclone系列FPGA基本结构分析,包括时钟管理资源, 内嵌RAM资源等 ◇高密度Stratix系列FPGA时钟管理资源, 内嵌RAM, DSP模块性能及对比分析 ◇工程项目中FPGA芯片的选型策略和原则 |
| 实验一:基于ALTERA开发板上运行LCD液晶显示程序 |
| 训练知识点: |
|
◇Quartus II工程创建及属性设置 ◇Quartus II两种源文件设计输入方式 ◇Quartus II约束设计 ◇Quartus II工程编译 |
◇Quartus II功能仿真 ◇Quartus II时序仿真 ◇Quartus II编程下载 |
|
第二天 |
| 学习目标: |
|
掌握FPGA最小系统的硬件设计方法,能够在工程中设计一般的FPGA系统. HDL语言是FPGA设计的主要工具,本次课程重点帮助学员掌握当前最为流行的描述语言---VHDL语言的基本语法,以及常用的组合逻辑和时序逻辑设计. |
| 2.1.FPGA最小系统设计 |
|
◇FPGA最小系统基本组成 ◇FPGA下载配置接口电路设计(JTAG/AS/PS) ◇高速SDRAM存储器接口电路设计 ◇异步SRAM(ASRAM)存储器接口电路设计 ◇FLASH存储器接口电路设计 ◇VGA接口电路设计 |
◇PS/2鼠标及键盘接口电路设计 ◇字符型液晶显示器接口电路设计 ◇RS-232串口 ◇电源电路设计 ◇复位电路设计 ◇时钟电路设计 |
|
2.2.VHDL语言设计 |
|
◇VHDL语言简介以及与Verilog HDL对比 ◇VHDL程序的基本结构(实体/结构体) ◇VHDL语言的常用数据类型和运算符 ◇VHDL语言常用顺序描述语句 |
◇VHDL语言常用并行描述语句 ◇组合逻辑电路的VHDL语言描述 ◇时序逻辑电路的VHDL语言描述 |
| 实验二:"3-8译码器实现" |
| 训练知识点: |
|
◇Quartus II软件进一步熟练 ◇VHDL程序设计的基本结构 |
◇IF语句与CASE语句的区别 ◇组合逻辑用VHDL语言实现 |
| 实验三:"跑马灯程序设计" |
|
训练知识点: |
|
◇Quartus II软件进一步熟练 ◇VHDL语言描述移位寄存器 |
◇时序逻辑电路设计实现 ◇分频电路设计方法 |
|
第三天 |
| 学习目标: |
|
进一步针对VHDL语言常用概念进行深入理解,同时学习VHDL语言的高级功能,以便在复杂数字系统中能够熟练的运用.通过实验训练工程应用中常用电路模块的设计技巧. |
| 3.VHDL语言的高级应用 |
|
◇实体的应用技巧 ◇信号(Signal)与变量(Variable) 的区别 ◇进程设计注意事项 ◇时钟描述方式及内部模块时钟管理技巧 |
◇双向数据总线问题 ◇三态电路 ◇时序匹配技巧 ◇RAM,FIFO的设计方法及应用技巧 |
| 实验四:奇数/偶数分频器电路设计 |
| 训练知识点: |
|
◇Quartus II软件进一步熟练 ◇变量与信号的区别 |
◇计数电路的常用技巧 ◇奇数分频电路设计方法 |
| 实验五:FIFO电路设计 |
|
训练知识点: |
|
◇Quartus II软件进一步熟练 ◇FIFO电路的组成结构 |
◇多模块电路的设计 |
|
第四天 |
| 学习目标: |
|
本课程主要学习QuartusⅡ7.2的高级应用技巧以及数字设计高级技巧.包括锁相环(PLL),MegaCore(IP),有限状态机(FSM)等的应用,此外学习FPGA典型应用工具SignalTAP和LogicLock,可以提高FPGA设计和调试的效率. |
| 4.QuartusⅡ7.2的高级应用 |
|
◇Altera 公司以及其他公司提供的IP的使用 ◇锁相环(PLL)的原理以及使用 ◇有限状态机(FSM)的设计原理及其代码风格 ◇可综合的代码设计风格 |
◇SignalTap II在线逻辑分析仪使用方法 ◇使用SOPC Builder进行软件开发与调试 ◇Logic Lock逻辑锁定工具使用技巧 |
| 实验六:典型状态机设计实例 |
| 训练知识点: |
|
◇两种状态机的特定 ◇状态机的编码(Binary、gray-code、one-hot等) |
◇状态机的定义风格与编码风格 |
| 实验七:SignalTap II功能实践 |
|
训练知识点: |
|
◇SignalTap II调试原理 ◇SignalTap II在线调试 |
| 实验八:LogicLock功能实践 |
|
训练知识点: |
|
◇Quartus II原理图输入方式 ◇LogicLock逻辑锁定的操作方法 |
|
第五天 |
| 学习目标: |
|
本课程重点介绍Altera公司基于NIOSII软核的SoPC系统设计流程和方法,建立学员基于FPGA的嵌入式开发的概念,并体会SOPC带来的灵活性. |
| 5.SoPC系统设计 |
|
◇FPGA片上系统的开发流程 ◇片上微处理器的几种系统设计方案 ◇片上微处理器与外设之间的通信 |
◇基于NIOS II的硬件系统设计流程 ◇使用SOPC Builder进行软件开发与调试 |
| 实验九:基于NIOSII处理器的Hello Led程序 |
| 训练知识点: |
|
◇QuartusII SOPC Builder使用方法 ◇NIOSII IDE软件开发流程 |
◇基于NIOSII的C语言设计方法 |
| 实验十:基于NIOSII的UART实验 |
|
训练知识点: |
|
◇UART通信原理 ◇基于NIOSII开发的驱动调用方法. |
◇NIOSII 开发的软件调试方法. |
|
第六天 |
| 学习目标: |
|
复习前面五天学习的内容,按照正规FPGA设计团队的要求,组建FPGA设计团队,进行综合项目训练 |
| 6.FPGA综合项目训练 |
| 训练知识点: |
|
◇前面五天学习到的FPGA开发知识 ◇要求熟练掌握项目需求报告编写,任务功能的模块化技巧 ◇复杂数字系统的仿真以及综合约束技巧等 |