第一阶段 Verilog数字系统设计基础 |
| Verilog 基础知识 | - 硬件描述语言概况和绪论
- Verilog语言的优点适用的场合
- 软核、固核和硬核与IP的重用与Verilog的关系
- 数字逻辑设计的流程和工具
- 层次管理和设计的仿真和优化
- 测试平台(testbench)的概念
- 一个简单设计的全过程举例
| | | |
| Verilog 基本语法 | - 模块的基本概念
- RTL模块和Testbench模块的不同点
- 模块的结构、数据类型、常量和变量
- 运算符和表达式
- 赋值语句和过程块语句
- 条件语句、循环语句、过程块语句和生成语句
| | | |
| Verilog 的简单系统和
测试模块 | - Verilog模型的不同抽象
- Verilog的门级结构的模型
- Verilog的行为模型
- 可综合的组合逻辑的设计和验证
- 基本电路组件:加法器、乘法器、多路器、
- 总线和总线操作、流水线
| | | |
| 数字系统的 Verilog 模型 | - 数据流动的控制逻辑
- 数据在寄存器中的暂时保存
- 数据流动的控制
- Verilog设计中的同步时序逻辑
- 数据接口的同步方法
| | | |
| 时序电路设计要点 | - 同步有限状态机的结构
- 米利状态机和摩尔状态机
- 如何用Verilog 来描述有限状态机
- 可综合状态机的设计指导原则
- 可综合风格的Verilog 模块设计举例
- 状态机的同步复位和异步复位
| | | |
| 复杂数字电路设计实践 | - 深入理解阻塞赋值和非阻塞赋值的不同
- 较复杂时序电路设计实践:RTL设计和testbench的编写。
- I2C接口设计的分析、实现和验证。
- RISC-CPU设计的分析、实现和验证。
| | | |
第二阶段 基于FPGA的嵌入式系统设计(嵌入式协处理器-FPGA) |
| FPGA组织结构和设计流程 | - 与FPGA相关的概念
- FPGA的结构组成
- 基于SRAM的FPGA的结构和实现方式
- 反熔丝编程和基于Flash的FPGA的结构和实现方式
- 掌握逻辑设计流程
- 掌握硬件描述语言Verilog HDL
- 有限状态机的Verilog描述和综合
- 常用测试平台的编写和使用方法
| | | |
| Quartus #简明教程 | - Quartus #软件的运行及Modelsim的配置
- 用Verilog创建工程并设计输入
- 创建Testbench测试文件并用Modelsim进行RTL仿真和布局布线后的时序仿真。
- 用原理图设计输入
- 对顶层文件仿真
- 下载配置
- 使用布局逻辑块
- 使用FPGA布线工具
| | | |
| IP核开发 | - 学会使用参数化模块的实例调用
- IP资源复用理念与IP基本概念
- IP 核调用工具和FIFO, DPRAM等应用实例的设计和验证
- 学会使用IP核生成工具
- 学会将自己设计的IP核放入IP库
- IP核设计、入库和使用的实例
| | | |
| 锁相环(LPM)
和SignalTap的使用 | - 利用 Quartus 提供的工具找到参数化锁相环 (PLL)
- 在FPGA芯片中实现 PLL 模块的不同频率和相位时钟的配置
- 学会在实现电路中用 SignalTap II 等逻辑观察和分析工具
- 在复杂数字系统中使用PLL
| | | |
| RISC-CPU的开发 | - 回忆Verilog基础中的RISC-CPU的开发
- 改造该RISC-CPU到FPGA上运行
- 中断控制器的概念和设计
- 键盘扫描控制器的概念和设计
- 硬件和软件系统的仿真调式
- 硬件和软件系统在FPGA上的运行调试实验
| | | |
| SOPC Builder开发环境 | - SOPC Builder开发流程
- 用SOPCBuilder设计流程实例
- 嵌入式CPU核NiosII的介绍
- 如何用NiosII 最小系统构成系统
- 用最小系统控制LED闪烁的实验
| | | |
| NiosII IDE 嵌入式处理器
软/硬件系统软件程序
一体化开发环境 | - Nios II IDE 软件开发流程
- 软/硬件联合开发设计流程实例
- 用NiosII核、自己设计的简单IP核、现成的IP核、Avalon总线和SRAM等外围器件构成LED阵列控制器,并编写配套软件,
- 在按钮控制下显示多个16x16点阵的汉字。
- 操作系统问题的探讨
| | | |
第三阶段 嵌入式系统的专用算法硬件设计实践(FPGA) |
| 硬件加速器的一般概念 | - 硬件加速器的一般概念
- 什么是算法核心
- 用硬件来实现算法核心的意义
- 硬件加速器的两种基本结构
- 并行结构和流水线结构
- 块处理加速器和数据流处理两种加速器
| | | |
| 设计实例研究
视频图象的边沿检测 | - 视频图象边沿检测的Sobel卷积算法原理
- 简化算法的计算机软件程序
- 速度的要求和软件算法的瓶颈
- 计算速度对内存带宽的要求
- 根据速度要求设计相应的硬件结构
- 根据硬件结构的Verilog代码设计
| | | |
| 硬件加速器的验证 | - 验证的一般概念
- 从机总线操作的验证
- 计算时序的验证
- 主机总线操作的验证
- 地址自动产生的验证
- 像素计算的验证
- 验证Sobel加速器的测试平台的设计举例
| | | |
| 硬件加速器设计总结 | - 并行,即一次执行多个处理步骤,可以使加速器完成一个操作所需的时间减少。
- 加速器通过硬件资源的复制和流水线操作实现了并行,这使得我们必须权衡成本和性能(以及功耗和性能)对设计的重要性,从而做出正确的抉择。
- 可达到的并行程度受制于计算中数据的依赖度。
- 加速器的设计涉及算法分析,确定由硬件完成的算法核心。算法的其它部分可由嵌入式软件完成。
- Amdahl法则量化了由加速算法核心部分所带来的总体速度提升。
- 加速器和高速I/O控制器可以采用直接存储器访问方式(DMA)向存储器写入/读出数据,而不需要处理器干预。在这种控制器里,由地址发生器为DMA方式计算存储器地址。
- 总线仲裁器可在任何时候,裁决由哪个总线主机控制总线,访问哪个总线从机,诸如存储器和I/O控制器中的寄存器。
- 块处理加速器处理储存在存储器中的数据块。许多视频和静止图像的处理应用是面向块处理的。
- 流处理加速器可以处理来自于源设备按照顺序到达的数据块。 数字信号处理(DSP)通常采用面向流处理的加速器。
- 加速器内部包含可由嵌入式软件设置的控制和状态寄存器。
- 采用穷举仿真对加速器进行验证通常是不现实的。可以操作的每个方面进行独立的验证,但完整的验证计划必须包括其它形式的验证。
| | | |