发布信息

一种FPGA原型验证装置、系统及方法与流程 专利技术说明

作者:admin      2022-11-30 10:23:31     386



计算;推算;计数设备的制造及其应用技术一种fpga原型验证装置、系统及方法技术领域1.本发明涉及验证技术领域,尤其涉及fpga原型验证装置、系统及方法。背景技术:2.随着usb技术的发展,越来越多的设备使用usb接口来进行数据传输,usb以其接口简单、支持热插拔、通信速度快、可连接设备多等优点,在工作和生活当中运用越来越广泛。3.usb over network是一种功能强大、使用方便的usb设备共享解决方案,可以通过网络分享和获取远端客户端上使用的usb相关设备,极大的方便了对远端客户端上usb设备的使用。现有的技术当中,通常是在本地客户端与远端客户端上分别安装相应的应用软件并通过网络来实现设备的互联,将远端客户端上usb设备产生的数据转换成以太网数据,并通过以太网传输至本地客户端,再将接收到的以太网数据包转换成相应的usb数据,最终实现对远端客户端上的usb设备进行操作或者数据共享。4.基于usb over network的asic应用也越来越广泛,当asic芯片实现了usb虚拟hub功能后,将可以实现远端的多个usb设备共享,为了验证asic能够实现该功能,需要在芯片流片前进行相关的功能验证,以检验asic功能设计的正确性,同时为软件开发人员提供相应的硬件平台,用以检验软件的正确性,为后续的芯片流片排除风险。5.fpga原型验证是检验asic设计正确性的一种常用方法,通过将asic代码移植到fpga芯片当中,对asic所实现的相关功能进行验证,以确保asic实现的功能满足设计需求。6.针对目前的usb over network功能应用,通常是在远端客户端和本地客户端上安装相关的应用软件,将本地客户端与远端客户端通过以太网进行连接,最终实现远端客户端上的usb设备在本地客户端上的共享,而这种方法可以共享远端客户端上的usb设备数量较少。技术实现要素:7.为了解决上述现有技术中存在的技术问题,本发明提供了一种fpga原型验证方法、系统、计算机设备及存储介质,提供了硬件平台支持,解决了软件验证工作通常需要在asic流片完成之后才能开展的不足,可以实现多usb over network功能的应用,解决了传统usb over network方法只能共享少量远端usb设备的不足,同时该fpga原型验证系统可以进行asic的usb虚拟hub、以太网等功能的验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。8.为实现上述目的,本发明实施例提供了如下的技术方案:9.第一方面,在本发明提供的一个实施例中,提供了fpga原型验证装置,该装置包括以下步骤:10.cpu、外设接口、存储模块、以太网控制器和usb虚拟hub模块;11.所述cpu,用于对整个装置外设进行控制,以及装置内部数据进行处理;12.所述外设接口,用于实现与外设设备之间的数据传输;13.所述存储模块,用于储存数据;14.所述以太网控制器,用于将本地数据转换成以太网数据包并通过以太网进行远传,同时接收以太网数据包;15.所述usb虚拟hub模块,用于将接收的usb数据进行分发处理,实现多usb设备的功能,并将usb设备与远程客户端上的usb设备进行数据映射,将远程客户端上多个usb设备的数据传输至本地客户端,实现多usb over network的功能。16.作为本发明的进一步方案,所述存储模块包括ddr内存控制器和ddr颗粒。所述ddr内存控制器用于读取ddr颗粒中存储的数据。17.作为本发明的进一步方案,所述以太网控制器还包括以太网phy,以太网phy用于将以太网数据进行传输。18.第二方面,在本发明提供的又一个实施例中,提供了fpga原型验证系统,该系统包括:fpga原型验证装置、本地客户端和远程客户端;19.所述本地客户端和远程客户端均与fpga原型验证装置通信连接;20.所述本地客户端,用于下发控制指令给远程客户端;21.所述远程客户端,用于完成对连接的外接usb设备的枚举,将检测到的外接usb设备信息通过发送至fpga原型验证装置;接收fpga原型验证装置发出的控制指令,将接收的控制指令下发至对应的外接usb设备,外接usb设备根据下发的控制指令获得外接usb设备的usb数据,并将外接usb设备的usb数据传递给fpga原型验证装置中usb虚拟hub模块中对应的usb设备;22.所述fpga原型验证装置,用于将接收的本地客户端usb数据进行分发处理,实现多usb设备的功能,并将usb设备与远程客户端上的usb设备进行数据映射,将远程客户端上多个外接usb设备的数据传输至本地客户端,从而实现多usb over network的功能。23.作为本发明的进一步方案,所述fpga原型验证装置,具体用于将控制命令下发至usb虚拟hub模块,然后将控制指令转发至对应的usb设备当中,usb虚拟hub模块中的设备模块将控制指令传输至cpu,cpu将控制指令传输至远端客户端。24.作为本发明的进一步方案,fpga原型验证装置与远程客户端之间通过以太网连接。25.第三方面,在本发明提供的又一个实施例中,提供了fpga原型验证方法,该方法包括以下步骤:26.本地客户端将控制命令下发至fpga原型验证装置中的usb虚拟hub模块;27.将控制指令转发至对应的usb设备当中,usb虚拟hub模块中的设备模块将控制指令传输至cpu,cpu将控制指令传输至远端客户端;28.远端客户端将控制指令下发至对应的usb设备,获得usb数据;29.远端客户端将usb数据传输至装置的cpu,cpu将usb数据传输至usb虚拟hub模块中对应的usb设备,并通过usb接口将usb数据传输至本地客户端。30.作为本发明的进一步方案,在所述本地客户端将控制命令下发至fpga原型验证装置中的usb虚拟hub模块前,还包括远端客户端完成全部usb设备的枚举。31.作为本发明的进一步方案,在所述远端客户端完成全部usb设备的枚举,还包括远端客户端将检测到的usb设备信息发送至原型验证系统中。32.作为本发明的进一步方案,在所述本地客户端将控制命令下发至fpga原型验证装置中的usb虚拟hub模块前,还包括fpga原型验证装置中cpu配置usb虚拟hub模块中的相关寄存器,并实现虚拟hub中usb设备与远端客户端所连接的usb设备之间的参数映射。33.本发明提供的技术方案,具有如下有益效果:34.本发明提供的fpga原型验证装置、系统及方法,可以验证asci具备多usb over network功能,可以为软件开发人员提供一个硬件验证平台,使得在芯片流片前即可进行软件与硬件验证工作,减少了芯片流片后出现问题的风险;可以在asic上实现多usb over network功能,而传统的通过计算机应用软件来实现usb over network功能的方法,可以共享远端的usb数量较少;可以进行asic的usb虚拟hub模块、以太网等功能验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。35.本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。37.图1为本发明一个实施例的fpga原型验证装置的功能架构图;38.图2为本发明一个实施例的fpga原型验证系统的结构图;39.图3为本发明一个实施例的fpga原型验证方法的流程图。具体实施方式40.以下参照附图说明各种实施例及/或各形态。在以下说明中,以说明为目的公开了多个具体细节以整体上理解一个以上的形态。但是,本领域的技术人员可以理解在没有具体细节的情况下也可以实施这些形态。在以下的记载及附图中将详细说明一个以上的形态的特定例示。但是,这些形态是例示而已,可以利用各种形态的原理中各种方法中的一部分,所阐述的说明旨在包括所有形态及其等同物。具体地,在本说明书中使用的术语“实施例”、“例”、“形态”、“例示”等可以被解释为所描述的任意形态或设计可以比其他形态或设计更好或具有优点。41.另外,各种形态及特征可通过包括一个以上的装置、终端、服务器、设备、组件及/或模块等的系统体现。应理解并认识各种系统可包括额外的多个装置、终端、服务器、设备、组件及/或模块,并且/或也可以不包括图中所示的多个装置、终端、服务器、设备、组件、模块等的全部。42.在本说明书中使用的术语“计算机程序”、“组件”、“模块”、“系统”等可以互换使用,并且计算机-相关实体、硬件、固件、软件、软件及硬件的组合或指软件的执行。例如,组件可以是在处理器上执行的处理过程、处理器、客体、执行线程、程序及/或计算机,但不限定于此。例如,可以是在计算机装置执行的应用程序及/或计算装置所有组件。一个以上的组件可以安装在处理器及/或执行线程内。一个组件可以在一个计算机中本地化。一个组件也可以在两个以上的计算机之间分配。43.并且,这些组件可由在内部存储各种数据构造的各种计算机可读介质执行。这些组件,例如可根据具有一个以上的数据包的信号(例如,在本地系统、分散系统上通过与其他组件相互作用的一个组件发出的数据及信号与其他系统通过互联网等网络传输的数据)通过本地及/或远程处理通信。44.以下,与图面符号无关,对相同或类似的构成要素赋予相同的符号,并省略对此的重复说明。并且,在说明本说明书中公开的实施例时,若判断对公知技术的具体说明会使本发明的要旨不明确,则省略对其的详细说明。并且,附图仅为了更容易理解在本说明书中公开的实施例,本说明书中公开的技术思想并不限定于附图。45.在本说明书中使用的术语是为了说明这些实施例的,而不是限制本发明。在没有特别提及的情况下,本说明书中的单数表现包括复数表现。在说明书中使用的“包含(comprises)”及/或“包含的(comprising)”被提及的构成要素以外不排除一个以上的其他构成要素的存在或附加。46.第一、第二等术语可用于说明多种元件或构成要素,但所述元件或构成要素并不局限于所述术语。所述术语以从其他元件或构成要素区分一个元件或构成要素而使用。因此,在以下提及的第一元件或构成要素当然也可以是本发明的技术思想内的第2元件或构成要素。47.若没有其他定义,在本说明书中使用的所有术语(包括技术及科学术语)可以用于本发明所属领域的领域技术人员共通理解的含义。另外,在一般使用的词典上被定义的术语,若没有特别明确定义,则不应以理想性或过度解释。48.另外,术语“或”的意思不是排他的“或”而是包含的“或”。即,除非有其他特定或文脉上不明确时“x利用a或b”意味着自然内涵的替换之一。即,x利用a或;x利用b或x利用a及b时,“x利用a或b”可以上面的任何情况。并且,应理解在本说明书中使用的“及/或”的术语指代包括在例举的相关项目中的一个以上项目可能的所有组合。49.另外,在本说明书中使用的术语“信息”及“数据”通常可互换使用。50.在以下说明中使用的对构成要素的后缀“模块”及“部”,只是为了方便撰写说明书而赋予或混用的,其本身并没有相互区别的含义或作用。51.针对目前的usb over network功能应用,通常是在远端客户端和本地客户端上安装相关的应用软件,将本地客户端与远端客户端通过以太网进行连接,最终实现远端客户端上的usb设备在本地客户端上的共享,而这种方法可以共享远端客户端上的usb设备数量较少;使用asic芯片,并在其中实现usb虚拟hub功能,通过以太网将远端客户端上多个usb设备中的数据与本地客户端进行交互,最终实现多usb over network的功能。52.本发明所提出的一种fpga原型验证系统为asic和软件功能的验证提供了硬件平台支持,解决了软件验证工作通常需要在asic流片完成之后才能开展的不足,该方法可以实现多usb over network功能的应用,解决了传统usb over network方法只能共享少量远端usb设备的不足,同时该fpga原型验证系统可以进行asic的usb虚拟hub、以太网等功能的验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。53.具体地,下面结合附图,对本发明实施例作进一步阐述。54.在一个实施例中,参见图1所示,在本发明的实施例中还提供了fpga原型验证装置,该装置包括cpu、外设接口、存储模块、以太网控制器和usb虚拟hub模块。55.所述cpu,用于对整个装置外设进行控制,以及装置内部数据进行处理;56.所述外设接口,用于实现与外设设备之间的数据传输;57.所述存储模块,用于储存数据;58.其中,所述存储模块包括ddr内存控制器和ddr颗粒。所述ddr内存控制器用于读取ddr颗粒中存储的数据。59.所述以太网控制器,用于将本地数据转换成以太网数据包并通过以太网进行远传,同时接收以太网数据包;60.其中,所述以太网控制器还包括以太网phy,以太网phy用于将以太网数据进行传输。61.所述usb虚拟hub模块,用于将接收的usb数据进行分发处理,实现多usb设备的功能,并将usb设备与远程客户端上的usb设备进行数据映射,将远程客户端上多个usb设备的数据传输至本地客户端,从而实现多usb over network的功能。62.本发明提供了硬件平台支持,解决了软件验证工作通常需要在asic流片完成之后才能开展的不足,该方法可以实现多usb over network功能的应用,解决了传统usb over network方法只能共享少量远端usb设备的不足,同时本发明可以进行asic的usb虚拟hub模块、以太网等功能的验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。63.在本发明的实施例中,本装置还包括时钟电路,所述时钟电路为asic运行提供相应的运行时钟。64.在一个实施例中,参见图2所示,在本发明的实施例中还提供了fpga原型验证系统,该系统包括fpga原型验证装置、本地客户端和远程客户端。65.所述本地客户端和远程客户端均与fpga原型验证装置通信连接,且远程客户端通过以太网连接;66.所述本地客户端,用于下发控制指令给远程客户端;67.所述远程客户端,用于完成对连接的外接usb设备的枚举,将检测到的外接usb设备信息通过发送至fpga原型验证装置;接收fpga原型验证装置发出的控制指令,将接收的控制指令下发至对应的外接usb设备,外接usb设备根据下发的控制指令获得外接usb设备的usb数据,并将外接usb设备的usb数据传递给fpga原型验证装置中usb虚拟hub模块中对应的usb设备。68.所述fpga原型验证装置,用于将接收的本地客户端usb数据进行分发处理,实现多usb设备的功能,并将usb设备与远程客户端上的usb设备进行数据映射,将远程客户端上多个外接usb设备的数据传输至本地客户端,从而实现多usb over network的功能。69.其中,所述fpga原型验证装置,具体用于将控制命令下发至usb虚拟hub模块,然后将控制指令转发至对应的usb设备当中,usb虚拟hub模块中的设备模块将控制指令传输至cpu,cpu将控制指令通过以太网接口传输至远端客户端。70.所述本地客户端与fpga原型验证装置之间通过usb接口连接。该设置便于实现。71.所述客户端可以为电脑。72.所述fpga原型验证装置包括cpu、外设接口、存储模块、以太网控制器和usb虚拟hub模块。所述cpu,用于对整个装置外设进行控制,以及装置内部数据进行处理;所述外设接口,用于实现与外设设备之间的数据传输;所述存储模块,用于储存数据;其中,所述存储模块包括ddr内存控制器和ddr颗粒。所述ddr内存控制器用于读取ddr颗粒中存储的数据。所述以太网控制器,用于将本地数据转换成以太网数据包并通过以太网进行远传,同时接收以太网数据包。73.本发明可以验证asci具备多usb over network功能,可以为软件开发人员提供一个硬件验证平台,使得在芯片流片前即可进行软件与硬件验证工作,减少了芯片流片后出现问题的风险;74.可以在asic上实现多usb over network功能,而传统的通过计算机应用软件来实现usb over network功能的方法,可以共享远端的usb数量较少。75.可以进行asic的usb虚拟hub模块、以太网等功能验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。76.所述客户端包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述客户端可单独运行来实现本发明,也可接入网络并通过与网络中的其他客户端的交互操作来实现本发明。其中,所述客户端所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。77.请参阅图3,图3是本发明实施例提供的一种fpga原型验证方法的流程图,如图3所示,该fpga原型验证方法包括步骤s10至步骤s40。78.s10、本地客户端将控制命令下发至fpga原型验证装置中的usb虚拟hub模块。79.在本发明的实施例中,所述步骤一之前还需要完成,还包括远端客户端完成全部usb设备的枚举,且将检测到的usb设备信息发送至原型验证系统中。80.在本发明的实施例中,所述步骤一之前还需要完成,fpga原型验证装置中cpu配置usb虚拟hub模块中的相关寄存器,并实现虚拟hub中usb设备与远端客户端所连接的usb设备之间的参数映射。以便后续接收usb数据。81.s20、将控制指令转发至对应的usb设备当中,usb虚拟hub模块中的设备模块将控制指令传输至cpu,cpu将控制指令传输至远端客户端。82.s30、远端客户端将控制指令下发至对应的usb设备,获得usb数据。83.s40、远端客户端将usb数据传输至装置的cpu,cpu将usb数据传输至usb虚拟hub模块中对应的usb设备,并通过usb接口将usb数据传输至本地客户端。84.在本发明的实施例中,fpga原型验证装置与远程客户端之间通过以太网连接。85.本发明在使用之前将本地客户端通过usb线缆连接到fpga原型验证系统的usb接口上,将远端客户端通过以太网线缆连接到fpga原型验证装置的以太网接口上,将多个usb设备插入远端客户端,保持整个系统上电运行。86.本发明可以验证asci具备多usb over network功能,可以为软件开发人员提供一个硬件验证平台,使得在芯片流片前即可进行软件与硬件验证工作,减少了芯片流片后出现问题的风险;87.可以在asic上实现多usb over network功能,而传统的通过计算机应用软件来实现usb over network功能的方法,可以共享远端的usb数量较少。88.可以进行asic的usb虚拟hub模块、以太网等功能验证,并可以进行fpga项目开发,是一个通用型的asic fpga原型验证及fpga项目开发平台。89.应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。90.结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。91.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。92.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。93.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。94.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。95.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部