FPGA网络班课程大纲(学完课程可包就业)

FPGA AI 设计就业课程

  •  

        1.  Sublime 编辑器安装和插件库配置,高效开发工具
        2.  仿真工具Modelsim工具安装和设置
        3.  赛灵思ISE开发工具安装与使用
        4.  Verilog 语法基本书写格式
        5.  Verilog 可综合语句变量类型
        6.  Verilog 赋值语句的使用方法
        7.  Verilog 运算符号的使用方法
        8.  Verilog 条件判断语句的使用方法
        9.  计数器奇数分片方法和呼吸灯
        10.  模块的Top-Down设计方法
        11.  有限状态机的使用和选择方法
        12. 按键消抖学习边沿控制时序
        13. 综合项目按键售货机(练习按键去抖和状态机)

     

      1. 14.  PLL原理和使用方法
      2. 15.  Ram使用方法和双Ram乒乓操作
      3. 16.  异步串口通信和初试在线逻辑分析仪调试
      4. 17.  VGA接口基本驱动时序和测试彩条显示
      5. 18.  VGA接口图像叠加原理和图像移动原理(叠加十字光标)
      6. 19.  图像处理中3X3矩阵运算中双FIFO流水线原理
      7. 20.  使用双FIFO流水线实现并行Sobel算子边缘检测
      8. 21.  SPI总线基本时序原理和FLASH芯片读写擦除时序指令
      9. 22.  FPGA在线升级原理和使用ICAP原语实现多镜像启动
      10. 23.  SDRAM控制器初始化基本流程
      11. 24.  SDRAM控制器读写仲裁器
      12. 25.  综合大项目UART+SDRAM+VGA实现图像实时处理小系统

    初级阶段板卡EagleL 售价480元

    课程名称:精简帧实现

    项目概况:通过rs232总线实现PC端和FPGA端数据组的通信,为了防止误操作或者干扰导致的通信错误,在实现PC机和FPGA端通信中加入相应的帧协议,只有在接收端收到正确的帧协议时才会对发送来的数据进行解析处理。

     

    应用案例:帧协议在很多的通信方式中都会存在,本节课的帧协议来自于千兆以太网内部的链路协议,帧协议也方便与数据的加密操作。

    效果描述:在该帧协议中已经确定了相应的指令,可以通过PC端发送相应的指令来控制FPGA端处理相应的数据,比如可以在PC端发送写入数据的功能,当帧解析模块接收到对应的指令后,则会将帧协议内的数据写入到对应的存储区域。

    结构框图:

     

    Course name: Thin frame implementation

    课程名称:FPGA multiboot功能

    Course Name: FPGA multiboot feature

    项目概况:本课程中将会把程序的固化芯片(flash)分为多个存储区间,第一个区间内的程序功能包含可以修改flash 内其他区域的程序,以及可以跳转到其他存储区域。可以先在其他区域存储点亮一个led灯的程序,通过串口发送擦除该区域的命令,则该块区域内点亮一个led灯的功能则会被清除,我们可以再次通过串口发送另外一个功能的程序到该区域,之后启动程序跳转模块,那么FPGA就会执行第二次的程序,这样就可以完成在不通过程序下载的方式升级FPGA的控制程序。

     

    应用案例:FPGA一般使用flash作为程序固化芯片,我们通过该项目可以升级FPGA可执行的程序,而不需要通过下载口烧入,这种功能适用于很多需要重复修改产品功能的场合。

    效果描述:我们本身在第二个存储区域内存放点亮1个灯的代码,当我们对该区域程序升级后,可以变为其他的效果,比如点亮2个灯。

    结构框图:

     

    初级阶段综合项目:SDRAM + UART +VGA图像存储显示系统

    Initial Phase Integrated Project: SDRAM, UART, VGA Image Storage and Display System

    项目概况:本阶段是学员练习大作业,结合SDRAM控制器学会使用仲裁机制完成读写控制器复用,把前面的图像显示案例里的RAM替换为SDRAM这样可以显示更大尺寸图像或视频帧,本实验案例是按照640*480分辨率作为显示分辨率。

     

    应用前景,在一些低功耗场景需要使用SDRAM来降低相机功耗,本案例学习掌握关键技术后可以实现相机视频缓存处理与显示。

    结构框图:

     

  •  

      1. 15.  视频现实中双Buffer缓存消除图像撕裂算法
      2. 16.  视频采集项目ISP算法之白平衡算法(本相机色偏偏绿,进行白平衡纠正)
      3. 17.  实现拍照功能照片存储SD卡
      4. 18.  TCP/IP协议栈使用,使用LWIP协议栈完成视频采集(PC千兆网下发视频)
      5. 19.  综合项目Zynq Soc Arm和 FPGA联合实现视频的存储和显示驱动(本项目是2019年帮xx公司实现的图像处理验证平台)
      6. 20.  FFT基本原理和IP和使用方法
      7. 21.  FIR 基本滤波原理和高低通滤波器设计方法,定点系数导入
      8. 22.  DDS本震混频实现上下变频
      9. 23.  混频后的信号通过FIR滤波器滤除带外信号
      10. 24.  FFT进行频率检测

    中级阶段重点项目

    Intermediate phase key projects

     

        1.  Xilinx Zynq 系列芯片发展与未来方向讲解
        2.  Zynq开发方式与知识储备
        3.  Zynq SDK开发C语言基础
        4.  Zynq 外设驱动开发,IIC驱动温度传感器
        5.  Zynq 外设驱动开发,SPI驱动摄像头或加速度传感器
        6.  Zynq 外设驱动GPIO和中断机制以及注册中断
        7.  Zynq 双核逻辑AMP非对称双核应用程序开发
        8.  Zynq PL-PS中断使用方法
        9.  Zynq PL-PS慢速AXI-lite接口驱动时序和自定义IP封装
        10.  Zynq PL-PS高速接口HPx4 ACPx1驱动原理和时序实现DMA Write and Read,自定义IP 灵活好用
        11.  使用HP口中Cache一致性问题解决方案
        12.  索尼IMX222传感器图像采集解析拜耳图像转RGB图像
        13.  1080P视频的DMA写控制器实现
        14.  1080P视频的DMA读控制器实现

    项目描述:Zynq在工控领域有着很广的应用范围,那么传感器外设的访问必不可少,所以掌握使用Zynq驱动访问外设是基本技能之一。本阶段案例会选取IIC SPI来驱动不同的外围设备。

     

     

    项目名称:使用Zynq完成对外围设备的访问(课程1~7实现的综合项目)

    Project name: Use Zynq to complete access to peripherals

    中级阶段板卡EagleGo-HD 售价2980元

    项目名称:Zynq+索尼IMX222视频采集项目(8~17讲实现的项目)

    Project Name: Zynq and Sony IMX222 Video Acquisition Project

    项目描述:FPGA在数字信号处理领域起着重要作用,无论在安防和新兴的汽车电子领域都有很深的影响力,本项目实现索尼高清1080P视频流的采集,主要使用的技术有RAW2RGB的算法实现,自定义AXI DMA的实现,HDMI驱动实现等等。

     

     

    实际项目BD图

     

    项目介绍:本项目帮助一家红外相机厂家,完成TCP协议栈视频传输到FPGA板卡,FPGA板卡完成视频存储与显示,中间预留好视频处理端口提供给厂家验证自己的图像处理算法,本项目主要涉及到自定义RTL IP的灵活使用如何结合HP口完成ARM和FPGA的大数据交互和视频无撕裂显示。同时使用ACP接口完成视频DMA写的内存直接访问(此接口可以解决Cache不同步问题,有些工程师使用Zynq的DMA存储视频会有拖尾就是此原因)。

     

    Project name: ZYNQ image processing verification platform

    项目名称:ZYNQ的图像处理验证平台(18~19,12~15讲)

    项目名称:FIR高低通滤波器、上下变频、FFT频率检测

    Project name: FIR high and low pass filter, up and down inverter, FFT frequency detection

    项目概况:数字信号处理中应用FIR滤波器进行数字滤波,无线通信中滤除带外噪声。上下变频是无线通信调制解调的关键技术,FFT在时域频域转换中起到重要作用,无线通信中频偏检测和OFDM调制解调都会应用到。

     

     

    应用案例:FFT应用在频谱分析仪,频率检测计,频偏矫正环路;FIR滤波器应用在通信系统中的调制解调模块。

     

     

    效果描述:输入信号含有1Mhz 和5Mhz的正弦波,进入我们设定好的低通滤波器后,滤除高频剩余1Mhz正弦波。将滤波后的信号输入给FFT模块完成频率检测,通过FFT输出数值可以计算出频率值,相位和功率值。图像处理中将含有噪声的图像输入给滤波器,经过处理后噪声降低提高图像质量。

    结构框图:

     

    项目名称:FPGA测试过程管理能力提高

    项目描述:符合FPGA测试标准流程的过程管理能力培养,丰富的实训案例,帮助从业人员快速达到FPGA行业标准要求的技能认证。

    FPGA test flow and management 

    平台系统构架图 

  •  

        1.  Xilinx Artix7芯片DDR3控制器IP基本原理
        2.  Xilinx Artix7芯片DDR3控制器初始化流程
        3.  Xilinx Artix7芯片DDR3控制器读写时序讲解与实现
        4.  Xilinx Artix7芯片DDR3控制器的读写仲裁机制
        5.  DDR3控制器与视频源和显示端添加FIFO时钟源切换机制
        6.  Xilinx Artix7芯片Serdes原语实现HDMI接口
        7.  Xilinx Artix7芯片实现HDMI的8b10b编码
        8.  UART+DDR3+HDMI联合图像存储与显示系统
        9.  千兆以太网基本原理和协议讲解
        10.  千兆以太网PHY芯片与FPGA芯片连接结构
        11.  以太网PHY芯片RGMII接口时序与IDDR和ODDR实现
        12.  以太网接收端时序和帧解析跨时钟域处理
        13.  以太网Matlab发送模拟图像数据,FPGA接收图像数据帧并写入DDR3和HDMI显示
        14.  反向发送以太网UDP协议帧给上位机,请求图像帧包(包含UDP协议组帧,IP层UDP层的校验和计算方法)
        15.  千兆网CRC校验推到和计算方法,以及FPGA并行化实现
        16.  HDMI接收端Serdes恢复时钟同步字对齐算法
        17.  显卡与FPGA的HDMI接收器互联,实现计算机视频流到FPGA处理存储
        18.  基于差值的Gardner 比特同步算法实现
        19.  DPMR协议的去交织算法实现
        20.  DPMR信道编码FEC和CRC解码实现
        21.  实现基于DPMR协议的两个移动端短信互通

     

      1. 18.  时序分析的基本模型和原理 
      2. 19.  使用千兆以太网项目完成时钟约束IO delay的约束
      3. 20.  使用千兆以太网项目分析关键瓶颈路径
      4. 21.  使用千兆以太网项目根据vivado 策略优化,物理优化,手动修改代码优化来达到时序收敛
      5. 22.  Artix7高速接口原理和IP核使用方法
      6. 23.  带有流控的GTP接口仿真验证
      7. 24.  使用GTP回环机制完整对GTP复位,同步时效恢复方法验证实现
      8. 25.  FPGA模拟视频源通过GTP回环收发视频帧,DDR缓存和HDMI显示形成闭环
      9. 26.  PCIE基本原理Root Port 和End Point的主要功能实现
      10. 27.  PCIE在与PC机主板挂在的基本原理和使用注意事项
      11. 28.  FPGA PCIE IP和的设置和初始化流程
      12. 29.  FPGA 封装TLP包流程和TLP协议组成
      13. 30.  讲解我公司PCIE的FPGA驱动源码,以及用户接口使用方法
      14. 31.  上位机驱动讲解和使用(Window 和 Linux)
      15. 32.  通过Matlab 驱动PCIE收发视频帧数据。
      16. 33.  联合PCIE+GTP+DDR3完成闭环数据传输显示系统综合项目

    Advanced course focus project case

    高级课程重点项目案例

    高级阶段板卡:EagleGT 售价2780元

    项目概况:针对以往的HDMI和千兆以太网项目进行时序约束,并且调整系统时钟频率,直到系统出现时序错误。分析关键路径,通过约束,修改源代码,或者手动布线等方法进行优化。存在多时钟域的项目进行例外路径约束,并检查跨时钟域处理是否合理。

     

     

    结构框图:

     

     

    效果描述:通过约束整个项目的时钟,数据路径,修改代码,手动布线等方法使得整个项目的时序余量在控制范围内,通俗的讲就是把红色违例路径优化为绿色正常路径。

     

     

    应用案例:芯片设计前端和芯片设计后端应用中,FPGA逻辑功能开发等。

     

     

     目名称:时序分析优化、跨时钟域处理

    Project name: Timing analysis optimization, cross-clock domain processing

    项目名称:千兆以太网图像存储、显示、传输系统

    Project name: Gigabit Ethernet image storage, display, transmission system

    项目概况:使用FPGA实现千兆以太网MAC层协议以及UDP协议,完成与PC机或者其他设备进行千兆以太网通信。千兆以太网联合DDR3等存储器可以实现图像的存储,显示和传输。

     

     

    结构框图:

     

     

    效果描述:通过上位机软件和下位机逻辑系统完成不同平台之间的数据交互,上位机软件可以实时显示来自逻辑系统的图像。此项目是一个通用平台,可以用于多路数据采集等不同应用。 

     

     

    应用案例:智能千兆以太网交换机,应用于数据中心或者骨干网络;千兆以太网智能防火墙,应用于保密单位的网络数据包过滤;智能物联网数据采集卡,收集每个节点数据回传给服务器;案例公司:美国国家仪器公司,华为有限公司,中兴股份,海康威视,大华股份等。

     

     

    项目概况:高速数据通信中广泛应用GTP接口和PCIE 接口,GTP接口连接光模块完成光纤数据的收发,PCIE将光纤采集到的数据通过PCIE X2通道DMA搬迁到PC机的内存中,实现高速数据的采集存储。

     

    结构框图:

     

     

    效果描述:GTP收发器可以实时收发6Gbps的数据,同时可以缓存到高速DDR3存储器中,如果需要将大量数据转存到计算机平台中,通过PCIE X1的接口可以实现200MByte的DMA速率,可以实时的将数据传输给上位机软件。 

     

     

    应用案例:X光机,CT仪,核磁共振仪,以上医疗仪器在进行采集图像时通过PCIE高速接口将数据传输给计算机;工业控制领域中,多个产品生产线的设备状态信息采集,通过PCIE接口采集到PC机中进行管理控制,数据分析。

     

     

    Project name: GTP high-speed serial interface data transmission, PCIE X2 data acquisition

    项目名称:GTP高速串行接口数据传输、PCIE X2数据采集

  •  

        1.  Xilinx 7系列芯片万兆以太网子系统搭建
        2.  RTL编码实现万兆网UDP协议组帧解帧
        3.  Xilinx 高速接口Serdes底层结构原理详解
        4.  Xilinx 高速接口线速率QPLL和CPLL结构参数配置讲解
        5.  Xilinx 高速接口64b66b编码规则协议讲解与实现(非aurora64b66b IP)-手写代码实现
        6.  高速接口通信中加扰和解扰编解码算法实现-手写代码实现
        7.  高速接口中Serdes中gearbox的使用并实现搜索同步算法完成对高速接口串流的同步跟踪
        8.  Xilinx高速SerDes实现低延迟自定义PMAPCS传输-直接从gearbox收发数据降低数据延迟。(可以应用于金融行情本地版解码应用,快速拿到行情信息)
        9.  基于xilinx 高速SerDes 实现高速基带信号采集传输
        10.  Xilinx SRIO 高速接口IP基本原理讲解
        11.  Xilinx SRIO HELLO Format 包结构讲解
        12.  定制用户传输协议(SRIO)和Doorbell机制以及代码实现
        13.  联合上位机实现以及高级课程中PCIE驱动代码结合SRIO的数据读写交互,实现上位机软件控制SRIO数据传输和采集。
  •  

      1. 第一讲:SDSoc环境安装和Ubuntu环境安装
      2. 第二讲:在Ubuntu环境中配置Caffe深度学习框架
      3. 第三讲:卷积神经网络基础知识精讲
      4. 第四讲:基于Cifar10的基础自定义网络结构文件,设计私有网络
      5. 第五讲:编写训练脚本和调整学习率达到更好的训练效果
      6. 第六讲:搭建Cifar10测试环境利用CaffeModel文件测试网络实际效果
      7. 第七讲:Python环境搭建和Python提取参数接口脚本编写
      8. 第八讲:SDSoc硬件平台搭建和Zynq7000系列加速平台搭建原理
      9. 第九讲:卷积层算法C代码实现精讲
      10. 第十讲:核心卷积算法共享加速实现以及SDSoc中#pragma使用方法精讲
      11. 第十一讲:算法完成后进行性能分析TCF分析,监测资源占用并针对性优化
      12. 第十二讲:EagleGo板卡实际验证和调试方法
      13. 第十三讲:Caffe的数据集制作,编辑自定义数据集,完成任意分类和识别(应用到各自领域)

    实现效果: