发表于2024-11-23
本书主要使用Xilinx公司的Artix��7 FPGA器件(引出自带的LVDS接口)和Cypress公司的USB 3.0控制器芯片FX3,以及一些常见的DDR3存储器、UART电路、扩展接口等,由浅入深地引导读者从板级设计、软件工具、相关驱动安装到基础的FPGA实例,从基于FPGA的UART、DDR3、USB 3.0、LVDS传输实例入手,掌握FPGA各种片内资源的应用以及接口时序的设计。
本书基于特定的FPGA开发平台,既有足够的理论知识深度进行支撑,也有丰富的例程进行实践讲解,并且穿插着笔者多年FPGA学习和开发过程中的各种经验和技巧。对于希望基于FPGA实现USB 3.0和LVDS开发的工程师,本书提供的很多实例都是很好的参考原型,可以帮助其实现快速系统原型的开发。
Contents
目录
第1章FPGA、USB与LVDS概述
1.1FPGA发展概述
1.2FPGA的优势
1.3FPGA应用领域
1.4FPGA开发流程
1.5USB接口概述
1.6LVDS接口概述
第2章实验平台板级电路详解
2.1板级电路整体架构
2.2电源电路
2.3FPGA时钟与复位电路
2.3.1FPGA时钟晶振电路
2.3.2FPGA复位电路
2.4FPGA配置电路
2.5FPGA供电电路
2.6DDR3芯片电路
2.7UART芯片电路
2.8LVDS接口电路
2.9USB 3.0控制器FX3电路
2.10其他接口电路
2.11FPGA引脚定义
第3章软件安装与配置
3.1Xilinx账户注册与Vivado软件下载
3.1.1Xilinx账户注册
3.1.2Vivado下载
3.2Vivado安装与免费License申请
3.2.1Vivado安装
3.2.2免费License申请
3.3文本编辑器Notepad++安装
3.4Vivado中使用Notepad++的关联设置
3.5串口芯片驱动安装
3.5.1驱动安装
3.5.2设备识别
3.6USB 3.0控制器FX3的SDK安装
3.7USB 3.0控制器FX3的驱动安装
3.7.1PC与开发板的USB 3.0连接
3.7.2PC与USB连接
3.7.3USB 3.0控制器FX3驱动安装
Xilinx FPGA伴你玩转USB 3.0与LVDS
第4章第一个例程与FPGA的下载配置
4.1流水灯实例
4.1.1功能概述
4.1.2新建Vivado工程
4.1.3创建工程源码、约束和仿真文件
4.1.4功能仿真
4.1.5编译
4.2Xilinx 7系列FPGA配置概述
4.2.1不同配置模式的选择
4.2.2FPGA配置比特流的大小
4.2.3FPGA加载配置方式选择
4.2.4配置引脚功能定义
4.3XADC温度监控界面
4.4bit文件的FPGA在线烧录
4.5mcs文件的QSPI Flash固化
4.5.1FPGA配置设置选项
4.5.2生成mcs文件
4.5.3下载mcs件
第5章基础外设实例
5.1拨码开关的LED控制实例
5.2PLL配置实例
5.3用户自定义IP核
5.3.1创建IP核
5.3.2移植IP核
5.3.3配置、例化IP核
5.4UART的loopback实例
5.4.1功能概述
5.4.2代码解析
5.4.3板级调试
5.5MicroBlaze的Hello World实验
5.5.1功能概述
5.5.2MicroBlaze系统IP核配置
5.5.3MicroBlaze处理器软件工程创建
5.5.4板级调试
第6章基于FPGA的DDR3存储器控制实例
6.1DDR3 IP核配置与仿真
6.1.1DDR3 IP核概述
6.1.2DDR3 IP核配置
6.1.3DDR3 IP核仿真
6.2基于在线逻辑分析仪监控的DDR3数据读/写
6.2.1功能概述
6.2.2DDR3控制器IP接口时序解析
6.2.3代码解析
6.2.4在线逻辑分析仪配置
6.2.5在线逻辑分析仪调试
6.3基于UART命令的DDR3数据读/写
6.3.1功能概述
6.3.2代码解析
6.3.3板级调试
第7章USB 3.0控制器FX3实例
7.1基于FX3内部DMA的USB传输loopback实例
7.1.1功能概述
7.1.2固件编译与固化文件生成
7.1.3硬件连接与设备识别
7.1.4FX3的USB Boot加载
7.1.5板级调试
7.2FX3的SPI Flash代码固化
7.2.1启动设置
7.2.2SPI Flash固化
7.3基于FX3内部DMA的USB数据吞吐量测试
7.3.1硬件连接
7.3.2FX3的USB Boot加载
7.3.3FX3的基本Streamer功能演示
7.4基于FX3的UVC(USB Video Class)传输协议实例
7.4.1硬件连接
7.4.2FX3的USB Boot加载
7.4.3UVC设备识别
7.5FX3固件SlaveFIFO配置修改说明
7.5.1功能概述
7.5.2GPIF Ⅱ Designer开启与工程加载
7.5.3GPIF Ⅱ接口配置与工程编译
7.5.4IDE下firmware工程加载
7.5.5IDE下firmware工程编译
7.6基于FPGA�睩X3 SlaveFIFO接口的loopback实例
7.6.1功能概述
7.6.2Firmware下载
7.6.3FPGA代码解析
7.6.4ILA在线逻辑分析仪查看接口时序
7.7基于FPGA�睩X3 SlaveFIFO接口的StreamOUT实例
7.7.1功能概述
7.7.2Firmware下载
7.7.3FPGA代码解析
7.7.4ILA在线逻辑分析仪查看接口时序
7.7.5Streamer中查看数据吞吐量
7.8基于FPGA�睩X3 SlaveFIFO接口的StreamIN实例
7.8.1功能概述
7.8.2Firmware下载
7.8.3FPGA代码解析
7.8.4ILA在线逻辑分析仪查看接口时序
7.8.5Streamer工具测试数据吞吐量
第8章LVDS收发传输实例
8.1LVDS数据收发实例
8.1.1功能概述
8.1.2bit align处理
8.1.3代码解析
8.1.4装配说明
8.1.5板级调试
8.2带CRC校验的LVDS数据收发实例
8.2.1功能概述
8.2.2CRC校验基本原理
8.2.3CRC8检验代码生成
8.2.4代码解析
8.2.5装配说明
8.2.6板级调试
参考文献
本章导读
本章通过5个基础实例,熟悉使用Xilinx FPGA对LED指示灯、拨码开关、UART外设的控制,以及使用FPGA实现PLL、MicroBlaze处理器、IP核定制等。希望通过这些例程,读者可以掌握基于Xilinx Artix��7系列FPGA器件和Vivado开发工具的使用。
5.1拨码开关的LED控制实例
本实例对应工程at7_ex02,如图5.1所示,AT7板子板载8个LED指示灯和8个拨码开关与FPGA相连。本实例所要实现的功能很简单,每个拨码开关对应控制一个LED指示灯的亮灭状态。
图5.1拨码开关与LED原理图
本实例的功能: 每个时钟周期,将最新的拨码开关输入赋值给LED指示灯,代码如下所示。
module at7(
input sys_clk_i,//外部输入50MHz时钟信号
input ext_rst_n, //外部输入复位信号,低电平有效
input[7:0] switch, //8个拨码开关输入,ON——低电平;OFF——高电平
output reg[7:0] led //8个LED指示灯亮灭控制
);
//-------------------------------------
always @(posedge sys_clk_i or negedge ext_rst_n)
if(!ext_rst_n) led <= 8'd0;
else led <= switch;
endmodule
Foreword
前言
FPGA技术在当下各种电子设计应用中越来越火热,它的成本虽然还是高高在上,但是它给电子系统带来的不可限量的速度和带宽,以其在灵活性、小型性方面的优势,越来越被各种对性能要求高、偏重定制化需求的开发者所青睐。而使用LVDS、USB接口进行高速数据传输也是很多大数据采集应用的必然选择。
因此,笔者结合实际工程项目的需求,在本书中讲述基于Xilinx Artix��7 FPGA器件+LVDS+USB 3.0的开发,通过实例讲解,相信可以帮助读者快速掌握这个原型系统,甚至将其移植到具体的项目或产品中。
本书共8章。
第1章阐释FPGA、USB和LVDS的一些基本概念和应用背景。
第2章从FPGA开发平台的电路板设计入手,介绍FPGA板级硬件电路设计要点,以及本书配套开发平台的外围电路的设计。
第3章讲述开发环境的搭建,包括Xilinx FPGA集成开发环境Vivado、文本编辑器Notepad++、下载器驱动、UART驱动、USB 3.0控制器芯片FX3对应的SDK和驱动安装,帮助读者迅速解决这些最棘手的“软”问题。
第4章以一个最基本的FPGA实例引领读者掌握一个完整的FPGA开发流程,包括FPGA的下载配置和代码固化操作。
第5章为基础外设实例,包含基本的LED流水灯、拨码开关控制、PLL配置、用户自定义IP、UART和搭建基于MicroBlaze处理器的嵌入式系统,通过这些基本的实例确保读者能够快速掌握基于Xilinx FPGA的开发。
第6章主要介绍DDR3 SDRAM的配置、仿真和板级调试。
第7章集中在USB 3.0控制器芯片FX3相关的实例上,既有单独FX3和PC的USB 3.0传输实例,也有FPGA + FX3和PC之间的USB 3.0数据传输实例。
第8章讲解如何使用FPGA实现LVDS接口应用,包括LVDS基本的收发设计以及包含CRC校验的LVDS收发设计。
吴厚航(网名:特权同学)
2017年12月于上海
Xilinx FPGA伴你玩转USB 3.0与LVD
Xilinx FPGA伴你玩转USB3.0与LVDS/电子设计与嵌入式开发实践丛书 下载 mobi pdf epub txt 电子书 格式 2024
Xilinx FPGA伴你玩转USB3.0与LVDS/电子设计与嵌入式开发实践丛书 下载 mobi epub pdf 电子书Xilinx FPGA伴你玩转USB3.0与LVDS/电子设计与嵌入式开发实践丛书 mobi epub pdf txt 电子书 格式下载 2024