1、提到PCIe总线通信,相信很多接触过PCIe或PXIe板卡的用户估计都有所了解过,相对于传统的串口、USB和千兆以太网通信协议,PCIe协议本身可以实现更高数量级的总线通信带宽,比如目前Xilinx FPGA KU家族芯片内置的PCIe IP核可以做到6.6GB/s,这样对于那些需要超高带宽的RF射频、数字化仪、高速流盘等应用领域FPGA就有了绝对无法替代的优势了。这也是目前FPGA成为全球最火的芯片原因之一,真正的万能芯片!

2、从硬件接口的物理形式出发,一般带PCIe通信接口的板卡要么直接插到工控机或者普通PC的PCIe插槽里面,目前常见的PCIe插槽,有X1、X2、X4、X8、X16,实际的物理接口如图7-1所示。其中,X16向下兼容其他位宽的端口,也就是说数字越大,向下兼容性越好。另外,位宽越大,通信速度就越高,比如PCIe 2.0 X8接口可以实现6.6GB/s的传输速度;细心的用户发现,一般的主板上还有一些古老的PCI插槽,其中,PCIe插槽跟PCI插槽底座形状上的最大不同之处,PCIe小端口位于左边,PCI小端口位于右边,用户千万别接错了!不过随着技术的发展,PCI早晚会被PCIe全部替换掉。

图7-1:常见的PC或者工控机里面不同位宽的PCIe插槽

3、如果用户希望自己的硬件也具备PCIe通信,一般有两种实现方法:一是采用专用的PCIe芯片,就像USB外置专用芯片(Cypress、FT232)那样,这样处理器那一端可以自由选择的余地就很大了,比如ARM、DSP、FPGA都可以,因为PCIe通信这块交给了专用ASIC芯片来完成了,简化了MCU端的编程复杂度;另外一种,就是直接采用内置了PCIe硬核IP的FPGA芯片,直接在FPGA芯片内部搞定PCIe所有的通信过程,那么与之对应的FPGA PCIe硬件板卡或者开发板通常长什么样子呢?这里用户可以看一下图7-2展示的实物图,这块开发板是带PCIe X4接口的黑金ARTIX7 FPGA开发板(AX7103),也就是本书(LabVIEW My FPGA Pro4)配套的实验平台;图7-3是带PCIe X8接口的黑金AX7325 FPGA开发板(Kintex7),是我们下一本书(Pro5)配套的K7实验平台。

图7-2:带PCIe X4接口的ARTIX7 FPGA开发板(AX7103)

图7-3:带PCIe X8接口的Kintex7 FPGA开发板(AX7325)

4、除了PCIe物理接口外,还可以将PCIe集成到PXIe接口里面,然后插到PXI或者PXIe机箱背板上,如图7-4所示。因为PXIe的硬件实现成本要比PCIe高很多,而且需要结合PXIe机箱才能玩起来,所以从低成本的角度出发,选择PC或者工控机作为载体,接入PCIe的方案无疑是一种性价比更高的解决方案;当然,PXIe支持在多个板子之间直接P2P互联透传等需要更复杂的应用时,具有一定的优势。目前国内做PXIe机箱和板卡种类比较齐全的是简仪科技,当然,全球最大的PXIe厂商当属NI公司。

图7-4:NI PXI机箱和PXIe FPGA 7902光纤通信板卡(集成Virtex7 FPGA)

5、无论是PCIe接口还是PXIe接口,底层走的通信协议本质上都是PCIe协议,所以在本章后续的内容里面,我们统一以PCIe总线通信协议作为代表,覆盖了PXIe板卡等硬件,因为PXIe就是在PCIe的基础上人为添加了一些独立的数字IO接口,作为一些补充功能使用:比如时钟路由,外部触发导入,内部时钟输出,触发生成等等。对于FPGA来说,无非就是操作一下IO口,所以PXIe实际上很简单,因为我们的LabVIEW FPGA可以实现对FPGA IO在任意时钟周期内的操作和控制。

6、本书重点是教会用户使用LabVIEW来开发FPGA芯片里面的PCIe DMA通信程序,然后自己根据实际项目和产品功能需求,购买通用的FPGA板子或者使用FPGA核心板+底板的方式,来摆脱NI、简仪、凌华等这些厂商的硬件控制,真正做到硬件自由化,软件开发图形化,移植成本代价最小化,综合效益最大化;同时也是为了下一步纯国产化FPGA方案提供了切实可行的方案,比如用户可以选择深圳国微或者上海复旦微电子的K7、V7芯片来代替Xilinx的FPGA芯片,然后做出百分百国产化带PCIe DMA高速接口的自定义LabVIEW FPGA板卡出来,真正为军工企业或者有可能被卡脖子的行业做出一份贡献!!!

LabVIEW FPGA PCIe开发讲解-7.1节:FPGA PCIe/PXIe基础知识和概念概述相关推荐

  1. LabVIEW FPGA PCIe开发讲解-7.2节:目前主流的4大Xilinx FPGA PCIe DMA通信IP核讲解

    1.要开发一个带PCIe或者PXIe接口的FPGA板卡出来,除了硬件本身外,最重要的就是FPGA芯片里面的PCIe通信代码编写,俗称下位机FPGA编程:还有中间层的驱动文件编写以及上位机PC端的应用程 ...

  2. 第76节:Java中的基础知识

    第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...

  3. 第一节课的Python基础知识

    第一节课的Python基础知识 Python内置的数据类型 1.number 2.string 3.list 4.tuple 5.dict 6.set 其他小结 方法range()的使用 获取一个li ...

  4. 风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识

    风炫安全Web安全学习第三十九节课 反序列化漏洞基础知识 反序列化漏洞 0x01 序列化相关基础知识 0x01 01 序列化演示 序列化就是把本来不能直接存储的数据转换成可存储的数据,并且不会丢掉数据 ...

  5. 第一章计算机基础知识第一节,第一章 计算机基础知识 第一节

    第一章计算机基础知识 第一节.了解计算机 尊敬的各位评委老师: 大家好!我今天说课的题目是<了解计算机>.我将从以下五方面来谈谈对这节课的设计:即说教材.学情分析.说教法和学法.说教学过程 ...

  6. 编程语言基础c语言第5版讲解,《程序设计基础》C语言基础知识讲解.ppt

    <<程序设计基础>C语言基础知识讲解.ppt>由会员分享,可在线阅读,更多相关<<程序设计基础>C语言基础知识讲解.ppt(54页珍藏版)>请在人人文库 ...

  7. 如何开发一个用户脚本系列(2)——需要哪些基础知识

    本文原创首发于我的个人博客 一个贾程序员,文章原地址 点此 查看 在第一篇文章中,我对用户脚本进行了一些介绍,让大家对其有个大概的了解.在这篇文章中,我会对用户脚本开发过程中要用到的基础知识做一些介绍 ...

  8. Java WEB开发实战 之 第二部分:Web应用基础知识【私塾在线原创】

    基础知识概述 Internet 中文名也称"因特网"或"国际互联网",是一个由各种独立运行和管理的计算机网络组成的全球范围的计算机网络,网络间可以畅通无阻地交换 ...

  9. 网络视频直播系统开发第一课,开发直播APP软件一定要懂的基础知识

    "网络视频直播系统怎么开发.有什么难点"这类文章实在是太难写了,因为开发直播APP软件需要至少全国用户能够跨平台流畅观看,这其中涉及到的点太多太复杂了,所以讲清楚网络视频直播系统怎 ...

最新文章

  1. 机器学习中,梯度下降算法的问题引入
  2. docker之Dockerfile
  3. BZOJ 3489: A simple rmq problem(K-D Tree)
  4. Delphi与c++ 数据类型对照表(从万一的博客园摘录)
  5. 解决 Python pip 安装报错:Retrying (Retry(total=4, connect=None, read=None ...)) after connection
  6. rstudio运行python_RStudio 1.2发布,改进对Python chunks,R脚本等的测试和支持
  7. jquery表单属性筛选元素
  8. Kali aircrack-ng wifi密码破解(暴力)(1)
  9. 操作系统---进程篇
  10. ASP.NET Core和Angular 2双剑合璧
  11. 一个服务器端和多个客户端消息互发_python:OSError: [WinError 10022] 提供了一个无效的参数...
  12. iphone4s上市时间_iPhone 4S才是真正意义上的王者, 网友: 现在依旧能打
  13. JAVA代码爬虫获取网站信息
  14. 五色电阻在线计算机,五色环电阻阻值在线计算一键生成计算器
  15. Flash加速功能实现
  16. 计算机网络——tcpdump/Wireshark抓包实战
  17. linux启用dcb步骤,Linux内核DCB子系统
  18. Python 生成 GIF 文件
  19. 四.Redis学习:特殊数据类型
  20. AC的LAN3接口我在WEB里改为三层模式后,再改回二层就不能供电了 AP起不来了怎么恢复?

热门文章

  1. 定制婚礼小程序开发功能
  2. 中南大学2020大学生心里健康教育答案 —— 雨课堂
  3. Sencha Cmd的简介
  4. [18调剂]天津大学软件学院软件工程(专业学位)全日制及非全日制研究生接收院内校内校外调剂...
  5. Java学习lesson 10
  6. 手机尾号(%d的深度使用)
  7. 2020用户行为分析领域最具商业合作价值企业盘点
  8. Grafana使用双Y坐标轴详解
  9. linux学习笔记:06-ubuntu中挂载U盘
  10. Muti-Scale Resnet论文初步复现