CN109710562A - 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 - Google Patents

一种基于selectmap的可配置且高速的fpga配置电路及实现方法 Download PDF

Info

Publication number
CN109710562A
CN109710562A CN201811314746.4A CN201811314746A CN109710562A CN 109710562 A CN109710562 A CN 109710562A CN 201811314746 A CN201811314746 A CN 201811314746A CN 109710562 A CN109710562 A CN 109710562A
Authority
CN
China
Prior art keywords
configuration
register
module
signal
data
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
CN201811314746.4A
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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201811314746.4A priority Critical patent/CN109710562A/zh
Publication of CN109710562A publication Critical patent/CN109710562A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法。该配置电路包括高速AMBA AHB接口模块,用以采样AHB总线上的信号,并返回相应的控制信号和数据信号;寄存器配置模块,该模块包含多个配置和状态寄存器,用以配置主控制器的各项功能以及寄存相应状态的数值,使得本电路可以适用于各种不同的应用场景;缓存模块,用于缓存从AHB系统中输入的配置数据,使得SELECTMAP接口和AHB系统可以进行异步操作,提高了配置电路的灵活性和稳定性;主控制模块,用以产生满足SELECTMAP时序要求,同时读取缓存模块中的数据并进行移位输出,并根据相应的数据信号生成CCLK信号,实现配置数据的非连续传输,节省芯片引脚并增加配置电路的可靠性。

Description

一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现 方法
技术领域
本发明属于计算机工程领域,与SoC密切相关。具体涉及一种FPGA配置电路及实现方法。
背景技术
随着大数据的发展,计算能力的提升,人工智能近两年迎来了新一轮的爆发。2016年谷歌AlphaGo赢得了围棋大战后,人工智能在产业界和资本圈引起了高度关注,成为新的风口。
在人工智能时代,人们对计算能力的需求有指数级的提高,计算能力的要求超过了摩尔定律。随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已远远超出了传统CPU处理器的能力所及。除此之外,未来在激光雷达、无人机、无人驾驶、智能机器人等终端设备方面对计算能力也会有极大的提升。
另一方面,摩尔定律正在失效,传统CPU架构下计算能力的提升开始滞后于摩尔定律。近几年半导体技术改进达到了物理极限,电路越来越复杂,每一个设计的开发成本高达数百万美元,数十亿美元才能形成新产品投产能力。
因此,计算能力的需求供给出现了一个巨大的缺口。一方面处理器性能再无法按照摩尔定律进行增长,另一方面数据增长对计算性能要求超过了按“摩尔定律”增长的速度。处理器本身无法满足高性能计算应用软件的性能需求。
目前,为了弥补计算能力的缺口,许多公司正在积极开发能够实现人工智能的高效硬件平台。在这个背景下CPU+FPGA架构应运而生。这种异构架构融合了CPU和FPGA各自的优点,以CPU为核心的SoC为FPGA提供高性能的硬核资源,特别是CPU处理能力。而FPGA作为并行架构的处理器非常适合大规模数据的处理,极大地提升了硬件平台的计算能力。同时FPGA的可编程性也为CPU提供扩展空间和可重构资源,使其拥有更高的单位功耗性能、更低时延和更快加速性能,因此在包括智能视觉分析、大数据以及云计算等领域得到了大规模应用。
在CPU+FPGA架构中,一般通过CPU以及相应的配置电路来对一块或多块FPGA进行配置。然而伴随着FPGA内实现的算法的复杂度日益增加,FPGA的配置时间也越来越长。目前云计算平台中的FPGA配置甚至需要多个小时才能完成。因此CPU+FPGA中的FPGA配置时间问题日益严重地制约着人工智能、大数据和云计算等新型领域的发展。
发明内容
针对技术背景中提到的FPGA配置时间过长这一问题,设计了一种可配置的,并且能够显著提高FPGA配置速度的配置电路,该配置电路具有高性能,高可靠性等特点,并且其功能已经在原型验证平台和后仿真平台上通过了验证。
本发明的另一个目的在于提供基于SELECTMAP的可配置且高速的FPGA配置电路的实现方法。
本发明的技术方案如下:
一种基于SELECTMAP的可配置且高速的FPGA配置电路,由以下模块实现:
(1)、高速AMBAAHB接口模块,该模块用以采样AHB总线上的控制、地址和数据信号,并返回相应的控制信号和数据信号。
(2)、寄存器配置模块,该模块由多个配置寄存器和状态寄存器构成。其中配置寄存器用以配置主控制器的各项功能,使得本发明可以适用于各种不同的应用场景。状态寄存器用以寄存主控制模块中的各个状态所对应的数值,通过读取这些寄存器,方便模块的调试与信息的打印。
(3)、缓存模块,该模块作为核心模块之一,用来缓存从AHB系统中输入的FPGA配置数据,使得SELECTMAP接口和AHB系统可以进行异步操作,提高了配置电路的灵活性和稳定性。
(4)、主控制模块,该模块为本配置电路的核心模块,用于产生满足SELECTMAP时序要求的PROGRAM_B、INIT_B、CSI_B、RW_B信号,同时读取缓存模块中的数据并进行移位输出并根据相应的数据信号生成CCLK信号,使得总线的宽度可以灵活配置,并实现配置数据的非连续传输,节省芯片引脚并增加配置电路的可靠性。
基于SELECTMAP的可配置且高速的FPGA配置电路的实现方法中,包含以下步骤:
(1)、上电后配置电路的初始态为空闲状态,在此状态下缓存模块的状态为空状态。主配置模块循环检测配置寄存器模块中PROGRAM_B状态使能寄存器的值,若检测到此寄存器的值为1,则进入步骤(2)。
(2)、配置电路的主控制器读取配置寄存器模块中PROGRAM_B计数寄存器,通过此寄存器中的数值决定PROGRAM_B低电平负脉冲信号的宽度。信号宽度为PROGRAM_B计数寄存器的数值与时钟周期的乘积。同时,进入步骤(3)。
(3)、主控制器模块从FPGA接收INIT_B信号,并做出判断:若检测到INIT_B信号为低电平,则进入步骤(4);否则继续执行步骤(3)。同时INIT_B超时计数寄存器中的数值,并对此数值在每个时钟周期下减1,当此数值为0且INIT_B信号仍然为1时,将TIME_OUT_FLAG信号拉高,并输出到配置寄存器模块中相应的状态寄存器中。此步骤的目的是为了确保所配置的FPGA初始化成功。
(4)、主控制器读取等待状态计数寄存器,通过此计数器的数值与时钟周期决定在等待状态的停留时间。在等待状态停留一段时间之后,执行步骤(5)。
(5)、配置电路进入数据移位状态,主控制模块将从AHB系统中输入并存储在缓存模块的数据位宽为32bit的FPGA配置数据以字为单位读入相应的32bit寄存器中,并将此寄存器中的数据分四次移位输出到FPGA的SELECTMAP从接口,每次数据大小为1字节。同时配合CCLK产生状态机生成符合要求的CCLK信号,信号上升沿位于每字节数据信号的中间。当没有数据输出到FPGA中时,不产生CCLK信号,从而保证了FPGA的非连续配置。当进行完4次移位输出后,进入步骤(6)。
(6)、配置电路进入数据检查状态。在此状态下,检查缓存模块的状态并进行判断。若缓存模块处于非空状态,则重复步骤(5)。若缓存模块处于空状态,则停留在步骤(6)。
附图说明
图1为本发明配置电路的结构示意图。
图2为本发明配置电路的实现方法流程图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
如图1所示为本发明配置电路的结构示意图。本配置电路内部包含四个模块:高速AMBAAHB接口模块、寄存器配置模块、缓存模块和主控制模块。其中,寄存器配置模块中的配置寄存器种类包括:软复位寄存器、数据寄存器、Program_B状态使能寄存器、Program_B计数寄存器、CCLK分频寄存器、INIT_B超时计数寄存器、CCLK等待计数寄存器、设备ID寄存器。由图可知配置电路通过高速AMBAAHB接口模块与已CPU为核心的AHB系统相连接,同时通过主控制模块输出符合SELECTMAP时序要求的控制信号和数据信号。
应用时,配置电路通过高速AMBA AHB接口模块与已CPU为核心的AHB系统相连接,从而使得用户可以通过CPU对配置电路中的寄存器配置模块中的配置寄存器和状态寄存器进行写入和读取。
应用时,配置电路通过FPGA的SELECTMAP从设备管脚对FPGA进行配置。应用时,配置电路通过时钟管脚接受AHB系统的时钟信号,并进入工作状态。如图2所示为本发明配置电路实现方法流程图。本发明配置电路主要包括6中工作状态,包括空闲状态、PROGRAM_B状态、INIT_B状态、等待状态、移位输出状态和数据检查状态。本发明屏配置电路的实现方式通过状态机实现,具体实现过程如下:
步骤(一)、上电后配置电路的状态处于空闲状态。此时根据FPGA的时序手册以及具体使用情况,通过CPU对配置电路中的寄存器配置模块的各个相应寄存器进行配置。通过配置PROGRAM_B状态使能寄存器,使得配置电路的状态可以从空闲状态进入PROGRAM_B状态。通过配置PROGRAM_B计数寄存器,产生满足FPGA要求的负脉冲初始化信号。通过配置CCLK分频寄存器,产生满足芯片PAD频率要求的配置时钟信号。通过配置INIT_B超时计数寄存器,若配置电路从FPGA接收的INIT_B信号在规定时间内不拉低,则拉高TIME_OUT_FLAG信号拉高,并输出到配置寄存器模块中相应的状态寄存器中。当CPU从状态寄存器中读取到TIME_OUT_FLAG信号为高电平时,则表示FPGA没有初始化成功,便于用户调试。通过配置等待计数寄存器,确定等待状态的持续时间,满足应用需求。本配置电路可以同时配置多达8块FPGA,通过配置设备ID寄存器,选定要配置的FPGA的编号。在此状态下缓存模块的状态为空状态。主配置模块循环检测配置寄存器模块中PROGRAM_B状态使能寄存器的值,若检测到此寄存器的值为1,则进入步骤(二)。
步骤(二)、配置电路的主控制器读取配置寄存器模块中PROGRAM_B计数寄存器,通过此寄存器中的数值决定PROGRAM_B低电平负脉冲信号的宽度。信号宽度为PROGRAM_B计数寄存器的数值与时钟周期的乘积。当完成PROGRAM_B低电平负脉冲信号的发送时,进入步骤(三)。
步骤(三)、配置电路进入INIT_B状态。在此状态下主控制器模块通过专用引脚从FPGA接收INIT_B信号,并做出判断:若检测到INIT_B信号为低电平,则进入步骤(四)。否则继续执行步骤(三)。同时INIT_B超时计数寄存器中的数值,并对此数值在每个时钟周期下减1,当此数值为0且INIT_B信号仍然为1时,产生TIME_OUT_FLAG信号并将此信号拉高,并输出到配置寄存器模块中相应的状态寄存器中。CPU在传输配置数据之前先循环读取此状态寄存器中的值,若此状态寄存器的值为1,则报错。此步骤的目的是为了确保所配置的FPGA初始化成功。
步骤(四)、配置电路进入等待状态,在此状态下主控制模块读取等待状态计数寄存器中的数值,通过此计数器的数值与时钟周期决定在等待状态的停留时间。在等待状态停留一段时间之后,执行步骤(五)。此步骤的目的是为了确保满足不同应用场景的要求。
步骤(五)、配置电路进入数据移位状态,通过CPU将配置数据写入寄存器配置模块中的数据寄存器,一个周期后寄存在数据寄存器中的配置数据被写入缓存模块中,缓存模块的状态变为非空状态。检测到缓存模块的状态为非空状态后,配置电路进入数据移位状态,将从AHB系统中输入并存储在缓存模块的数据位宽为32bit的FPGA配置数据以字为单位写入相应的32bit寄存器中,并将此寄存器中的数据分四次移位输出到FPGA的SELECTMAP从接口,每次数据大小为1字节。同时配合CCLK产生状态机生成符合要求的CCLK信号,CCLK信号上升沿位于数据信号的中间。当没有数据输出到FPGA中时,不产生CCLK信号,从而保证了FPGA的非连续配置。当进行完4次移位输出后,进入步骤(六)。
步骤(六)、当主控制器对长度为32bit的配置数据移位输出完成后,配置电路进入数据检查状态。在此状态下,检查缓存模块的状态并进行判断。若缓存模块处于非空状态,则重复步骤(五)。否则,若缓存模块处于空状态,则停留在步骤(六)。FPGA产生的DONE信号通过专用引脚写入寄存器配置模块中相应的状态寄存器中,CPU循环读取此状态寄存器中的值。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (2)

1.一种基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法,其特征在于:所述电路包含高速AMBA AHB接口模块、寄存器配置模块、缓存模块和主控制模块;
所述高速AMBA AHB接口模块,以采样AHB总线上的控制、地址和数据信号,并返回响应的控制信号和数据信号;
所述寄存器配置模块,包含配置寄存器和状态寄存器;其中配置寄存器用以配置主控制器的各项功能,包括:软复位寄存器、数据寄存器、PROGRAM_B状态使能寄存器、PROGRAM_B计数寄存器、CCLK分频寄存器、INIT_B超时计数寄存器、等待计数寄存器、设备ID寄存器;同时,此模块还包含多个状态寄存器,用以寄存主控制模块中的各个状态对应的数值;
所述缓存模块,用于缓存从AHB系统中输入的FPGA配置数据,使得SELECTMAP接口和AHB系统可以进行异步操作,提高了配置电路的灵活性和稳定性;
所述主控制模块,用以产生满足SELECTMAP时序要求的PROGRAM_B、INIT_B、CSI_B、RW_B信号,同时读取缓存模块中的数据并进行移位输出并根据相应的数据信号生成CCLK信号,使得总线的宽度可以灵活配置,并实现配置数据的非连续传输,节省芯片引脚并增加配置电路的可靠性。
2.根据权利要求1所述的基于SELECTMAP的可配置且高速的FPGA配置电路及实现方法,其特征在于:包含如下步骤:
(1)、上电后配置电路的初始态为空闲状态,在此状态下缓存模块的状态为空状态;主配置模块循环检测配置寄存器模块中PROGRAM_B状态使能寄存器的值,若检测到此寄存器的值为1,则进入步骤(2);
(2)、配置电路的主控制器读取配置寄存器模块中PROGRAM_B计数寄存器,通过此寄存器中的数值与时钟周期决定PROGRAM_B低电平负脉冲信号的宽度;同时,进入步骤(3)
(3)、主控制器模块从FPGA接收INIT_B信号,并做出判断:若检测到INIT_B信号为低电平,则进入步骤(4);否则继续执行步骤(3);同时根据INIT_B超时计数寄存器中寄存的数值与时钟周期,确定INIT_B状态的持续时间;若在此持续时间内INIT_B信号始终为高电平,则配置电路中的主控制模块将TIME_OUT_FLAG信号拉高,并将此信号输出到配置寄存器模块中相应的状态寄存器中;此步骤的目的是为了确保所配置的FPGA初始化成功;
(4)、配置电路进入等待状态,在此状态下主控制器读取等待状态计数寄存器,通过此计数器的数值与时钟周期决定在等待状态的停留时间;在等待状态停留一段时间之后,执行步骤(5);
(5)、配置电路进入数据移位状态,主控制模块将从系统中输入并存储在缓存模块中的FPGA配置数据以字为单位读入相应的寄存器中,并将此寄存器中的数据分多次移位输出到FPGA的SELECTMAP从接口;同时配合CCLK产生状态机生成符合要求的CCLK信号,信号上升沿位于数据信号的中间位置;当没有配置数据输出时,不产生CCLK信号,从而保证了FPGA的非连续配置;当主控制模块完成全部配置数据的移位输出后,进入步骤(6);
(6)、配置电路进入数据检查状态;在此状态下,检查缓存模块的状态并进行判断;若缓存模块处于非空状态,则重复步骤(5);若缓存模块处于空状态,则停留在步骤(6)。
CN201811314746.4A 2018-11-06 2018-11-06 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 Pending CN109710562A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811314746.4A CN109710562A (zh) 2018-11-06 2018-11-06 一种基于selectmap的可配置且高速的fpga配置电路及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811314746.4A CN109710562A (zh) 2018-11-06 2018-11-06 一种基于selectmap的可配置且高速的fpga配置电路及实现方法

Publications (1)

Publication Number Publication Date
CN109710562A true CN109710562A (zh) 2019-05-03

Family

ID=66254227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811314746.4A Pending CN109710562A (zh) 2018-11-06 2018-11-06 一种基于selectmap的可配置且高速的fpga配置电路及实现方法

Country Status (1)

Country Link
CN (1) CN109710562A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831330A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的异构计算系统设备交互方案
CN114327298A (zh) * 2022-01-28 2022-04-12 中科亿海微电子科技(苏州)有限公司 一种基于fpga模拟ssm配置接口的方法及ssm配置接口

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
CN1758232A (zh) * 2004-10-10 2006-04-12 中兴通讯股份有限公司 一种接口转换模块和对fpga进行配置的方法
CN106055510A (zh) * 2016-06-15 2016-10-26 中国电子科技集团公司第五十八研究所 一种基于fpga配置总线位宽自动检测的控制系统
CN106680698A (zh) * 2015-11-11 2017-05-17 上海复旦微电子集团股份有限公司 一种fpga测试用的多工位快速配置装置及其配置方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
CN1758232A (zh) * 2004-10-10 2006-04-12 中兴通讯股份有限公司 一种接口转换模块和对fpga进行配置的方法
CN106680698A (zh) * 2015-11-11 2017-05-17 上海复旦微电子集团股份有限公司 一种fpga测试用的多工位快速配置装置及其配置方法
CN106055510A (zh) * 2016-06-15 2016-10-26 中国电子科技集团公司第五十八研究所 一种基于fpga配置总线位宽自动检测的控制系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李磊 等: "一种FPGA配置加载管理电路的设计与实现", 《微电子学与计算机》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831330A (zh) * 2020-07-10 2020-10-27 深圳致星科技有限公司 用于联邦学习的异构计算系统设备交互方案
CN111831330B (zh) * 2020-07-10 2022-02-01 深圳致星科技有限公司 用于联邦学习的异构计算系统设备交互方案
CN114327298A (zh) * 2022-01-28 2022-04-12 中科亿海微电子科技(苏州)有限公司 一种基于fpga模拟ssm配置接口的方法及ssm配置接口

Similar Documents

Publication Publication Date Title
CN104915322B (zh) 一种卷积神经网络硬件加速方法
CN107392308B (zh) 一种基于可编程器件的卷积神经网络加速方法与系统
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN102279386B (zh) 基于fpga的sar成像信号处理数据转置方法
CN108764466A (zh) 基于现场可编程门阵列的卷积神经网络硬件及其加速方法
CN113051216A (zh) 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
WO2015187635A1 (en) Extracting system architecture in high level synthesis
CN100535868C (zh) 一种实时位真仿真开发系统及其方法
CN109710562A (zh) 一种基于selectmap的可配置且高速的fpga配置电路及实现方法
Wang et al. Briefly Analysis about CNN Accelerator based on FPGA
CN105955896B (zh) 一种可重构dbf算法硬件加速器及控制方法
Sivasankari et al. High-throughput and power-efficient convolutional neural network using one-pass processing elements
CN108628693B (zh) 处理器调试方法和系统
Yang et al. Design of airborne target tracking accelerator based on KCF
Zhang et al. Design and implementation of deep neural network for edge computing
Song et al. Design and implementation of convolutional neural networks accelerator based on multidie
Lee et al. Accelerating deep neural networks using FPGAs and ZYNQ
Cao et al. SimuNN: A pre-RTL inference, simulation and evaluation framework for neural networks
Hu et al. High-performance reconfigurable DNN accelerator on a bandwidth-limited embedded system
Eid et al. Hardware implementation of YOLOv4-tiny for object detection
Xiao et al. Design of AXI bus based MPSoC on FPGA
CN111143208B (zh) 基于处理器技术辅助fpga实现ai算法的验证方法
CN111260070B (zh) 运算方法、装置及相关产品
CN107679282A (zh) 电荷泵的仿真方法及仿真装置
Xin et al. High throughput hardware/software heterogeneous system for RRPN-based scene text detection

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190503

WD01 Invention patent application deemed withdrawn after publication