CN111563059B - 一种基于PCIe的多FPGA动态配置装置及方法 - Google Patents

一种基于PCIe的多FPGA动态配置装置及方法 Download PDF

Info

Publication number
CN111563059B
CN111563059B CN201911306026.8A CN201911306026A CN111563059B CN 111563059 B CN111563059 B CN 111563059B CN 201911306026 A CN201911306026 A CN 201911306026A CN 111563059 B CN111563059 B CN 111563059B
Authority
CN
China
Prior art keywords
configuration
control unit
program control
file data
configuration file
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
Application number
CN201911306026.8A
Other languages
English (en)
Other versions
CN111563059A (zh
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.)
709th Research Institute of CSIC
Original Assignee
709th Research Institute of CSIC
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 709th Research Institute of CSIC filed Critical 709th Research Institute of CSIC
Priority to CN201911306026.8A priority Critical patent/CN111563059B/zh
Publication of CN111563059A publication Critical patent/CN111563059A/zh
Application granted granted Critical
Publication of CN111563059B publication Critical patent/CN111563059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种基于PCIe的多FPGA动态配置装置及方法,所述装置包括上位机程序控制单元、与所述上位机程序控制单元连接的Zynq、分别与所述Zynq连接的DDR、QSPI Flash0、n组FPGA,以及分别与所述n组FPGA一一对应连接的n组四线串行外设接口闪存QSPI Flash;所述Zynq包括依次串联的PCIe接口单元、PS程序控制单元、配置数据接口单元,以及分别与所述配置数据接口单元连接的n组异步处理单元;其中PCIe接口单元、配置数据接口单元以及n组异步处理单元由Zynq的PL部分来实现,PS程序控制单元由Zynq的PS部分来实现。本发明所有配置过程均通过Zynq和FPGA内置的配置程序完成,逻辑资源占用少,配置过程灵活可控,具有很好的可扩展性,同时也不影响FPGA其他功能的实现。

Description

一种基于PCIe的多FPGA动态配置装置及方法
技术领域
本发明属于计算机应用领域,具体涉及一种基于PCIe的多FPGA动态配置装置与方法。
背景技术
随着计算机应用技术的快速发展,应用场景呈现多样化,应用需求也随之不断发生变化,经常需要根据现场实际需求对设备功能进行调整和升级。FPGA(FieldProgrammable Gate Array,现场可编程门阵列)芯片是一种基于硬件描述语言的可编程集成电路,可以使用专门的硬件描述语言对逻辑电路进行设计,根据现场实际需求实现不同的逻辑功能。目前FPGA芯片都是基于RAM(Random Access Memory,随机存取存储器)技术,在掉电后FPGA程序将会丢失,所以需要使用专门的存储芯片在掉电后仍然能够保存FPGA程序。但是存储芯片中的FPGA程序一旦固化以后,可实现的FPGA功能固定,无法灵活地进行调整和升级,因此需要根据现场实际需求对存储芯片进行重新配置。
通用的解决方法是使用专用编程电缆进行在线编程或使用专门的配置芯片设计配置电路。使用专用编程电缆进行在线编程对于复杂的现场环境来说通常不具备实施条件;使用专门的配置芯片设计配置电路则增加了硬件成本,额外占用了较多的硬件资源。因此本发明提供一种新的配置装置与方法,在不使用专用编程电缆和配置芯片的情况下能灵活的对多个FPGA进行动态配置。
发明内容
本发明提供一种基于PCIe的多FPGA动态配置装置与方法,通过PCIe接口接收多个FPGA的配置文件数据,通过调用Zynq和FPGA内置的配置程序实现多个FPGA的动态配置,解决了FPGA配置文件数据固化后,可实现的FPGA功能固定,无法灵活地根据现场实际需求进行FPGA功能升级的问题。
本发明第一方面,提出一种基于PCIe的多FPGA动态配置装置,所述装置包括上位机程序控制单元、与所述上位机程序控制单元连接的Zynq、分别与所述Zynq连接的n组FPGA、以及分别与所述n组FPGA连接的n组四线串行外设接口闪存QSPI Flash;所述Zynq包括依次串联的PCIe接口单元、PS程序控制单元、配置数据接口单元,以及分别与所述配置数据接口单元连接的n组异步处理单元;所述PCIe接口单元与所述上位机程序控制单元输出端连接,n组异步处理单元分别与n组FPGA上的配置单元一一对应连接,n组配置单元分别与n组四线串行外设接口闪存QSPI Flash一一对应连接;
所述PS程序控制单元分别与一个双倍速率同步动态随机存储器DDR和一个四线串行外设接口闪存QSPI Flash0连接;所述PS程序控制单元通过串口与上位机程序控制单元连接;所述PS程序控制单元通过扩展接口分别与所述n组配置单元和所述n组四线串行外设接口闪存QSPI Flash连接,其中1≤n≤15。
优选地,所述上位机程序控制单元用于存储Zynq和/或FPGA的配置文件数据,封装配置文件数据,将各配置文件数据、数据长度和缓存于DDR的基地址发送给Zynq,下达启动配置指令,接收串口信息指示Zynq和/或FPGA的配置进度以及是否配置成功;
所述Zynq用于接收、解析、校验、缓存配置文件数据,根据配置命令判定所需配置的Zynq和/或FPGA;依据QSPI Flash的配置时序配置QSPI Flash0;进行配置文件数据分发、配置文件数据异步处理;
所述n组FPGA用于分别通过其内置的配置单元接收PS程序控制单元发送的启动配置命令,启动配置程序,从异步处理单元接收配置文件数据,并配置到对应的QSPI Flash中。
优选地,所述Zynq中:
所述PCIe接口单元用于接收配置文件数据,解析数据并转发给PS程序控制单元;
所述PS程序控制单元用于接收解析后的配置文件数据,校验数据并缓存各配置文件数据到DDR中对应的写缓存地址,接收上位机程序控制单元配置命令启动配置程序,读取DDR中的配置文件数据用于配置QSPI Flash0或转发相应的配置文件数据给配置数据接口单元,向n组FPGA的配置单元发送启动配置命令和相关配置信息,并接收反馈的配置状态信息,向各组配置单元和与其连接的QSPI Flash发送复位信号;
所述配置数据接口单元用于接收PS程序控制单元发送的配置文件数据,识别各FPGA所对应的配置文件数据,接收异步处理单元发送的控制命令,按照控制命令将配置文件数据分发给异步处理单元;
所述异步处理单元用于接收配置数据接口单元和配置单元发送的命令,并按照命令从配置数据接口单元接收配置文件数据并转发给配置单元,实现配置文件数据在不同时钟域的异步处理。
本发明第二方面,提出一种使用本发明第一方面所述装置的一种基于PCIe的多FPGA动态配置方法,所述方法包括:
S1、上位机程序控制单元将Zynq和/或FPGA的配置文件数据和对应的配置信息经PCIe接口单元发送至PS程序控制单元;PS程序控制单元校验并缓存各配置文件数据到DDR中对应的写缓存地址;
S2、上位机程序控制单元向PS程序控制单元发送Zynq和/或FPGA配置命令,指定需要配置的Zynq和/或FPGA;PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和/或FPGA;
S3、若需配置Zynq,则先在DDR中设置1个读缓存,PS程序控制单元依据QSPI Flash配置时序配置Zynq所连接的QSPI Flash0;
S4、若需配置FPGA,则从DDR写缓存地址中读取对应的配置文件数据并发送给配置数据接口单元进行配置文件数据分发,通过异步处理单元进行配置文件数据异步处理,配置单元启动配置程序,配置程序依据QSPI Flash配置时序配置指定FPGA所连接的QSPIFlash。
优选地,所述步骤S1具体包括:
S11、发送配置文件数据:上位机程序控制单元将用于配置Zynq的配置文件数据bin0和用于配置n组FPGA的配置文件数据bin1,bin2,…,binn中的一个或多个分别添加各自的帧头帧尾识别码通过PCIe总线依次发送给PCIe接口单元;PCIe接口单元接收到配置文件数据后,解析数据并转发给PS程序控制单元;
S12、发送配置信息:上位机程序控制单元将对应的各配置文件数据的长度length_0、length_1…length_n和存储于DDR的基地址addr_0、addr_1…addr_n发送给PS程序控制单元,其中1≤n≤15;
S13、缓存配置文件数据:PS程序控制单元接收解析后的配置文件数据,依据帧头帧尾识别码识别出各配置文件数据,并根据各配置文件数据的长度校验其是否接收完成,去掉帧头帧尾识别码后将其缓存到DDR中对应的写缓存地址;
优选地,所述步骤S2具体包括:
S21、发送配置命令:收到数据缓存完毕命令后,上位机程序控制单元向PS程序控制单元发送Zynq和/或FPGA配置命令,指定需要配置的Zynq和/或FPGA;同时,PS程序控制单元的扩展接口向指定FPGA的配置单元发送启动配置命令和各配置文件数据长度,通知配置单元启动配置程序;
S22、判定配置命令:PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和FPGA,若需配置Zynq,即配置Zynq所连接的QSPI Flash0;若需配置FPGA,即配置指定FPGA所连接的QSPI Flash。
优选地,所述步骤S3中,所述配置Zynq所连接的QSPI Flash0的步骤包括:
S31、擦除QSPI Flash0中一个大小为length_0的扇区sector_0,并通过串口向上位机程序控制单元发送擦除过程进度信息;
S32、从DDR写缓存地址addr_0到(addr_0+length_0)中读取配置文件数据bin0,将其以页为单位依次全部写入扇区sector_0中,并通过串口向上位机程序控制单元发送写过程进度信息;
S33、从扇区sector_0中读取子步骤S32中写入的全部配置文件数据,存入读缓存中,并通过串口向上位机程序控制单元发送读过程进度信息;
S34、将写缓存和读缓存中的数据逐一进行对比,校验配置过程的正确性,并通过串口向上位机程序控制单元发送校验过程进度信息;校验结束后,PS程序控制单元通过串口向上位机程序控制单元发送校验结果;若校验不通过,则上位机程序控制单元向PS程序控制单元重新发送Zynq配置命令,转入子步骤S31;若校验通过,转入子步骤S35;
S35、PS程序控制单元向上位机程序控制单元发送Zynq配置完成命令,指示Zynq配置过程完成。
8.根据权利要求4所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S4具体包括
S41、配置文件数据分发:配置数据接口单元接收异步处理单元发送的控制命令,按照命令控制接收PS程序控制单元发送的配置文件数据;再依据DDR读地址的不同识别出各FPGA所对应的配置文件数据,将其分发给相应的异步处理单元;
S42、配置文件数据异步处理:异步处理单元接收配置文件数据并缓存,再按照配置单元发送的命令将其转发给FPGA中的配置单元,完成配置文件数据在不同时钟域的异步处理;
S43、配置QSPI Flash:FPGA中的配置单元接收扩展接口发送的启动配置命令和各配置文件数据长度length_i,设置一个256字节的先进先出存储器FIFO、一个初始值为0的计数器counter和一个初始值为0的地址寄存器addr_reg,启动配置程序;配置程序依据QSPI Flash配置时序从异步处理单元接收配置文件数据bini并配置到QSPI Flashi中。
优选地,所述步骤S43中,所述配置程序依据QSPI Flash配置时序从异步处理单元接收配置文件数据bini并配置到QSPI Flashi中的配置过程包括如下子步骤:
S431、擦除指定QSPI Flashi中的一个大小为length_i的扇区sector_i;
S432、从异步处理单元读取256字节配置文件数据并缓存在FIFO中,再将其写入扇区sector_i地址addr_reg中;
S433、从扇区sector_i地址addr_reg中读取子步骤S432中写入的256字节配置文件数据;
S434、将子步骤S433中读取的数据与子步骤S432中FIFO缓存的数据逐一进行对比,校验配置过程的正确性,若校验不通过,则转入子步骤S432;若校验通过,则转入子步骤S435;
S435、判定计数器counter是否小于length_i/256,若是,则向PS程序控制单元发送配置进度信息,PS程序控制单元通过串口向上位机程序控制单元转发配置进度信息,再将计数器加1,将地址寄存器addr_reg加256,并转入子步骤S432;若否,则向PS程序控制单元发送FPGA配置完成命令,PS程序控制单元通过串口向上位机程序控制单元转发FPGA配置完成命令,指示FPGA配置过程完成;将计数器和地址寄存器addr_reg置0。
优选地,所述方法还包括:
S5、上位机程序控制单元接收到Zynq和/或FPGA配置完成命令后,通过串口向PS程序控制单元发送复位命令;PS程序控制单元再向QSPI Flash0、n组FPGA及n组QSPI Flash发送复位命令,完成系统复位。
本发明的有益效果是:本发明提供一种基于PCIe的多FPGA动态配置装置与方法,不需要使用专用编程电缆进行现场配置或使用专门的配置芯片设计配置电路,通过PCIe接口接收Zynq和FPGA的配置文件数据,通过Zynq和FPGA内置的配置程序完成配置过程,配置程序逻辑资源占用少,配置过程灵活可控,具有很好的可扩展性。扩展时不需要新增额外的存储器件和配置芯片,仅使用一片DDR实现对配置文件数据的统一缓存,通过对Zynq的PL部分逻辑功能扩展实现配置文件数据的统一调度分发,通过FPGA内置配置程序实现配置过程。既节省了硬件成本,又不影响Zynq和FPGA其他功能的实现。本发明在计算机应用领域有着广泛的应用前景。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于PCIe的多FPGA动态配置装置结构示意图;
图2为本发明实施例提供的基于PCIe的多FPGA动态配置方法流程示意图;
图3为本发明实施例提供的基于PCIe的多FPGA动态配置方法流程框图;
图4为本发明实施例提供的QSPI Flash0配置流程框图;
图5为本发明实施例提供的QSPI Flashi配置流程框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明提出的一种基于PCIe的多FPGA动态配置装置结构示意图,所述装置包括上位机程序控制单元、与所述上位机程序控制单元连接的Zynq、分别与所述Zynq连接的n组FPGA(分别记为FPGA1,FPGA2,…,FPGAn)、以及分别与所述n组FPGA连接的n组四线串行外设接口闪存QSPI Flash(分别记为QSPI Flash1,QSPI Flash2,…,QSPI Flashn);所述Zynq包括依次串联的PCIe接口单元、PS程序控制单元、配置数据接口单元,以及分别与所述配置数据接口单元连接的n组异步处理单元;所述PCIe接口单元与所述上位机程序控制单元输出端连接,n组异步处理单元分别与n组FPGA上的配置单元一一对应连接,n组配置单元分别与n组QSPI Flash一一对应连接;
所述PS程序控制单元分别与一个双倍速率同步动态随机存储器DDR和一个四线串行外设接口闪存QSPI Flash0连接;所述PS程序控制单元通过串口与上位机程序控制单元连接;所述PS程序控制单元通过扩展接口分别与n组配置单元和n组四线串行外设接口闪存QSPI Flash连接,其中1≤n≤15。
进一步地,所述上位机程序控制单元用于存储Zynq和/或FPGA的配置文件数据,封装配置文件数据,将各配置文件数据、数据长度和缓存于DDR的基地址发送给Zynq,下达启动配置指令,接收串口信息指示Zynq和/或FPGA的配置进度以及是否配置成功;
所述Zynq用于接收、解析、校验、缓存配置文件数据,根据配置命令判定所需配置的Zynq和/或FPGA;依据QSPI Flash的配置时序配置QSPI Flash0;进行配置文件数据分发、配置文件数据异步处理;
所述n组FPGA用于分别通过其内置的配置单元接收PS程序控制单元发送的启动配置命令,启动配置程序,从异步处理单元接收配置文件数据,并配置到对应的QSPI Flash中。
进一步地,所述Zynq中:
所述PCIe接口单元用于接收配置文件数据,解析数据并转发给PS程序控制单元;
所述PS程序控制单元用于接收解析后的配置文件数据,校验数据并缓存各配置文件数据到DDR中对应的写缓存地址,接收上位机程序控制单元配置命令启动配置程序,读取DDR中的配置文件数据用于配置QSPI Flash0或转发相应的配置文件数据给配置数据接口单元,向n组FPGA的配置单元发送启动配置命令和相关配置信息,并接收反馈的配置状态信息,向各组配置单元和与其连接的QSPI Flash发送复位信号;
所述配置数据接口单元用于接收PS程序控制单元发送的配置文件数据,识别各FPGA所对应的配置文件数据,接收异步处理单元发送的控制命令,按照控制命令将配置文件数据分发给异步处理单元;
所述异步处理单元用于接收配置数据接口单元和配置单元发送的命令,并按照命令从配置数据接口单元接收配置文件数据并转发给配置单元,实现配置文件数据在不同时钟域的异步处理。
具体的,图1中,所述PCIe接口单元、配置数据接口单元以及异步处理单元n由Zynq的PL部分来实现,PS程序控制单元由Zynq的PS部分来实现。
请参阅图2,本发明基于图1所述装置,提出一种基于PCIe的多FPGA动态配置方法,所述方法包括:
S1、上位机程序控制单元将Zynq和/或FPGA的配置文件数据和对应的配置信息经PCIe接口单元发送至PS程序控制单元;PS程序控制单元校验并缓存各配置文件数据到DDR中对应的写缓存地址;
S2、上位机程序控制单元向PS程序控制单元发送Zynq和/或FPGA配置命令,指定需要配置的Zynq和/或FPGA;PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和/或FPGA;
S3、若需配置Zynq,则先在DDR中设置1个读缓存,PS程序控制单元依据QSPI Flash配置时序配置Zynq所连接的QSPI Flash0;
S4、若需配置FPGA,则从DDR写缓存地址中读取对应的配置文件数据并发送给配置数据接口单元进行配置文件数据分发,通过异步处理单元进行配置文件数据异步处理,配置单元启动配置程序,配置程序依据QSPI Flash配置时序配置指定FPGA所连接的QSPIFlash。
S5、上位机程序控制单元接收到Zynq和/或FPGA配置完成命令后,通过串口向PS程序控制单元发送复位命令;PS程序控制单元再向QSPI Flash0、n组FPGA及n组QSPI Flash发送复位命令,完成系统复位。
具体的,请参阅图3,本发明提出的一种基于PCIe的多FPGA动态配置方法包括以下步骤:
(1)发送配置文件数据:上位机程序控制单元将用于配置Zynq的配置文件数据bin0和用于配置n组FPGA的配置文件数据bin1,bin2,…,binn中的一个或多个分别添加各自的帧头帧尾识别码通过PCIe总线依次发送给PCIe接口单元;PCIe接口单元接收到配置文件数据后,解析数据并转发给PS程序控制单元;
(2)发送配置信息:上位机程序控制单元将对应的各配置文件数据的长度length_0、length_1…length_n和存储于DDR的基地址addr_0、addr_1…addr_n发送给PS程序控制单元,其中1≤n≤15;
(3)缓存配置文件数据:PS程序控制单元通过AXI接口接收解析后的配置文件数据,依据帧头帧尾识别码识别出bin0、bini(i=1,2,…,n)中的一个或多个,并根据各配置文件数据的长度校验其是否接收完成,再去掉帧头帧尾识别码后将其缓存到DDR中对应的写缓存地址。各配置文件数据的写缓存地址由其长度length_0、length_1…length_n和基地址addr_0、addr_1…addr_n来确定。待配置文件数据缓存完毕后,PS程序控制单元向上位机程序控制单元返回数据缓存完毕命令。
(4)发送配置命令:收到数据缓存完毕命令后,上位机程序控制单元向PS程序控制单元发送Zynq和FPGA配置命令,指定需要配置的FPGA;同时,PS程序控制单元的扩展接口向指定FPGA的配置单元发送启动配置命令和各配置文件数据长度length_i,通知配置单元启动配置程序;
(5)判定配置命令:PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和FPGA,若需配置Zynq,即配置Zynq所连接的QSPI Flash0,则先在DDR中设置1个读缓存,读缓存地址为addr_read,再转入步骤(6);若需配置FPGA,即配置指定FPGA所连接的QSPI Flash,记为QSPI Flashi(i=1,2,…,n),则从DDR写缓存地址addr_i到(addr_i+length_i)中读取配置文件数据bini,并通过AXI接口发送给配置数据接口单元,转入步骤(7)。
(6)配置QSPI Flash0:PS程序控制单元依据QSPI Flash配置时序配置QSPIFlash0,请参阅图4,配置QSPI Flash0具体包括如下子步骤:
(6.1)擦除QSPI Flash0中一个大小为length_0的扇区sector_0,并通过串口向上位机程序控制单元发送擦除过程进度信息;
(6.2)从DDR写缓存地址addr_0到(addr_0+length_0)中读取配置文件数据bin0,将其以页为单位依次全部写入扇区sector_0中,并通过串口向上位机程序控制单元发送写过程进度信息;
(6.3)从扇区sector_0中读取子步骤(6.2)中写入的全部配置文件数据,存入读缓存中,并通过串口向上位机程序控制单元发送读过程进度信息;
(6.4)将写缓存和读缓存中的数据逐一进行对比,校验配置过程的正确性,并通过串口向上位机程序控制单元发送校验过程进度信息。校验结束后,PS程序控制单元通过串口向上位机程序控制单元发送校验结果。若校验不通过,则上位机程序控制单元向PS程序控制单元重新发送Zynq配置命令,转入子步骤(6.1);若校验通过,转入子步骤(6.5);
(6.5)PS程序控制单元向上位机程序控制单元发送Zynq配置完成命令,指示Zynq配置过程完成。
(7)配置文件数据分发:配置数据接口单元接收异步处理单元发送的控制命令,按照命令控制接收PS程序控制单元由AXI接口发送的配置文件数据bini;再依据DDR读地址的不同识别出各FPGA所对应的配置文件数据,将其分发给相应的异步处理单元,在该过程中一次读写操作256个字节。
(8)配置文件数据异步处理:异步处理单元按照配置数据接口单元发送的命令接收配置文件数据bini并缓存,再按照配置单元发送的命令将其转发给FPGA中的配置单元,完成配置文件数据在不同时钟域的异步处理。
(9)配置QSPI Flashi:FPGA中的配置单元接收扩展接口发送的启动配置命令和各配置文件数据长度length_i,设置一个256字节的先进先出存储器FIFO、一个初始值为0的计数器counter和一个初始值为0的地址寄存器addr_reg,启动配置程序。配置程序依据QSPI Flash配置时序从异步处理单元接收配置文件数据bini并配置到QSPI Flashi中,请参阅图5,该配置过程包括如下子步骤:
(9.1)擦除QSPI Flashi中的一个大小为length_i的扇区sector_i;
(9.2)从对应的异步处理单元读取256字节配置文件数据并缓存在FIFO中,再将其写入扇区sector_i地址addr_reg中;
(9.3)从扇区sector_i地址addr_reg中读取子步骤(9.2)中写入的256字节配置文件数据;
(9.4)将子步骤(9.3)中读取的数据与子步骤(9.2)中FIFO缓存的数据逐一进行对比,校验配置过程的正确性,若校验不通过,则转入子步骤(9.2);若校验通过,则转入子步骤(9.5);
(9.5)判定计数器counter是否小于length_i/256,若是,则向PS程序控制单元发送配置进度信息,PS程序控制单元通过串口向上位机程序控制单元转发配置进度信息。再将计数器加1,将地址寄存器addr_reg加256,并转入子步骤(9.2);若否,则向PS程序控制单元发送FPGA配置完成命令,PS程序控制单元通过串口向上位机程序控制单元转发FPGA配置完成命令,指示FPGA配置过程完成。将计数器和地址寄存器addr_reg置0。
(10)复位系统:上位机程序控制单元接收到Zynq和/或FPGA配置完成命令后,通过串口向PS程序控制单元发送复位命令;PS程序控制单元再向QSPI Flash0、n组FPGA及n组QSPI Flash发送复位命令,完成系统复位。
本发明另一具体实施例,所述基于PCIe的多FPGA动态配置包括上位机程序控制单元、PCIe接口单元、PS程序控制单元、双倍速率同步动态随机存储器(DDR)、四线串行外设接口闪存0(QSPI Flash0)、配置数据接口单元、2个异步处理单元、2个FPGA的配置单元和2个QSPI Flash;其中PCIe接口单元、配置数据接口单元以及异步处理单元由Zynq的PL部分来实现,PS程序控制单元由Zynq的PS部分来实现。本实施例中,双倍速率同步动态随机存储器(DDR)选用美国Micron公司的芯片MT41J256M16HA-125;四线串行外设接口闪存(QSPIFlash)选用美国Micron公司的芯片MT25QU01GBBB8ESF-0SIT;Zynq芯片选用美国Xilinx公司的Zynq-7000系列芯片XC7Z045-2FFG900I;现场可编程门阵列(FPGA)选用美国Xilinx公司的Kintex-7系列FPGA芯片XC7K325T-2FFG900I。
上位机程序控制单元在用于配置Zynq的配置文件数据bin0最前端添加帧头识别标志、最后端添加帧尾识别标志,其中帧头识别标志为48位十六进制数据48'hA5A512340000,帧尾识别标志为48位十六进制数据48'hA5A556780000。
上位机程序控制单元在用于配置FPGA1的配置文件数据bin1最前端添加帧头识别标志、最后端添加帧尾识别标志,其中帧头识别标志为48位十六进制数据48'hA5A512340001,帧尾识别标志为48位十六进制数据48'hA5A556780001。
上位机程序控制单元在用于配置FPGA2的配置文件数据bin2最前端添加帧头识别标志、最后端添加帧尾识别标志,其中帧头识别标志为48位十六进制数据48'hA5A512340002,帧尾识别标志为48位十六进制数据48'hA5A556780002。
上位机程序控制单元将添加了帧头帧尾识别码的配置文件数据bin0、bin1和bin2通过PCIe总线依次发送给PCIe接口单元。PCIe接口单元调用IP核DMA/BridgeSubsystemfor PCI Express完成配置文件数据的接收和解析,再调用IP核AXIInterconnect实现将配置文件数据通过AXI接口转发给PS程序控制单元。
上位机程序控制单元将配置信息发送给PS程序控制单元。配置信息包括配置文件数据bin0的长度3MB和存储基地址0x00000000、配置文件数据bin1的长度4MB和存储基地址0x10000000以及配置文件数据bin2的长度4MB和存储基地址0x20000000。
PS程序控制单元接收到配置文件数据后,依据帧头帧尾识别码识别出bin0、bin1和bin2,并根据各配置文件数据的长度校验其是否接收完成,再去掉帧头帧尾识别码后将其缓存到DDR中对应的写缓存地址。bin0的写缓存地址为地址0x00000000到0x017FFFFF,bin1的写缓存地址为地址0x10000000到0x11FFFFFF,bin2的写缓存地址为地址0x20000000到0x21FFFFFF。待配置文件数据缓存完毕后,PS程序控制单元向上位机程序控制单元返回数据缓存完毕命令,指示配置文件数据缓存完毕。
上位机程序控制单元向PS程序控制单元发送配置命令,指定需要配置Zynq、FPGA1和FPGA2。同时,扩展接口向配置单元1发送启动配置命令和配置文件数据bin1的长度4MB,通知配置单元1启动配置程序;向配置单元2发送启动配置命令和配置文件数据bin2的长度4MB,通知配置单元2启动配置程序。
PS程序控制单元在收到配置命令后,根据配置命令判断需要对Zynq、FPGA1和FPGA2进行配置。
如图3所示,配置Zynq的QSPI Flash0时,在DDR中设置1个读缓存,读缓存地址为0x08000000、大小为3MB;擦除QSPI Flash0中一个起始地址为0x00000000、大小为3MB的扇区sector_0,并通过串口向上位机程序控制单元发送擦除过程进度信息;从DDR写缓存地址0x00000000到0x017FFFFF中读取配置文件数据bin0,将其以页为单位依次全部写入扇区sector_0中,并通过串口向上位机程序控制单元发送写过程进度信息;从扇区sector_0中读出刚才写入的全部配置文件数据,存入读缓存中,并通过串口向上位机程序控制单元发送读过程进度信息;将写缓存和读缓存中的数据逐一进行对比,校验配置过程的正确性,并通过串口向上位机程序控制单元发送校验过程进度信息;通过串口向上位机程序控制单元发送校验结果。若校验不通过,则上位机程序控制单元向PS程序控制单元重新发送Zynq配置命令,再次进入QSPI Flash0配置过程;若校验通过,则PS程序控制单元向上位机程序控制单元发送Zynq配置完成命令,指示Zynq配置过程完成。
配置数据接口单元按照异步处理单元1发送的控制命令,从DDR写缓存地址0x10000000到0x11FFFFFF中读取配置文件数据bin1,并发送给异步处理单元1。在该过程中一次读写操作256个字节。异步处理单元1缓存配置文件数据bin1,再按照配置单元1发送的命令将其转发给配置单元1,完成配置文件数据在不同时钟域的异步处理。
配置单元1在接收扩展接口发送的启动配置命令和bin1数据长度4MB后,设置一个256字节的先进先出存储器FIFO1、一个初始值为0的计数器counter1和一个初始值为0的地址寄存器addr_reg1,并启动配置程序。配置过程如图4所示:擦除QSPI Flash1中的一个扇区sector_1,扇区起始地址为0x0、大小为4MB;从异步处理单元1读取256字节配置文件数据并缓存在FIFO1中,再将其写入扇区sector_1地址0x0中;从扇区sector_1地址0x0中读出刚才写入的256字节配置文件数据,并将其与FIFO1中缓存的数据逐一进行对比并发送对比结果;判定计数器counter1是否小于16384,若是,则配置单元1向PS程序控制单元发送配置进度信息,PS程序控制单元通过串口向上位机程序控制单元转发配置进度信息,再将计数器counter1加1,将地址寄存器addr_reg1加256,然后继续进行配置文件数据的写入、读出和对比;若否,则配置单元1向PS程序控制单元发送FPGA1配置完成命令,PS程序控制单元通过串口向上位机程序控制单元转发FPGA1配置完成命令,指示FPGA1配置过程完成。将计数器counter1和地址寄存器addr_reg1置0。
配置数据接口单元按照异步处理单元2发送的控制命令,从DDR写缓存地址0x20000000到0x21FFFFFF中读取配置文件数据bin2,并发送给异步处理单元2。在该过程中一次读写操作256个字节。异步处理单元2缓存配置文件数据bin2,再按照配置单元2发送的命令将其转发给配置单元2,完成配置文件数据在不同时钟域的异步处理。
配置单元2在接收扩展接口发送的启动配置命令和bin2数据长度4MB后,设置一个256字节的先进先出存储器FIFO2、一个初始值为0的计数器counter2和一个初始值为0的地址寄存器addr_reg2,并启动配置程序。配置过程如图4所示:擦除QSPI Flash2中的一个扇区sector_2,扇区起始地址为0x0、大小为4MB;从异步处理单元2读取256字节配置文件数据并缓存在FIFO2中,再将其写入扇区sector_2地址0x0中;从扇区sector_2地址0x0中读出刚才写入的256字节配置文件数据,并将其与FIFO2中缓存的数据逐一进行对比并发送对比结果;判定计数器counter2是否小于16384,若是,则配置单元2向PS程序控制单元发送配置进度信息,PS程序控制单元通过串口向上位机程序控制单元转发配置进度信息,再将计数器counter2加1,将地址寄存器addr_reg2加256,然后继续进行配置文件数据的写入、读出和对比;若否,则配置单元2向PS程序控制单元发送FPGA2配置完成命令,PS程序控制单元通过串口向上位机程序控制单元转发FPGA2配置完成命令,指示FPGA2配置过程完成。将计数器counter2和地址寄存器addr_reg2置0。
上位机程序控制单元接收到Zynq、FPGA1和FPGA2配置完成命令后,通过串口向PS程序控制单元发送复位命令。PS程序控制单元再向QSPI Flash0、FPGA1、QSPI Flash1、FPGA2和QSPI Flash2发送复位命令,完成系统复位。至此本发明实施例的动态配置过程全部完成。
以上装置实施例与方法实施例是相对应的,装置实施例简略之处,参见方法实施例即可。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述,在此不再赘述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于PCIe的多FPGA动态配置装置,其特征在于,所述装置包括上位机程序控制单元、与所述上位机程序控制单元连接的Zynq、分别与所述Zynq连接的n组FPGA、以及分别与所述n组FPGA连接的n组四线串行外设接口闪存QSPI Flash;所述Zynq包括依次串联的PCIe接口单元、PS程序控制单元、配置数据接口单元,以及分别与所述配置数据接口单元连接的n组异步处理单元;所述PCIe接口单元与所述上位机程序控制单元输出端连接,n组异步处理单元分别与n组FPGA上的配置单元一一对应连接,n组配置单元分别与n组四线串行外设接口闪存QSPI Flash一一对应连接;
所述PS程序控制单元分别与一个双倍速率同步动态随机存储器DDR和一个四线串行外设接口闪存QSPI Flash0连接;所述PS程序控制单元通过串口与上位机程序控制单元连接;所述PS程序控制单元通过扩展接口分别与所述n组配置单元和所述n组四线串行外设接口闪存QSPI Flash连接,其中1≤n≤15。
2.根据权利要求1所述基于PCIe的多FPGA动态配置装置,其特征在于,
所述上位机程序控制单元用于存储Zynq和/或FPGA的配置文件数据,封装配置文件数据,将各配置文件数据、数据长度和缓存于DDR的基地址发送给Zynq,下达启动配置指令,接收串口信息指示Zynq和/或FPGA的配置进度以及是否配置成功;
所述Zynq用于接收、解析、校验、缓存配置文件数据,根据配置命令判定所需配置的Zynq和/或FPGA;依据QSPI Flash的配置时序配置QSPI Flash0;进行配置文件数据分发、配置文件数据异步处理;
所述n组FPGA用于分别通过其内置的配置单元接收PS程序控制单元发送的启动配置命令,启动配置程序,从异步处理单元接收配置文件数据,并配置到对应的QSPI Flash中。
3.根据权利要求2所述基于PCIe的多FPGA动态配置装置,其特征在于,所述Zynq中:
所述PCIe接口单元用于接收配置文件数据,解析数据并转发给PS程序控制单元;
所述PS程序控制单元用于接收解析后的配置文件数据,校验数据并缓存各配置文件数据到DDR中对应的写缓存地址;接收上位机程序控制单元配置命令启动配置程序,读取DDR中的配置文件数据用于配置QSPI Flash0或转发相应的配置文件数据给配置数据接口单元;向n组FPGA的配置单元发送启动配置命令和相关配置信息,并接收反馈的配置状态信息,向各组配置单元和与其连接的QSPI Flash发送复位信号;
所述配置数据接口单元用于接收PS程序控制单元发送的配置文件数据,识别各FPGA所对应的配置文件数据,接收异步处理单元发送的控制命令,按照所述控制命令将配置文件数据分发给异步处理单元;
所述异步处理单元用于接收配置数据接口单元和配置单元发送的命令,并按照命令从配置数据接口单元接收配置文件数据并转发给配置单元,实现配置文件数据在不同时钟域的异步处理。
4.使用权利要求1~3任一项所述装置的一种基于PCIe的多FPGA动态配置方法,其特征在于,所述方法包括:
S1、上位机程序控制单元将Zynq和/或FPGA的配置文件数据和对应的配置信息经PCIe接口单元发送至PS程序控制单元;PS程序控制单元校验并缓存各配置文件数据到DDR中对应的写缓存地址;
S2、上位机程序控制单元向PS程序控制单元发送Zynq和/或FPGA配置命令,指定需要配置的Zynq和/或FPGA;PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和/或FPGA;
S3、若需配置Zynq,则先在DDR中设置1个读缓存,PS程序控制单元依据QSPI Flash配置时序配置Zynq所连接的QSPI Flash0;
S4、若需配置FPGA,则从DDR写缓存地址中读取对应的配置文件数据并发送给配置数据接口单元进行配置文件数据分发,通过异步处理单元进行配置文件数据异步处理,配置单元启动配置程序,配置程序依据QSPIFlash配置时序配置指定FPGA所连接的QSPI Flash。
5.根据权利要求4所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S1具体包括:
S11、发送配置文件数据:上位机程序控制单元将用于配置Zynq的配置文件数据bin0和用于配置n组FPGA的配置文件数据bin1,bin2,…,binn中的一个或多个分别添加各自的帧头帧尾识别码通过PCIe总线依次发送给PCIe接口单元;PCIe接口单元接收到配置文件数据后,解析数据并转发给PS程序控制单元;
S12、发送配置信息:上位机程序控制单元将对应的各配置文件数据的长度length_0、length_1…length_n和存储于DDR的基地址addr_0、addr_1…addr_n发送给PS程序控制单元,其中1≤n≤15;
S13、缓存配置文件数据:PS程序控制单元接收解析后的配置文件数据,依据帧头帧尾识别码识别出各配置文件数据,并根据各配置文件数据的长度校验其是否接收完成,去掉帧头帧尾识别码后将其缓存到DDR中对应的写缓存地址。
6.根据权利要求4所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S2具体包括:
S21、发送配置命令:收到数据缓存完毕命令后,上位机程序控制单元向PS程序控制单元发送Zynq和/或FPGA配置命令,指定需要配置的Zynq和/或FPGA;同时,PS程序控制单元的扩展接口向指定FPGA的配置单元发送启动配置命令和各配置文件数据长度,通知配置单元启动配置程序;
S22、判定配置命令:PS程序控制单元在收到配置命令后,根据配置命令判定所需配置的Zynq和/或FPGA,若需配置Zynq,即配置Zynq所连接的QSPI Flash0;若需配置FPGA,即配置指定FPGA所连接的QSPI Flash。
7.根据权利要求4所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S3中,所述配置Zynq所连接的QSPI Flash0的步骤包括:
S31、擦除QSPI Flash0中一个大小为length_0的扇区sector_0,并通过串口向上位机程序控制单元发送擦除过程进度信息;
S32、从DDR写缓存地址addr_0到(addr_0+length_0)中读取配置文件数据bin0,将其以页为单位依次全部写入扇区sector_0中,并通过串口向上位机程序控制单元发送写过程进度信息;
S33、从扇区sector_0中读取子步骤S32中写入的全部配置文件数据,存入读缓存中,并通过串口向上位机程序控制单元发送读过程进度信息;
S34、将写缓存和读缓存中的数据逐一进行对比,校验配置过程的正确性,并通过串口向上位机程序控制单元发送校验过程进度信息;校验结束后,PS程序控制单元通过串口向上位机程序控制单元发送校验结果;若校验不通过,则上位机程序控制单元向PS程序控制单元重新发送Zynq配置命令,转入子步骤S31;若校验通过,转入子步骤S35;
S35、PS程序控制单元向上位机程序控制单元发送Zynq配置完成命令,指示Zynq配置过程完成。
8.根据权利要求4所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S4具体包括
S41、配置文件数据分发:配置数据接口单元接收异步处理单元发送的控制命令,按照命令控制接收PS程序控制单元发送的配置文件数据;再依据DDR读地址的不同识别出各FPGA所对应的配置文件数据,将其分发给相应的异步处理单元;
S42、配置文件数据异步处理:异步处理单元接收配置文件数据并缓存,再按照配置单元发送的命令将其转发给FPGA中的配置单元,完成配置文件数据在不同时钟域的异步处理;
S43、配置QSPI Flashi(i=1,2,…,n):FPGA中的配置单元接收扩展接口发送的启动配置命令和各配置文件数据长度length_i,设置一个256字节的先进先出存储器FIFO、一个初始值为0的计数器counter和一个初始值为0的地址寄存器addr_reg,启动配置程序;配置程序依据QSPI Flash配置时序从异步处理单元接收配置文件数据bini并配置到QSPI Flashi中。
9.根据权利要求8所述基于PCIe的多FPGA动态配置方法,其特征在于,所述步骤S43中,所述配置程序依据QSPI Flash配置时序从异步处理单元接收配置文件数据bini并配置到QSPI Flashi中的配置过程包括如下子步骤:
S431、擦除指定QSPI Flashi中的一个大小为length_i的扇区sector_i;
S432、从异步处理单元读取256字节配置文件数据并缓存在FIFO中,再将其写入扇区sector_i地址addr_reg中;
S433、从扇区sector_i地址addr_reg中读取子步骤S432中写入的256字节配置文件数据;
S434、将子步骤S433中读取的数据与子步骤S432中FIFO缓存的数据逐一进行对比,校验配置过程的正确性,若校验不通过,则转入子步骤S432;若校验通过,则转入子步骤S435;
S435、判定计数器counter是否小于length_i/256,若是,则向PS程序控制单元发送配置进度信息,PS程序控制单元通过串口向上位机程序控制单元转发配置进度信息,再将计数器加1,将地址寄存器addr_reg加256,并转入子步骤S432;若否,则向PS程序控制单元发送FPGA配置完成命令,PS程序控制单元通过串口向上位机程序控制单元转发FPGA配置完成命令,指示FPGA配置过程完成;将计数器和地址寄存器reg_addr置0。
10.根据权利要求9所述基于PCIe的多FPGA动态配置方法,其特征在于,所述方法还包括:
S5、上位机程序控制单元接收到Zynq和/或FPGA配置完成命令后,通过串口向PS程序控制单元发送复位命令;PS程序控制单元再向QSPI Flash0、n组FPGA及n组QSPI Flash发送复位命令,完成系统复位。
CN201911306026.8A 2019-12-18 2019-12-18 一种基于PCIe的多FPGA动态配置装置及方法 Active CN111563059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911306026.8A CN111563059B (zh) 2019-12-18 2019-12-18 一种基于PCIe的多FPGA动态配置装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911306026.8A CN111563059B (zh) 2019-12-18 2019-12-18 一种基于PCIe的多FPGA动态配置装置及方法

Publications (2)

Publication Number Publication Date
CN111563059A CN111563059A (zh) 2020-08-21
CN111563059B true CN111563059B (zh) 2022-05-24

Family

ID=72069863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911306026.8A Active CN111563059B (zh) 2019-12-18 2019-12-18 一种基于PCIe的多FPGA动态配置装置及方法

Country Status (1)

Country Link
CN (1) CN111563059B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214945B (zh) * 2020-10-13 2023-11-14 安徽芯纪元科技有限公司 一种axi总线隔离保护结构及其保护方法
CN113867836B (zh) * 2021-09-24 2024-06-11 哈尔滨工程大学 用于fpga的装置、程序动态加载方法及数据传输方法
CN114925010B (zh) * 2022-05-23 2024-05-10 中国电子科技集团公司第五十八研究所 一种Quad SPI转AXI接口的方法
CN115144637A (zh) * 2022-09-02 2022-10-04 苏州联讯仪器有限公司 一种伏安特性测量数据的显示方法及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951334A (zh) * 2015-05-22 2015-09-30 中国电子科技集团公司第十研究所 FPGA双片QSPI flash的程序加载方法
CN107918545A (zh) * 2017-12-13 2018-04-17 天津光电通信技术有限公司 一种基于zynq的远程升级系统及其实现方法
CN109710295A (zh) * 2018-11-23 2019-05-03 北京计算机技术及应用研究所 一种安全可靠地fpga远程升级方法
CN110427206A (zh) * 2019-07-18 2019-11-08 中国船舶重工集团公司第七0七研究所 一种基于zynq的算法动态更新方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130318276A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104951334A (zh) * 2015-05-22 2015-09-30 中国电子科技集团公司第十研究所 FPGA双片QSPI flash的程序加载方法
CN107918545A (zh) * 2017-12-13 2018-04-17 天津光电通信技术有限公司 一种基于zynq的远程升级系统及其实现方法
CN109710295A (zh) * 2018-11-23 2019-05-03 北京计算机技术及应用研究所 一种安全可靠地fpga远程升级方法
CN110427206A (zh) * 2019-07-18 2019-11-08 中国船舶重工集团公司第七0七研究所 一种基于zynq的算法动态更新方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SPI FLASH MEMORY CONFIGURATION IN ZYNQ FPGA USING MICROPROCESSOR;G.S.MONISHA等;《International Journal of Engineering Research》;20151231;全文 *

Also Published As

Publication number Publication date
CN111563059A (zh) 2020-08-21

Similar Documents

Publication Publication Date Title
CN111563059B (zh) 一种基于PCIe的多FPGA动态配置装置及方法
CN107977217B (zh) 在线加载xilinx-fpga多版本更新程序的方法
US20040054864A1 (en) Memory controller
CN114443529A (zh) 内存直接访问架构、系统、方法、电子设备和介质
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
CN113590528B (zh) 基于hp接口的多通道数据采集存储回放卡、系统及方法
CN112014726A (zh) Dsp芯片测试装置及方法
CN114297962A (zh) 一种自适应接口fpga软硬件协同仿真加速系统
CN113270137B (zh) 一种基于fpga嵌入式软核的ddr2测试方法
CN104238957A (zh) 串行外围接口控制器、串行外围接口快闪存储器及其存取方法和存取控制方法
CN111931442A (zh) Fpga内嵌flash控制器及电子装置
CN111190855A (zh) 一种fpga多重远程配置系统及方法
CN112988647A (zh) 一种TileLink总线到AXI4总线转换系统及方法
CN115981971A (zh) 一种服务器硬盘的点灯方法及服务器
US20090138673A1 (en) Internal memory mapped external memory interface
CN108108564B (zh) 一种提高系统启动速度的装置和方法
CN107861895B (zh) 基于分布式仲裁的可编程输入输出pio写合并装置和方法
CN115840592A (zh) Flash访问方法、控制器、系统及可读存储介质
CN106547716B (zh) 一种面向低管脚数的扩展总线配置系统及方法
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
CN112732176B (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
CN107870885A (zh) 通信系统、装置及方法
US7600068B2 (en) Programmable control interface device
CN114328342A (zh) 一种用于PCIe异构加速卡的新型程控配置方法
CN116187236B (zh) 一种fpga原型验证系统及方法

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