一种快速启动fpga的电路和方法

文档序号:10596891阅读:317来源:国知局
一种快速启动fpga的电路和方法
【专利摘要】一种快速启动FPGA的电路和方法,包括配置电路、优先配置可编程逻辑模块、非优先配置可编程逻辑模块,优先配置可编程逻辑模块额外还包括边界隔离电路。该FPGA电路架构的核心是改进FPGA内各类型的可编程逻辑单元的位置分布,将需要快速启动的逻辑资源集中放置,并使用边界隔离电路进行环绕,构成相对独立的优先配置可编程逻辑模块区,以实现特定可编程逻辑模块的快速配置、快速启动,快速进入工作状态;其它的可编程逻辑单元则构成非优先配置可编程逻辑模块区,在FPGA快速启动后再进行配置,使FPGA实现完整的逻辑功能。本发明极大减小整个电子系统上电后到进入可操作状态所需要的时间,在可广泛应用于宇航、航空、汽车等领域的电子系统中。
【专利说明】
一种快速启动FPG A的电路和方法
技术领域
[0001 ]本发明涉及一种快速启动的FPGA,通过对FPGA电路架构、配置电路和配置方法的改进,实现对部分逻辑资源的优先配置和快速启动,整体技术属于集成电路领域。
【背景技术】
[0002]随着工艺技术的进步,FPGA的可编程逻辑资源规模逐渐增大,并且整合了各种内嵌的高性能专用可编程逻辑单元(如数字信号处理单元、时钟管理单元、微处理器、块存储器等),已发展为面向应用的数字系统平台,在宇航、航空、汽车、工业控制等领域中起到关键作用。但是,随着FPGA技术发展,最先进的FPGA已经具有几十亿只晶体管的规模,配置码流也增加到几百兆位,使得配置时间普遍在1000毫秒以上,这在很多时序敏感的系统中是无法接受的。例如,PC1-E系统上电后100毫秒根组件就开始扫描总线结构,进行初始化设置,如果FPGA还没有配置完成,就不会响应初始化设置请求,根组件会认为它不存在,以至于后续也无法被PC1-E总线系统识别。汽车领域中基于CAN的网络中也有类似情况,E⑶进入睡眠模式,一旦接收到唤醒信号,需要在100毫秒内做好运行准备,同样需要FPGA快速完成启动。随着FPGA规模的进一步增大,这种问题会越来越严重,因此有必要提出一种快速启动的FPGA,采用分区域配置的思路,将总线系统所必需的优先配置可编程逻辑模块区域优先配置起来,使FPGA具备基本的通信响应能力,满足系统时序需求。

【发明内容】

[0003]本发明的技术解决问题是:克服现有技术的不足之处,提供了一种快速启动FPGA的电路架构、配置电路和配置方法,解决了因传统FPGA从上电到启动的时间过长,而导致不能被总线初始化检测到的问题。
[0004]本发明的技术解决方案是:一种用于快速启动FPGA的配置电路,包括三维寻址的配置存储器阵列、配置控制中心和“行”配置电路;三维寻址的配置存储器阵列将FPGA的配置存储器阵列按照逻辑资源的物理结构需求而设计成具有相同高度的“行”,使用行地址ADDR_Row进行寻址,将每一 “行”中的配置存储器按照所控制的逻辑资源类型不同而区分设计成若干“列”,采用列地址ADDR_Col进行寻址,将每一“列”中的配置存储器设计成若干个I位宽的数据“帧”,采用辅地址ADDRjninor进行寻址;通过三层次的地址来定位每个模块的具体配置帧的位置,逐帧将配置数据写入所需的配置存储单元矩阵,实现独立的、针对单个基本规模的可编程电路模块的分别配置;以实现在对FPGA中大部分配置存储器单元不产生影响的情况,高效完成对某一局部区域配置存储器的快速配置;
[0005]配置控制中心接收上电复位信号、全局清零结束反馈信号,产生清零使能信号、全局置位信号,控制FPGA的整体清零行为;接收从FPGA外部读入的配置码流,含配置码流配置命令和配置数据,产生若干个配置数据“字”、配置帧地址,完成优先配置可编程逻辑模块的快速配置和非优先配置可编程逻辑模块的正常配置;接收优先配置可编程逻辑模块和非优先配置可编程逻辑模块的配置完成反馈信号,产生分别针对上述优先配置可编程逻辑模块和非优先配置可编程逻辑模块的全局置位释放信号、全局写使能信号和全局端口三态释放信号,分别完成优先配置可编程逻辑模块的快速启动和非优先配置可编程逻辑模块的正常启动;
[0006]“行”配置电路,接收从配置控制中心发出的配置数据“字”,通过位宽转换,成为一个“帧”数据,并通过驱动器发送至配置存储器阵列的一组位线上,对配置存储器进行数据写入;接收从配置控制中心发出的配置帧地址,帧地址包括“行”地址、“列”地址和“辅”地址,解码后成为一个“帧”的选通控制信号,通过驱动器发送到配置存储器阵列的一条对应字线上,完成对相应配置存储器“帧”的字线开启。
[0007]一种快速启动FPGA的电路架构,包括优先配置可编程逻辑模块、非优先配置可编程逻辑模块和配置电路;
[0008]优先配置可编程逻辑模块包括数个高速接口电路、数个通信协议电路、数十个至数百个可编程逻辑电路和数十个至数百个用户接口电路;其中高速接口电路、通信协议电路、可编程逻辑电路和用户接口电路为可编程逻辑资源;
[0009]优先配置可编程逻辑模块中还包括边界隔离电路,用以在优先配置时序关键电路模块与非优先配置的非关键时序电路模块之间进行信号隔离,避免相互之间的影响;
[0010]非优先配置可编程逻辑模块包括数千个至数万个可编程逻辑单元、数千个至数万个用户接口电路、数十个至数百个块存储器、数十个至数百个数字信号处理器、数十个至数百个时钟管理器、数个处理器等各类高性能电路模块,用以在FPGA快速启动之后逐步配置,实现相对复杂的用户功能;其中可编程逻辑单元、用户接口电路、块存储器、数字信号处理器、时钟管理器、处理器的各类高性能电路模块为可编程逻辑资源;
[0011 ]配置电路,读取FPGA外部的配置码流,先对优先配置可编程逻辑模块实现快速配置和启动,完成对电子系统上电响应时间要求较快即10ms以内的逻辑功能,再对非优先配置可编程逻辑模块进行配置和启动,完成用户其余的各种逻辑功能。
[0012]配置电路,包括三维寻址的配置存储器阵列、配置控制中心和若干个“行”配置电路;三维寻址的配置存储器阵列将FPGA的配置存储器阵列按照逻辑资源的物理结构需求而设计成具有相同高度的“行”,使用行地址ADDR_Row进行寻址,将每一“行”中的配置存储器按照所控制的逻辑资源类型不同而区分设计成若干“列”,采用列地址ADDR_Col进行寻址,将每一“列”中的配置存储器设计成若干个I位宽的数据“帧”;采用辅地址ADDR_minor进行寻址,通过三层次的地址来定位每个模块的具体配置帧的位置,逐帧将配置数据写入所需的配置存储单元矩阵,实现独立的、针对单个基本规模的可编程电路模块的分别配置;以实现在对FPGA中大部分配置存储器单元不产生影响的情况,高效完成对某一局部区域配置存储器的快速配置;
[0013]配置控制中心接收上电复位信号、全局清零结束反馈信号,产生清零使能信号、全局置位信号,控制FPGA的整体清零行为;接收从FPGA外部读入的配置码流,含配置码流配置命令和配置数据,产生若干个配置数据“字”、配置帧地址,完成优先配置可编程逻辑模块的快速配置和非优先配置可编程逻辑模块的正常配置;接收优先配置可编程逻辑模块和非优先配置可编程逻辑模块的配置完成反馈信号,产生分别针对上述优先配置可编程逻辑模块和非优先配置可编程逻辑模块的全局置位释放信号、全局写使能信号和全局端口三态释放信号,分别完成优先配置可编程逻辑模块的快速启动和非优先配置可编程逻辑模块的正常启动;
[0014]“行”配置电路,接收从配置控制中心发出的配置数据“字”,通过位宽转换,成为一个“帧”数据,并通过驱动器发送至配置存储器阵列的一组位线上,对配置存储器进行数据写入;接收从配置控制中心发出的配置帧地址,帧地址包括“行”地址、“列”地址和“辅”地址,解码后成为一个“帧”的选通控制信号,通过驱动器发送到配置存储器阵列的一条对应字线上,完成对相应配置存储器“帧”的字线开启。
[0015]优先配置可编程逻辑模块内包含数十至数百个边界隔离电路,每个边界隔离电路由数十至数百个带有关断功能的互连开关组成。
[0016]优先配置可编程逻辑模块、非优先配置可编程逻辑模块的逻辑资源的类型和规模并非固定不变的,可根据用户需求,在整体设计时进行增减。
[0017]一种快速启动FPGA的配置方法,实现步骤如下:
[0018](I)首先进行FPGA电上电;
[0019](2)上电完成后,进行FPGA全局清零;
[0020](3)清零完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的配置命令码流段与数据码流段,对优先配置可编程逻辑模块进行配置;
[0021](4)优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的启动命令码流段和填充码流段,对优先配置可编程逻辑模块进行快速启动;
[0022](5)在优先配置可编程逻辑模块启动完成后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的配置命令码流段与数据码流段,对非优先配置可编程逻辑模块进行配置;
[0023](6)非优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的启动命令码流段和填充码流段,对非优先配置可编程逻辑模块进行全局启动;
[0024](7)全局启动完成后,FPGA交用户操作。
[0025]快速启动FPGA的配置码流的结构具体由以下九段组成:器件识别/配置初始化码流段、优先配置可编程逻辑模块所需的命令码流段、优先配置可编程逻辑模块所需的数据码流段、启动优先配置可编程逻辑模块区域所需的命令码流段、等待局部启动完成所需的填充码流段、非优先配置可编程逻辑模块所需的命令码流段、非优先配置可编程逻辑模块所需数据码流段、启动非优先配置可编程逻辑模块所需的命令码流段、等待全局启动完成所需的填充码流段。
[0026]本发明与现有技术相比的有益效果是:
[0027]本发明快速启动的FPGA的核心是改变内部各类型的可编程逻辑单元的位置分布,将需要快速启动的逻辑资源集中放置,并使用边界隔离电路进行环绕,构成相对独立的优先配置可编程逻辑模块区,以实现特定可编程逻辑模块的快速配置、快速启动,快速进入工作状态;其它的可编程逻辑单元则构成非优先配置可编程逻辑模块区,在FPGA快速启动后再进行配置,使FPGA实现完整的逻辑功能。采用此架构的FPGA可极大减小整个电子系统上电后到进入可操作状态所需要的时间,在基于PC1-E或CAN总线等具有严格时序要求的电子系统中优势更加明显,大规模FPGA的响应时间可缩短至原来的百分之一。
【附图说明】
[0028]图1是本发明快速启动FPGA的电路整体架构示意图
[0029]图2是配置电路的结构和信号关系示意图;
[0030]图3是三维寻址的配置存储器阵列的层次结构示意图;
[0031 ]图4是优先配置可编程逻辑模块的物理结构示意图;
[0032]图5是边界隔离电路中的互连开关结构示意图;
[0033]图6是快速启动FPGA的配置方法;
[0034]图7是本发明快速启动FPGA所需的配置码流结构。
【具体实施方式】
[0035]本发明中的一种快速启动FPGA(OOO)具体可由优先配置可编程逻辑模块120、非优先配置可编程逻辑模块110和配置电路200几个部分组成。图1是本发明快速启动FPGA的电路整体架构示意图,优先配置的可编程模块120和非优先配置的可编程模块110可以合并起来称为FPGA内的可编程逻辑资源100,传统的FPGA并不区分可编程逻辑资源中的那一部分是先配置、那一部分是后配置,在上电之后,一次性将所有可编程逻辑资源都进行配置后,才启动FPGA,造成整个FPGA系统从上电到工作所需的初始化时间较长,随着FPGA规模越来越大,这种初始化时间甚至超过I秒,造成FPGA与系统内其它器件无法协同工作,所以本发明通过将可编程逻辑资源100分为优先配置可编程逻辑模块120和非优先配置可编程逻辑模块110两部分,将优先配置可编程逻辑模块120的规模设计为相对较小(只占全部可编程逻辑资源的1/100到1/10),并改进了传统的配置电路和配置方法,使之可在不对其它可编程逻辑资源造成任何影响的情况,实现对优先配置可编程逻辑模块120所在区域的独立配置,并单独启动优先配置可编程逻辑模块120,使FPGA在整体配置完成之前,就可以响应用户系统的检测访问等指令。这种FPGA分区域配置、分区域启动的工作机制称之为快速启动。在图1中为了便于理解,将配置电路200单独用底层表示,将优先配置可编程逻辑模块120和非优先配置可编程逻辑模块110用顶层表示,底层的配置电路200控制顶层的可编程逻辑资源100,实现用户功能,实际设计中,这三部分电路都处于芯片的同一个平面内。
[0036]本发明中的配置电路功能主要是读取FPGA外部的配置码流,先对优先配置可编程逻辑模块实现快速配置和启动,使FPGA完成对电子系统上电响应时间要求较快(例如I OOms以内)的逻辑检测响应,再对非优先配置可编程逻辑模块进行配置和启动,完成用户其余的各种逻辑功能。图2是配置电路200的结构和信号关系示意图,本发明配置电路包括三维寻址的配置存储器阵列210、配置控制中心220和“行”配置电路230。“行”配置电路230划分为N个子电路(如“行”配置子电路230-1、“行”配置子电路230-2、“行”配置子电路230-3至“行”配置子电路230-N),每个子电路主要由串并转换电路和地址译码电路组成,串并转换电路接收从配置控制中心发出的配置数据“字”,通过位宽转换,成为一个“帧”数据(例如,将16个32位字转换成800位高度、I位宽的配置帧数据),并通过驱动器发送至三维寻址的配置存储器阵列210的某一行(这组位线数据宽度为800位)上,对这一行的三维寻址的配置存储器阵列进行写入;地址译码电路接收从配置控制中心发出的配置帧地址,帧地址包括“行”地址、“列”地址和“辅”地址,解码后成为相应的“帧”选通控制信号CTRL,将这一位信号发送到配置存储器阵列的一条对应字线上,完成对相应配置存储器“帧”的字线开启(本发明描述中地址译码电路属于“行”配置电路,位于配置存储器阵列的外部,是一种抽象的表述,实际设计中由于字线物理上分布范围较大,地址译码电路一般被设计成分散的门级电路,分布于配置存储器阵列内部,实现对字线的就近译码);这样对三维寻址的配置存储器阵列210来说,“行”配置电路提供了读写所需的位线和字线,在二者的配合下实现了相应的读写行为。
[0037]三维寻址的配置存储器阵列210由各个“行”对应的配置存储器阵列组成,如“行”子阵列210-1、“行”子阵列210-2、“行”子阵列210-3、“行”子阵列210-N。本发明中举例把优先配置可编程逻辑模块设计在左下角,所以“行”子阵列210-N又分成了对应优先配置可编程逻辑模块的配置存储器子阵列210-N-1和对应非优先配置可编程逻辑模块的配置存储器阵列 210-N-2。
[0038]配置控制中心220接收可编程逻辑电路100产生的上电复位信号P0R、三维寻址的配置存储器阵列210产生的全局清零结束反馈信号E0C,产生清零使能信号ClearCE、全局置位信号GSR,发送到三维寻址的配置存储器阵列210和“行”配置电路230,控制FPGA的整体清零行为;接收从FPGA外部读入的配置码流D0-D7,含配置码流配置命令和配置数据,产生若干个配置数据“字”、配置帧地址,通过配置数据/帧地址总线D/Abus写入“行”配置电路230,“行”配置电路230将其转换和译码为配置“帧”数据和对应的“帧”选通控制信号,通过“帧”数据总线Frambus和“帧”选通控制信号CTRL,完成对三维寻址的配置存储器阵列210的写入,用以完成对优先配置可编程逻辑模块120的快速配置和启动和非优先配置可编程逻辑模块110的正常配置和启动;配置控制中心220接收优先配置可编程逻辑模块120的配置完成反馈信号E0FP,产生针对优先配置可编程逻辑模块120的局部置位释放信号GSR2_B、局部写使能信号GW2E和局部端口三态释放信号GTS2_B,完成优先配置可编程逻辑模块的快速启动;配置控制中心220接收非优先配置可编程逻辑模块110的配置完成反馈信号E0SP,产生针对非优先配置可编程逻辑模块110的全局置位释放信号GSR1_B、全局写使能信号GWEl和全局端口三态释放信号GTS1_B,完成非优先配置可编程逻辑模块的正常启动。
[0039]图3是本发明中三维寻址的配置存储器阵列210的层次结构示意图,图中可见本发明首先将FPGA的配置存储器阵列按照逻辑资源的物理结构需求而设计成具有相同高度(例如,每一 “行”大约为10个或20个基本的可编程逻辑单元电路CLB的物理版图高度)N行的子阵列,定义为“行”子阵列210-1到“行”子阵列210-N,使用行地址ADDR_Row进行寻址;接着将每一 “行”子阵列按照所控制的逻辑资源类型不同而区分设计成若干“列”(例如可以分为可编程逻辑单元电路CLB的配置存储器列211-C、块存储器的配置存储器列211-B、数字信号处理单元电路DSP的配置存储器列211-D、输入输出电路1B的配置存储器列211-1、时钟管理电路的配置存储器列211-T等等),采用列地址ADDR_Col进行寻址;最后将每一 “列”中的配置存储器设计成若干(本例中数量为C)个I位宽的数据“帧”,采用辅地址ADDRjninor进行寻址;这样通过行地址ADDR_Row、列地址ADDR_Co I和辅地址ADDRjninor三层次的地址,就可以单独定位到每个模块单元电路的具体配置帧的位置,逐帧将配置数据写入所需的配置存储单元矩阵,实现独立的、针对单个基本规模的可编程电路模块的分别配置。例如每个“行”被设计成10个(不限于10个)可编程逻辑单元电路CLB的高度,每个可编程逻辑单元电路CLB所需的配置存储器阵列高度和宽度分别为SObit和20bit,那么每个“行”的配置存储器高度就是10乘以80bit,每个“列”的宽度为I乘以20bit,通过对这个包含1600个bit相对较小的配置存储器阵列进行单独配置,就完成了这一“行”所对应的10个可编程逻辑单元电路CLB的功能重新定义,所以能够实现在对FPGA中大部分配置存储器单元不产生影响的情况,高效完成对某一局部区域配置存储器的快速配置,为实现快速启动FPGA提供高效配置支持。
[0040]图4是本发明快速启动FPGA中优先配置可编程逻辑模块120的物理结构示意图,主要由若干边界隔离电路121和需快速启动的的可编程逻辑单元122组成。需快速启动的的可编程逻辑单元122可以由可编程逻辑单元电路CLB、块存储器BRAM、数字信号处理单元电路DSP、输入输出电路1B、时钟管理电路CMT、高速串行收发器SerDe s、通信协议电路(TEMAC/PC1-E/CAN总线控制器)等组成,这些各种类型的可编程逻辑单元的类型、数量、规模和之间的比例并非固定不变的,可根据用户需求,在整体设计时进行增减。一般来说,优先配置可编程逻辑模块120内包含的边界隔离电路121数量大约在数十至数百个之间,这一数量并非完全固定不变,具体数量取决于所设计的优先配置可编程逻辑模块120的规模大小和所设计的边界隔离电路121的规模大小之间的比例关系。
[0041]本发明中的边界隔离电路121用来在优先配置可编程逻辑模块120与非优先配置可编程逻辑模块110之间进行信号隔离,避免它们在FPGA部分资源快速启动之后、但尚未整体启动之前相互之间的信号干扰。每个边界隔离电路由数十至数百个带有关断功能的互连开关500组成,这种互连开关是由传统FPGA中的互连开关改进而来,增加了全关断情况下的输出高阻态(传统FPGA的互连开关输出非OS卩I,这种强驱动输出会对边界隔离电路的后级产生干扰),本发明中的互连开关结构如图5所示。本示例中以4选I的互连开关500为例进行说明,实际设计中可根据FPGA布线算法优化为N选I的互连开关,此处N—般为几个到几十个大小。4选I的互连开关500由4个匪OS管(NM0S1至匪0S4)、I个4输入或门502和I个三态驱动器501组成。互连开关有4个数据输入端口(Al至A4)、4个选择端口(SI至S4)和I个输出端口Yl ο NMOSI的栅极与选择端口 SI相连,源级与数据输入端口 Al相连,漏极与三态缓冲区501的输入端相连;NM0S2的栅极与选择端口 S2相连,源级与数据输入端口 A2相连,漏极与三态缓冲区501的输入端相连;NM0S3的栅极与选择端口 S3相连,源级与数据输入端口 A3相连,漏极与三态缓冲区501的输入端相连;NM0S4的栅极与选择端口 S4相连,源级与数据输入端口 A4相连,漏极与三态缓冲区501的输入端相连;4输入或门502的4个输入端分别与选择端口 Al、A2、A3、A4相连,4输入或门502的输出端与三态驱动器501的三态端口相连;三态驱动器501的输出端口与互连开关的输出端口 YI相连。相对于传统FPGA内部的互连开关,本发明使用三态驱动器501代替传统的驱动器,在配置存储器S1、S2、S3、S4的控制下,可以关断输出,使Yl保持高阻态,消除互连开关输入端对输出端信号线的影响。
[0042]本发明中的非优先配置可编程逻辑模块110结构上类似于一个规模放大的优先配置可编程逻辑模块120,它在FPGA快速启动之后再逐步配置,实现相对复杂的用户功能。具体结构可包括数千个、数万个甚至数百万个各种类型的可编程逻辑单元,例如可编程逻辑单元电路CLB、块存储器BRAM、数字信号处理单元电路DSP、输入输出电路1B、时钟管理电路CMT、高速串行收发器SerDes、通信协议电路(TEMAC/PC1-E/CAN总线控制器)等。
[0043]本发明中使用了一种改进的FPGA配置方法600,传统FPGA只需要上电、清零、配置、启动共四个环节,并且这一过程只执行I次,本发明中为了实现快速启动,对于优先配置可编程逻辑模块120的配置存储器阵列需要进行优先配置,所以在配置流程中新增了部分配置和局部启动两个环节。本发明中的FPGA配置方法如图6所示。
[0044](I)首先进行FPGA电上电601;
[0045](2)上电完成后,进行FPGA全局清零602;
[0046](3)清零完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的配置命令码流段与数据码流段,对优先配置可编程逻辑模块进行配置603;
[0047](4)优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的启动命令码流段和填充码流段,对优先配置可编程逻辑模块进行快速启动604;
[0048](5)在优先配置可编程逻辑模块启动成功后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的配置命令码流段与数据码流段,对非优先配置可编程逻辑模块进行配置605;
[0049](6)非优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的启动命令码流段和填充码流段,对非优先配置可编程逻辑模块进行全局启动606;
[0050](7)全局启动完成后,FPGA交用户操作607。
[0051 ]图7是本发明快速启动FPGA的配置方法所需的码流结构,相对于传统FPGA的配置码流,本发明将器件识别/初始化码流段之后的配置命令、配置数据、启动命令和填充码流段进行了拆分,先将涉及优先配置可编程逻辑模块的码流段独立出来,进行优先写入,之后再将剩余的非关键模块涉及的码流段写入FPGA。本发明配置码流的码流结构具体由以下九段组成:器件识别/配置初始化码流段701、优先配置可编程逻辑模块120所需的命令码流段702、优先配置可编程逻辑模块120所需的数据码流段703、启动优先配置可编程逻辑模块120区域所需的命令码流段704、等待局部启动完成所需的填充码流段705、非优先配置可编程逻辑模块110所需的命令码流段706、非优先配置可编程逻辑模块110所需数据码流段707、启动非优先配置可编程逻辑模块110所需的命令码流段708、等待全局启动完成所需的填充码流段709。
【主权项】
1.一种用于快速启动FPGA的配置电路,其特征在于:所述配置电路,包括三维寻址的配置存储器阵列、配置控制中心和“行”配置电路;三维寻址的配置存储器阵列将FPGA的配置存储器阵列按照逻辑资源的物理结构需求而设计成具有相同高度的“行”,使用行地址ADDR_Row进行寻址,将每一 “行”中的配置存储器按照所控制的逻辑资源类型不同而区分设计成若干“列”,采用列地址ADDR_Col进行寻址,将每一“列”中的配置存储器设计成若干个I位宽的数据“帧”,采用辅地址ADDRjninor进行寻址;通过三层次的地址来定位每个模块的具体配置帧的位置,逐帧将配置数据写入所需的配置存储单元矩阵,实现独立的、针对单个基本规模的可编程电路模块的分别配置;以实现在对FPGA中大部分配置存储器单元不产生影响的情况,完成对某一局部区域配置存储器的快速配置; 配置控制中心接收上电复位信号、全局清零结束反馈信号,产生清零使能信号、全局置位信号,控制FPGA的整体清零行为;接收从FPGA外部读入的配置码流,含配置码流配置命令和配置数据,产生若干个配置数据“字”、配置帧地址,完成优先配置可编程逻辑模块的快速配置和非优先配置可编程逻辑模块的正常配置;接收优先配置可编程逻辑模块和非优先配置可编程逻辑模块的配置完成反馈信号,产生分别针对上述优先配置可编程逻辑模块和非优先配置可编程逻辑模块的全局置位释放信号、全局写使能信号和全局端口三态释放信号,分别完成优先配置可编程逻辑模块的快速启动和非优先配置可编程逻辑模块的正常启动; “行”配置电路,接收从配置控制中心发出的配置数据“字”,通过位宽转换,成为一个“帧”数据,并通过驱动器发送至配置存储器阵列的一组位线上,对配置存储器进行数据写入;接收从配置控制中心发出的配置帧地址,帧地址包括“行”地址、“列”地址和“辅”地址,解码后成为一个“帧”的选通控制信号,通过驱动器发送到配置存储器阵列的一条对应字线上,完成对相应配置存储器“帧”的字线开启。2.一种快速启动FPGA的电路架构,其特征在于:包括优先配置可编程逻辑模块、非优先配置可编程逻辑模块和配置电路; 优先配置可编程逻辑模块包括数个高速接口电路、数个通信协议电路、数十个至数百个可编程逻辑电路和数十个至数百个用户接口电路;其中高速接口电路、通信协议电路、可编程逻辑电路和用户接口电路为可编程逻辑资源; 优先配置可编程逻辑模块中还包括边界隔离电路,用以在优先配置时序关键电路模块与非优先配置的非关键时序电路模块之间进行信号隔离,避免相互之间的影响; 非优先配置可编程逻辑模块包括数千个至数万个可编程逻辑单元、数千个至数万个用户接口电路、数十个至数百个块存储器、数十个至数百个数字信号处理器、数十个至数百个时钟管理器、数个处理器等各类高性能电路模块,用以在FPGA快速启动之后逐步配置,实现相对复杂的用户功能;其中可编程逻辑单元、用户接口电路、块存储器、数字信号处理器、时钟管理器、处理器的各类高性能电路模块为可编程逻辑资源; 配置电路,读取FPGA外部的配置码流,先对优先配置可编程逻辑模块实现快速配置和启动,完成对电子系统上电响应时间要求较快即10ms以内的逻辑功能,再对非优先配置可编程逻辑模块进行配置和启动,完成用户其余的各种逻辑功能。3.根据权利要求2所述的一种快速启动FPGA的电路,其特征在于:所述配置电路,包括三维寻址的配置存储器阵列、配置控制中心和若干个“行”配置电路;三维寻址的配置存储器阵列将FPGA的配置存储器阵列按照逻辑资源的物理结构需求而设计成具有相同高度的“行”,使用行地址ADDR_Row进行寻址,将每一“行”中的配置存储器按照所控制的逻辑资源类型不同而区分设计成若干“列”,采用列地址ADDR_Col进行寻址,将每一“列”中的配置存储器设计成若干个I位宽的数据“帧”;采用辅地址ADDRjninor进行寻址,通过三层次的地址来定位每个模块的具体配置帧的位置,逐帧将配置数据写入所需的配置存储单元矩阵,实现独立的、针对单个基本规模的可编程电路模块的分别配置;以实现在对FPGA中大部分配置存储器单元不产生影响的情况,高效完成对某一局部区域配置存储器的快速配置; 配置控制中心接收上电复位信号、全局清零结束反馈信号,产生清零使能信号、全局置位信号,控制FPGA的整体清零行为;接收从FPGA外部读入的配置码流,含配置码流配置命令和配置数据,产生若干个配置数据“字”、配置帧地址,完成优先配置可编程逻辑模块的快速配置和非优先配置可编程逻辑模块的正常配置;接收优先配置可编程逻辑模块和非优先配置可编程逻辑模块的配置完成反馈信号,产生分别针对上述优先配置可编程逻辑模块和非优先配置可编程逻辑模块的全局置位释放信号、全局写使能信号和全局端口三态释放信号,分别完成优先配置可编程逻辑模块的快速启动和非优先配置可编程逻辑模块的正常启动; “行”配置电路,接收从配置控制中心发出的配置数据“字”,通过位宽转换,成为一个“帧”数据,并通过驱动器发送至配置存储器阵列的一组位线上,对配置存储器进行数据写入;接收从配置控制中心发出的配置帧地址,帧地址包括“行”地址、“列”地址和“辅”地址,解码后成为一个“帧”的选通控制信号,通过驱动器发送到配置存储器阵列的一条对应字线上,完成对相应配置存储器“帧”的字线开启。4.根据权利要求2所述的一种快速启动FPGA的电路,其特征在于:所述优先配置可编程逻辑模块内包含数十至数百个边界隔离电路,每个边界隔离电路由数十至数百个带有关断功能的互连开关组成。5.根据权利要求2所述的一种快速启动FPGA的电路,其特征在于:所述优先配置可编程逻辑模块、非优先配置可编程逻辑模块的逻辑资源的类型和规模并非固定不变的,可根据用户需求,在整体设计时进行增减。6.一种快速启动FPGA的配置方法,其特征在于实现步骤如下: (1)首先进行FPGA电上电; (2)上电完成后,进行FPGA全局清零; (3)清零完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的配置命令码流段与数据码流段,对优先配置可编程逻辑模块进行配置; (4)优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于优先配置可编程逻辑模块的启动命令码流段和填充码流段,对优先配置可编程逻辑模块进行快速启动; (5)在优先配置可编程逻辑模块启动完成后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的配置命令码流段与数据码流段,对非优先配置可编程逻辑模块进行配置; (6)非优先配置可编程逻辑模块配置完成后,配置电路读取配置码流中用于非优先配置可编程逻辑模块的启动命令码流段和填充码流段,对非优先配置可编程逻辑模块进行全局启动; (7)全局启动完成后,FPGA交用户操作。7.根据权利要求6所述的快速启动FPGA的配置方法,其特征在于:所述配置码流的码流结构具体由以下九段组成:器件识别/配置初始化码流段、优先配置可编程逻辑模块所需的命令码流段、优先配置可编程逻辑模块所需的数据码流段、启动优先配置可编程逻辑模块区域所需的命令码流段、等待局部启动完成所需的填充码流段、非优先配置可编程逻辑模块所需的命令码流段、非优先配置可编程逻辑模块所需数据码流段、启动非优先配置可编程逻辑模块所需的命令码流段、等待全局启动完成所需的填充码流段。
【文档编号】H03K19/177GK105958995SQ201610267195
【公开日】2016年9月21日
【申请日】2016年4月27日
【发明人】陈雷, 张彦龙, 李学武, 文治平, 赵元富, 刘增荣, 孙雷, 王硕, 张健, 倪劼
【申请人】北京时代民芯科技有限公司, 北京微电子技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1