CN116185935A - 控制器的fpga原型验证方法、系统、介质及计算设备 - Google Patents

控制器的fpga原型验证方法、系统、介质及计算设备 Download PDF

Info

Publication number
CN116185935A
CN116185935A CN202310155926.7A CN202310155926A CN116185935A CN 116185935 A CN116185935 A CN 116185935A CN 202310155926 A CN202310155926 A CN 202310155926A CN 116185935 A CN116185935 A CN 116185935A
Authority
CN
China
Prior art keywords
controller
axi
signal
dfi
address
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.)
Pending
Application number
CN202310155926.7A
Other languages
English (en)
Inventor
李宇昊
路小杭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sierxin Technology Co ltd
Original Assignee
Shanghai Sierxin Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Sierxin Technology Co ltd filed Critical Shanghai Sierxin Technology Co ltd
Priority to CN202310155926.7A priority Critical patent/CN116185935A/zh
Publication of CN116185935A publication Critical patent/CN116185935A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种控制器的FPGA原型验证方法、系统、介质及计算设备,应用于控制器的FPGA原型验证系统,所述控制器的FPGA原型验证系统包括DFI‑AXI协议总线桥和控制器IP核,该方法包括通过所述DFI‑AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号;其中,所述DFI‑AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;将所述AXI协议信号发送至所述控制器IP核;通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号;将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。本发明能够对控制器进行完整的FPGA原型验证。

Description

控制器的FPGA原型验证方法、系统、介质及计算设备
技术领域
本发明涉及FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)原型验证技术领域,具体而言,涉及一种控制器的FPGA原型验证方法、系统、介质及计算设备。
背景技术
伴随着摩尔定律,单颗芯片上所集成的晶体管数目越来越多,集成电路设计的复杂度也越来越高,芯片功能验证的难度也随之增大。FPGA原型验证由于其在成本、速度等方面的优势,成为当前集成电路设计功能验证领域一个不可替代的验证方案。
现有的基于FPGA原型验证系统对DDR(Double Data Rate,双倍数据速率)控制器进行验证具体是通过自行设计的一个物理层接口(Physical Interface,PHY)的转接口模块,将待验证的DDR控制器发来的DFI(DDR PHY Interface)接口信号转换成自行设计的PHY所需的接口信号,从而实现了待验证DDR控制器对DDR内存的读写访问。
但是,在实践中发现,待验证DDR控制器可被验证的功能严重受限于自行设计的PHY的功能。若自行设计的PHY仅支持DDR的突发长度(Burst Length,BL)为8字节的读写数据传输,则无法验证DDR的突发长度为4字节的功能场景;并且由于自行设计的PHY转接口模块没有实现接口信号的跨时钟域传输,因而由于信号速率不匹配,高速的待验证DDR控制器无法运行在时钟频率较低的FPGA原型验证系统上。可见,现有技术方案无法实现对DDR控制器进行完整的FPGA原型验证。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种控制器的FPGA原型验证方法、系统、介质及计算设备,能够对控制器进行完整的FPGA原型验证。
根据本发明实施例的一个方面,提供了一种控制器的FPGA原型验证方法,应用于控制器的FPGA原型验证系统,所述控制器的FPGA原型验证系统包括DFI-AXI协议总线桥和控制器IP核,所述方法包括:
通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号;其中,所述DFI-AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;
将所述AXI协议信号发送至所述控制器IP核;
通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号;
将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。
作为一种可选的实施方式,所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;
所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;
所述数据信号为所述写指令对应的写数据。
作为一种可选的实施方式,所述通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号,包括:
通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
将所述目标指令和所述逻辑地址确定为AXI协议信号。
作为一种可选的实施方式,若所述目标指令为读指令,所述将所述AXI协议信号发送至所述控制器IP核,包括:
获取与所述读指令匹配的AXI读地址端口;
将所述AXI协议信号中的逻辑地址通过所述AXI读地址端口发送至所述控制器IP核。
作为一种可选的实施方式,若所述目标指令为写指令,所述将所述AXI协议信号发送至所述控制器IP核,包括:
获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;
对所述DFI协议信号进行采样,得到待写数据;
将所述AXI协议信号中的逻辑地址通过所述AXI写地址端口发送至所述控制器IP核;
将所述待写数据通过所述AXI写数据端口发送至所述控制器IP核。
根据本发明实施例的另一方面,还提供了一种所述控制器的FPGA原型验证系统包括DFI-AXI协议总线桥和控制器IP核,其中:
所述DFI-AXI协议总线桥,用于对接收到的DFI协议信号进行转换,得到AXI协议信号;并将所述AXI协议信号发送至所述控制器IP核;其中,所述DFI-AXI协议总线桥模块基于FIFO对所述DFI协议信号进行写入和读取;
所述控制器IP核,用于将所述AXI协议信号进行转换,得到目标协议信号;并将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。
作为一种可选的实施方式,所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;
所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;
所述数据信号为所述写指令对应的写数据。
作为一种可选的实施方式,所述DFI-AXI协议总线桥包括初始化模块、DFI命令解码模块以及DFI地址解码模块,其中:
所述初始化模块,用于对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
所述DFI命令解码模块,用于对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
所述DFI地址解码模块,用于对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
其中,所述AXI协议信号包括所述目标指令和所述逻辑地址。
作为一种可选的实施方式,所述DFI-AXI协议总线桥还包括读事物传输模块和AXI_Master传输模块,其中:
所述读事物传输模块,用于若所述目标指令为读指令,基于FIFO对所述逻辑地址进行读取并存储;并获取与所述读指令匹配的AXI读地址端口;以及将所述逻辑地址通过所述AXI读地址端口发送至所述AXI_Master传输模块。
作为一种可选的实施方式,所述DFI-AXI协议总线桥还包括写事务传输模块,其中:
所述写事务传输模块,用于若所述目标指令为写指令,基于FIFO对所述逻辑地址进行读取并存储;并对所述DFI协议信号进行采样,得到待写数据;以及基于FIFO对所述待写数据进行存储;以及获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;以及将所述逻辑地址通过所述AXI写地址端口发送至所述AXI_Master传输模块;以及将所述待写数据通过所述AXI写数据端口发送至所述AXI_Master传输模块。
根据本发明实施例的又一方面,还提供了一种计算设备,所述计算设备包括:至少一个处理器、存储器和输入输出单元;其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行上述控制器的FPGA原型验证方法。
根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述控制器的FPGA原型验证方法。
在本发明实施例中,通过DFI-AXI协议总线桥实现了DFI协议信号到AXI协议信号之间的信号转换和传输,同时通过FIFO解决了DFI信号时钟域与AXI信号时钟域的信号跨时钟域传输问题,能够对控制器进行完整的FPGA原型验证。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例提供的一种可选的控制器的FPGA原型验证方法的流程示意图;
图2是根据本发明实施例提供的一种可选的控制器的FPGA原型验证系统的结构示意图;
图3是根据本发明实施例提供的一种DFI-AXI协议总线桥的结构示意图;
图4是根据本发明实施例提供的一种介质的结构示意图;
图5是根据本发明实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
下面参考图1,图1为本发明一实施例提供的控制器的FPGA原型验证方法的流程示意图。需要注意的是,本发明的实施方式可以应用于控制器的FPGA原型验证系统,所述控制器的FPGA原型验证系统包括DFI-AXI协议总线桥和控制器IP核。
图1所示的本发明一实施例提供的控制器的FPGA原型验证方法的流程,包括:
步骤S101,通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号。
本发明实施例中,所述DFI-AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;所述数据信号为所述写指令对应的写数据。
本实施例可用于FPGA原型验证系统验证DDR控制器的场景。此方法适用于FPGA原型验证平台,该FPGA原型验证系统中集成适配有DFI-AXI协议总线桥和FPGA内置提供的DDR控制器IP核,该方法使用软硬件结合的方式实现,并一般集成在FPGA原型验证系统中实现。
如图1所示,本发明实施例提供的控制器的FPGA原型验证方法涉及以下结构:待验证的DDR控制器、移植进FPGA的DFI-AXI协议总线桥、FPGA内部提供的DDR控制器IP核以及FPGA外挂的DDR内存颗粒。
其中,DFI-AXI协议总线桥用于接收待验证的DDR控制器以DFI协议发来的信号,并在协议总线桥内部对接收到的数据信号进行解码、缓存,最终转换为AXI协议信号的形式输出给FPGA内部提供的DDR控制器IP核。
其中,FPGA内部提供的DDR控制器IP核用于接收DFI-AXI协议总线桥发来的AXI协议信号,并在FPGA内部提供的DDR控制器IP核内部对接收到的信号进行解码、仲裁、缓存,最终转换为DDR协议信号并输出给FPGA外挂的DDR内存颗粒。
其中,FPGA外挂的DDR内存颗粒用于接收FPGA内部提供的DDR控制器IP核发来的DDR协议信号,并依照接收到的信号在DDR内存颗粒内部完成数据的读写操作。
作为一种可选的实施方式,步骤S101通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号的方式具体可以为:
通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
将所述目标指令和所述逻辑地址确定为AXI协议信号。
本发明实施例中,待验证的DDR控制器以DFI协议的形式发送控制信号、地址信号和数据信号给DFI-AXI协议总线桥,控制信号主要指DDR协议中定义的相关控制命令,如激活、读指令、写指令、自刷新指令、ZQ校准指令等;地址信号和数据信号分别指DDR读写命令对应的读写地址和读写数据。
本步骤中,DFI-AXI协议总线桥接收到DFI协议信号的控制信号、地址信号和数据信号,在总线桥内部对该类信号进行采样、解码、缓存,并最终将解码后得到的读写地址和读写数据以AXI协议的形式输出给FPGA内部提供的DDR控制器IP核。
具体的:DFI-AXI协议总线桥接收到待验证DDR控制器发来的控制信号如dfi_cs_n、dfi_act_n、dfi_ras_n、dfi_cas_n和dfi_we_n,根据上述五个控制信号的内容解码出相应的DDR指令如激活、读指令、写指令、自刷新指令、ZQ校准指令等;
并依据解码得到的DDR指令,将由待验证DDR控制器发来的地址信号dfi_address解码生成合法的DDR逻辑地址,逻辑地址的格式为{bank(内存颗粒的目标区域),bank_group(内存颗粒的目标区域组),行地址,列地址},并将生成的DDR逻辑地址缓存在相应的读写地址fifo中;
同时接收由待验证DDR控制器发来的读写数据信号如dfi_wrdata和dfi_rddata,并根据解码得到的DDR指令将读写数据分别缓存在相应的读写fifo中;
最后根据解码得到的DDR指令,将缓存的写地址信号由axi_awaddr端口输出,将缓存的写数据信号由axi_wdata端口输出,将缓存的读地址信号由axi_araddr端口输出,将读取到的读数据信号由axi_rdata端口输入。
DFI-AXI协议总线桥接收到读数据axi_rdata后,在内部将其通过串并转换从而产生dfi_rddata信号和dfi_rddata_valid信号并输出给DDR控制器,从而完成了待验证DDR控制器的读写操作。
步骤S102,将所述AXI协议信号发送至所述控制器IP核。
作为一种可选的实施方式,若所述目标指令为读指令,步骤S102将所述AXI协议信号发送至所述控制器IP核的方式具体可以为:
获取与所述读指令匹配的AXI读地址端口;
将所述AXI协议信号中的逻辑地址通过所述AXI读地址端口发送至所述控制器IP核。
可选的,若所述目标指令为写指令,步骤S102将所述AXI协议信号发送至所述控制器IP核的方式具体可以为:
获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;
对所述DFI协议信号进行采样,得到待写数据;
将所述AXI协议信号中的逻辑地址通过所述AXI写地址端口发送至所述控制器IP核;
将所述待写数据通过所述AXI写数据端口发送至所述控制器IP核。
本发明实施例中,FPGA内部提供的DDR控制器IP核包含一个AXI_Slave传输模块,用于接收DFI-AXI协议总线桥传来的AXI协议形式信号,并将AXI协议形式信号包含的控制信号、地址信号和数据信号解码,转换为DDR协议形式的信号输出给FPGA外挂的DDR内存颗粒。
本步骤中,由于调用了FPGA内部提供的DDR控制器IP核,因此DDR内存颗粒内相应的上电初始化、模式寄存器配置、自刷新、信号训练校准等操作均由FPGA内部提供的DDR控制器IP核完成。因此对待验证的DDR控制器只需要传输相关的读写指令、读写地址和读写数据。
步骤S103,通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号。
步骤S104,将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证。
本发明实施例中,所述控制器内存颗粒外挂于FPGA。DDR内存颗粒根据接收到的信号,执行对内部地址的数据写入操作和对内部地址的数据读取操作。并将读取到的数据以DDR协议形式反馈给FPGA内部提供的DDR控制器IP核。FPGA内部提供的DDR控制器IP核将读取的数据再转换为AXI协议形式反馈给DFI-AXI协议总线桥,最终读取的数据由DFI-AXI协议总线桥以DFI协议形式反馈给待验证的DDR控制器。成功实现了待验证DDR控制器读写操作在FPGA原型验证系统上的执行。
本发明能够通过DFI-AXI协议总线桥实现了DFI协议信号到AXI协议信号之间的信号转换和传输,同时通过FIFO解决了DFI信号时钟域与AXI信号时钟域的信号跨时钟域传输问题,能够对控制器进行完整的FPGA原型验证。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的一种控制器的FPGA原型验证系统进行说明,该系统包括DFI-AXI协议总线桥201和控制器IP核202,其中:
所述DFI-AXI协议总线桥201,用于对接收到的DFI协议信号进行转换,得到AXI协议信号;并将所述AXI协议信号发送至所述控制器IP核;其中,所述DFI-AXI协议总线桥模块基于FIFO对所述DFI协议信号进行写入和读取;
本发明实施例中,所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;所述数据信号为所述写指令对应的写数据。
所述控制器IP核202,用于将所述AXI协议信号进行转换,得到目标协议信号;并将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。
请一并参阅图3,图3是根据本发明实施例提供的一种DFI-AXI协议总线桥的结构示意图;所述DFI-AXI协议总线桥201包括初始化模块2011、DFI命令解码模块2012、DFI地址解码模块2013、读事物传输模块2014、写事物传输模块2015以及AXI_Master传输模块2016,其中:
所述初始化模块2011,用于对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
所述DFI命令解码模块2012,用于对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
所述DFI地址解码模块2013,用于对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
其中,所述AXI协议信号包括所述目标指令和所述逻辑地址。
所述读事物传输模块2014,用于若所述目标指令为读指令,基于FIFO对所述逻辑地址进行读取并存储;并获取与所述读指令匹配的AXI读地址端口;以及将所述逻辑地址通过所述AXI读地址端口发送至所述AXI_Master传输模块2016。
所述写事务传输模块2015,用于若所述目标指令为写指令,基于FIFO对所述逻辑地址进行读取并存储;并对所述DFI协议信号进行采样,得到待写数据;以及基于FIFO对所述待写数据进行存储;以及获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;以及将所述逻辑地址通过所述AXI写地址端口发送至所述AXI_Master传输模块2016;以及将所述待写数据通过所述AXI写数据端口发送至所述AXI_Master传输模块2016。
本发明实施例中,初始化模块2011,用于按照DFI协议时序要求模拟DDR的上电初始化过程,给待验证的DDR控制器提供初始化执行完毕的反馈。初始化模块2011接收待验证的DDR控制器发来dfi_init_start信号后,拉高并反馈dfi_init_complete信号给DDR控制器以告知DDR控制器此时上电初始化操作已完成。同时初始化模块2011接收DDR控制器发来的dfi_freq_ratio、dfi_init_freq信号用于配置时钟频率和频率比。此模块支持DFI协议规定的1:1、1:2、1:4三种时钟频率比的工作模式。
DFI命令解码模块2012,用于接收并采样DDR控制器发来的DFI命令信号,主要包括dfi_cs_n、dfi_act_n、dfi_ras_n、dfi_cas_n和dfi_we_n等控制信号。DFI命令解码模块2012采样上述DFI命令信号,并将其解码为相应的DDR协议指令,诸如模式寄存器配置命令、激活命令、读命令、写命令等。并将解码生成的指令传输给DFI地址解码模块2013。
DFI地址解码模块2013,用于接收并采样DDR控制器发来的DFI地址信号以及DFI命令解码模块2012发来的控制信号。DFI地址解码模块2013依据DFI命令解码模块2012传来的控制信号,将DDR控制器传来的DFI地址解码为相应的DDR逻辑地址信号。本模块,当收到DFI命令解码模块2012传来激活命令时,此时对应的dfi_address信号为行地址;当收到DFI命令解码模块2012传来读命令或写命令时,此时对应的dfi_address信号为列地址。如上所述,DFI地址解码模块2013最终缓存并产生合法的DDR逻辑地址格式,此格式为{bank,bank_group,行地址,列地址}。DFI地址解码模块2013最终输出控制信号和合法的地址信号给写事务传输模块和读事务传输模块。
写事务传输模块,用于接收DFI地址解码模块2013传来的待写入DDR的地址信号和DDR控制器传来的写数据信号dfi_wrdata以及写数据使能信号dfi_wrdata_en。写事务传输模块内部包含一个写传输状态机,写传输状态机用于将接收到的写地址信号和写数据信号按照DFI协议的时序要求缓存进相应的写地址fifo和写数据fifo中;写事务传输模块内部包含两个异步fifo,一个用于缓存由DFI地址解码模块2013传来的写地址信号,一个用于缓存由DDR控制器传来的写数据信号dfi_wrdata。这两个异步fifo将写事务模块划分为两个时钟域,一个为DFI接口的时钟域,一个为AXI接口的时钟域。其中缓存写数据的fifo具有串并转换的功能,将4个32bit的dfi_wrdata数据转换为1个128bit写数据写入fifo中,此功能是为了满足DFI写数据信号到AXI写数据信号的协议转换。写事务传输模块最终将缓存在两个fifo中的写地址信号和写数据信号传输给AXI_Master传输模块2016。
读事务传输模块,用于接收DFI地址解码模块2013传来的待读取DDR的地址信号和由FPGA提供的DDR控制器IP传来的读数据信号。读事务传输模块内部包含一个读传输状态机,读传输状态机用于将接收到的读地址信号按照DFI协议的时序要求缓存进相应的读地址fifo中;读事务传输模块内部包含两个异步fifo,一个用于缓存由DFI地址解码模块2013传来的读地址信号,一个用于缓存由FPGA提供的DDR控制器IP传来的读数据信号。这两个异步fifo将读事务模块划分为两个时钟域,一个为DFI接口的时钟域,一个为AXI接口的时钟域。读事务传输模块将缓存在fifo中的读地址信号传输给AXI_Master传输模块2016。读事务传输模块同时接收AXI_Master传输模块2016传来的读数据,通过串并转换生成4个32bit的dfi_rddata信号以及读数据有效信号dfi_rddata_valid,并将这两个DFI信号反馈给待验证的DDR控制器。
AXI_Master传输模块2016,用于接收写事务传输模块传来的写地址信号和写数据信号,并将上述信号转换为AXI协议信号传输给FPGA提供的DDR控制器IP;同时用于接收读事务传输模块传来的读地址信号并转换为AXI协议信号传输给FPGA提供的DDR控制器IP,并接收FPGA提供的DDR控制器IP传来的读数据,传输给读事务传输模块。AXI_Master传输模块2016依据AXI协议要求,共有五个通道,读写通道之间相互独立且数据与地址通道分立,数据单方向流动。每个通道都包含一个状态机用来处理并传输数据。
综上,本发明实施例提供的适用于FPGA原型验证系统验证DDR控制器的DFI-AXI协议总线桥装置,主要用于完成DFI协议信号到AXI协议信号之间的信号转换和传输,同时解决了DFI信号时钟域与AXI信号时钟域的信号跨时钟域传输问题。
在介绍了本发明示例性实施方式的方法和系统之后,接下来,参考图4对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图4,其示出的计算机可读存储介质为光盘40,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号;其中,所述DFI-AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;将所述AXI协议信号发送至所述控制器IP核;通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号;将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
在介绍了本发明示例性实施方式的方法、系统和介质之后,接下来,参考图5对本发明示例性实施方式的用于控制器的FPGA原型验证的计算设备。
图5示出了适于用来实现本发明实施方式的示例性计算设备50的框图,该计算设备50可以是计算机系统或服务器。图5显示的计算设备50仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元501,系统存储器502,连接不同系统组件(包括系统存储器502和处理单元501)的总线503。
计算设备50典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器502可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)5021和/或高速缓存存储器5022。计算设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM5023可以用于读写不可移动的、非易失性磁介质(图5中未显示,通常称为“硬盘驱动器”)。尽管未在图5中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线503相连。系统存储器502中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块5024的程序/实用工具5025,可以存储在例如系统存储器502中,且这样的程序模块5024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块5024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备50也可以与一个或多个外部设备504(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口505进行。并且,计算设备50还可以通过网络适配器506与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图5所示,网络适配器506通过总线503与计算设备50的其它模块(如处理单元501等)通信。应当明白,尽管图5中未示出,可以结合计算设备50使用其它硬件和/或软件模块。
处理单元501通过运行存储在系统存储器502中的程序,从而执行各种功能应用以及数据处理,例如,通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号;其中,所述DFI-AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;将所述AXI协议信号发送至所述控制器IP核;通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号;将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了控制器的FPGA原型验证系统的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

Claims (10)

1.一种控制器的FPGA原型验证方法,应用于控制器的FPGA原型验证系统,所述控制器的FPGA原型验证系统包括DFI-AXI协议总线桥和控制器IP核,所述方法包括:
通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号;其中,所述DFI-AXI协议总线桥基于FIFO对所述DFI协议信号进行写入和读取;
将所述AXI协议信号发送至所述控制器IP核;
通过所述控制器IP核将所述AXI协议信号进行转换,得到目标协议信号;
将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。
2.根据权利要求1所述的控制器的FPGA原型验证方法,所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;
所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;
所述数据信号为所述写指令对应的写数据。
3.根据权利要求2所述的控制器的FPGA原型验证方法,所述通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行转换,得到AXI协议信号,包括:
通过所述DFI-AXI协议总线桥对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
将所述目标指令和所述逻辑地址确定为AXI协议信号。
4.根据权利要求3所述的控制器的FPGA原型验证方法,若所述目标指令为读指令,将所述AXI协议信号发送至所述控制器IP核,包括:
获取与所述读指令匹配的AXI读地址端口;
将所述AXI协议信号中的逻辑地址通过所述AXI读地址端口发送至所述控制器IP核。
5.根据权利要求3所述的控制器的FPGA原型验证方法,若所述目标指令为写指令,所述将所述AXI协议信号发送至所述控制器IP核,包括:
获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;
对所述DFI协议信号进行采样,得到待写数据;
将所述AXI协议信号中的逻辑地址通过所述AXI写地址端口发送至所述控制器IP核;
将所述待写数据通过所述AXI写数据端口发送至所述控制器IP核。
6.一种控制器的FPGA原型验证系统,所述控制器的FPGA原型验证系统包括DFI-AXI协议总线桥和控制器IP核,其中:
所述DFI-AXI协议总线桥,用于对接收到的DFI协议信号进行转换,得到AXI协议信号;并将所述AXI协议信号发送至所述控制器IP核;其中,所述DFI-AXI协议总线桥模块基于FIFO对所述DFI协议信号进行写入和读取;
所述控制器IP核,用于将所述AXI协议信号进行转换,得到目标协议信号;并将所述目标协议信号发送至控制器内存颗粒,以实现对所述控制器的FPGA原型验证;其中,所述控制器内存颗粒外挂于FPGA。
7.根据权利要求6所述的控制器的FPGA原型验证系统,所述DFI协议信号包括控制信号、地址信号以及数据信号中的至少一种,其中:
所述控制信号为激活指令、读指令、写指令、自刷新指令或ZQ校准指令;
所述地址信号为所述读指令对应的读地址或所述写指令对应的写地址;
所述数据信号为所述写指令对应的写数据。
8.根据权利要求7所述的控制器的FPGA原型验证系统,所述DFI-AXI协议总线桥包括初始化模块、DFI命令解码模块以及DFI地址解码模块,其中:
所述初始化模块,用于对接收到的DFI协议信号进行采样,得到目标控制信号和目标地址信号;
所述DFI命令解码模块,用于对所述目标控制信号进行解码,得到所述目标控制信号对应的目标指令;
所述DFI地址解码模块,用于对所述目标地址信号进行解码,得到控制器的逻辑地址;其中,所述逻辑地址至少包括所述控制器内存颗粒的目标区域、目标区域组、行地址以及列地址;
其中,所述AXI协议信号包括所述目标指令和所述逻辑地址。
9.根据权利要求8所述的控制器的FPGA原型验证系统,所述DFI-AXI协议总线桥还包括读事物传输模块和AXI_Master传输模块,其中:
所述读事物传输模块,用于若所述目标指令为读指令,基于FIFO对所述逻辑地址进行读取并存储;并获取与所述读指令匹配的AXI读地址端口;以及将所述逻辑地址通过所述AXI读地址端口发送至所述AXI_Master传输模块。
10.根据权利要求9所述的控制器的FPGA原型验证系统,所述DFI-AXI协议总线桥还包括写事务传输模块,其中:
所述写事务传输模块,用于若所述目标指令为写指令,基于FIFO对所述逻辑地址进行读取并存储;并对所述DFI协议信号进行采样,得到待写数据;以及基于FIFO对所述待写数据进行存储;以及获取与所述写指令匹配的AXI写地址端口和AXI写数据端口;以及将所述逻辑地址通过所述AXI写地址端口发送至所述AXI_Master传输模块;以及将所述待写数据通过所述AXI写数据端口发送至所述AXI_Master传输模块。
CN202310155926.7A 2023-02-23 2023-02-23 控制器的fpga原型验证方法、系统、介质及计算设备 Pending CN116185935A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310155926.7A CN116185935A (zh) 2023-02-23 2023-02-23 控制器的fpga原型验证方法、系统、介质及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310155926.7A CN116185935A (zh) 2023-02-23 2023-02-23 控制器的fpga原型验证方法、系统、介质及计算设备

Publications (1)

Publication Number Publication Date
CN116185935A true CN116185935A (zh) 2023-05-30

Family

ID=86451995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310155926.7A Pending CN116185935A (zh) 2023-02-23 2023-02-23 控制器的fpga原型验证方法、系统、介质及计算设备

Country Status (1)

Country Link
CN (1) CN116185935A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775390A (zh) * 2023-06-19 2023-09-19 海光信息技术(成都)有限公司 接口协议转换验证系统及方法、电子设备及存储介质
CN117472668A (zh) * 2023-11-07 2024-01-30 合芯科技有限公司 存储控制器的测试方法及测试平台
CN117632621A (zh) * 2024-01-26 2024-03-01 深圳中微电科技有限公司 基于多fpga验证平台的可复用接口配置方法及装置
CN117709261A (zh) * 2023-10-30 2024-03-15 中科驭数(北京)科技有限公司 Fpga的电路设计方法、asic原型验证方法及设计装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775390A (zh) * 2023-06-19 2023-09-19 海光信息技术(成都)有限公司 接口协议转换验证系统及方法、电子设备及存储介质
CN116775390B (zh) * 2023-06-19 2024-05-31 海光信息技术(成都)有限公司 接口协议转换验证系统及方法、电子设备及存储介质
CN117709261A (zh) * 2023-10-30 2024-03-15 中科驭数(北京)科技有限公司 Fpga的电路设计方法、asic原型验证方法及设计装置
CN117472668A (zh) * 2023-11-07 2024-01-30 合芯科技有限公司 存储控制器的测试方法及测试平台
CN117472668B (zh) * 2023-11-07 2024-06-11 合芯科技有限公司 存储控制器的测试方法及测试平台
CN117632621A (zh) * 2024-01-26 2024-03-01 深圳中微电科技有限公司 基于多fpga验证平台的可复用接口配置方法及装置
CN117632621B (zh) * 2024-01-26 2024-05-07 深圳中微电科技有限公司 基于多fpga验证平台的可复用接口配置方法及装置

Similar Documents

Publication Publication Date Title
CN116185935A (zh) 控制器的fpga原型验证方法、系统、介质及计算设备
JP6685323B2 (ja) 拡張メモリにアクセスするための方法、デバイス及びシステム
JP4843821B2 (ja) 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法
CN102981776B (zh) 双倍数据率虚拟静态随机存取存储器及其控制器、存取与操作方法、写入与读取方法
US6707756B2 (en) System and method for translation of SDRAM and DDR signals
JP3841442B2 (ja) 複数のメモリアドレスを格納および処理するための方法およびシステム
KR20170139438A (ko) 디디알 호환 비동기 메모리 모듈 시스템 및 그것의 동작 방법
CN110083555A (zh) 具有独立接口路径的存储器设备的通用管芯实现
US6880056B2 (en) Memory array and method with simultaneous read/write capability
CN111656322A (zh) 针对联动存储器设备调度存储器请求
US20230195633A1 (en) Memory management device
CN108139992B (zh) 访问存储设备的方法和存储设备
JPH04213142A (ja) 高速メモリ・アクセス・システム
CN114461541A (zh) 芯片数据读取方法、写入方法、装置、设备以及存储介质
US10915467B2 (en) Scalable, parameterizable, and script-generatable buffer manager architecture
CN104598404B (zh) 计算设备扩展方法和装置、以及可扩展的计算系统
US7558933B2 (en) Synchronous dynamic random access memory interface and method
CN100377138C (zh) 地址译码的方法与系统
CN116483259A (zh) 一种数据处理方法以及相关装置
JP7420472B2 (ja) ページサイズ認識スケジューリング方法及び非一時的なコンピュータ読取可能記録媒体
JP2004127305A (ja) メモリ制御装置
CN112100098A (zh) Ddr控制系统及ddr存储系统
CN114579189B (zh) 单核以及多核访问寄存器数据的方法、处理器和系统
HimaBindhu et al. Implementation of High Speed DDR3 SDRAM Memory Controller by Using XILINX Software
Qituo et al. Optimized FPGA-based DDR2 SDRAM controller

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