PCIe初始化流程的仿真方法、装置及相关设备与流程

文档序号:20616784发布日期:2020-05-06 20:15阅读:492来源:国知局
PCIe初始化流程的仿真方法、装置及相关设备与流程
本发明涉及eda仿真
技术领域
,具体而言,涉及一种pcie初始化流程的仿真方法、装置及相关设备。
背景技术
:pcie(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准,其以传输速率快、端到端的可靠性传输、支持热拔插、功耗管理、服务质量等特性在个人计算机、服务器、固态硬盘、数据中心等领域得到了广泛的应用。而在芯片开发过程中,电子设计自动化(electronicsdesignautomation,eda)仿真对保证芯片的功能完整性、解决芯片开发中的实时物流(realtimelogistics,rtl)问题、网表问题等具有重要作用。因此,在开放pcie设备的过程中,常常会利用eda仿真对相关功能进行验证。然而,现有技术中,在pciephy(physical,物理层)在完成初始上电后,需要进行锁相环(phaselockedloop,pll)锁定、接收端压控振荡器(voltagecontrolledoscillator,vco)校准、接收端/发射端检测、接收端模拟前端(analogfrontend,afe)/决策反馈均衡(decisionfeedbackequalization,dfe)校准等等,而这些过程的仿真时间会很久,甚至达到几天时间,较为耗时。技术实现要素:有鉴于此,本发明的目的在于提供一种pcie初始化流程的仿真方法、装置及相关设备,以解决上述问题。第一方面,本发明提供了一种pcie初始化流程的仿真方法,所述pcie初始化流程的仿真方法包括:控制预先搭建的pcie仿真平台上电,其中,所述pcie仿真平台包括虚拟处理器及虚拟pcie设备端,所述虚拟处理器与所述虚拟pcie设备端连接,所述虚拟pcie设备端包括复位寄存器、加速仿真寄存器、pcie物理层寄存器以及pcie控制寄存器;利用所述虚拟处理器释放所述复位寄存器;利用所述虚拟处理器根据预先存储的赋值表对所述加速仿真寄存器进行配置;利用所述虚拟处理器根据预先存储的功能信息对所述pcie物理层寄存器以及所述pcie控制寄存器进行配置;控制所述pcie设备端进行pcie进行链路训练。进一步地,所述利用所述虚拟处理器释放所述复位寄存器的步骤包括:利用所述虚拟处理器将所述复位寄存器的赋值写为1。进一步地,所述利用所述虚拟处理器释放所述复位寄存器的步骤包括:在等待第一预设时间后,利用所述虚拟处理器释放所述复位寄存器。进一步地,所述利用所述虚拟处理器根据预先存储的赋值表对所述加速仿真寄存器进行配置的步骤包括:在等待第二预设时间后,利用所述虚拟处理器根据预先存储的赋值表对所述加速仿真寄存器进行配置。第二方面,本发明还提供了一种pcie初始化流程的仿真装置,所述pcie初始化流程的仿真装置包括:控制模块,用于控制预先搭建的pcie仿真平台上电,其中,所述pcie仿真平台包括虚拟处理器及虚拟pcie设备端,所述虚拟处理器与所述虚拟pcie设备端连接,所述虚拟pcie设备端包括复位寄存器、加速仿真寄存器、pcie物理层寄存器以及pcie控制寄存器;配置模块,用于利用所述虚拟处理器释放所述复位寄存器;所述配置模块还用于利用所述虚拟处理器根据预先存储的赋值表对每个所述加速仿真寄存器进行配置;所述配置模块还用于利用所述虚拟处理器根据预先存储的功能信息对所述pcie物理层寄存器以及所述pcie控制寄存器进行配置;训练模块,用于控制所述pcie设备端进行pcie进行链路训练。进一步地,所述配置模块用于利用所述虚拟处理器将所述复位寄存器的赋值写为1。进一步地,所述配置模块还用于在等待第一预设时间后,利用所述虚拟处理器释放所述复位寄存器。进一步地,所述配置模块还用于在等待第二预设时间后,利用所述虚拟处理器根据预先存储的赋值表对所述加速仿真寄存器进行配置。第三方面,本发明提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现上述任意一种实施方式中的pcie初始化流程的仿真方法。第四方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种实施方式中的pcie初始化流程的仿真方法。本发明提供的pcie初始化流程的仿真方法、装置及相关设备,通过控制预先搭建的pcie仿真平台上电,并在利用虚拟处理器释放复位寄存器,然后利用虚拟处理器根据预先存储的赋值表对加速仿真寄存器进行配置,利用虚拟处理器根据预先存储的功能信息对pcie物理层寄存器以及pcie控制寄存器进行配置后,控制pcie设备端进行pcie进行链路训练。本发明通过给加速仿真寄存器强制赋值的方式,缩短在链路训练过程进行pll锁定、接收端vco校准等操作的仿真时间;同时,本发明对加速仿真寄存器进行强制赋值,而无需开发人员预先在用于进行仿真的bin文件中写入加速仿真寄存器的值,保证给加速仿真寄存器赋值的正确性,避免在链路训练过程中出现多次迭代现象,从而缩短了整个pci初始化流程的仿真时间。为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。附图说明图1示出了本发明实施例提供的电子设备的方框示意图。图2示出了本发明提供的pcie初始化流程的仿真方法的流程图。图3示出了本发明提供的pcie仿真平台的方框示意图。图4示出了发明提供的pcie初始化流程的仿真装置的功能模块图。图标:100-电子设备;110-存储器;120-处理器;130-通信模块;200-pcie初始化流程的仿真装置;210-控制模块;220-配置模块;230-训练模块。具体实施方式下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本发明提供了一种电子设备100,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该电子设备100可以为个人电脑、pda(personaldigitalassistant,个人数字助理)等任意终端设备。请参阅图1,所述电子设备100包括存储器110、处理器120以及通信模块130等部件。所述处理器120与存储器110以及通信模块130均电连接。其中,存储器110用于存储程序或者数据。在一种可选的实施方式中,存储器110可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如即时通讯软件、声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备100的使用所创建的数据(比如音频数据、电话本等)等。所述存储器110可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。处理器120是电子设备100的控制中心,利用各种接口和线路连接整个电子设备100的各个部分,通过运行或执行存储在存储器110内的软件程序和/或模块,以及调用存储在存储器110内的数据,执行电子设备100的各种功能和处理数据,从而对电子设备100进行整体监控。通信模块130用于通过所述网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。该通信模块130可以但不仅限于wifi电路、射频电路等。应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。第一实施例本发明提供了一种pcie初始化流程的仿真方法,应用于上述电子设备100,用于模拟pcie的初始化流程。请参阅图2,为本发明提供的pcie初始化流程的仿真方法的流程图。该pcie初始化流程的仿真方法包括:s201,控制预先搭建的pcie仿真平台上电。可以理解地,电子设备100上预先安装有eda仿真软件。该仿真软件可以是modelsim。开发者可利用eda软件进行电子电路设计、pcb设计及ic设计等操作。通常地,eda仿真可根据待验证的设计(designundertest,dut)的类型进行前仿真和后仿真。其中,前仿真是基于rtl的仿真,后仿真是基于网表的仿真。而不论是前仿真还是后仿真,均可采用模型仿真和软件bin仿真的方式。请参阅图3,为本发明提供的pcie仿真平台的方框示意图。该pcie仿真平台包括虚拟pcie主机端、虚拟处理器120及虚拟pcie设备端。其中,虚拟pcie主机端用于通过虚拟pcie总线与虚拟pcie设备端连接,虚拟处理器120与虚拟pcie设备连接,用于模拟连接pcie设备端的处理器120的行为,完成对该虚拟pcie设备端的寄存器的读写控制。进一步地,虚拟pcie设备端包括复位寄存器、加速仿真寄存器、pcie物理层寄存器以及pcie控制寄存器。其中,加速仿真寄存器即为在pll锁定、接收端vco校准、接收端/发射端检测、接收端afe/dfe校准等过程所需配置的寄存器。例如,若通过仿真验证pcie硬盘的相关功能是否正常,则可利用虚拟pcie设备段模拟集成在pcie硬盘的固态驱动器(solidstatedisk,ssd)控制器内部的pcie寄存器,利用虚拟处理器120模拟该pcie硬盘的ssd控制器内的片上芯片(systemonchip,soc)中处理器120的功能,例如对该pcie寄存器的读写、串行外设接口(serialperipheralinterface,spi)控制等。需要说明的是,本发明提供的pcie仿真平台既可以采用仿真模型实现,也可以采用软件bin仿真实现,在此不做具体限制。也即,用户可预先设计仿真模型或软件bin文件,并利用仿真软件运行该仿真模块或软件bin文件,使得pcie仿真平台上电,从而开始pcie的初始化仿真流程,进行进一步的寄存器读写操作。s202,利用虚拟处理器120释放复位寄存器。可以理解地,复位寄存器通常为低电平有效,当复位寄存器生效时,会对虚拟pcie设备端内的寄存器(如前述的pcie物理层寄存器及pcie控制寄存器)进行复位操作。只有在复位寄存器被释放时,虚拟pcie设备端内的寄存器可以被读写。因此,在一种可选的实施方式中,利用虚拟处理器120将复位寄存器的赋值写为1,即可释放复位寄存器,从而实现对虚拟pcie设备端内的寄存器的读写。由于实际应用中,pcie设备端的内部电路需要在上电一段时间后才能稳定运行,为了仿真更加真实,可以在等待第一预设时间后在利用虚拟处理器120释放复位寄存器。在一种可选的实施方式中,该第一预设时间与理论上pcie设备端需电源稳定所等待的时间相同,可以为10微秒。s203,利用虚拟处理器120根据预先存储的赋值表对加速仿真寄存器进行配置。现有技术中,可通过在pcie仿真平台中加入宏定义的方式进行加速仿真。然而,这种方式仅仅对rtl仿真而对网表仿真无效,也即仅适用于前仿真不适应于后仿真,适用范围较窄。此外,现在也可在pcie初始化阶段配置专门用于加速pcie仿真的一系列加速仿真寄存器的方式实现仿真加速。然而,这种方式虽然适用于rtl仿真和网表仿真,但其需要用户预先在仿真模型或者软件bin文件中配置pcie加速仿真使用的寄存器,而这部分的寄存器在真实的芯片中不会并不会使用,从而开发者常常会配置错误,这不仅给开发者带来了额外的工作量,还容易由于这部分寄存器配置错误而影响后续的pcie建链过程,造成后续仿真时因为pcie建链问题而出现多次迭代现象,增加仿真时间成本。在本申请中,虚拟处理器120直接根据预先存储的赋值表对加速仿真寄存器进行配置,避免了开发者预先在仿真模型或者软件bin文件中配置pcie加速仿真使用的寄存器,或者即使开发者对pcie加速仿真使用的寄存器配置错误,也不会造成pcie建链过程中的迭代现象,解约仿真时间成本。在一种可选的实施方式中,为预先存储的赋值表可参阅表格1。表格1寄存器信号名需赋值rx_fast_vco_cal_r1’b1rx_fast_vco_wait_r1’b1rx_fast_pwrup_r1’b1tx_fast_rxdet_r1’b1tx_fast_cmn_mode_r1’b1tx_fast_sup_r1’b1rx_fast_dfe_adapt_r1’b1rx_fast_afe_adapt_r1’b1rx_fast_iq_cal_r1’b1rx_fast_reflvl_cal_r1’b1rx_fast_bypass_cal_r1’b1rx_fast_dfe_cal_r1’b1rx_fast_afe_cal_r1’b1rx_fast_adapt_r1’b1rx_fast_startup_cal_r1’b1rx_fast_cont_afe_cal_r1’b1rx_fast_cont_phase_cal_r1’b1rx_fast_cont_data_cal_r1’b1rx_fast_cont_adapt_r1’b1rx_fast_cont_cal_adapt_r1’b1根据上述表格1可知,rx_fast_vco_cal_r、rx_fast_vco_wait_r等均为仿真加速寄存器的名称,从而虚拟处理器120在rx_fast_vco_cal_r这一寄存器内写入1’b1。需要说明的是,上述表格1中的寄存器名称仅仅为示例,在其他实施方式中,寄存器名称可以为其他,其并不影响加速仿真。由于在时机应用过程中,释放复位寄存器以后,仿真加速寄存器的配置接口才会被激活,因此在一种可选的实施方式中,在等待第二预设时间后,才利用虚拟处理器120根据预先存储的赋值表对加速仿真寄存器进行配置。在一种可选的实施方式中,该第二预设时间为100纳秒。s204,利用虚拟处理器120根据预先存储的功能信息对pcie物理层寄存器以及pcie控制寄存器进行配置。需要说明的是,该预先存储的功能信息是基于被模拟的pcie设备的实际功能生成的,通过根据预先储存的功能信息对pcie物理层寄存器以及pcie控制寄存器进行配置,可使得pcie设备实现对应的功能。s205,控制pcie设备端进行pcie进行链路训练。在链路训练过程中,由于预先对加速仿真寄存器进行了强制赋值,使得原本耗费大量时间进行仿真的pll锁定、接收端vco校准等操作过程被加快;同时,无需开发人员预先在用于进行仿真的bin文件中写入加速仿真寄存器的值,保证给加速仿真寄存器赋值的正确性,避免在链路训练过程中出现多次迭代现象,从而缩短了整个pci初始化流程的仿真时间。为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种pcie初始化流程的仿真装置200的实现方式,可选地,该pcie初始化流程的仿真装置200可以采用上述图1所示的电子设备100的器件结构。进一步地,请参阅图4,图4为本发明实施例提供的一种pcie初始化流程的仿真装置200的功能模块图。需要说明的是,本实施例所提供的pcie初始化流程的仿真装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该pcie初始化流程的仿真装置200包括:控制模块210、配置模块220以及训练模块230。其中,控制模块210用于控制预先搭建的pcie仿真平台上电。可以理解地,在一种可选的实施方式中,该控制模块210可用于执行s201,以实现相应功能。配置模块220用于利用虚拟处理器120释放复位寄存器。可以理解地,在一种可选的实施方式中,该配置模块220可用于执行s202,以实现相应功能。配置模块220还用于利用虚拟处理器120根据预先存储的赋值表对加速仿真寄存器进行配置。可以理解地,在一种可选的实施方式中,该配置模块220可用于执行s203,以实现相应功能。配置模块220还用于利用虚拟处理器120根据预先存储的功能信息对pcie物理层寄存器以及pcie控制寄存器进行配置。可以理解地,在一种可选的实施方式中,该配置模块220可用于执行s204,以实现相应功能。训练模块230用于控制pcie设备端进行pcie进行链路训练。可以理解地,在一种可选的实施方式中,该训练模块230可用于执行s205,以实现相应功能。可选地,上述模块可以软件或固件(firmware)的形式存储于图1所示的存储器110中或固化于该电子设备100的操作系统(operatingsystem,os)中,并可由图1中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。综上所述,本发明提供的pcie初始化流程的仿真方法、装置及相关设备,通过控制预先搭建的pcie仿真平台上电,并在利用虚拟处理器释放复位寄存器,然后利用虚拟处理器根据预先存储的赋值表对加速仿真寄存器进行配置,利用虚拟处理器根据预先存储的功能信息对pcie物理层寄存器以及pcie控制寄存器进行配置后,控制pcie设备端进行pcie进行链路训练。本发明通过给加速仿真寄存器强制赋值的方式,缩短在链路训练过程进行pll锁定、接收端vco校准等操作的仿真时间;同时,本发明对加速仿真寄存器进行强制赋值,而无需开发人员预先在用于进行仿真的bin文件中写入加速仿真寄存器的值,保证给加速仿真寄存器赋值的正确性,避免在链路训练过程中出现多次迭代现象,从而缩短了整个pci初始化流程的仿真时间。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1