首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA学习的三个阶段

FPGA学习的三个阶段

第一阶段 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)通常采用面向流处理的加速器。
  • 加速器内部包含可由嵌入式软件设置的控制和状态寄存器。
  • 采用穷举仿真对加速器进行验证通常是不现实的。可以操作的每个方面进行独立的验证,但完整的验证计划必须包括其它形式的验证。

继承事业,薪火相传
返回列表