CN109783407B - 一种基于fpga实现pc与显卡桥接的装置及方法 - Google Patents
一种基于fpga实现pc与显卡桥接的装置及方法 Download PDFInfo
- Publication number
- CN109783407B CN109783407B CN201910032667.2A CN201910032667A CN109783407B CN 109783407 B CN109783407 B CN 109783407B CN 201910032667 A CN201910032667 A CN 201910032667A CN 109783407 B CN109783407 B CN 109783407B
- Authority
- CN
- China
- Prior art keywords
- display card
- pcie
- module
- fpga
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种基于FPGA实现PC与显卡桥接的装置及方法。它包括集成于一个FPGA上的PCIE EP模块、PCIE RP模块和ARM处理器,PCIE EP模块用于接收显卡的内部寄存器及BAR的信息并存储,用于将PC向显卡的发送TLP进行解析,将解析的数据发送至PCIE RP模块;PCIE RP模块用于对显卡进行上电初始化以及对显卡的BAR资源进行分配,用于对接收的数据进行封装并发送至显卡;ARM处理器用于控制PCIE RP模块获取显卡内部寄存器及BAR的信息并发送至PCIE EP模块。本发明在FPGA上进行信息模拟和数据桥接,能同时实现EP和RC的功能,具有不受制闭源驱动的限制、通用性强的优点。
Description
技术领域
本发明属于电子信息技术领域,具体涉及一种基于FPGA实现PC与显卡桥接的装置及方法。
背景技术
在显示面板测试领域,市场需要一种便携的小型化测量设备,只需将显卡***到设备上,就能通过设备控制显卡输出各种视频信号,用于测量显示面板。这种测试设备需要脱离PC,而采用基于嵌入式ARM***运行的方式,才能做到小型化,集成化。
要开发这种测量设备,软件工程师需要将PC上运行的显卡驱动移植到ARM中。而目前全球设计显卡(GPU)的主要公司,无论是英伟达(NVIDIA)还是AMD,其在PC上发布的驱动程序全部是闭源的,这使得软件工程师无法将其破译从而移植到ARM中。
当前各测量设备厂商为了解决上述问题,只能将一些开源组织,如nouveau所发布的开源显卡驱动移植到ARM上,但是这类驱动程序不是显卡厂商官方发布的,其只能完成最基本的功能,无法让显卡进行复杂的3D图形渲染,高清视频渲染等工作,故无法满足面板厂商与日俱增的测试需求。
发明内容
本发明的目的就是为了解决上述背景技术存在的不足,提供一种简单、有效的基于FPGA实现PC与显卡桥接的装置及方法,能够让PC对显卡进行操作时感知不到FPGA的存在,PC上的闭源显卡驱动对显卡进行的一切操作都能够被底层的FPGA抓取。
本发明采用的技术方案是:一种基于FPGA实现PC与显卡桥接的装置,包括集成于一个FPGA上的PCIE EP模块,用于接收显卡的内部寄存器及BAR的信息并存储,用于将PC向显卡的发送TLP进行解析,将解析的数据发送至PCIE RP模块;
PCIE RP模块,用于对显卡进行上电初始化以及对显卡的BAR资源进行分配,用于根据显卡上电初始化的规则对接收的数据进行封装并发送至显卡;
ARM处理器,用于控制PCIE RP模块获取显卡内部寄存器及BAR的信息并发送至PCIE EP模块。
进一步地,还包括DDR存储模块,所述PCIE EP模块用于将解析的数据发送至ARM处理器,所述ARM处理器用于将接收的数据发送到DDR存储模块,所述DDR存储模块用于存储数据。
进一步地,所述PCIE EP模块与PCIE RP模块之间通过AXI总线进行数据传输。
进一步地,所述FPGA上设有第一PCIE接口和第二PCIE接口,所述第一PCIE接口用于与PC连接,所述第二PCIE接口用于与显卡连接。
更进一步地,所述显卡内部寄存器的信息包括显卡的ID、厂商和型号。
一种基于FPGA实现PC与显卡桥接的方法,包括信息模拟和数据桥接,所述信息模拟包括显卡模拟和PC模拟,所述显卡模拟通过获取显卡内部寄存器及BAR的信息实现,所述PC模拟PC模拟是通过编辑对显卡的上电初始化命令和BAR资源分配命令实现;所述数据桥接包括地址转换和读写请求转换,所述地址转换是将PC对显卡BAR的访问转换成对固定地址的访问,所述读写请求转换是将PC对显卡的读写使能信号转换成对FPGA内部总线的读写使能信号。
本发明在FPGA上进行信息模拟和数据桥接,能同时实现EP和RC的功能,通过该方法能够让PC完全感知不到FPGA的存在,就好像是显卡直接插在PC主板上一样。这样,PC上的闭源显卡驱动对显卡进行的一切操作都能够被底层的FPGA抓取,只需要将抓取到的二进制数据提供给软件工程师,他们就能够在ARM芯片上开发出和PC上闭源驱动功能一样强大的嵌入式显卡驱动。
本发明的装置及方法具有不受制闭源驱动的限制的优点,通过此方法可以为软件工程师开发基于任何CPU和任何操作***的高质量的显卡驱动提供关键数据流信息。
本发明的桥接方法对于PC是透明的,可以做到随插随用;且此方法不限于此应用场景,可扩展到有相关需求的任何场景,通用性强。
附图说明
图1为本发明装置的原理图。
图2为本发明方法的原理图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的详细说明,便于清楚地了解本发明,但它们不对本发明构成限定。
由于显卡和PC的接口是PCIE,所以本发现的技术方案要遵守PCIBaseSpecification Revision 3.0规范。PC是PCIE的ROOT Complex,简称RP,显卡是PCIE的Endpoint,简称EP。为了桥接PC和显卡,需要在FPGA(现场可编辑门阵列)内部同时实现EP和RP的功能。其中FPGA的EP用于和PC通信,而FPGA的RP用于和显卡通信。在FPGA内部,需要利用特定的总线将EP和RC桥接起来,这样就实现了数据的互通。
由于FPGA要实现PCIE RC的功能,根据PCIE规范,FPGA必须要负责对显卡进行上电初始化以及BAR资源分配工作,这部分工作在没有桥接时其实是PC完成的,桥接后需要由FPGA完成。由于这部分功能是软件行为,所以还需要用到FPGA内部的ARM,编写程序来完成。
在FPGA实现了桥的全部功能特性并且数据联通性无误后,就可以在PC上安装显卡驱动程序,安装好后在Windows的设备管理器中就能看到显卡的相关信息,而PC则完全感知不到FPGA的存在。
在PC上播放视频或者绘制3D图形,则PC上的驱动程序就会下发指令给显卡进行视频和3D图形的渲染,这部分指令会流过FPGA,被FPGA内部的逻辑所抓取并且存放到DDR内。将DDR内存放的数据读出并且打印到文件中,就可以交给软件工程师,用于编写ARM中运行的驱动程序,实现和PC上驱动程序一样的功能。
基于上述原理,本发明一种基于FPGA实现PC与显卡桥接的装置,如图1所示,包括集成于一个FPGA上的PCIE EP模块,用于接收显卡的内部寄存器及BAR的信息并存储,寄存器的信息包括显卡的ID、厂商和型号,用于将PC向显卡的发送TLP进行解析,将解析的数据通过AXI总线发送至PCIE RP模块;
TLP包是PCIE协议定义的事务层包,PCIE EP模块需要解析出TLP包的类下列内容,以便进行TLP到AXI总线的转换:
TLP包类型,PCIE EP模块识别这个TLP包是读MEM还是写MEM,并把读和写请求转换成AXI总线的读写使能信号。
TLP包地址,TLP包携带有要进行读写的BAR的地址信息,PCIE EP模块解析出这个地址,放置在AXI总线的地址线上
TLP包数据,对于PC发来的写请求TLP包,地址后面会跟随着写数据,PCIE EP模块将写数据提取出来,放置在AXI总线的数据线上。
从PCIE EP模块到PCIE RP模块方向,AXI上传输PC发起的读写使能,地址和数据。从PCIE RP模块到PCIE EP模块方向,AXI上传输显卡回送给PC的数据。
PCIE RP模块,用于对显卡进行上电初始化以及对显卡的BAR资源进行分配,用于根据显卡上电初始化的规则对接收的数据进行封装并发送至显卡;
ARM处理器,用于控制PCIE RP模块获取显卡内部寄存器及BAR的信息并发送至PCIE EP模块。
上述方案中,为了便于将PC上的闭源显卡驱动对显卡进行的一切操作数据提供给软件工程师,还包括DDR存储模块,所述PCIE EP模块用于将解析的数据发送至ARM处理器,所述ARM处理器用于将接收的数据发送到DDR存储模块,所述DDR存储模块用于存储数据。PC上的闭源显卡驱动对显卡的操作会流过FPGA,被FPGA内部的逻辑所抓取并且存放到DDR存储模块。将DDR存储模块存放的数据读出并且打印到文件中,就可以交给软件工程师,用于编写ARM中运行的驱动程序,实现和PC上驱动程序一样的功能。
上述方案中,FPGA上设有第一PCIE接口和第二PCIE接口,所述第一PCIE接口用于与PC连接,所述第二PCIE接口用于与显卡连接。
基于上述的装置,本发明还提供一种基于FPGA实现PC与显卡桥接的方法,包括信息模拟和数据桥接,显卡模拟具体为:读取显卡中的寄存器信息,这部分寄存器包括显卡的ID,厂商,型号等关键信息,将这些信息放置到FPGA的PCIE EP模块中,这样PC就能识别到显卡的相关信息,并且和驱动的INF文件匹配,从而能够加载相关的驱动程序;获取显卡内部BAR的信息,利用FPGA内部的ARM处理器通过PCIE RP模块访问显卡的BAR,就能知道显卡内部BAR的信息,将这些BAR信息复制到FPGA的PCIE EP模块中,这样PC上的操作***就能够给这些BAR分配基地址,从而映射到PC的内存空间中。PC模拟具体为通过FPGA内部的ARM处理器对PCIE RP模块进行编程,以实现对显卡的上电初始化和BAR资源分配。
数据桥接包括PCIE TLP事务转换和FPGA内部总线事务相互转换。转换过程包括地址转换和读写请求转换。地址转换的原则是将PC对显卡BAR的访问转换成对固定地址的访问,读写请求转换是将PC对显卡的读写使能信号转换成对FPGA内部总线(AXI)的读写使能信号。根据上述地址转换规则给显卡的BAR写入正确的基地址,这样就能把PC对FPGA EP的BAR操作转换成FPGA RP对显卡的BAR操作。
地址转换详细说明:
例如上电初始化时,PC对PCIE EP模块的BAR0初始化基地址为0x00000000,PCIERP模块对显卡BAR0初始化基地址为0x20000000。现在PC想要读写显卡的BAR0内部的寄存器,假设偏移地址为0x0000000a。
整个过程如下:
PC发出的TLP包内携带的地址为0x0000000a,这个地址会击中PCIE EP模块的BAR0,PCIE EP模块收到这个包后,就会解析出地址,并放置到AXI总线上。PCIE RP模块会把AXI上的地址0x0000000a转换成0x2000000a,并重新封装成TLP包发送给显卡。如此一来,就能最终击中显卡的BAR0,从而对显卡进行访问。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (6)
1.一种基于FPGA实现PC与显卡桥接的装置,其特征在于:包括集成于一个FPGA上的
PCIE EP模块,用于接收显卡的内部寄存器及BAR的信息并存储,用于将PC向显卡的发送TLP进行解析,将解析的数据发送至PCIE RP模块;
PCIE RP模块,用于对显卡进行上电初始化以及对显卡的BAR资源进行分配,用于根据显卡上电初始化的规则对接收的数据进行封装并发送至显卡;
ARM处理器,用于控制PCIE RP模块获取显卡内部寄存器及BAR的信息并发送至PCIE EP模块。
2.根据权利要求1所述的基于FPGA实现PC与显卡桥接的装置,其特征在于:还包括DDR存储模块,所述PCIE EP模块用于将解析的数据发送至ARM处理器,所述ARM处理器用于将接收的数据发送到DDR存储模块,所述DDR存储模块用于存储数据。
3.根据权利要求1所述的基于FPGA实现PC与显卡桥接的装置,其特征在于:所述PCIEEP模块与PCIE RP模块之间通过AXI总线进行数据传输。
4.根据权利要求1所述的基于FPGA实现PC与显卡桥接的装置,其特征在于:所述FPGA上设有第一PCIE接口和第二PCIE接口,所述第一PCIE接口用于与PC连接,所述第二PCIE接口用于与显卡连接。
5.根据权利要求1所述的基于FPGA实现PC与显卡桥接的装置,其特征在于:所述显卡内部寄存器的信息包括显卡的ID、厂商和型号。
6.一种基于FPGA实现PC与显卡桥接的方法,其特征在于:包括信息模拟和数据桥接,所述信息模拟包括显卡模拟和PC模拟,所述显卡模拟通过获取显卡内部寄存器及BAR的信息实现,所述PC模拟PC模拟是通过编辑对显卡的上电初始化命令和BAR资源分配命令实现;所述数据桥接包括地址转换和读写请求转换,所述地址转换是将PC对显卡BAR的访问转换成对固定地址的访问,所述读写请求转换是将PC对显卡的读写使能信号转换成对FPGA内部总线的读写使能信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032667.2A CN109783407B (zh) | 2019-01-14 | 2019-01-14 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910032667.2A CN109783407B (zh) | 2019-01-14 | 2019-01-14 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783407A CN109783407A (zh) | 2019-05-21 |
CN109783407B true CN109783407B (zh) | 2021-01-12 |
Family
ID=66500562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910032667.2A Active CN109783407B (zh) | 2019-01-14 | 2019-01-14 | 一种基于fpga实现pc与显卡桥接的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783407B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527690B (zh) * | 2021-02-10 | 2021-05-18 | 武汉精鸿电子技术有限公司 | 一种针对半导体存储器老化测试的离线调试方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106161A (zh) * | 2012-12-22 | 2013-05-15 | 中国船舶重工集团公司第七0九研究所 | 一种基于io访问方式的显卡bios更新方法 |
CN103631326A (zh) * | 2012-08-22 | 2014-03-12 | 成都爱斯顿测控技术有限公司 | 多接口嵌入式主板 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101369244A (zh) * | 2007-08-14 | 2009-02-18 | 鸿富锦精密工业(深圳)有限公司 | 图形显示卡测试方法 |
US8161209B2 (en) * | 2008-03-31 | 2012-04-17 | Advanced Micro Devices, Inc. | Peer-to-peer special purpose processor architecture and method |
US9247179B2 (en) * | 2012-11-19 | 2016-01-26 | Nvidia Corporation | Reverse video playback in a data processing device |
US9292414B2 (en) * | 2012-11-26 | 2016-03-22 | Nvidia Corporation | System, method, and computer program product for debugging graphics programs locally utilizing a system with a single GPU |
US10216419B2 (en) * | 2015-11-19 | 2019-02-26 | HGST Netherlands B.V. | Direct interface between graphics processing unit and data storage unit |
CN106844245B (zh) * | 2017-02-17 | 2019-11-12 | 北京腾凌科技有限公司 | 数据传输方法及装置 |
CN107203484B (zh) * | 2017-06-27 | 2020-06-16 | 北京计算机技术及应用研究所 | 一种基于FPGA的PCIe与SRIO总线桥接*** |
CN107220065A (zh) * | 2017-06-28 | 2017-09-29 | 山东超越数控电子有限公司 | 一种基于x86模拟器的国产平台bios显卡驱动方法 |
CN108234264B (zh) * | 2017-12-29 | 2021-05-28 | 杭州迪普科技股份有限公司 | 一种基于PCIe信号接口扩展的数据包转发方法及装置 |
CN108804376B (zh) * | 2018-06-14 | 2021-11-19 | 山东航天电子技术研究所 | 一种基于gpu和fpga的小型异构处理*** |
-
2019
- 2019-01-14 CN CN201910032667.2A patent/CN109783407B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631326A (zh) * | 2012-08-22 | 2014-03-12 | 成都爱斯顿测控技术有限公司 | 多接口嵌入式主板 |
CN103106161A (zh) * | 2012-12-22 | 2013-05-15 | 中国船舶重工集团公司第七0九研究所 | 一种基于io访问方式的显卡bios更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109783407A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5649128A (en) | Multiple bus interface adapter for connection to a plurality of computer bus architectures | |
US7155379B2 (en) | Simulation of a PCI device's memory-mapped I/O registers | |
CN108268414B (zh) | 基于spi模式的sd卡驱动器及其控制方法 | |
US20070061127A1 (en) | Apparatus and method for connecting hardware to a circuit simulation | |
CN111931442B (zh) | Fpga内嵌flash控制器及电子装置 | |
CN111045964B (zh) | 一种基于pcie接口高速传输方法、存储介质及终端 | |
JP2004227588A (ja) | Sdioカード開発システム | |
CN114153779B (zh) | 一种i2c通信方法、***、设备、及存储介质 | |
CN112631851B (zh) | 一种芯片调试代理装置及芯片调试方法 | |
US11237832B2 (en) | Module with a serialization unit and improved compatibility with deserialization units of different series | |
CN113868039A (zh) | 一种测试方法、装置及相关设备 | |
US6484273B1 (en) | Integrated EJTAG external bus interface | |
US6820149B2 (en) | Method, system, and program for testing a bus interface | |
CN109783407B (zh) | 一种基于fpga实现pc与显卡桥接的装置及方法 | |
CN114327975A (zh) | 片上*** | |
CN110765060B (zh) | Mdio总线到并行总线转换方法及装置、设备、介质 | |
US6883057B2 (en) | Method and apparatus embedding PCI-to-PCI bridge functions in PCI devices using PCI configuration header type 0 | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
US20010016922A1 (en) | Emulator and method of emulation for testing a system | |
CN114328342B (zh) | 一种用于PCIe异构加速卡的新型程控配置方法 | |
CN110362526B (zh) | Spi从机设备、存储和适配方法及计算机存储介质 | |
US7526691B1 (en) | System and method for using TAP controllers | |
US10657076B2 (en) | Electronic apparatus and method of extending peripheral device | |
CN111209234A (zh) | 一种基于Avalon-MM总线接口的多串口IP核 | |
Li et al. | Functional verification of QSPI module based on UVM implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |