Menu Close

VHDL语言编程与FPGA应用教材

一、FPGA与VHDL课程简介

  1. 课程简介

  2. FPGA开发板简介
  3. VHDL 语言简介
  4. 仪器设备的使用

    1. 示波器的使用

二、VHDL 基本语法

  1. VHDL注释语句与文件头部编写
  2. VHDL 设计文件的基本格式(entity architecture)
  3. VHDL 实体例化与简单层次电路设计
  4. FPGA 双向口的使用及VHDL实现
  5.  模块语句编程与实验
  1. 7. VHDL标识符与数据类型

8. VHDL运算符

    • 逻辑算符及表达式
    • 关系运算符及表达式
    • 算术运算符及表达式
    • 移位运算符及表达式
    • 位拼接运算符及表达式
    • 归约运算符及表达式
    • 运算符优先级
    • VHDL中not、!、~的区别
    • VHDL中信号或数值 ‘X’ 是如何使用的

9. VHDL表达式与 语句

    • 并发赋值语句与并发过程
    • 顺序语句
      • always 过程
      • 函数调用–function
        • VHDL中function在PRBS方面的应用
      • VHDL任务(task)的语法与使用
        • 利用VHDLtask 计算斐波那契数列
    • 分支判断语句
      • if语句
      • case 语句
      • 问号“?”语句
    • 循环语句
      • for 循环语句
      • VHDL forever 循环语句
      • while 循环语句
      • VHDL repeat 循环语句
    • VHDL中阻塞与非阻塞赋值语句
      • VHDL中阻塞与非阻塞赋值语句的区别
    • 变量类型及使用范围深入探讨
    • VHDL中generate 语句
    • VHDL中std_ulogic与std_logic的区别
    • 实验设计 Modelsim 仿真
      • VHDL testbench 编写进阶(1)–$display
      • VHDL testbench 编写进阶(2)–$monitor
      • VHDL testbench 编写进阶(3)–$strobe,$write
      • VHDL testbench 编写进阶(4)–数学函数及$clog2(x)
      • Modelsim仿真进阶

10. VHDL 程序设计初步

    • Quartus  图形输入层次电路设计
      • Quartus 图形界面的设计输入方法
      • Quartus 图形输入法自底向上的设计方法
      • Quartus 基于图形设计输入自顶向下的设计方法
    • 组合电路设计
      • 全加器,全减器,累加器设计
      • 乘法器的设计及仿真注意事项
      • 优先编码器的设计及VHDL描述
      • 3/8译码器及VHDL不同实现方法
      • 3/8译码器的不同实现在FPGA上综合后逻辑比较
      • 数据选择器
      • 数据分配器
      • 实验设计 板载FPGA实验
    • VHDL时序电路设计
      • 时钟的使用及触发器映射
      • PLL 设置与使用
        • Quartus 下PLL生成、设置与使用
      • 分频器的设计
      • VHDL计数器设计及触发器模型深度分析
      • 数码管译码与扫描
        • 数码管原理与显示译码原理
        • 数码管显示译码及VHDL代码实现
        • 数码管动态扫描显示VHDL实现
      • 自适应按键去抖VHDL实现与FPGA板载测试
      • 复杂数字钟设计与FPGA板载实验
        • 利用VHDL进行复杂数字钟设计(1)–程序功能划分技巧
        • 复杂数字钟设计(2)–按键去抖
        • 复杂数字钟设计(3)–BCD码计数
        • 复杂数字钟设计(4)–分频与显示译码
        • 复杂数字钟设计(5)–调度
        • 复杂数字钟设计(6)–模块组装及硬件调试(PRA006)
        • 复杂数字钟设计(7)–模块组装及硬件调试(PRX100-D)
      • Quartus QSF约束文件定义与使用
      • FPGA中 同步复位(sync)和异步复位(async)的使用
      • 阻塞与非阻塞赋值语句深度探讨及的使用技巧(1)
      • 阻塞与非阻塞赋值语句深度探讨及的使用技巧(2)
    • VHDL状态机设计
      • VHDL状态机概述
      • 状态机建模与VHDL程序设计–摩尔机与梅利机
      • 状态机中状态编码格式
      • 状态机分段描述方法
      • 状态机应用
      • VHDL实现16进制到10进制(BCD)转换(1)加减计数法
      • VHDL实现16进制到10进制(BCD)转换(2)减法计数法
      • VHDL实现16进制到10进制(BCD)转换(3)快速算法
      • 硬件验证
      • 硬件调试
        • Signal Tap Logic Analyzer在线调试工具的使用
        • Vivado软件 调试工具的使用初步
        • Vivado软件 调试工具的使用进阶(VIO的使用)
        • Quartus 软件 In-System Memory Content editor 使用

三、FPGA IPcore的配置与使用

  • ROM的设计与使用
    • Intel-Altera
      • Quartus ROM 的生成与配置详解
      • Quartus 下 mif文件的使用
      • Quartus 下利用ROM 实现7段译码显示
      • Quartus ROM IP Modelsim 仿真注意事项
      • Quartus 软件 In-System Memory Content editor 使用
    • Xilinx
      • Vivado Block ROM 的生成与配置详解
      • Vivado下利用ROM显示数码管实验课
      • Vivado下锯齿波通过ROM 查找表转换成正弦波
  • 单口RAM的设计与使用
  • 双口RAM的设计与使用
    • Intel-Altera
      • Quartus 双口RAM例化详解
      • Quartus 双口RAM仿真与测试一
      • Quartus 双口RAM仿真与测试二
      • Quartus 双口RAM仿真与测试三
    • Xilinx
      • Xilinx 7系列FPGA Block RAM概述
      • Vivado真双端口(TDP)RAM IP核的生成与配置详解
      • Vivado下利用TDP RAM 实现乒乓Buffer实例
  • FIFO的设计与使用
    • 自建同步时钟,数据等宽FIFO IP 方法
    • Intel-Altera
      • Quartus FIFO生成与配置详解
    • Xilinx
      • FIFO IP核在Vivado2018.2下的使用(一)标准同步FIFO
      • FIFO IP核在Vivado 2018.2下的使用(二)同步FIFO, First-Word Fall-Through
      • FIFO IP核在Vivado 2018.2下的使用(三)标准异步FIFO
      • FIFO IP核在Vivado 2018.2下的使用(四)AXI4- Stream FIFO简单使用
  • testbench 编写精通
    • VHDL文件操作-$fopen,$fclose
    • VHDL文件操作-$fdisplay,$fwrite,$fstrobe,$fmonitor
    • VHDL文件操作-$fgetc,$fgets,$fscanf,$fread
    • VHDL文件操作-$fseek,$ftell,$feof
    • vivado 仿真工程中$readmemh 使用
    • VHDL仿真工程应用-生成coe/mif 文件
    • VHDL文件操作练习
      • VHDL文件操作练习(1)BMP图像色彩替换
      • VHDL文件操作练习(2)BMP图像生成coe/mif文件

四、综合设计-通讯类

  • 通信概述及分类
  • VHDL输入信号边沿检测电路

1.  UART接口及应用

    • 异步串行口(UART)的基本知识
    • 异步串行收发(UART)协议详解(1)
    • 异步串行收发(UART)协议详解(2)–波特率
    • VHDL UART 设计
      • UART的发送器TX的FPGA实现及实验
      • 串口 UART RXD
        • 多倍采样位中心对齐RXD
        • 多倍采样累计判多RXD
      • UART 组装与仿真
      • 波特率设计与控制寄存器
        • 数据帧的设计
        •  串口UART实验(与计算机串口通讯)
          • uart通信tx模块在FPGA实现的一种VHDL状态机写法(一)
          • uart通信tx模块在FPGA实现的一种VHDL状态机写法(二)
          • uart通信rx模块在FPGA实现的一种VHDL状态机写法(三)
          • uart通信rx模块在FPGA实现的一种VHDL状态机写法(四)

2.  I2C接口及应用

    • I2C 接口基本理论一
    • I2C接口基础知识二
    •  I2C接口设计
      • I2C 主设备分频器设计
      • I2C 主设备启动及读写控制VHDL程序设计
    •  I2C接口程序不同设计技巧
      • I2C(IIC)VHDL开发学习技巧(一)
      • FPGA I2C(IIC) VHDL开发学习技巧(二)
      • 当前地址读FPGA I2C(IIC) VHDL开发学习技巧(三)
      • 随机地址读FPGA I2C(IIC) VHDL开发学习(四):
      • eeprom检测程序
    •  I2C接口应用
      • E2PROM 的读写
      • I2C接口ADC/DAC转换的数据读写
      • PCF8951使用技巧

3.  SPI接口及应用

    • SPI 通讯协议 及 SPI 相关工程 详解
      • 标准SPI 协议
      • SPI 通讯协议(1)SPI 定义与应用
      • SPI 通讯协议(2)简单的SPI VHDL模块及仿真
      • SPI 通讯协议(3)SPI FLASH 介绍
      • SPI 通讯协议(4)SPI FLASH (VHDL) 工程解析 (spi_phy.vhd)
      • SPI 通讯协议(5)SPI FLASH (VHDL) 工程解析 (spi_cmd.vhd)
      • SPI 通讯协议(6)SPI FLASH (VHDL) 工程解析 (spi_IF.vhd)
      • SPI 通讯协议(7)SPI FLASH (VHDL) 工程解析 (TOP.vhd)及仿真
      • SPI 通讯协议(8)SPI FLASH (VHDL) 工程解析 (开发板操作)
    • SPI的仿真程序

 

4.异步串行高速通信

    • 差分信号原理及LVDS电气接口
    • FPGA 与LVDS接口电路设计
    • Quartus LVDS_RX与生成配置
    • Quartus LVDS TX生成与配置
    • 高速通信发送与数据串行化
    • 高速串行通信异步接收器设计
    • 亚稳态消除及边沿提取VHDL实现
    • VHDL自适应位同步信号提取
    • 同步字提取与帧同步
    • 串行通信帧结构设计初步
    • 接收端异步时钟域数据交换
    • 信道编码–PCS子层原理与结构
      • 8b/10b编码基础知识
      •  8b/10b编码与PCS子层架构设计
        • 8b/10b 编码VHDL代码
        • 10b/8b解码VHDL代码
        • VHDL 8b/10b encoder
        • VHDL 10b/8b decoder
      • 高速通信分层设计及PCS子层实现—发送端VHDL代码
      • 高速通信分层设计及PCS子层实现—接收端VHDL代码
      • 高速通信分层设计—PRA006开发板实验(Altera)
      • 高速通信分层设计—PRX100T-D开发板实验(Xilinx)
    • 异步过程与数据缓冲(FIFO)
    • 数据缓冲与乒乓Buffer
    • 高速通信乒乓Buffer数据缓冲Veri log实现–发送端
    • 高速串行通信接收端乒乓Buffer数据缓冲VHDL代码
      • 64b/66b
      • 加扰解扰
        • 高速通信中的信道编码–加扰与解扰
        • 高速通信中的信道编码–加扰与解扰(加性加扰实验)
        • 高速通信中的信道编码–加扰与解扰(乘性加扰实验)
        • WIFI 加扰及解扰生成多项式
    • 数据校验
    • CPU/DSP接口设计与仿真
    • CPU/DSP FPGA高速串行通信系统集成
    • 通信线路故障处理
    • 多机网络通信

5. 网络通信(千兆网)

    • 互联网基本知识 —互联网构成及相关设备
    • IEEE 802.3以太网的命名规范
    • 10M/100M/1000M网络的区别与联系
    • TCP/IP的分层原理
    • 媒介无关层MII接口
      • 千兆PHY RTL8211E 资料
      • 网速检测及VHDL实现技巧
      • Xilinx FPGA DDR 接口及VHDL实现
    • 数据链路层(MAC)
    • CRC原理
    • CRC32 VHDL并行计算代码
      • 前导知识
        • 数域的概念
        • 二进制数域及计算
        • 模2多项式运算规则和公式
      • CRC逻辑电路设计
      • 互联网MAC层CRC32 生成器
      • 互联网MAC层CRC32 Check VHDL代码
    • 网络层(IP)的分类与结构
    • 网络层(IPv4)头部校验和的计算
    • 地址解析协议(ARP)
    • 用户数据包协议(UDP )及应用
    • 传输层协议(TCP)
    • 网络物理层基本知识(PCS子层)
    • 网络物理层基础知识2(PMA/PMD)
    • 以太网PHY 之 MDIO接口及应用
      • 以太网PHY 之 MDIO接口及应用(VHDL IP)
      • 千兆PHY RTL8211E 资料
    • 互联网网线及接口的基本知识
    • 网络 MAC 地址用法详解
      • 参考资料IEEE-EUI-OUI
    • Xilinx FPGA DDR 接口及VHDL实现
    • 网络综合实验(与计算机通信)
      • 网络综合实验硬件模块概述
      • 操作系统上以太网相关命令(ipconfig, ifconfig)
      • 网络综合实验 VHDL工程(eth_phy_core.vhd及其子模块)
      • 以太网工程中双端口的使用
      • 网速检测及VHDL实现技巧
      • MAC层接收 VHDL工程(eth_mac_rx.vhd)
      • MAC层发送 VHDL工程(eth_mac_tx.vhd)
      • 以太网UDP 实验(eth_ip_tx.vhd)
      • 以太网UDP 实验(eth_ip_rx.vhd)
      • 以太网UDP 实验(eth_udp_tx.vhd)
      • 以太网UDP 实验(eth_udp_rx.vhd)
      • 网络综合实验 VHDL工程(top.v及ETH_CORE.vhd)
    • 网络抓包工具(wireshark)介绍
    • 网络包抓取工具(wireshark 下载)
    • Fiddler 工具和网络测试
      • Fiddler工具——介绍与操作
      • Fiddler工具——HTTP协议报文结构
      • Fiddler工具——抓包原理
      • Fiddler工具——HTTP协议请求和状态码
      • Fiddler工具——HTTP请求Header
      • Fiddler工具——HTTPS协议
      • Fiddler工具——WEB页面抓包
      • WEB应用测试——功能测试
      • WEB应用测试——逻辑测试
    • 网络交换原理

6. MVB系统及曼切斯特编码

    • 曼彻斯特编码原理及应用
    • 曼彻斯特编码FPGA 实现
    • 曼彻斯特解码原理及应用
    • 曼彻斯特解码FPGA实现

7. 光纤通信类

    • XGMII及64b/66b万兆网光纤网编码格式

五、综合设计-图像处理类

1.图像接口及应用

    • 图片转MIF/COE小软件
    • 图像显示基本知识
    • 视频显示接口类型
    • 图像色彩空间转换
    • VGA接口设计与应用
      • FPGA图像处理之一:VGA显示
      • FPGA图像处理之二:VGA彩条显示VHDL实现
      • FPGA图像处理之三:VGA文字显示VHDL实现
      • FPGA图像处理之四:VGA显示数字时钟
      • FPGA图像处理之五:VGA显示图片
    • HDMI高清图像接口设计与应用
      • HDMI 概述
      • 使用prx100t-d 开发板 以及adv7511 芯片介绍
      • HDMI FPGA 工程设计1(框架设计)
      • HDMI FPGA 工程设计2(VESA h,v,de)
      • HDMI FPGA 工程设计3(rom, I2C 控制)
      • HDMI FPGA 工程设计4(vga_show.v 模块)

2.图像采集与传输系统的设计

    • 图像采集与传输系统(系统设计框架)
    • OV5640模组介绍
    • 图像采集与传输系统(摄像头驱动)
    • 图像采集与传输系统(摄像头控制模块)
    • 图像采集与传输系统(采集图像DDR数据存储)
    • 图像采集与传输系统(hdmi 显示输出)
    • 图像采集与传输理论答疑(1)
    • 图像采集与传输理论答疑(2)

六、综合设计-存储器类

    • 存储器基本知识简介
    • 只读存储器原理与应用EPROM
    • EEPROM的原理与使用
      • I2C接口EEPROM的原理与使用
      • SPI接口的EEPROM的原理与使用
    • Flash 存储器的结构与原理
    • 并行接口NOR FLASH 存储器读写及应用
    • NAND FLASH存储器的接口与应用
    • 随机存取存储器 RAM的结构与原理
    • 同步DRAM的原理与结构
      • DDR3-MT41J128M16HA内部结构与对外接口
      • DDR SDRAM 预充电与刷新的区别
      • DDR3存储器状态机及状态命令
      • DDR3 时间参数
      • DDR3 模式寄存器的配置与使用详解
      • DDR3 读写时序
    • DDR3 SDRAM硬件设计注意事项
    • VHDL综合设计五  DDR3存储器接口设计与应用
      • FPGA DDR3控制器设计
        • Vivado DDR3 控制器生成步骤(1)
        • Vivado DDR3 控制器生成步骤(2)
        • Vivado DDR3 控制器生成步骤(3)
      • DDR3控制器接口与使用
      • DDR3控制器简单应用程序设计与测试
    • DDR3控制器的使用及答疑

七、综合设计-语音类

  •  蜂鸣器实验
  • VHDL综合设计四  语音采集与应用
    • I2S的基本协议
    • 语音采集及回放

八、综合设计-数字信号处理类

九、综合设计- RISC-V  CPU 设计与应用

 

十、VHDL与FPGA设计技巧

    • 算法优化
      • 提高数字系统设计性能–数字设计与VHDL设计技巧一 全加器算法
      • 权值变换法实现16进制到BCD码转换
        • 权值变换法实现16进制到BCD码转换RTL代码改进
    • 流水线
      • 流水线原理
      • 流水线优化
    • 资源优化
    • 约束与优化
      • 约束与优化概论
      • 时序分析与约束
      • Quartus QSF约束文件定义与使用
      • Quartus 下SDC文件的生成与使用
      • Vivado XDC 文件约束文件初步
      • SDC XDC input_delay模型与使用
      • 时序分析与优化
      • 时序收敛技巧

十一、与FPGA相关的硬件设计

    • FPGA 没有使用的管脚处理
    • 电源树的分析与设计
    • 时钟树的分析与设计
    • 配置电路设计
      • Xilinx 7系列FPGA配置简介
    • IO接口资源与匹配
      • Xilinx FPGA DDR 接口及VHDL实现
    • CLB资源优化利用
      • Xilinx7系列FPGA SRL16E原语

十二、国产FPGA开发

    • 紫光FPGA开发系列(一):开发环境Pango Design Suite(PDS) 安装和License配置
    • 紫光国产FPGA开发系列(二):创建你的第一个PDS源代码工程
    • 紫光国产FPGA开发系列(三):创建PDS网表工程
    • 紫光国产FPGA开发系列(四):PDS工程常用操作技巧
    • 紫光国产FPGA开发系列(五)—在PDS工程中调用IP核
    • 紫光国产FPGA开发系列(六)—使用Modelsim仿真PDS工程

十三、  主流FPGA简介

  • Xilinx
    • Xilinx主流FPGA芯片简介(一)
    • xilinx主流FPGA简介(二)
    • Xilinx 7系列FPGA Block RAM概述
    • Xilinx原语及使用方法
  • Intel-Altera
    • Intel主流FPGA简介(一)
    • Intel主流FPGA简介(二)

十四、 Lattice FPGA 开发

  • LATTICE的FPGA开发软件diamond的安装
  • LATTICE DIAMOND 软件使用 详解
  • Lattice_Diamond_调用Modelsim_仿真
  • Diamond在线调试助手Reveal使用
  • Modelsim之TCL脚本自动化前仿真

十五、FPGA硬件资源

  • Xilinx

    • Xilinx FPGA芯片底层单元的使用(一)
    • Xilinx 7系列FPGA的时钟资源(1)
    • Xilinx 7系列FPGA的时钟资源(2)
    • Xilinx 7系列FPGA的时钟资源(3)
    • Xilinx原语及使用方法
    • Xilinx FPGA DDR 接口及VHDL实现
    • FPGA 输入IDELAY设置及应用
    • Xilinx 原语STARTUPE2的设置与应用
    • STARTUPE2 在spi flash 上的使用
  • Intel
    • Intel MAX10 FPGA 设计完整性指南

 

十六、 试题

FPGA 综合试题(一)

十七、 综合资料

开发板资料

    • FPGA 开发板FII-PRA006/010硬件资料
    • PRA006/010 原理图
    • FII-PRX100-D(ARTIX 100T,XC7A100T)硬件参考指南
    • FII_PRX100T_DDR_V1.3 硬件原理图
    • FII-BM7100 SoC开发板硬件手册
    • OV5640模组原理图(BD5640_PMOD)

FPGA相关资料

Xilinx

      • FPGA High-speed IO SERDES
      • Xilinx FPGA 7系列时钟资源
      • Vivado Design Suite User Guide — Synthesis
      • Xilinx selectIO datasheet
      • Xilinx FPGA 上电配置官方文档
      • DDR3_Xilinx_config
      • XILINX ARTIX 7 dc ac 特性手册
      • Xilinx Virtual Input/Output
      • 7 Series GTP Transceiver
      • Vivado下Implementation过程和管理
      • Vivado Design Suite User Guide(约束设置)
      • Vivado Design Suite Tutorial(约束教程)
      • Xilinx Tcl 命令官方文档

Altera

      • Intel  FPGA cyclone 10 LP 器件使用手册
      • Quartus — Design and Synthesis
      • 10Ge XGMII Altera datasheet
      • Quartus原语使用文档
      • MAX 10 High-Speed LVDS IO用户手册
      • Altera LVDS SERDES高速收发器
      • MAX 10 FPGA 信号完整性设计指南
      • Altera Tcl 官方文档

多媒体资料

    • AD/DA PCF8951
    • I2S接口语音接口芯片WM8978
    • ADV7511_Programming_Guide
    • ADV7511_Hardware_Users_Guide
    • OV5640_datasheet
    • OV5640自动对焦照相模组应用指南(DVP接口)
    • OV5640_Camera_Module_Hardware_Application_Notes_R1.0英文手册
    • OV5640_Auto_Focus_Camera_Module_Application_Notes
    • VESA standard pdf (英文)

通讯资料

    • Guideline for EUI -OUI assignment
    • 千兆PHY RTL8211E 资料
    • Mini LVDS
    • sub lvds
    • SC6550B —UART IC

存储类

    • W25Q128A datasheet
    • 开发板载FLASH芯片N25Q128A13BSE40F手册
    • 并行NOR Flash MX29LV800
    • K9F1G08 NAND FLASH
    • SRAM IS61WV51216BLL-10TI资料
    • Micron DDR3 PDF 英文版
    • Micron DDR4 datasheet
    • Nand FLASH ECC 算法资料
    • SPI EEPROM AT25040B
    • Atmel I2C芯片 AT24C02 datasheet

协议与标准

    • I2C 规范中文版
    • I2C 规范英文版
    • 标准SPI 协议
    • SMBus 协议 英文版
    • Sub LVDS (XILINX)
    • CAN总线基础
    • AXI4 总线英文版
    • IEEE VHDL标准
    • CPRI 协议 中文版

数字信号处理

    • 英文版 cordic文档

其他

    • 常用小电流驱动MOS管NDS331N 原版资料
    • P沟道小功率MOS管NDS3386p datasheet
    • RT8068A 开关电源转换芯片资料
    • ASCII码一览表, ASCII码对照表
    • ch9350 芯片资料

 

Posted in FPGA, FPGA, FPGA开发板, Quartus II, RISC-V开发板, SoC 开发板, VHDL, VHDL, Vivado, 开发工具, 开发板, 开发语言, 教材与教案, 文章, 编程语言, 资料区

发表回复

相关链接