Altera FPGA伴你玩转USB3.0与LVDS(电子设计与嵌入式开发实践丛书)主要使用Altera公司的Cyclone Ⅳ FPGA器件(引出自带的LVDS接口)和Cypress公司的USB 3.0控制器芯片FX3,以及一些常见的DDR2存储器、UART电路、扩展接口等,由浅入深地*读者从板级设计、软件工具、相关驱动安装、基础的FPGA实例以及基于FPGA的UART、DDR2、USB 3.0、LVDS传输实例入手,掌握FPGA各种片内资源的应用以及接口时序的设计。
本书基于特定的FPGA开发平台,既有足够的理论知识作支撑,也有丰富的例程进行实践学习,并且穿插着笔者多年FPGA学习和开发过程中的各种经验和技巧。对于希望基于FPGA实现LVDS和USB 3.0开发的工程师,本书所提供的很多实例是很好的参考原型,有助于实现快速系统原型的开发。
目录
Contents
第1章FPGA、USB与LVDS概述
1.1FPGA发展概述
1.2FPGA的优势
1.3FPGA应用领域
1.4FPGA开发流程
1.5USB接口概述
1.5.1USB发展史
1.5.2USB 3.0概述
1.6LVDS接口概述
第2章实验平台板级电路详解
2.1板级电路整体架构
2.2电源电路
2.3FPGA时钟与复位电路
2.3.1FPGA时钟晶振电路
2.3.2FPGA复位电路
2.4FPGA配置电路
2.5FPGA供电电路
2.6DDR2芯片电路
2.7UART芯片电路
2.8LVDS接口与液晶屏背光接口电路
2.8.1差分走线
2.8.2阻抗匹配
2.8.3LVDS和单端信号间的串扰
2.8.4电磁干扰
2.8.5LVDS线缆选型
2.8.6LVDS连接器定义
2.9USB 3.0控制器FX3电路
2.10扩展接口电路
2.11FPGA引脚定义
第3章软件安装与配置
3.1软件下载和许可证申请
3.2Quartus Ⅱ与ModelSim�睞ltera的安装
3.3文本编辑器Notepad++安装
3.4QuartusⅡ中使用Notepad++的关联设置
3.5USB�睟laster的驱动安装
3.5.1Windows XP系统的USB�睟laster安装
3.5.2在Windows 7系统安装USB�睟laster
3.5.3在Windows 8系统安装USB�睟laster
3.6串口芯片驱动安装
3.6.1驱动安装
3.6.2设备识别
3.7USB 3.0控制器FX3的SDK安装
3.8USB 3.0控制器FX3的驱动安装
Altera FPGA伴你玩转USB 3.0与LVDS
第4章第一个例程与FPGA下载配置概述
4.1LED闪烁与PLL配置实例
4.1.1功能概述
4.1.2新建Quartus Ⅱ工程
4.1.3IP核配置——PLL
4.1.4引脚分配
4.1.5闲置引脚设置
4.1.6Verilog代码解析
4.2Altera FPGA配置方式概述
4.2.1AS配置方式
4.2.2PS配置方式
4.2.3JTAG配置方式
4.3基于JTAG的sof文件FPGA在线烧录
4.4基于JTAG的jic文件SPI Flash固化
第5章DDR2、UART以及Nios Ⅱ实例
5.1DDR2控制器集成与读/写测试
5.1.1功能概述
5.1.2IP核配置——片内RAM
5.1.3IP核配置——DDR2控制器
5.1.4DDR2引脚电平设置
5.1.5Verilog代码解析
5.1.6板级调试
5.2UART2USB的Loopback收发实例
5.2.1功能概述
5.2.2Verilog代码解析
5.2.3板级调试
5.3基于最小Nios Ⅱ系统的System ID打印实例
5.3.1Qsys系统概述
5.3.2Qsys工具基本使用
5.3.3Qsys组件添加与互连
5.3.4Qsys系统生成
5.3.5Quartus Ⅱ工程设计实现
5.3.6软件开发工具EDS
5.3.7System ID外设寄存器
5.3.8板级调试
第6章USB 3.0控制器FX3实例
6.1基于FX3内部DMA的USB传输Loopback实例
6.1.1功能概述
6.1.2固件编译与固化文件生成
6.1.3硬件连接与设备识别
6.1.4FX3的USB Boot加载
6.1.5板级调试
6.2FX3的SPI Flash代码固化
6.2.1启动设置
6.2.2SPI Flash固化
6.3基于FX3内部DMA的USB数据吞吐量测试
6.3.1硬件连接
6.3.2FX3的USB Boot加载
6.3.3FX3的基本Streamer功能演示
6.4基于FX3的UVC传输协议实例
6.4.1硬件连接
6.4.2FX3的USB Boot加载
6.4.3UVC设备识别
6.5FX3固件 SlaveFIFO配置修改说明
6.5.1功能概述
6.5.2GPIF Ⅱ Designer开启与工程加载
6.5.3GPIF Ⅱ接口配置与工程编译
6.5.4IDE下固件工程加载
6.5.5IDE下固件工程编译
6.6基于FPGA�睩X3 SlaveFIFO接口的Loopback实例
6.6.1功能概述
6.6.2固件下载
6.6.3FPGA代码解析
6.6.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.7基于FPGA�睩X3 SlaveFIFO接口的StreamOUT实例
6.7.1功能概述
6.7.2固件下载
6.7.3FPGA代码解析
6.7.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.7.5在Streamer中查看数据吞吐量
6.8基于FPGA�睩X3 SlaveFIFO接口的StreamIN实例
6.8.1功能概述
6.8.2固件下载
6.8.3FPGA代码解析
6.8.4SignalTap Ⅱ在线逻辑分析仪查看接口时序
6.8.5Streamer工具测试数据吞吐量
第7章LVDS收发传输实例
7.1LVDS液晶屏驱动实例
7.1.1功能概述
7.1.2IP核ALTLVDS_TX创建与配置
7.1.3IP核ALTLVDS_TX功能与接口说明
7.1.4代码解析
7.1.5板级调试
7.2基于串口命令帧的LVDS液晶屏测试界面设计
7.2.1设计概述
7.2.2串口控制协议
7.2.3代码解析
7.2.4板级调试
7.3LVDS数据收发实例
7.3.1功能概述
7.3.2IP核ALTLVDS_TX创建与配置
7.3.3IP核ALTLVDS_RX创建与配置
7.3.4位对齐处理
7.3.5代码解析
7.3.6装配说明
7.3.7板级调试
7.4带CRC校验的LVDS数据收发实例
7.4.1功能概述
7.4.2CRC校验基本原理
7.4.3CRC8校验代码生成
7.4.4代码解析
7.4.5装配说明
7.4.6板级调试
参考文献
本章导读
本章解析HSC开发平台的3个基本实验例程,包括DDR2控制器的集成和读/写测试、UART的Loopback收发实例和搭建Nios Ⅱ处理器系统实现System ID的打印实例。通过这3个例程,读者可以初步掌握基于Altera FPGA的Verilog代码输入设计、IP核配置与集成设计以及Nios Ⅱ处理器系统的搭建和C语言固件设计。
5.1DDR2控制器集成与读/写测试
5.1.1功能概述
本实例对Altera提供的DDR2控制器IP核模块进行读/写操作。每1.78s执行一次DDR2的写入和读出操作。先是从0地址开始遍历,写256×64b数据到DDR2的地址0~1023中; 在执行完写入后,执行一次相同地址的读操作,将读出的256×64b数据写入FPGA的片内RAM中。在Quartus Ⅱ集成的In�睸ystem Memory Content Editor中可以查看片内RAM中规律变化的数据。
本实例系统功能框图如图5.1所示。
图5.1DDR2读/写实例功能框图
5.1.2IP核配置——片内RAM
1. FPGA片内存储器概述
片内存储器是基于FPGA的嵌入式系统中最简单的存储器。因为存储是在FPGA内部完成的,电路板上无须外部连线。FPGA的片内存储器可以根据需求定义存储器的大小、位宽、种类及特殊的片内存储器特性,如DDR模式等。
片内存储器在基于FPGA的嵌入式系统的存储器中具有最高吞吐量和最低反应延时。它的反应延时通常仅为一个时钟周期。通过流水线操作访问存储器,可以使吞吐量达到每个时钟周期进行一次数据处理。
片内存储器的另一个好处是,由于它是在FPGA上直接实现的,无须在板上或电路中进行读/写。使用片内存储器可以节省开发时间和成本。
尽管速度很快,片内存储器在一定程度上却会受到其容量的限制。FPGA可用的片内存储器的数量由所使用的特定FPGA器件决定。
因为多数片内存储器都是易失性的,它在断电后丢失数据。然而,某些片内存储器可以在FPGA配置时自动初始化,相当于提供了一种非易失性的功能。
片内存储器的最佳应用场合包括常见的缓存、点到点的缓存、查找表以及FIFO等。
由于其具有低反应延时,片内存储器在微处理器中作为缓存表现良好。Nios Ⅱ处理器使用片内存储器作为引导和数据缓存。片内存储器有限的容量作为缓存通常不是一个问题,因为缓存本身都相对很小。
低延时的存取也使得片内存储器适用于作为器件间的缓存,即点到点的缓存。它是指处于正常的寻址空间,但与微处理器有专用接口的存储器。这些存储器主要用来实现缓存存储器的高速、低反应延时特性。
针对某些软件编程功能,尤其是数学上的功能,与在软件中进行计算相比,使用查找表存储所有可能的功能结果通常是最快的方法。片内存储器在这方面表现良好,前提是片内存储器的可用容量能够容纳可能的功能结果。
嵌入式系统经常需要管理从一个模块到另一个模块的数据流。FIFO可以在以不同的高速运行着的模块间作为数据缓冲存储器。根据应用程序所需的FIFO的大小,片内存储器可以用作高速和便利的FIFO存储。
Foreword
前言
FPGA技术在当下各种电子设计应用中越来越火热,它的成本虽然还是高高在上,但是给电子系统所带来的不可限量的速度和带宽,以及它在灵活性、小型性方面的优势,越来越为各种对性能要求高、偏重定制化需求的开发者所青睐。而使用LVDS、USB接口进行高速数据传输也是很多大数据采集应用的必备。
因此,笔者结合实际工程项目的需求,为广大开发者量身打造了基于低成本、高性价比的Altera Cyclone Ⅳ FPGA器件+LVDS+USB 3.0的硬件开发平台。基于这个平台,加上本教材的实例讲解,相信可以帮助读者快速地掌握这个原型系统,甚至将其移植应用到具体的项目或产品中。
全书共7章。
第1章阐释FPGA、LVDS和USB的一些基本概念和应用背景。
第2章从FPGA开发平台的电路板设计入手,介绍FPGA板级硬件电路设计要点,以及本书配套开发平台的周边外围电路的设计。
第3章讲述开发环境的搭建,包括Altera FPGA集成开发环境Quartus Ⅱ、仿真工具ModelSim、文本编辑器Notepad++、下载器驱动、UART驱动、USB 3.0控制器芯片FX3对应的SDK和驱动安装。
第4章以一个最基本的FPGA实例引领读者掌握一个完整的FPGA开发流程,这也包括了FPGA的下载配置和代码固化操作。
第5章既有开发平台板载的DDR2 SDRAM、UART外设的基础驱动实例,也包含如何搭建一个软核处理器NIOS Ⅱ系统并运行嵌入式软件程序的实例。
第6章集中在USB 3.0控制器芯片FX3相关的实例上,既有单独FX3和PC的USB 3.0传输实例,也有FPGA+FX3和PC之间的USB 3.0数据传输实例。
第7章讲解如何使用FPGA实现LVDS接口应用,包括LVDS液晶屏的驱动、LVDS收发设计以及包含CRC校验的LVDS收发设计。
吴厚航(网名: 特权同学)
2018年1月于上海
这本书的价值,远超出了我最初的预期。我之前一直认为,要掌握USB3.0和LVDS这样复杂的技术,需要花费大量的时间去阅读各种官方文档和技术手册,而且缺乏一个清晰的学习路径。然而,这本书的出现,彻底改变了我的看法。它以一种非常系统和深入的方式,将Altera FPGA在USB3.0和LVDS实现中的应用娓娓道来。我尤其欣赏书中对于案例的选取和解析,非常贴合实际工程开发的需求。USB3.0章节,不仅仅是理论的讲解,更包含了大量的实践指导,从IP核的配置到接口的调试,都提供了详尽的步骤和注意事项。这对于我这样的工程师来说,无疑是宝贵的财富。LVDS部分同样如此,书中对信号完整性、时序约束等关键问题的深入探讨,以及在FPGA中的具体实现策略,让我受益匪浅。我之前在处理高速信号时,常常会遇到一些难以解决的问题,而这本书提供的解决方案,让我能够更从容地应对这些挑战。总的来说,这本书为我提供了一个非常好的学习平台,让我在理论和实践之间找到了完美的平衡,为我在FPGA技术领域的深入发展奠定了坚实的基础。
评分一直以来,我都在寻找一本能够系统性地讲解FPGA在高频数据传输应用中实践的书籍,而这本书恰好填补了这一空白。它以Altera FPGA为平台,深入浅出地剖析了USB3.0和LVDS这两种高速接口技术。在USB3.0部分,我印象最深刻的是书中对协议层和物理层细节的详细阐述,以及如何利用Altera FPGA的丰富资源来高效实现USB3.0的功能。这种将理论与实践紧密结合的讲解方式,让我能够更直观地理解复杂的概念,并且学到很多在实际工程中非常实用的设计技巧。我之前在尝试实现USB3.0接口时,经常会遇到一些瓶颈,例如信号完整性问题和时序约束的难题,而这本书提供的思路和方法,为我指明了方向。LVDS部分同样精彩,书中对LVDS的传输原理、信号特性以及在FPGA中的实现方法进行了详尽的讲解,让我对如何设计和调试高速、低功耗的数据传输有了更深刻的认识。读完这本书,我感觉自己在FPGA开发,尤其是在高速接口设计方面,能力得到了显著的提升,也更加有信心去迎接未来的技术挑战。
评分拿到这本书的时候,我最大的感受就是它的“硬核”程度。这本书不像市面上很多同类书籍那样,停留在概念的堆砌,而是真正深入到了Altera FPGA的内部架构,并且将USB3.0和LVDS这样复杂的技术,通过具体的实操案例进行了拆解。我之前尝试过阅读一些关于FPGA开发的资料,但往往因为缺乏实际项目的支撑,学起来总是觉得浮于表面,很难真正掌握。而这本书,则将理论学习和实践操作完美地结合在了一起。例如,在USB3.0章节,书中不仅仅讲解了协议本身,还详细阐述了如何利用Altera的IP核来快速搭建USB3.0接口,以及在实际调试过程中可能会遇到的各种问题和解决方法。这对我来说,简直是福音!我之前总是担心自己没有足够的经验去处理这些复杂的接口,但这本书给了我信心。LVDS部分同样如此,书中对信号完整性、阻抗匹配等关键问题都进行了深入分析,并且给出了在FPGA设计中应该注意的细节。读完之后,我感觉自己对高速信号的设计有了更深刻的理解,也学到了很多实用的技巧。这本书绝对是FPGA工程师和嵌入式开发者的案头必备,它不仅能提升你的理论知识,更能帮助你解决实际工程中的难题,让你在技术道路上走得更远。
评分这本书的出现,简直是为我这样在FPGA和高速接口领域摸爬滚打的工程师们量身定制的!我一直在寻找一本能够将理论知识与实际项目紧密结合的实操性书籍,而这本书正好满足了我的需求。特别是对于USB3.0这样时下热门且技术门槛相对较高的高速接口,书中详尽的讲解,从协议的各个层面,到Altera FPGA在实现这些协议时的具体架构和策略,都给出了非常清晰的脉络。我之前虽然接触过一些USB接口,但对USB3.0的理解总觉得隔靴搔痒,尤其是其10Gbps的速率带来的信号完整性挑战,以及复杂的握手和传输机制,常常让我感到困惑。而这本书,通过案例的引入,一步步地解析了这些难点,让我能够更直观地理解其工作原理,并且学会如何利用Altera的强大资源去高效地实现。LVDS部分的讲解同样令人印象深刻,对于那些需要高速、低功耗数据传输的应用场景,LVDS是绕不开的技术。书中对LVDS的物理层特性、时序要求以及在FPGA中的实现技巧都有深入的探讨,这对于我目前正在进行的一个高性能图像采集项目非常有指导意义。总的来说,这本书提供了一个非常好的学习平台,让我在理论学习之余,也能获得宝贵的实践经验,为我今后的项目开发打下了坚实的基础。
评分作为一个对嵌入式开发充满热情,并且对Altera FPGA情有独钟的爱好者,我一直都在寻找能够引领我深入探索FPGA技术奥秘的书籍。这本书的出现,无疑满足了我长久以来的渴望。它不仅仅是一本书,更像是一位经验丰富的导师,带领我一步步揭开USB3.0和LVDS这两个高速接口的神秘面纱。书中对于USB3.0协议的讲解,细致入微,从最基础的传输模式,到复杂的链路训练和纠错机制,都进行了详尽的阐述。更重要的是,它将这些理论知识与Altera FPGA的实现相结合,我能够清晰地看到,如何利用FPGA的硬件资源来高效地实现USB3.0的功能。这对于我理解FPGA在高速接口设计中的作用,有着极大的帮助。而LVDS部分,也同样精彩。我一直对LVDS这种低功耗、高速度的传输方式很感兴趣,书中对LVDS的物理特性、时序设计以及在FPGA中的实现细节的讲解,让我茅塞顿开。读完之后,我感觉自己仿佛打通了任督二脉,对如何设计和调试高速信号有了全新的认识。这本书给我带来的不仅仅是知识的增长,更是信心的提升,让我对未来在FPGA领域的探索充满了期待。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有