书籍详情
《Xilinx FPGA工程师成长手记》[94M]百度网盘|亲测有效|pdf下载
  • Xilinx FPGA工程师成长手记

  • 出版社:清华大学出版社
  • 作者:寇强 编
  • 出版时间:2024-08-01
  • 热度:8687
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

产品特色

编辑推荐

资深硬件工程师近10年FPGA项目开发经验的总结,理论结合大量实例,详解Xilinx FPGA的设计方法与技巧,提供练习题、教学课件(PPT),方便学习与教学。

内容丰富:首先从FPGA的理论知识入手,详细介绍FPGA芯片设计的背景、常用专业术语、硬件描述语言的基本语法;然后介绍FPGA的验证方法和知识产权应用;最后详细介绍低速接口和高速接口设计实例,并总结FPGA的开发技巧。

实例丰富:讲解中穿插多个典型实例,带领读者上手实践,并加深对FPGA设计与验证技术的理解,进而快速掌握FPGA的设计流程,上手开发实际产品和项目。

图文并茂:讲解中给出大量的示意图,帮助读者高效、直观地理解FPGA的各种概念和实现原理。

注重技巧:总结大量的开发技巧,让读者少走很多弯路,从而加速新产品的上市,甚至提前交付项目。

源码实用:本书涉及的实例源码大多来源于实际项目,其注释丰富,易于阅读,读者稍加修改即可直接用于自己的项目。

提供习题:每章都提供习题,帮助读者巩固和提高所学的知识。

配教学PPT:提供配套教学PPT,方便相关院校的授课教师教学时使用。

内容简介

《Xilinx FPGA工程师成长手记》以Xilinx公司的FPGA为开发平台,以Verilog HDL、System Verilog、VHDL和Vivado为开发工具,详细介绍FPGA常用接口的实现方法,并通过大量实例,分析FPGA实现过程中的具体技术细节。《Xilinx FPGA工程师成长手记》提供相关实例的源码文件和配套教学PPT,以方便读者学习和相关高校教学。

《Xilinx FPGA工程师成长手记》共10章,分为2篇。第1篇Xilinx FPGA基础知识,包括FPGA概述、FPGA的基本理论、FPGA的硬件描述语言和FPGA功能验证;第2篇Xilinx FPGA逻辑设计,包括FPGA的知识产权、FPGA代码封装、FPGA低速接口设计、FPGA高速接口设计、FPGA硬件调试和FPGA开发技巧。

《Xilinx FPGA工程师成长手记》内容充实,实例丰富,非常适合FPGA开发和接口设计领域的入门读者阅读,也适合硬件设计领域的工程师和科研人员阅读,还适合作为相关院校电子信息等专业本科生和研究生的教材。

作者简介

寇强,大学毕业后一直从事基于FPGA逻辑设计的产品和项目开发,积累了大量的经验。核心能力表现为FPGA接口开发、FPGA跨时钟域问题解决,以及时序违规处理和逻辑系统核心Bug排除等。熟悉Intel FPGA和Xilinx FPGA芯片开发技术,尤其擅长Xilinx FPGA逻辑设计。从事过视频LZW无损压缩算法开发和列车实时以太网交换机时间同步机制开发,开发的产品应用于无人机、电梯和边缘计算等多个领域。申请了多个基于FPGA实现数据采集与传输系统的发明专利。平时乐于分享技术经验。

精彩书评

近10年,寇强先生在FPGA领域默默地付出,辛勤地耕耘,他利用工作和生活之余,将自己多年的FPGA设计经验编纂成册,这实属难能可贵,令人钦佩!他编写的这部FPGA图书,内容翔实,案例丰富,涵盖从基础知识到功能仿真再到实战案例的方方面面内容,对FPGA设计工程师有很好的指导和借鉴意义,非常值得阅读。

——FPGA资深工程师 党亚鹏


本书从一名电子工程师逐渐成长的视角出发,系统地阐述时钟、复位、时序分析、跨时钟域处理、高低速接口设计和硬件调试等关键技术。本书内容丰富,实例典型,代码注释详细,不仅可以作为FPGA新手的入门读物,给他们的学习带来很大的启发,而且可以作为高等院校电子信息工程、计算机科学与技术等相关专业的教材,帮助相关学生快速掌握FPGA设计技术。

——FPGA高级工程师 宋哲


寇强对信息技术有着浓厚的兴趣,受邀为他的新书《Xilinx FPGA工程师成长手记》写推荐语,令我非常高兴。本书以图文并茂的方式详细介绍FPGA的理论知识、编程语言、验证方法和知识产权(IP核)等基础知识,并通过多个低速和高速接口实例阐述FPGA接口设计方法,而且为读者总结了大量的FPGA设计技巧,这有助于避开FPGA设计过程中的很多弯路,加速其产品研发上市。本书不仅适用于FPGA初学者,对于从事FPGA设计的工程师而言也具备较高的参考价值。

——系统架构工程师 郝焕妮

目录

第1篇 Xilinx FPGA基础知识
第1章 FPGA概述
1.1 什么是FPGA
1.2 FPGA芯片厂商
1.2.1 国外FPGA厂商简介
1.2.2 国内FPGA厂商简介
l.3 FPGA的应用领域
l.3.1 数据采集领域
1.3.2 逻辑接口领域
1.3.3 数字信号处理领域
1.3.4 其他领域
1.4 FPGA的设计流程
1.4.1 需求分析
1.4.2 设计输入
1.4.3 功能仿真
1.4.4 逻辑综合
1.4.5 布局布线
1.4.6 芯片编程与调试
1.4.7 文档和代码管理
1.5 FPGA的人才需求
1.6 FPGA工程师的基本技能
1.7 本章习题
第2章 FPGA的基本理论
2.1 FPGA时钟
2.1.1 时钟模型
2.1.2 时钟抖动
2.1.3 时钟偏斜
2.1.4 时钟设计
2.2 FPGA复位
2.2.1 复位的概念
2.2.2 复位方式
2.2.3 复位设计
2.3 FPGA时序
2.3.1 时序的概念
2.3.2 建立时间
2.3.3 保持时间
2.3.4 亚稳态
2.4 FPGA异步时钟域
2.4.1 异步时钟域的概念
2.4.2 异步时钟域数据转换策略
2.5 FPGA约束
2.6 FPGA的专业术语
2.7 本章习题
第3章 FPGA的硬件描述语言
3.1 硬件描述语言概述
3.1.1 硬件描述语言简介
3.1.2 硬件描述语言的类型
3.2 VHDL语法基础
3.2.1 VHDL模块结构
3.2.2 VHDL的基本语法
3.2.3 VHDL模块调用
3.3 Verilog HDL语法基础
3.3.1 Verilog HDL模块结构
3.3.2 Verilog HDL的基本语法
3.3.3 Verilog HDL模块调用
3.4 System Verilog语法基础
3.4.1 System Verilog模块结构
3.4.2 System Verilog的基本语法
3.4.3 System Verilog模块调用
3.5 FPGA设计规范及编程技巧
3.5.1 FPGA设计规范
3.5.2 FPGA设计注释
3.5.3 FPGA设计技巧
3.6 本章习题
第4章 FPGA功能验证
4.1 验证概述
4.1.1 验证定义
4.1.2 验证计划
4.1.3 验证方法
4.1.4 验证的作用
4.2 编写仿真激励
4.2.1 编写测试激励的流程
4.2.2 编写时钟测试激励
4.2.3 编写复位测试激励
4.3 系统函数
4.3.1 常用的系统函数
4.3.2 编写测试激励实例
4.4 验证软件
4.4.1 仿真软件
4.4.2 仿真过程
4.4.3 仿真实例
4.5 验证技巧
4.5.1 变量初始化
4.5.2 模块封装
4.5.3 回环测试
4.5.4 计数器
4.5.5 读文件和写文件
4.5.6 避免出现蓝线
4.6 本章习题
第2篇 Xilinx FPGA逻辑设计
第5章 FPGA的知识产权
5.1 MMCM IP核设计
5.1.1 MMCM简介
5.1.2 MMCM IP核定制
5.1.3 MMCM IP核仿真
5.2 FIFO IP核设计
5.2.1 FIFO简介
5.2.2 FIFO IP核定制
5.2.3 FIFO IP核仿真
5.3 RAM IP核设计
5.3.1 RAM简介
5.3.2 RAM IP核定制
5.3.3 RAM IP核仿真
5.4 Counter IP核设计
5.4.1 Counter简介
5.4.2 Counter IP核定制
5.4.3 Counter IP核仿真
5.5 本章习题
第6章 FPGA代码封装
6.1 IP核封装
6.1.1 IP核简介
6.1.2 自定义IP核封装
6.1.3 自定义IP核验证
6.2 网表封装
6.2.1 网表简介
6.2.2 自定义网表封装
6.2.3 自定义网表验证
6.3 本章习题
第7章 FPGA低速接口设计
7.1 SPI逻辑设计
7.1.1 SPI总线概述
7.1.2 SPI实例设计
7.1.3 SPI实例验证
7.1.4 SPI硬件调试
7.2 UART逻辑设计
7.2.1 UART总线概述
7.2.2 UART实例设计
7.2.3 UART实例验证
7.2.4 UART硬件调试
7.3 IIC逻辑设计
7.3.1 IIC总线概述
7.3.2 IIC实例设计
7.3.3 IIC仿真验证
7.3.4 IIC硬件调试
7.4 CAN逻辑设计
7.4.1 CAN总线概述
7.4.2 CAN实例设计
7.4.3 CAN逻辑验证
7.4.4 CAN硬件调试
7.5 本章习题
第8章 FPGA高速接口设计
8.1 DDR3接口设计
8.1.1 存储器简介
8.1.2 DDR3 IP核简介
8.1.3 DDR3读写功能设计
8.1.4 DDR3读写功能逻辑仿真
8.1.5 DDR3读写功能硬件调试
8.2 PCIE接口设计
8.2.1 PCIE简介
8.2.2 PCIE IP核简介
8.2.3 PCIE通信功能设计
8.2.4 PCIE通信功能仿真
8.2.5 PCIE接口硬件调试
8.3 本章习题

第9章 FPGA硬件调试

9.1 FPGA硬件调试概述

9.1.1 FPGA硬件调试简介

9.1.2 FPGA调试IP核

9.2 闪烁灯硬件调试

9.2.1 闪烁灯系统设计

9.2.2 闪烁灯程序设计

9.2.3 闪烁灯硬件调试

9.3 本章习题

第10章 FPGA开发技巧

10.1 FPGA时钟管理

10.1.1 使用时钟IP核设计时钟

10.1.2 使用硬件描述语言设计时钟

10.1.3 使用时钟原语设计时钟

10.2 FPGA复位设计

10.2.1 使用时钟IP核锁存信号进行复位

10.2.2 使用硬件描述语言进行复位

10.3 FPGA时钟域处理

10.3.1 使用异步FIFO处理跨时钟域数据实例

10.3.2 使用双端口RAM处理跨时钟域数据实例

10.3.3 使用延迟法处理跨时钟域数据实例

10.3.4 使用应答机制处理跨时钟域数据实例

10.3.5 采用格雷码转换处理跨时钟域数据实例

10.4 FPGA通用模块设计

10.4.1 接口通用模块设计

10.4.2 内部逻辑通用模块设计

10.4.3 仿真通用模块设计

10.4.4 调试通用模块设计

10.5 FPGA开发检查表

10.5.1 FPGA需求分析

10.5.2 FPGA方案设计

10.5.3 FPGA设计输入

10.5.4 FPGA功能仿真

10.5.5 FPGA硬件调试

10.6 本章习题

前言/序言

  FPGA(Field Programmable Gate Array,现场可编程门阵列)是在PAL和GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。最初,FPGA主要应用于传统领域,随着信息产业与微电子技术的发展,其发展速度越来越快。尤其近几年,FPGA的发展非常迅猛,其影响力越来越大。例如,比特币挖矿、数据采集、人工智能等领域都可以看到FPGA的身影。如今,FPGA的应用遍及航空航天、汽车、医疗和工业控制等领域。

  2010年,笔者在大学导师那里第一次接触FPGA,那时感觉FPGA很神秘。正是这种神秘感,吸引笔者进入了该行业,开始了FPGA编程之旅。笔者大学毕业至今一直从事FPGA逻辑设计与验证的相关工作,这些工作经历使得笔者积累了丰富的项目开发经验,如今已在FPGA接口应用领域取得了一些成就。

  基于上述经历,笔者想通过一本书将自己多年以来积累的FPGA设计心得和项目开发经验分享给需要的人。具体而言,笔者编写本书的主要原因有以下4点:

* 行业需求使然。FPGA行业发展迅猛,应用领域广泛,人才缺口很大,而图书市场上缺少通俗易懂且实用性强的能带领读者快速上手的图书。

* 笔者一直在思考,有没有一种低门槛、易消化、易掌握和易上手的方法,让初学者可以快速掌握FPGA技术,笔者想通过本书来尝试解决这个问题。

* 笔者想通过本书分享自己多年积累的FPGA设计心得和项目开发经验,让FPGA学习人员少走弯路,能更快地将所学知识应用于产品和项目开发,从而加速产品和项目的上市。

* 笔者想通过一本书,让行业内入职的新人可以通过自学快速掌握FPGA,从而节省大量的培训时间和成本。

  《Xilinx FPGA工程师成长手记》以一位FPGA从业者的身份,详细介绍FPGA产品或项目开发所需要的基本技能。本书首先从FPGA的理论知识讲起,详细介绍FPGA芯片的发展背景、常用专业术语和硬件描述语言的基本语法,然后介绍FPGA的验证方法和知识产权应用,最后结合实例详细介绍低速接口设计与高速接口设计,并总结FPGA的开发技巧,以加深读者对FPGA设计与验证技术的理解。通过阅读本书,读者可以系统地掌握FPGA设计的精髓和流程,并达到实际上手开发产品或项目的水平。

《Xilinx FPGA工程师成长手记》特色

* 内容丰富:首先从FPGA的理论知识入手,详细介绍FPGA芯片设计的背景、常用专业术语、硬件描述语言的基本语法;然后介绍FPGA的验证方法和知识产权应用;最后详细介绍低速接口和高速接口设计实例,并总结FPGA的开发技巧。

* 实例丰富:在讲解中穿插多个典型实例,带领读者上手实践,并加深对?FPGA设计与验证技术的理解,进而快速掌握FPGA的开发流程,上手开发实际产品和项目。

* 图文并茂:在讲解中给出大量的示意图,帮助读者高效、直观地理解FPGA的各种概念和实现原理。

* 注重技巧:总结大量的开发技巧,让读者少走很多弯路,从而加速新产品的上市,甚至提前交付项目。

* 源码实用:本书涉及的实例源码大多来源于实际项目,并给出详细的注释,读者对这些源码稍加修改即可直接用于实际项目。

* 提供习题:每章都提供习题,帮助读者巩固和提高所学的知识。

* 配教学PPT:提供配套教学PPT,方便相关院校的授课教师教学时使用。

《Xilinx FPGA工程师成长手记》内容

  第1篇 Xilinx FPGA基础知识

  本篇涵盖第1~4章,主要介绍FPGA的概念、设计流程、基本理论、描述语言和功能验证等内容。通过学习本篇内容,读者可以快速掌握FPGA设计的基础知识。

  第1章FPGA概述,主要介绍FPGA的芯片厂商、应用领域、设计流程,以及FPGA工程师需要掌握的基本技能。通过学习本章内容,读者可以对FPGA有个大致的了解。

  第2章FPGA的基本理论,主要介绍FPGA的时钟、复位、时序、异步时钟域和约束等相关知识。通过学习本章内容,读者可以系统地了解FPGA的基本理论知识。这些知识在FPGA设计中经常用到,其伴随FPGA设计的整个过程,是FPGA逻辑设计不可缺少的一部分。

  第3章FPGA的硬件描述语言,主要介绍VHDL、Verilog HDL和System Verilog语言的语法基础,以及FPGA设计规范与编程技巧。通过学习本章内容,读者可以快速掌握FPGA的常用硬件描述语言,以便进行项目开发。

  第4章FPGA功能验证,主要介绍验证的基本概念、仿真激励的编写、常用系统函数任务的调用,以及Vivado仿真软件的使用等。通过学习本章内容,读者可以学会验证自己编写的模块是否满足功能要求。

  第2篇 Xilinx FPGA逻辑设计

  本篇涵盖第5~10章,主要介绍FPGA的常用IP核设计、用户代码封装、低速接口设计、高速接口设计、硬件调试和开发技巧等内容。FPGA在逻辑接口领域的应用非常广泛。例如,在实际产品的设计中,很多情况下需要与PC(个人计算机)进行数据通信,将采集的数据发送给PC处理,或者将处理后的结果传送给PC进行显示等。通过学习本篇内容,读者可以快速掌握FPGA接口设计的核心基础知识,从而为实际项目开发打下坚实的基础。

  第5章FPGA的知识产权,主要介绍MMCM、FIFO、RAM、Counter等常用IP核的设计与应用。通过学习本章内容,读者可以快速掌握常用IP核的设计方法。

  第6章FPGA代码封装,主要介绍用户代码的IP核封装和网表文件封装的基本流程。通过学习本章内容,读者可以快速掌握FPGA代码封装的方法,为代码加密设计打下基础。

  第7章FPGA低速接口设计,主要介绍SPI、UART、IIC和CAN这4种总线的逻辑设计方法。通过学习本章内容,读者可以掌握低速接口设计的方法,包括方案设计、代码设计、功能仿真和硬件调试。

  第8章FPGA高速接口设计,主要介绍DDR3和PCIE这两种接口的设计方法。通过学习本章内容,读者可以快速掌握高速接口的设计方法,包括方案设计、代码设计、功能仿真与硬件调试。

  第9章FPGA硬件调试,基于Vivado软件环境,以一个简单的闪烁灯为例,介绍其FPGA硬件调试流程。通过学习本章内容,读者可以简单地了解FPGA的硬件调试流程。对于一些复杂的FPGA设计,可以通过本章介绍的调试方法进行硬件逻辑功能的调试。

  第10章FPGA开发技巧,主要介绍笔者基于Xilinx FPGA进行逻辑设计与验证过程中总结的一些FPGA项目开发技巧与心得体会,包括FPGA时钟管理、FPGA复位设计、FPGA时钟域处理、FPGA通用模块设计和FPGA检查表开发。通过学习本章内容,读者可以掌握FPGA的开发技巧,从而少走弯路,提高FPGA产品设计的效率。

读者对象

* FPGA接口设计入门人员;

* FPGA接口设计从业人员;

* 硬件设计工程师;

* 硬件设计科研人员;

* 高校电子信息等相关专业的学生。

配套资源获取

  本书提供实例源码文件、习题参考答案和教学PPT等配套资源。这些资源有两种获取方式:一是关注微信公众号(见书),回复数字“26”获取下载链接;二是在清华大学出版社网站上搜索到本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”或“课件下载”按钮进行下载。

致谢

  在编写本书的过程中,笔者查阅了大量的资料,参考了Xilinx公司官方网站提供的英文资料以及Vivado提供的IP核数据手册与帮助文档,在此对资料的作者和提供者表示衷心的感谢!另外也要感谢北京至芯开源科技有限责任公司总经理雷斌、FPGA资深工程师党亚鹏、FPGA高级工程师宋哲和系统架构工程师郝焕妮,他们4位为本书提出了宝贵的意见和建议,在此表示衷心的感谢!此外,感谢妻子全力照顾家庭,为笔者编写本书腾出了大量的时间。

售后服务

  由于笔者水平所限,书中可能还存在疏漏与不足之处,恳请广大读者批评与指正。同时也欢迎广大读者就FPGA设计和验证等相关技术与笔者交流。 

  

  寇强

  2024年6月于西安