CN114443170A - Fpga动态并行加卸载系统 - Google Patents
Fpga动态并行加卸载系统 Download PDFInfo
- Publication number
- CN114443170A CN114443170A CN202210110329.8A CN202210110329A CN114443170A CN 114443170 A CN114443170 A CN 114443170A CN 202210110329 A CN202210110329 A CN 202210110329A CN 114443170 A CN114443170 A CN 114443170A
- Authority
- CN
- China
- Prior art keywords
- fpga
- loaded
- srio
- data
- controller
- 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.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 78
- 230000005540 biological transmission Effects 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 9
- 239000003795 chemical substances by application Substances 0.000 claims description 48
- 238000011161 development Methods 0.000 claims description 2
- 230000018109 developmental process Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44594—Unloading
Abstract
本发明公开了一种FPGA动态并行加卸载系统,包含一个主控CPU,一个代理FPGA和若干个待加载FPGA;主控CPU内部的DMA通过主控SRIO控制器将各待加载FPGA的配置数据按设置好的单次传输字节轮流发送给代理FPGA;代理FPGA内部的代理SRIO控制器将接收到的各待加载FPGA的配置数据并写入各对应的待加载FPGA的虚拟链路上FIFO,再由各虚拟链路上SelectMap控制器按SelectMap时序从FIFO读取出待加载FPGA的配置数据发送给待加载FPGA。本发明可以在不降低加载带宽的前提下对多片FPGA并行加载,起到了对SRIO带宽分时复用的作用。
Description
技术领域
本发明涉及一种FPGA加载方法,特别涉及一种FPGA动态并行加卸载系统。
背景技术
FPGA加载方式可分为主动加载模式和被动加载模式。主动加载模式下FPGA一般需要外挂一片存储芯片(通常为SPI/BPI Flash)。在上电时刻,FPGA在出厂已经固化好的启动逻辑的控制下,将存储芯片中的配置数据加载到自身的SRAM中。该加载方式无需用户进行逻辑设计,使用较为简单。但该加载方式的弊端是:1、FPGA加载速度受到外部存储芯片的限制,通常加载时间较长,有时无法满足系统工作需要(如PCI-e上电枚举的100ms时间要求);2、加载多份配置项时,配置项的个数受到外部存储芯片容量的限制;3、外部存储器的数据传输时序需要和FPGA的加载控制逻辑兼容,因此限制了外部存储器的选择范围。
另一种模式属于被动加载模式。在被动加载模式下,FPGA需依赖一个外部处理器对FPGA的专用加载接口(如Xilinx FPGA的SelectMap接口)进行数据加载。在该模式下,1、FPGA无需再挂载外部存储器,因此不存在存储器兼容性问题;2、专用加载接口的加载带宽由FPGA自身工艺决定,通常要高于外部存储器的加载带宽,加载速度更快;3、当需要加载多份配置项数据时,配置项的个数不再有任何限制,外部处理器可以用任意方式、从任意远端节点获取配置项数据,对下游FPGA进行加载。
随着现代信号处理和人工智能算法的不断发展进步,单片FPGA的逻辑资源往往难以满足高度并行的算力需要。另一方面,信号处理算法及对应的算法参数往往是在某种特定场景下进行训练的结果,在不同的应用场景下难以具有普适性。因此在复杂信号处理系统中,往往采用多片FPGA的阵列形式进行数据处理,每片FPGA的配置数据也需要根据应用场景进行动态切换。
在此需求背景下,使用加载速度更快、灵活性更高的被动加载模式往往更加具有优势。由于系统架构中通常原本就有处理器存在,被动加载方式不需要再为每片FPGA独立分配一个外部存储器,而是由处理器的内存集中存储FPGA阵列的配置数据。采用被动加载模式时,还可以通过主控处理器比较精确地控制FPGA的配置先后顺序,更容易满足系统重配置时的工作时序要求。
以Xilinx FPGA为例,它具有名为SelectMap的专用并行数据加卸载接口,该接口支持8位、16位、32位双向数据传输,用于配置和回读FPGA配置信息,同时提供一路随路配置时钟,时钟频率最高可达100MHz。如果数据位宽选为32位,则每片FPGA的最大配置带宽可以达到2.98Gbps。
SRIO是一种基于Serdes高速串行接口的总线标准,常用于处理器间、背板连接的模块间的高速数据传输,具有拓扑结构灵活、打包效率高、支持纠错重传等优点,广泛应用于信号处理领域的数据传输过程中。支持SRIO的处理器一般都能支持每通道5Gbps的线速率,当使用4通道进行数据传输时,SRIO的传输理论带宽可达20Gbps。SRIO协议提供了地址映射的传输方式,可以结合DMA模块直接对目的节点的内存进行访问。使用SelectMap接口结合SRIO的高带宽性能,可以满足多片FPGA阵列快速、动态加卸载的需要。
发明内容
本发明的发明目的在于提供一种FPGA动态并行加卸载系统,通过SRIO的地址映射功能将待加载FPGA的SelectMap通路分为多条虚拟链路,通过Scatter-Gather DMA的描述符链表,依次向FIFO中快速加载部分数据,可以在不降低加载带宽的前提下对多片FPGA并行加载,起到了对SRIO带宽分时复用的作用,加快加载速度。
本发明的发明目的通过以下技术方案实现:
一种FPGA动态并行加卸载系统,包含一个主控CPU,一个代理FPGA和若干个待加载FPGA;
主控CPU内部的DMA在获取数据读取控制权后通过主控SRIO控制器将各待加载FPGA的配置数据按设置好的单次传输字节轮流发送给代理FPGA;
代理FPGA内部的代理SRIO控制器接收来自主控CPU的各待加载FPGA的配置数据并写入各对应的待加载FPGA的虚拟链路上FIFO,再由各虚拟链路上SelectMap控制器按SelectMap时序从FIFO读取出待加载FPGA的配置数据发送给待加载FPGA;
待加载FPGA通过SelectMap配置专用接口接收配置数据。
优选地,主控CPU使用Scatter-Gather DMA方式进行数据发送;
Scatter-Gather DMA启动后,从描述符链表的表头描述符中获取某片待加载FPGA的源地址后从内存中读出待加载FPGA的配置数据放入发送缓冲区,从描述符链表的表头描述符中获取单次传输字节长度填充主控SRIO控制器的数据大小字段,从描述符链表的表头描述符中获取目的地址,填充主控SRIO控制器的目的地址寄存器字段,并启动主控SRIO控制器的DIO数据传输;若主控SRIO控制器接收到代理FPGA的packet accepted控制包,则主控SRIO控制器删除发送缓冲区中的已发送的待加载FPGA配置数据,传输成功;若主控SRIO控制器接收到代理FPGA的packet not accepted控制包,则将待加载FPGA配置数据进行重传;在完成了一次SRIO的DIO数据传输后,链表指针指向下一个描述符并以上述方式进行第二片待加载FPGA的SRIO的DIO数据传输,直至所有待加载FPGA的累计传输字节长度都等于各自描述符中的总传输字节长度。
优选地,描述符链表是由主控CPU的处理器为每一个待加载FPGA配置一个描述符,并将所有描述符组成头尾相连组成,描述符中的单次传输字节长度设为代理FPGA中FIFO深度×字节宽度,描述符中的总传输字节长度设为待加载FPGA的配置项字节大小。
优选地,在代理FPGA中,每个待加载FPGA独占一条虚拟链路,代理SRIO控制器和若干条虚拟链路之间使用AXI总线,当代理SRIO控制器接收到主控CPU发送来的数据包后先对数据包进行校验,若校验成功则根据数据包中的目的地址将数据包中的待加载FPGA配置数据写入对应虚拟链路的FIFO中,并发送packet accepted控制包给主控CPU。
优选地,将FIFO的满信号取反接入SRIO控制器的AXI-Stream接口的ready信号上,当FIFO被SRIO控制器写满时实现对SRIO控制器的数据反压操作。
优选地,SelectMap控制器发现FIFO被读空时,通过拉高CS_B片选型号中断对待加载FPGA的加载。
优选地,当SRIO控制器接收数据无法正常写入FIFO时,会向主控CPU发送PacketNot Accepted数据包,从而反压SRIO链路进行流控。
优选地,SelectMap控制器的输出引脚包含了数据、控制和时钟引脚,在代理FPGA的内部时钟网络和时钟引脚间加入ODDR,使SelectMap控制器的输出时钟被向后相移了180度,与输出数据的中心对齐。
优选地,在SelectMap控制器中,当配置数据全部加载完成后,采集INIT_B引脚,如果INIT_B为低,则需要重新进行加载。
优选地,在SelectMap控制器完成加载后,需要继续提供若干个CCLK周期的配置时钟再拉高DONE信号;当该配置时钟结束后,进入超时等待条件,如果设定时间内没有采样到DONE信号拉高,则认为加载失败。
本发明的有益效果在于:
1、传统加载模式下,待加载FPGA只能通过主控CPU串行加载,或通过给代理FPGA增加DDR缓存,等主控CPU将全部配置项都缓存在代理FPGA的DDR中之后,再通过代理FPGA进行并行加载,加载速度较慢。而本方案的加载方式通过SRIO的地址映射功能将待加载FPGA的SelectMap通路分为多条虚拟链路,通过Scatter-Gather DMA的描述符链表,依次向FIFO中快速加载部分数据,可以在不降低加载带宽的前提下对多片FPGA并行加载,起到了对SRIO带宽分时复用的作用。
2、本方案设计的代理FPGA兼容SRIO和SelectMap的数据流控方式,其中SRIO侧通过SRIO协议的Packet Not Accepted数据包对SRIO前端进行流控,SelectMap侧通过CS_B接口进行流控,两者之间加入了位宽非对称的异步FIFO,通过FIFO的空满信号连接两端的流控逻辑。该FIFO同时还起到位宽转换和跨时钟域的作用。由于系统架构中待加载FPGA的数量不确定,SRIO的带宽和待加载FPGA的SelectMap带宽不可能完全匹配。本方案的流控功能,无论是SRIO带宽高于SelectMap带宽,还是SelectMap带宽高于SRIO带宽,均可以起到正确的流控作用。
3、抗干扰能力强。代理FPGA中通过ODDR原语(primitive),在设计中使用了源同步中心对齐的方式,降低了电路板走线不等长、温度变化等因素对数据采样的影响,使得加载功能可以稳定的工作在100MHz的时钟频率下。同时SRIO总线协议自带CRC校验等功能,FPGA的配置过程也自带CRC校验,主控CPU可通过NREAD读取加载状态。数据传输可靠性高,提高了系统的抗干扰能力。
4、代理FPGA的逻辑规模小。代理SRIO控制器使用了AXI-Stream接口,数据在经过FIFO后可以直连到SelectMap接口的数据线。因此在逻辑设计中,代理FPGA中的用户代码只需操纵PROGRAM_B,INIT_B,CS_B和RDWR_B四根信号线即可,代理FPGA使用小容量的FPGA即可胜任。
5、加载带宽高。代理FPGA的SRIO侧可以实现14.4Gb/s的有效负载传输,而SelectMap侧具有2.98Gbps的带宽,因此可同时进行4片FPGA的加载而不发生数据间断。待加载FPGA数量超过4片时,可以通过拉高CSI_B的方式暂停数据传输,从而最大限度的利用SRIO的带宽。因此该加载方式的极限带宽可达SRIO的全带宽,对于一般只有十几兆字节的FPGA配置数据而言,不但单片FPGA加载速度快,同时具备了快速、并行加载多片FPGA阵列的能力。
6、硬件设计的成本低。FPGA阵列的配置数据可以存储在主控的大容量存储器中,相比于为FPGA阵列中的每片FPGA外挂BPI-FLASH,灵活性更强,成本更低。代理FPGA无需再单独外挂DDR对加载数据进行集中缓存,而是通过SRIO包头中的地址信息切换各个加卸载通道,充分利用了代理FPGA中的缓存资源,同时降低了加载延时。
附图说明
图1为FPGA动态并行加卸载系统的结构框图。
图2为主控CPU功能框图。
图3为描述符链表。
图4为代理FPGA的功能框图。
图5为SelectMap时序图。
图6为ODDR原理框图。
图7为ODDR时序图。
图8为SelectMap控制器的控制流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
参见图1所示,本实施例所示的一种FPGA动态并行加卸载系统,包含一个主控CPU,一个代理FPGA和若干个待加载FPGA。
主控CPU用于读取各待加载FPGA的配置数据,由其内部的Scatter Gather DMA在获取数据读取控制权后通过主控SRIO控制器将各待加载FPGA的配置数据按设置好的单次传输字节轮流发送给代理FPGA。
主控CPU与代理FPGA之间通过4x,5Gbps的SRIO进行数据传输。
代理FPGA使用Xilinx7系列,其内部采用代理SRIO控制器接收来自主控CPU的各待加载FPGA的配置数据并写入各对应的待加载FPGA的虚拟链路上FIFO,再由虚拟链路上SelectMap控制器按SelectMap时序从FIFO读取出待加载FPGA的配置数据发送给下游待加载FPGA。
待加载FPGA(1~n)为待加载FPGA阵列,通过SelectMap配置专用接口接收配置数据。
下面对本实施例中的细节进行详细说明。
如图2所示的主控CPU的功能框图,在本实施例中由DMA控制各待加载FPGA的配置数据在SRIO上发送。作为举例说明,主控CPU使用Scatter-GatherDMA方式进行数据发送。
Scatter-Gather DMA在开始启动前,处理器需要为每一个下游待加载FPGA配置一个描述符,并将所有描述符组成头尾相连的描述符链表,如图3所示:
每个描述符包含一组寄存器,寄存器组功能定义如表1所示:
表1描述符寄存器组功能定义
其中,单次传输字节长度设为代理FPGA中FIFO深度×字节宽度,总传输字节长度设为待加载FPGA的配置项字节大小。
Scatter-Gather DMA启动后,从描述符链表的表头描述符中获取某片待加载FPGA的源地址后从内存中读出待加载FPGA的配置数据放入发送缓冲区,从描述符链表的表头描述符中获取单次传输字节长度填充主控SRIO控制器的数据大小字段,从描述符链表的表头描述符中获取目的地址,填充主控SRIO控制器的目的地址寄存器字段,并启动主控SRIO控制器的DIO数据传输。若主控SRIO控制器接收到代理FPGA的packet accepted控制包,则主控SRIO控制器删除发送缓冲区中的已发送的待加载FPGA配置数据,传输成功。若主控SRIO控制器接收到代理FPGA的packet not accepted控制包,则将待加载FPGA配置数据进行重传。在完成了一次SRIO的DIO数据传输后,链表指针指向下一个描述符并以上述方式进行第二片待加载FPGA的SRIO的DIO数据传输,直至所有待加载FPGA的累计传输字节长度都等于各自描述符中的总传输字节长度。
使用Scatter-Gather DMA的优势在于,可以将一个完整的配置文件切成小块,以分段方式对各待加载FPGA轮流加载,由于SRIO带宽高于下游FPGA的SelectMap接口,对于下游FPGA而言起到了并行加载的作用。只有当所有下游FPGA都加载完成后,才产生一次传输完成中断,传输过程中完全不需要CPU参与,这样可以减少传统DMA传输完成中断导致的处理器上下文切换,不影响主控CPU的正常工作时序。同时也节省了因为重新配置DMA而额外产生的加载时间,提高了加载效率。对于代理FPGA而言,每次仅通过SRIO加载各待加载FPGA部分配置数据,通过轮流加载不同待加载FPGA部分配置数据,可以最大程度的利用SRIO的高带宽特性,并在SelectMap端(慢速端)起到并行加载的效果。
如图4所示的代理FPGA的功能框图。由于主控CPU的SRIO的带宽比代理FPGA中的SelectMap接口带宽要高出数倍,为了充分利用SRIO的高带宽特性,代理FPGA采用并行方式对待加载的FPGA进行加载。
在代理FPGA中,包含代理SRIO控制器和若干条虚拟链路,每个下游待加载FPGA独占一条虚拟链路,代理SRIO控制器和若干条虚拟链路之间使用AXI总线,下游待加载FPGA可看做是代理FPGA内部AXI总线上挂载的一个外设,每条虚拟链路包含FIFO和SelectMap控制器,各FIFO使用位宽非对称的异步对接收到的对应的待加载FPGA配置数据进行缓存,同时还起到位宽转换和跨时钟域处理的作用。当代理SRIO控制器接收到主控CPU发送来的数据包后先对数据包进行校验,若校验成功则根据数据包中的目的地址将数据包中的待加载FPGA配置数据写入对应虚拟链路的FIFO中,并发送packet accepted控制包给主控CPU。SelectMap控制器从FIFO中读出待加载FPGA部分配置数据进行输出。
根据Xilinx对SelectMap功能的描述,当SelectMap控制器发现FIFO被读空时,可通过拉高CS_B片选型号中断对下游FPGA的加载。而当FIFO被SRIO控制器写满时,FIFO的满信号取反接入SRIO控制器的AXI-Stream接口的ready信号上,实现对SRIO控制器的数据反压操作。当SRIO控制器接收数据无法正常写入下游FIFO时,会向链路对端主控CPU发送Packet Not Accepted数据包,从而反压SRIO链路进行流控,
如图5所示,SelectMap控制器的输出引脚包含了数据、控制和时钟引脚,实际应用中,使用不同的连接器对信号的衰减影响不一致,印制板随着不同的温度、工艺和电压变化,板级布线延时也会发生细微变化,这些因素都会导致下游FPGA器件在上游器件发出的时钟锁存沿上,无法稳定锁存数据,存在一定的设计风险。因此在代理FPGA的内部时钟网络和输出时钟引脚CCLK间加入ODDR,增加时序余量。ODDR原理如6所示。
加入ODDR后,electMap控制器的输出时钟被向后相移了180度,与输出数据的中心对齐,构成源同步中心对齐时序模式,如图7所示。
代理FPGA中SelectMap控制器的控制流程如图8所示,SelectMap控制器的控制流程中还加入了两项错误判断机制:
(1)当配置数据全部传输完成后,采集INIT_B引脚,如果INIT_B为低,表示加载过程发生了错误,需要重新进行加载。
(2)加载完成后,DONE信号不会立即拉高,需要继续提供约10个CCLK周期的配置时钟。当该时钟结束后,进入超时等待条件,如果1ms内没有采样到DONE信号拉高,则认为加载失败。
错误状态可以由主控CPU通过NREAD数据包进行查询。
综上所述,FPGA动态并行加卸载系统的整体流程为:
(1)主控CPU通过NWRITE轮流发送各待加载FPGA的部分配置数据,代理FPGA的代理SRIO控制器在判断包头中的地址后去除包头,如果对应虚拟链路的FIFO未满,只留下有效负载送给FIFO。可以将FIFO的满标志取反后直连到代理SRIO控制器的AXI-Stream接口的ready信号上,如果FIFO已满,可以通过AXI-Stream接口反压前端SRIO链路,根据SRIO协议规范,SRIO总线会进行流控,从而保证数据不丢失。
(2)SelectMap控制器与待加载FPGA完成握手后,如果对应虚拟链路上的FIFO非空,则将数据在加载时钟的上升沿取出,取出的数据连接到SelectMap的数据管脚。将FIFO的空标志直接接到SelectMap的CSI_B引脚上,根据SelectMap时序,可以根据FIFO空信号暂停加载数据的传输。
(3)加载时钟通过ODDR进行180度反相后,连接到SelectMap接口的CCLK管脚,产生源同步中心对齐方式的随路时钟,保证随路时钟的上升沿始终与数据中心对齐。
(4)数据加载成功后,待加载FPGA的DONE管脚拉高,代理FPGA的SRIO控制器检测到DONE信号拉高后,并通过DOOR BELL告知主控CPU该通道加载完成,DOORBELL的信息字段中填充待加载FPGA编号。
在本实施例中,待加载的FPGA阵列为4片型号为ultrascale系列xcku060,每片配置项大小为24124908字节(约23MB),随路配置时钟CCLK使用100MHz。在代理FPGA中加入定时器IP,测得4片FPGA阵列全部加载完成的时间为80.3ms。
Claims (10)
1.一种FPGA动态并行加卸载系统,包含一个主控CPU,一个代理FPGA和若干个待加载FPGA,其特征在于:
主控CPU内部的DMA在获取数据读取控制权后通过主控SRIO控制器将各待加载FPGA的配置数据按设置好的单次传输字节轮流发送给代理FPGA;
代理FPGA内部的代理SRIO控制器接收来自主控CPU的各待加载FPGA的配置数据并写入各对应的待加载FPGA的虚拟链路上FIFO,再由各虚拟链路上SelectMap控制器按SelectMap时序从FIFO读取出待加载FPGA的配置数据发送给待加载FPGA;
待加载FPGA通过SelectMap配置专用接口接收配置数据。
2.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于主控CPU使用Scatter-Gather DMA方式进行数据发送;
Scatter-Gather DMA启动后,从描述符链表的表头描述符中获取某片待加载FPGA的源地址后从内存中读出待加载FPGA的配置数据放入发送缓冲区,从描述符链表的表头描述符中获取单次传输字节长度填充主控SRIO控制器的数据大小字段,从描述符链表的表头描述符中获取目的地址,填充主控SRIO控制器的目的地址寄存器字段,并启动主控SRIO控制器的DIO数据传输;若主控SRIO控制器接收到代理FPGA的packet accepted控制包,则主控SRIO控制器删除发送缓冲区中的已发送的待加载FPGA配置数据,传输成功;若主控SRIO控制器接收到代理FPGA的packet not accepted控制包,则将待加载FPGA配置数据进行重传;在完成了一次SRIO的DIO数据传输后,链表指针指向下一个描述符并以上述方式进行第二片待加载FPGA的SRIO的DIO数据传输,直至所有待加载FPGA的累计传输字节长度都等于各自描述符中的总传输字节长度。
3.根据权利要求2所述的一种FPGA动态并行加卸载系统,其特征在于描述符链表是由主控CPU的处理器为每一个待加载FPGA配置一个描述符,并将所有描述符组成头尾相连组成,描述符中的单次传输字节长度设为代理FPGA中FIFO深度×字节宽度,描述符中的总传输字节长度设为待加载FPGA的配置项字节大小。
4.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于在代理FPGA中,每个待加载FPGA独占一条虚拟链路,代理SRIO控制器和若干条虚拟链路之间使用AXI总线,当代理SRIO控制器接收到主控CPU发送来的数据包后先对数据包进行校验,若校验成功则根据数据包中的目的地址将数据包中的待加载FPGA配置数据写入对应虚拟链路的FIFO中,并发送packet accepted控制包给主控CPU。
5.根据权利要求4所述的一种FPGA动态并行加卸载系统,其特征在于将FIFO的满信号取反接入SRIO控制器的AXI-Stream接口的ready信号上,当FIFO被SRIO控制器写满时实现对SRIO控制器的数据反压操作。
6.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于SelectMap控制器发现FIFO被读空时,通过拉高CS_B片选型号中断对待加载FPGA的加载。
7.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于当SRIO控制器接收数据无法正常写入FIFO时,会向主控CPU发送Packet Not Accepted数据包,从而反压SRIO链路进行流控。
8.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于SelectMap控制器的输出引脚包含了数据、控制和时钟引脚,在代理FPGA的内部时钟网络和时钟引脚间加入ODDR,使SelectMap控制器的输出时钟被向后相移了180度,与输出数据的中心对齐。
9.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于在SelectMap控制器中,当配置数据全部加载完成后,采集INIT_B引脚,如果INIT_B为低,则需要重新进行加载。
10.根据权利要求1所述的一种FPGA动态并行加卸载系统,其特征在于在SelectMap控制器完成加载后,需要继续提供若干个CCLK周期的配置时钟再拉高DONE信号;当该配置时钟结束后,进入超时等待条件,如果设定时间内没有采样到DONE信号拉高,则认为加载失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210110329.8A CN114443170B (zh) | 2022-01-29 | 2022-01-29 | Fpga动态并行加卸载系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210110329.8A CN114443170B (zh) | 2022-01-29 | 2022-01-29 | Fpga动态并行加卸载系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443170A true CN114443170A (zh) | 2022-05-06 |
CN114443170B CN114443170B (zh) | 2023-10-24 |
Family
ID=81372314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210110329.8A Active CN114443170B (zh) | 2022-01-29 | 2022-01-29 | Fpga动态并行加卸载系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443170B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826503A (zh) * | 2022-06-27 | 2022-07-29 | 杭州加速科技有限公司 | Fpga内并行总线数据采样窗口的校准方法、装置 |
CN115167885A (zh) * | 2022-08-03 | 2022-10-11 | 江苏新质信息科技有限公司 | 一种多fpga系统的上电后程序加载方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969378A (zh) * | 2010-10-26 | 2011-02-09 | 北京理工大学 | 基于交换机的可扩展dspeed-dsp_q6474信号处理板 |
CN109547367A (zh) * | 2018-11-09 | 2019-03-29 | 中国航空无线电电子研究所 | 基于sca的软件无线电平台 |
CN110362512A (zh) * | 2019-07-18 | 2019-10-22 | 成都谐盈科技有限公司 | 一种面向sca和sdr的快速系统重构方法 |
CN111752643A (zh) * | 2020-07-01 | 2020-10-09 | 成都傅立叶电子科技有限公司 | 通用fpga阵列加载更新维护系统及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
WO2021164170A1 (zh) * | 2020-02-21 | 2021-08-26 | 山东超越数控电子股份有限公司 | 多路高速协议接口动态可重构系统及实现方法 |
CN114398304A (zh) * | 2022-03-01 | 2022-04-26 | 山西银河电子设备厂 | 一种解决srio接口阻塞的方法 |
-
2022
- 2022-01-29 CN CN202210110329.8A patent/CN114443170B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101969378A (zh) * | 2010-10-26 | 2011-02-09 | 北京理工大学 | 基于交换机的可扩展dspeed-dsp_q6474信号处理板 |
CN109547367A (zh) * | 2018-11-09 | 2019-03-29 | 中国航空无线电电子研究所 | 基于sca的软件无线电平台 |
CN110362512A (zh) * | 2019-07-18 | 2019-10-22 | 成都谐盈科技有限公司 | 一种面向sca和sdr的快速系统重构方法 |
WO2021164170A1 (zh) * | 2020-02-21 | 2021-08-26 | 山东超越数控电子股份有限公司 | 多路高速协议接口动态可重构系统及实现方法 |
CN111752643A (zh) * | 2020-07-01 | 2020-10-09 | 成都傅立叶电子科技有限公司 | 通用fpga阵列加载更新维护系统及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN114398304A (zh) * | 2022-03-01 | 2022-04-26 | 山西银河电子设备厂 | 一种解决srio接口阻塞的方法 |
Non-Patent Citations (1)
Title |
---|
孙发: ""基于RapidIO总线的远程可重构系统设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 135 - 207 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826503A (zh) * | 2022-06-27 | 2022-07-29 | 杭州加速科技有限公司 | Fpga内并行总线数据采样窗口的校准方法、装置 |
CN114826503B (zh) * | 2022-06-27 | 2022-09-27 | 杭州加速科技有限公司 | Fpga内并行总线数据采样窗口的校准方法、装置 |
CN115167885A (zh) * | 2022-08-03 | 2022-10-11 | 江苏新质信息科技有限公司 | 一种多fpga系统的上电后程序加载方法及系统 |
CN115167885B (zh) * | 2022-08-03 | 2024-02-06 | 江苏新质信息科技有限公司 | 一种多fpga系统的上电后程序加载方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114443170B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114443170B (zh) | Fpga动态并行加卸载系统 | |
CN109165178B (zh) | 一种基于RapidIO的弹上系统SoC芯片间高速通信方法 | |
US5448558A (en) | Method and apparatus for managing packet FIFOS | |
US6002882A (en) | Bidirectional communication port for digital signal processor | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
CN109828941A (zh) | Axi2wb总线桥实现方法、装置、设备及存储介质 | |
CN110297797B (zh) | 异构协议转换装置和方法 | |
CN110347635A (zh) | 一种基于多层总线的异构多核微处理器 | |
WO2023160192A1 (zh) | 一种用于总线的互联装置 | |
US20090070502A1 (en) | Data Modification Module | |
CN107908587A (zh) | 基于usb3.0的实时数据采集传输装置 | |
CN114297124B (zh) | 一种基于fpga的srio高速总线的通讯系统 | |
US7320048B2 (en) | Apparatus and method to switch a FIFO between strobe sources | |
CN107748726A (zh) | 一种gpu箱 | |
US20040153586A1 (en) | Apparatus and method to receive and decode incoming data and to handle repeated simultaneous small fragments | |
CN115622896A (zh) | 一种axi4高速总线及多队列仿真验证方法及仿真验证装置 | |
US8510485B2 (en) | Low power digital interface | |
CN114185830A (zh) | 基于mailbox的多处理器通信方法、设备、系统和存储介质 | |
CN103412849A (zh) | ARM处理器的NoC资源网络接口及其驱动方法 | |
CN218068843U (zh) | 一种axi主端口转apb从端口的桥接电路结构及一种soc系统 | |
CN207764789U (zh) | 用于地震仪主控站cpu与外设数据传输的桥接器 | |
CN113704151B (zh) | 基于TileLink总线的芯片互联架构及互联方法 | |
WO2021113778A1 (en) | Data transfers between a memory and a distributed compute array | |
CN210155653U (zh) | 基于zynq芯片实现m-lvds总线数据交互装置 | |
Lanxu et al. | Design of pcie-gigabit ethernet high-speed data interaction system based on 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 |