CN102566982A - 一种fpga两级流水线配置电路 - Google Patents

一种fpga两级流水线配置电路 Download PDF

Info

Publication number
CN102566982A
CN102566982A CN2012100058253A CN201210005825A CN102566982A CN 102566982 A CN102566982 A CN 102566982A CN 2012100058253 A CN2012100058253 A CN 2012100058253A CN 201210005825 A CN201210005825 A CN 201210005825A CN 102566982 A CN102566982 A CN 102566982A
Authority
CN
China
Prior art keywords
retaking
year
data
grade
configuration
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
Application number
CN2012100058253A
Other languages
English (en)
Other versions
CN102566982B (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN201210005825.3A priority Critical patent/CN102566982B/zh
Publication of CN102566982A publication Critical patent/CN102566982A/zh
Application granted granted Critical
Publication of CN102566982B publication Critical patent/CN102566982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

本发明属于FPGA器件技术领域,具体为一种FPGA两级流水线配置电路。该电路由两块FIFO作为配置接口与配置控制逻辑之间的缓冲,配置控制逻辑由配置寄存器组、全局配置控制状态机、位流解析、配置地址产生、帧ECC电路、CRC32电路等组成。下载数据通路由下载FIFO经由下载数据寄存器送达FPGA配置阵列,回读数据通路由FPGA配置阵列经由回读数据寄存器送达回读FIFO。该结构采用两级流水线对数据的下载和回读进行控制,而且数据通路里不存在与数据流动方向相反的反馈握手信号,每条流水线的第一级均以最快速率读取数据,这种结构能够极大地提高数据下载回读的速度和吞吐率。

Description

一种FPGA两级流水线配置电路
技术领域
本发明属于FPGA器件技术领域,具体为一种高速高吞吐率的FPGA流水线配置电路。
技术背景
FPGA(可编程逻辑门阵列)配置电路或者编程下载电路的功能是将配置位流下载到FPGA内部编程点。用户通过配置接口将配置位流按照一定的接口时序传输至配置电路,配置电路再将这些数据按照一定的方式写入内部编程点。因此配置电路的结构很大程度上决定了位流下载的速率。流水线型的配置结构将数据下载通路和数据回读通路设计成流水线形式,数据按照单个方向进行传输,而且相应的控制信号也是沿着单方向传输,流水线的每一级负责专门的功能。
FPGA配置电路包含多个寄存器,通常会把这些寄存器封装在一个寄存器组里,这些寄存器的功能主要完成配置选项设置,全局功能设置等,这些寄存器里面只有DNLD_DR(Download Data Register、下载数据寄存器,见图1)和RDBK_DR(Readback Data Register、回读数据寄存器,见图1)与配置数据下载和回读直接相关,如何实现数据的高速高吞吐率下载和回读,而且要与用户的工作时钟兼容成了本技术领域需要解决的一个难点,流水线可以提高数据传输速率,但是过多的反馈信号会降低流水线的效率,为了与用户的时钟频率兼容要求上游的数据量不能对下游造成拥塞。
流水线的FPGA配置电路遵循无反馈的控制信号单向传递方式,这要求在数据的源端需要对数据的流速进行控制,既要保证整个电路具有最大的数据传输速率,即上游部分要以最大速率读取数据,又要保证下游部分电路有能力处理上游部分传输过来的数据。
目前已有的结构并没用对配置数据通路做出严格要求,也没有对配置数据通路相应的控制信号进行规定,各个模块功能比较分散,没有流水线的架构理念。
而采用流水线的结构每一级流水线负责专门的功能,主要完成数据的单向传输以及在其通路内的控制信号的产生,只接收上游的控制信号,并且产生传往下游的控制信号,这种设计可以极大的提高数据传输的速率。
发明内容
本发明目的在于提供一种高速高吞吐率的FPGA配置电路。
本发明提供的FPGA配置电路,其核心是采用两条流水线数据通道分别对FPGA进行下载和回读,其结构见图1所示。所述FPGA配置电路包括:下载FIFO模块,回读FIFO模块,全局配置控制状态机,位流解析模块,配置地址及控制产生模块,全局操作寄存器(OPR,Operation Register),帧数据输入寄存器(DNLD_DR,Download Data Register),回读数据寄存器(RDBK_DR,Readback Data Register),地址寄存器(ADDR,Address Register),配置地址及控制产生模块包括:回读配置地址及控制产生模块和下载配置地址及控制产生模块,以及地址选择器(MUX)。此外,整个FPGA配置电路还包括循环冗余校验(CRC,Cyclic Redundancy Check)模块和帧错误检查和纠正(ECC,Error Correcting Code)模块。其中:
下载数据通道(流水线1),第一级由下载FIFO模块传输至帧数据输入寄存器(DNLD_DR),位流解析模块负责下载FIFO的读访问以及DNLD_DR_en(Download Data Register enable、下载数据寄存器使能,见图2)信号的产生。位流解析模块主要的功能包括访问下载FIFO内的数据,从读取的数据中解析数据头,对操作码,寄存器地址,下载数据长度等进行译码 ,并从解析出的数据头获取对下载数据流的实时控制;位流解析模块以最快的速率读取下载FIFO,保证了整个配置电路的高速率传输,同时对下载数据头进行解析以产生相应寄存器的控制使能信息。第二级由帧数据输入寄存器(DNLD_DR)传输至FPGA阵列,下载配置地址及控制产生模块主要功能是根据DNLD_DR_en(Download Data Register enable、下载数据寄存器使能,见附图2)信号及地址寄存器(ADDR)的值进行下载配置地址的自动生成,把配置数据所对应的帧地址传输给FPGA阵列,FPGA 阵列对配置地址产生模块生成的帧地址进行译码,以此来选中相应的帧进行数据的下载。下载配置地址及控制产生模块通过检测DNLD_DR_en信号来更新内部地址,因为DNLD_DR_en信号的长度代表了下载数据的有效个数,下载配置地址及控制产生模块更新地址的方式按照FPGA存储阵列的排列规律来执行,它除了产生配置地址外,还产生数据加载和地址有效等控制信号。
回读数据通道(流水线2),控制信号由回读配置地址产生及控制模块传输至位流解析模块,第一级由FPGA 阵列传输至回读数据寄存器(RDBK_DR),回读配置地址及控制产生模块负责对FPGA 阵列的读访问及流速控制,生成回读所需要的帧地址以及回读时序以使数据从FPGA 阵列的回读数据端口传输至RDBK_DR;并通过记录有效回读数据个数来更新回读地址,其更新的方法和下载配置地址更新的方法是一致的,其产生的RDBK_DR_en(Readback Data Register enable、回读数据寄存器使能,见图2)信号传输给位流解析模块,标志着一个有效数据已经传输至回读数据寄存器(RDBK_DR)。第二级由回读数据寄存器(RDBK_DR)传输至回读FIFO模块,位流解析部分对回读FIFO模块进行写控制,并通过检测RDBK_DR_en信号记录有效回读数据的数量,以便在回读结束时跳出回读状态继续读取下载FIFO。 
配置地址及控制产生模块(包括回读配置地址及控制产生模块和下载配置地址及控制产生模块)在初始情况下均以地址寄存器(ADDR)的值作为更新地址的起点,由全局配置控制状态机来选择下载配置地址及控制生成或回读配置地址及控制生成处于工作状态,并且选择两者地址输出中的一个作为最终的地址输出。
全局配置控制状态机通过全局操作寄存器(OPR)的值来实现对整个配置过程的控制,包括复位CRC(Cyclic Redundancy Check、循环冗余校验),启动,解同步等操作。
整个配置电路通过CRC,帧ECC等电路实现对下载或回读数据的检错和纠错。 
本发明中,下载和回读数据通道均是在第一级对数据的流速控制,为了实现数据的高速下载或回读均以最快的速度读取数据。下载数据通道的源头是下载FIFO,目的地是FPGA 阵列;回读数据通道源头为FPGA 阵列,目的地是回读FIFO。位流解析模块(下载通道第一级)可以实现对下载FIFO读取的有效控制,配置地址产生内部的回读配置地址及控制产生模块也能够对FPGA 阵列回读进行有效控制,第一级模块在读取数据之后往后级传输,不用接收后级的反馈信号。
本发明中,配置地址生成模块包括两部分:下载配置地址及控制产生模块和回读配置地址及控制产生模块,由全局配置控制状态机选择那一部分处于工作状态,来自于位流解析模块的DNLD_DR_en信号控制下载配置地址及控制产生模块的地址累加,回读配置地址及控制产生模块的配置地址是自动累加的,两者均采用相同的累加算法。 
本发明中,下载数据通道和回读数据通道均采用两级流水线操作方式,在流水线的方向上,控制信号也是沿着一个方向传递,避免了反馈的产生,同时也保证了数据传输的稳定和可靠性,流水线的第一级以最快速度读取为FPGA的高速高吞吐率配置提供了保障。
本发明采用流水线结构的FPGA配置电路因为其内部的数据处理能力较强,可以极大地提高FPGA配置数据的速率,增大FPGA的用户下载和回读时钟频率,缩短FPGA下载和回读时间。
附图说明
图 1 为FPGA配置电路的全局结构视图,包含两条流水线数据通道,配置寄存器组,配置控制状态机,CRC32循环冗余校验),帧ECC错误检查和纠正)等模块。
图 2 为图1中配置地址生成模块的详细图,主要包括下载配置地址及控制生成模块、回读配置地址及控制生成模块、地址选择器MUX等部分,地址产生均以ADDR(Address Register、地址寄存器)的值作为起点,由全局配置控制状态机来选择哪一部分处于工作状态。
具体实施方式
FPGA的配置电路既要能够将配置数据从用户接口输入写入存储阵列的编程点,又要能够将编程点的内容读出并从用户接口输出。下载数据通道的作用就是将数据写入内部编程点,回读数据通道的作用是将数据从内部编程点读出。
下面分别对两条数据通道的详细操作流程进行说明。
下载数据通道:
1、用户通过配置接口将配置位流写入下载FIFO。
2、位流解析模块检测下载FIFO的读空标志,若非空便读取下载FIFO内数据。
3、位流解析模块按照位流的组织格式(数据头+数据),从下载FIFO读出的数据头中解析出寄存器地址,读写操作,下载数据个数。
4、位流解析模块根据寄存器地址,读写操作使相应的寄存器的使能信号有效,并将该DNLD_DR_en信号传输至下载配置地址生成模块。
5、位流解析模块每读取下载FIFO里的一个有效数据之后都将下载数据计数器减1,并产生一个时钟周期的DNLD_DR_en信号,直到读完该数据头所规定的数量。
6、下载配置地址及控制产生模块在全局控制状态机发送的Write_cfg_data(Write configuration data、写配置数据)有效情况下检测并记录DNLD_DR_en信号,每计数满一帧数据就更新下载配置地址以及相应的下载控制信号。
7、配置结束时全局控制状态机撤销Write_cfg_data信号,位流解析模块和配置地址产生模块均回到空闲状态,直到下载FIFO非空则继续重复步骤2-6。
回读数据通道:
1、用户通过配置接口将包含有回读命令的配置位流写入下载FIFO。
2、位流解析模块检测下载FIFO的读空标志,若非空便读取下载FIFO内数据。
3、位流解析模块按照位流的组织格式(数据头+数据),从下载FIFO读出的数据头中解析出寄存器地址,读写操作,回读数据个数。
4、回读配置地址及控制生成模块检测到全局配置控制状态机的Read_cfg_data(Read configuration data、读配置数据)有效之后根据ADDR的值生成相应的配置地址。
5、回读配置地址及控制生成模块检测回读FIFO的写满状态标志位。若回读FIFO没有写满则从FPGA 阵列中移出数据,如果遇到回读FIFO写满状态则暂停移出数据。
6、回读配置地址及控制生成模块一边从FPGA 阵列中移出数据一边更新配置地址,以便将整个FPGA 阵列的地址遍历完整,以一帧数据读取完整为更新节点。
7、位流解析模块通过检测并记录RDBK_DR_en有效信号来更新内部的回读个数计数器,直到为0则退出回读状态。
8、回读结束后,全局配置控制状态机撤销Read_cfg_data,回读配置地址及控制产生也就停止从FPGA 阵列中移出数据,回到空闲状态,直到下载FIFO非空则继续重复步骤2-7。

Claims (1)

1.一种FPGA两级流水线配置电路,其特征在于采用两条流水线数据通道分别对FPGA进行下载和回读,所述FPGA配置电路包括:下载FIFO模块,回读FIFO模块,全局配置控制状态机,位流解析模块,配置地址产生模块,全局操作寄存器,帧数据输入寄存器,回读数据寄存器,地址寄存器,循环冗余校验模块和帧错误检查和纠正模块;所述配置地址产生模块包括:回读配置地址及控制产生模块和下载配置地址及控制产生模块,以及地址选择器;其中:
下载数据通道即流水线1,第一级由下载FIFO模块传输至帧数据输入寄存器,位流解析模块负责下载FIFO模块的读访问以及帧数据输入寄存器使能信号的产生;第二级由帧数据输入寄存器传输至FPGA阵列,下载配置地址及控制产生模块通过检测帧数据输入寄存器使能信号来更新内部地址,下载配置地址及控制产生模块更新地址的方式按照FPGA存储阵列的排列规律执行,它除了产生配置地址外,还产生数据加载和地址有效等控制信号;
回读数据通道即流水线2,控制信号由回读配置地址产生及控制模块传输至位流解析模块,第一级由FPGA 阵列传输至回读数据寄存器,回读配置地址及控制产生模块负责对FPGA 阵列的读访问及流速控制,通过记录有效回读数据个数来更新回读地址,其更新的方法和下载配置地址更新的方法一致,其产生的回读数据寄存器使能信号传输给位流解析模块,标志着一个有效数据已经传输至回读数据寄存器;第二级由回读数据寄存器传输至回读FIFO模块,位流解析模块对回读FIFO模块进行写控制,并通过检测回读数据寄存器使能信号记录有效回读数据的数量,在回读结束时跳出回读状态继续读取下载FIFO;
配置地址及控制产生模块包括回读配置地址及控制产生模块和下载配置地址及控制产生模块,在初始情况下均以地址寄存器的值作为更新地址的起点,由全局配置控制状态机来选择下载配置地址及控制生成模块或回读配置地址及控制生成模块处于工作状态,并且选择两者地址输出中的一个作为最终的地址输出;
全局配置控制状态机通过全局操作寄存器的值来实现对整个配置过程的控制; 
整个配置电路通过CRC,帧ECC电路实现对下载或回读数据的检错和纠错。
CN201210005825.3A 2012-01-10 2012-01-10 一种fpga两级流水线配置电路 Active CN102566982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210005825.3A CN102566982B (zh) 2012-01-10 2012-01-10 一种fpga两级流水线配置电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210005825.3A CN102566982B (zh) 2012-01-10 2012-01-10 一种fpga两级流水线配置电路

Publications (2)

Publication Number Publication Date
CN102566982A true CN102566982A (zh) 2012-07-11
CN102566982B CN102566982B (zh) 2014-06-11

Family

ID=46412497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210005825.3A Active CN102566982B (zh) 2012-01-10 2012-01-10 一种fpga两级流水线配置电路

Country Status (1)

Country Link
CN (1) CN102566982B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019947A (zh) * 2012-11-28 2013-04-03 复旦大学 一种fpga芯片配置信息模型的层出化构建方法
CN103792487A (zh) * 2012-10-31 2014-05-14 中国科学院电子学研究所 一种测试fpga的装置与方法
WO2016095191A1 (en) * 2014-12-19 2016-06-23 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
CN105760250A (zh) * 2016-02-04 2016-07-13 北京时代民芯科技有限公司 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN106155747A (zh) * 2016-07-13 2016-11-23 无锡中微亿芯有限公司 一种基于fpga可加速配置的方法和控制系统
WO2017113333A1 (zh) * 2015-12-31 2017-07-06 京微雅格(北京)科技有限公司 一种fpga电路和其配置文件处理方法
CN109857701A (zh) * 2018-02-27 2019-06-07 上海安路信息科技有限公司 Fpga配置电路的启动系统及其方法
CN110633233A (zh) * 2019-06-28 2019-12-31 中国船舶重工集团公司第七0七研究所 一种基于流水线的dma数据传输处理方法
CN112750476A (zh) * 2019-10-29 2021-05-04 深圳市国微电子有限公司 配置存储器位线控制电路以及fpga位线控制系统
CN113760820A (zh) * 2021-09-15 2021-12-07 北京中科胜芯科技有限公司 一种超大规模fpga芯片的数据配置和回读方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651155B1 (en) * 2000-07-28 2003-11-18 Altera Corporation Apparatus and method for translating a programmable logic device programmer object file
CN101692214A (zh) * 2009-09-17 2010-04-07 中国电子科技集团公司第四十一研究所 Cpu与fpga间高速间接存取装置和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651155B1 (en) * 2000-07-28 2003-11-18 Altera Corporation Apparatus and method for translating a programmable logic device programmer object file
CN101692214A (zh) * 2009-09-17 2010-04-07 中国电子科技集团公司第四十一研究所 Cpu与fpga间高速间接存取装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANG YABIN等: "Design and implementation of the configuration circuit for fdp fpga", 《IEEE ASIA PACIFIC CONFERENCE ON CIRCUITS AND SYSTEMS》 *
崔鹏等: "一种SEU硬核检测电路的设计与实现", 《计算机工程》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103792487A (zh) * 2012-10-31 2014-05-14 中国科学院电子学研究所 一种测试fpga的装置与方法
CN103019947B (zh) * 2012-11-28 2016-02-24 复旦大学 一种fpga芯片配置信息模型的层次化构建方法
CN103019947A (zh) * 2012-11-28 2013-04-03 复旦大学 一种fpga芯片配置信息模型的层出化构建方法
US10447316B2 (en) 2014-12-19 2019-10-15 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
WO2016095191A1 (en) * 2014-12-19 2016-06-23 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
US11955991B2 (en) 2014-12-19 2024-04-09 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
US11309919B2 (en) 2014-12-19 2022-04-19 Micron Technology, Inc. Apparatuses and methods for pipelining memory operations with error correction coding
WO2017113333A1 (zh) * 2015-12-31 2017-07-06 京微雅格(北京)科技有限公司 一种fpga电路和其配置文件处理方法
CN107710325A (zh) * 2015-12-31 2018-02-16 京微雅格(北京)科技有限公司 一种fpga电路和其配置文件处理方法
CN105760250B (zh) * 2016-02-04 2018-11-06 北京时代民芯科技有限公司 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN105760250A (zh) * 2016-02-04 2016-07-13 北京时代民芯科技有限公司 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN106155747B (zh) * 2016-07-13 2020-04-21 无锡中微亿芯有限公司 一种基于fpga可加速配置的方法和控制系统
CN106155747A (zh) * 2016-07-13 2016-11-23 无锡中微亿芯有限公司 一种基于fpga可加速配置的方法和控制系统
CN109857701A (zh) * 2018-02-27 2019-06-07 上海安路信息科技有限公司 Fpga配置电路的启动系统及其方法
CN110633233A (zh) * 2019-06-28 2019-12-31 中国船舶重工集团公司第七0七研究所 一种基于流水线的dma数据传输处理方法
CN112750476A (zh) * 2019-10-29 2021-05-04 深圳市国微电子有限公司 配置存储器位线控制电路以及fpga位线控制系统
CN113760820A (zh) * 2021-09-15 2021-12-07 北京中科胜芯科技有限公司 一种超大规模fpga芯片的数据配置和回读方法
CN113760820B (zh) * 2021-09-15 2022-04-22 北京中科胜芯科技有限公司 一种超大规模fpga芯片的数据配置和回读方法

Also Published As

Publication number Publication date
CN102566982B (zh) 2014-06-11

Similar Documents

Publication Publication Date Title
CN102566982B (zh) 一种fpga两级流水线配置电路
US20210081258A1 (en) Synthesis Path For Transforming Concurrent Programs Into Hardware Deployable on FPGA-Based Cloud Infrastructures
CN103473088B (zh) 一种单片机在线升级方法和系统
US20130064321A1 (en) Methods for asynchronous serial data transmission using a synchronous serial interface
US9378237B2 (en) Methods for in-place access of serialized data
CN104935786B (zh) 一种基于软处理器的图像信号源及其处理图像信号的方法
CN104050136A (zh) 用于改进与硬件驱动的算法的均衡的装置、系统、以及方法
CN104461624B (zh) 一种三维声波测井仪近探头测量模块的远程升级方法
CN104572182B (zh) 一种流应用的配置方法、节点及流计算系统
TW202036289A (zh) 記憶體裝置以及操作記憶體裝置以用於讀取頁面串流的方法
CN103106095A (zh) 一种工业照相机远程升级的方法及照相机
CN105704083A (zh) 以太网激励报文的产生方法、装置及仿真系统
CN110045982A (zh) 一种基于源代码聚合的嵌入式系统配置方法
CN114385237B (zh) 用于低时延寄存器错误校正的方法和设备及机器可读介质
Brown et al. Easy parameterized verification of biphase mark and 8N1 protocols
CN109684152A (zh) 一种risc-v处理器指令下载方法及其装置
CN103561008B (zh) 一种传输协议解码方法、装置及传输协议解码芯片
CN103376777A (zh) 控制器的Modbus通讯接口的测试方法及上位机
CN103075961B (zh) 基于单片fpga支持多个光栅尺的位置测显方法
CN108829379B (zh) 一种多硬件接口通讯协议软件按需自动生成方法
CN107517097A (zh) 一种自动化验证的方法及装置
CN103500585B (zh) 一种用于控制单次可编程存储器的控制电路及其控制方法
CN102375749A (zh) 一种采用i2c总线快速下载和更新固件的方法
CN102594334A (zh) 一种流水线型fpga回读帧ecc电路
CN104915206A (zh) 一种基于文本解析的dsp上的属性和数据的管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant