一种fpga配置电路架构的制作方法

文档序号:7522385阅读:182来源:国知局
专利名称:一种fpga配置电路架构的制作方法
技术领域
本发明涉及一种FPGA配置电路架构,特别是一种针对FPGA动态重构而优化的配置电路架构,属于集成电路领域。
背景技术
图1是一个现场可编程门阵列(FPGA,Field Programmable Gate Array)的简化示意图,例如FPGA100。与其它集成电路一样,FPGA100也是在一个半导体衬底平面上制造的,在此处为了方便示意FPGA100的配置原理,在功能上把FPGA100分为配置部分120和逻辑部分150两个层次。配置部分120通常包括配置电路122和配置存储器125。配置电路122包括专用或者双功能Pin相链接的输入/输出接口电路,例如边界扫描电路(JTAG)、串行并行配置接口电路(Selectmap)、自动重构用的内部控制访问端口(ICAP)等。配置存储器125包括以‘帧’ 140方式排列的存储器单元。这些由存储单元组成的帧140长度一直延伸至整个 FPGA100的高度,使用专用的帧寻址电路(未画出)来完成每一帧的寻址。逻辑部分150包括以行和列分布的可编程逻辑模块(以下简称CLB)、输入输出模块(IOB)以及分布在CLB之间的由互连线152和多路选择器153组成的可编程互连资源。 在FPGA正常工作期间,通过配置存储器125单元内的值,来定义CLB、IOB以及互连资源的布线选通和逻辑功能。逻辑部分150还可能包括专用随机存储器模块(以下简称BRAM)、时钟延时锁定模块(以下简称DLL)和其它IP模块。针对一个FPGA100配置电路部分120,图2简单演示了配置存储单元的‘帧’排列方式。图2中共包括12列配置存储器单元214、215、216、217、218、219、220、221、222、223、 224和225,还包括一个帧数据寄存器210和一个列地址译码器212。帧数据寄存器210是一个大量移位寄存器组成的链路,可以一次移入配置数据中的一帧。例如在配置存储器列 216中的存储单元时,首先配置数据被串行移入帧数据寄存器210,接着列地址译码器选择列216,最后帧数据寄存器210中的数据以并行的方式写入列216中。使用图2中的传统配置方式来对配置存储器进行编程有一个明显的缺点,就是 FPGA器件在同系列不同规模设计和使用时,配置帧的长度也必须相应做出变化,根据实际器件的不同帧长度范围可能由小于100到超过10000位不等。因而,这种配置方法不利于同谱系内器件规模的扩充。另外一个缺点是,在图2中的帧是通过1维列地址进行寻址的,这种寻址方式在重构时最小配置单位帧是FPGA器件纵向高度上的整列存储单元,这意味着即使只需要重配置其中的某一位,也不得不重写整个帧上的所有配置位,给用户设计带有动态重构功能的电路时受到极大的限制,而且这种限制随着器件规模的增大、帧长度的增加会越来越严重。因而有必要提出一种更先进的配置电路架构,以便拥有更好的可升级性和动态可重构能力。

发明内容
本发明的技术解决问题是克服现有技术的不足之处,提供了一种FPGA配置电路架构,解决了传统FPGA配置电路架构中要通过写入多帧配置数据才能完成一个可编程逻辑模块CLB的问题和帧长度不确定、不利于器件规模扩充的问题。本发明的技术解决方案是一种FPGA配置电路架构,包括配置存储器、配置中心、分布式列地址译码器、帧数据寄存器、衍生寄存器、行控制电路和多路选择器;配置存储器用于存储用户的配置数据并且根据所述配置数据控制FPGA内的可编程逻辑电路实现用户所设计的逻辑功能;所述配置存储器被划分为若干行和若干列,每一列又进一步划分为多个配置存储单元矩阵;所述配置存储器采用行地址、列地址和辅地址来寻址定位配置存储单元矩阵;所述辅地址为所述配置存储单元矩阵的地址;分布式列地址译码器对所述列地址进行译码且所述配置存储器的每一行中都包含有一个分布式列地址译码器;配置中心包括配置控制状态机和行地址译码电路,其中,行地址译码电路将译码得到的行地址送入所述行控制电路中,行控制电路根据得到的行地址控制对那一行进行读写操作;所述配置控制状态机产生控制信号控制帧数据寄存器和衍生寄存器工作;所述帧数据寄存器用于对用户的配置数据进行移位操作;所述衍生寄存器在帧数据寄存器和由行地址、列地址和辅地址来寻址定位的配置存储单元矩阵之间进行数据锁存和数据交换;多路选择器分布在行控制电路和配置存储器之间,将数据总线选通至根据辅地址所寻址定位的配置存储单元矩阵;所述数据总线为配置中心、帧数据寄存器、衍生寄存器、 行控制电路和配置存储器之间数传用户配置数据的总线。所述衍生寄存器和帧数据寄存器均包括多个数据寄存器组,且每个数据寄存器组可寄存一个32位字。所述帧数据寄存器列地址和行地址均采用独热码编码。所述的配置存储器的类型可以是易失存储单元、非易失存储单元或是它们的混合类型。本发明与现有技术相比的有益效果是(1)采用本发明配置电路架构的FPGA器件可使用一帧配置数据、一次性完成一个可编程逻辑模块CLB的配置,显著缩短FPGA器件在动态重构应用中的配置时间。(2)采用本发明配置电路架构的FPGA器件配置帧长度是固定的,降低了配置中心的设计复杂度。(3)采用本发明配置电路架构的FPGA器件更易于同谱系的规模扩充。


图1是FPGA器件分层示意图;图2是采用一维地址的FPGA帧阵列示意图;图3是本发明配置电路架构的模块详图;图4是本发明配置电路架构的帧物理分布简单示意图;图5是图3所示配置电路架构中行部分的详细图示;
图6是图3所示配置中心的模块图示;图7是图3所示帧数据寄存器和衍生寄存器的结构图;图8是图7中2位数据寄存器单元和2位衍生寄存器单元的详细电路图;图9是本发明行控制电路单元的详细电路图;图10是本发明多路选择器的内部结构图;图11是本发明配置电路架构在配置某一行数据时的流程示意图。
具体实施例方式本发明是一种FPGA配置电路架构,其具体包括配置存储器、配置中心、分布式列地址译码器、帧数据寄存器、衍生寄存器、行控制电路和多路选择器。在图3中可见这些电路模块之间的关系,配置存储器用于存储用户的配置数据并且根据配置数据控制FPGA内的可编程逻辑电路实现用户所设计的逻辑功能;配置存储器被划分为若干行和若干列,每一列又进一步划分为多个配置存储单元矩阵;配置存储器采用行地址、列地址和辅地址来寻址定位配置存储单元矩阵;辅地址为配置存储单元矩阵的地址;分布式列地址译码器对列地址进行译码且配置存储器的每一行中都包含有一个分布式列地址译码器;配置中心包括配置控制状态机和行地址译码电路,其中,行地址译码电路将译码得到的行地址送入行控制电路中,行控制电路根据得到的行地址控制对那一行进行读写操作;配置控制状态机产生控制信号控制帧数据寄存器和衍生寄存器工作;帧数据寄存器用于对用户的配置数据进行移位操作;衍生寄存器在帧数据寄存器和由行地址、列地址和辅地址来寻址定位的配置存储单元矩阵之间进行数据锁存和数据交换;多路选择器分布在行控制电路和配置存储器之间,将数据总线选通至根据辅地址所寻址定位的配置存储单元矩阵;数据总线为配置中心、帧数据寄存器、衍生寄存器、行控制电路和配置存储器之间数传用户配置数据的总线;配置电路架构中的电路模块除配置中心外都是采用行划分结构,具体划分为行 301、行302、行303和行304,每一行采用相同的电路结构有利于芯片规模扩大时的堆叠设计。在FPGA配置电路架构中,配置中心310从配置接口电路(配置接口电路主要用于 FPGA芯片和外界进行数据交换而用的接口电路)中接收配置数据388和地址398,通过配置回读数据总线380、381 (a d)与帧数据寄存器321、322、323、324交换配置数据或回读数据。通过控制信号总线3010向帧数据寄存器321、322、323、324和衍生寄存器331、332、 333、334发送配置回读相关的多条控制信号。通过读写控制线3011向行控制电路发送读写控制信号。通过地址总线390所包含的行地址线391向行控制电路341、342、343、344发送行地址译码使能信号。通过地址总线390所包含的列地址线393向分布式列地址译码器361、362、363、364发送列地址。通过地址总线390所包含的辅地址线392向多路选择器 351、352、353、354 发送辅地址。帧数据寄存器321、322、323、324和衍生寄存器331、332、333、334之间通过配置回读数据总线382 (a d)交换配置数据或是回读数据。
衍生寄存器331、332、333、334和行控制电路;341、;342、;343、344之间通过配置回读数据总线383 (a d)交换配置数据或是回读数据。行控制电路;341,342,343、344和多路选择器351、352、353、3M之间通过配置回读数据总线384 (a d)交换配置数据或是回读数据。多路选择器;351、;352、;353、;^4和配置存储器370所包含的列371(£1 (1)、372(£1 d) ,373 (a d)之间通过配置回读数据总线385 (a d)交换配置数据或是回读数据。本发明的配置存储器用于存储用户的配置数据并且根据配置数据控制FPGA内的可编程逻辑电路实现用户所设计的逻辑功能。配置存储器在本发明配置电路架构中与传统配置电路架构中所起到的作用是相同的,不同的是二者所采用的帧物理分布结构。例如,图 4中描述了采用现有配置电路架构的FPGA和采用本发明配置电路架构FPGA的帧物理分布结构区别,一帧配置数据462在传统的配置架构460中是呈一条纵线的物理分布461,而在本发明架构464中是以一个CLB模块大小矩阵分布463,图4只是这种区别的简单示意,实际电路中CLB的数量根据FPGA规模大小而非常多,从几百至几万都有可能。由于传统配置电路架构一帧配置数据在物理分布上纵向跨过整个FPGA器件的高度,如果所跨过的可配置逻辑模块(如CLB)内定义了用户分布式存储器,则动态重配置这些模块将引起用户分布式存储器内值的变化,造成功能失效,所以在传统配置架构下动态重构严重影响了 FPGA 用户定义设计的自由度。本发明配置架构可使用一帧码流462完成对一个可配置逻辑模块(例如CLB46;3)的配置,而不影响到其它的可配置逻辑模块,有效提升了用户设计自由度。进一步来看,在FPGA器件动态重构应用中,用户设计的逻辑电路通常以可配置逻辑模块(如CLB)为单位来实现,采用本发明架构有效避免了动态重配置中的冗余配置,满足了动态重构应用中对功能暂停时间的苛刻要求。依照针对FPGA动态重构而优化的思路,本发明配置存储器被划分为若干行和若干列,每一列又进一步划分为多个配置存储单元矩阵。为了更详细说明配置存储器370 的物理分布,选取配置电路架构中的最上面一行进行描述(每一行电路、版图上都是相同的),图5中标示出了与配置存储器列371 (a)相接的多路选择器351,以及与多路选择器 351相接的行控制电路341,行301所包含的帧数据寄存器321和衍生寄存器331并未标出。图5中的配置存储器列371(a)、373(a)以及中间的虚线代表了第一行的其它配置存储器列,而并不是特指这2个配置存储器列。每个配置存储器列被进一步划分为8个配置存储单元矩阵,每个配置存储单元矩阵可对一个可编程逻辑模块(CLB)内的用户可配置资源进行配置以完成用户特定的功能。 在实际电路中可编程逻辑模块(CLB)不仅包含了配置存储单元矩阵,还包括用户可配置资源,这与图1分层表述的概念是相似的。为了简化理解,图5中的CLB<0>、CLB<1>、CLB<2>、 CLB<3>、CLB<4>、CLB<5>、CLB<6>、CLB<7>被用来特指配置电路架构中的8个配置存储单元矩阵。图5中每个配置存储单元矩阵在物理分布结构上对应于图4中的可配置逻辑模块,采用唯一的行地址391、列地址393和辅地址392来寻址定位,行地址391是行控制电路的使能,而列地址393和辅地址392则分别是分布式列地址译码器361和多路选择器351 的输入。在配置过程中,当行地址译码信号有效时,一帧配置数据可通过行控制电路341从衍生寄存器331传输至多路选择器351。然后,列地址393和辅地址392的译码结果控制下,多路选择器351将一帧配置数据写入配置存储器列373 (a)的配置存储单元矩阵CLB<3> 中。在回读过程中,数据流向与配置过程相反,在列地址393、辅地址392的控制下,配置存储单元矩阵CLB<3>中的一帧配置数据通过多路选择器351和行控制电路341写入衍生寄存器331,再送入数据寄存器321中移位输出。相对于传统的一维地址来说,本发明将配置阵列分割为多维寻址的阵列使得FPGA 器件的规模升级和动态重构能力都极大提升。器件中每一行都和其它行结构相同或类似, 都有自己的帧数据寄存器、衍生寄存器、行控制电路、多路选择器、分布式地址译码电路和配置存储器列。无论器件的规模有多大,每一行中的一列或多列配置存储单元都可以使用相同固定长度的帧数据来配置或者回读。因此,随着FPGA器件规模的增大,只是简单的增加行的数目即可,这种架构保证了器件的可升级能力。这种多维地址分割法也使FPGA器件的动态重构能力极大提升,例如可以单独对行地址、列地址和辅地址所选定的一个标准可配置模块存储单元进行重配置,而不是必须对一整列可配置模块的存储单元进行重配置。在极限理想条件下,可对每一位存储单元进行地址、列地址和辅地址寻址,以实现对每一位存储单元的重配置。在本发明一种选取了比较折中的应用实例,使用三位地址来分割配置存储阵列,可以实现对第i行、第j列的第M 块标准可配置模块的存储单元进行独立重配置。还需要特别声明的是,配置架构采用多维地址寻址方法,此处维数可等于2、3或更大整数,本实例使用三维地址行地址、列地址、辅地址。此处的行、列、矩阵只是一个抽象的概念,无须一定对应到物理结构,例如通过旋转90度,行的概念也可以应用到列的设计思路中。行地址译码使能信号均采用独热码(one-hot)编码。而且配置存储器的类型可以是易失存储单元、非易失存储单元或是它们的混合类型。本发明中配置存储器的每一行中都包含有一个分布式列地址译码器,因为一般情况下列地址位数较多,一级译码很难实现,所以分布式列地址译码器由多级地址译码器和输出驱动构成。图5中的分布式列地址译码器361对列地址393进行译码,产生列读写使能信号,控制对应配置存储器列371(a) 373(a)的读写使能。配置中心310包括配置控制状态机610和行地址译码电路620,如图6所示。其中,行地址译码电路620将配置接口电路输出的地址398包含的行地址621译码,得到行地址译码使能信号391通过地址总线390送入行控制电路341、342、343、344中,行控制电路根据得到的行地址译码使能信号391对行301、302、303、304中的某一行配置存储器列进行
读写操作。配置控制状态机610是根据配置电路在工作中所处于的各种状态而设计的,每个实例中可以不同。它的核心功能就是产生控制信号控制帧数据寄存器、衍生寄存器以及行控制电路的工作。本发明实例中控制信号总线3010中包含使能信号824,回读衍生控制信号860,移位信号862,衍生写控制信号864,读写控制信号866和时钟868。使能信号824 是帧数据寄存器321、322、323、324和衍生寄存器331、332、333、334的门控时钟使能,值为 1时上述寄存器才能在时钟868的上升沿采集数据,值为0时锁止上述寄存器,不做任何动作。回读衍生控制信号860控制帧数据寄存器321、322、323、324是否从衍生寄存器331、 332、333、334中接收回读数据,当值为1时帧数据寄存器321、322、323、324并行从衍生寄存器331、332、333、334中接收回读数据,当值为0时帧数据寄存器321、322、323、324可进行配置或回读数据串行移位。移位信号862控制帧数据寄存器321、322、323、324中的数据是否进行移位,当值为1时进行串行移位,当值为0时锁存当前值,不进行数据移位动作。 衍生写控制信号864控制着衍生寄存器331、332、333、334是否能够被写入数据,当值等于 0时,衍生寄存器331、332、333、334可以接收配置或是回读数据,当值等于1时,衍生寄存器331、332、333、334锁存当前值,不能被写入新的数据。读写控制信号866控制衍生寄存器331、332、333、334选择是从配置存储单元矩阵接收回读数据,还是从帧数据寄存器321、 322、323、3对接收配置数据,一般配置过程中值为1,衍生寄存器331、332、333、3;34从帧数据寄存器321、322、323、3M接收配置数据,而在回读过程中值为0,衍生寄存器331、332、 333,334选择从配置存储单元矩阵接收回读数据。时钟868为帧数据寄存器321、322、323、 324和衍生寄存器331、332、333、334的共同时钟信号,一般是指FPGA内的配置时钟。在配置中心310中,从配置接口电路输出的配置数据388经过驱动直接送至配置回读数据总线380。图7是本发明的帧数据寄存器321和衍生寄存器331框图,帧数据寄存器321具体对应了图3中的帧数据寄存器321,衍生寄存器331具体对应了图3中的衍生寄存器331。 帧数据寄存器321和衍生寄存器331之间通过配置回读数据总线382 (a)交换数据,衍生寄存器331和与之对应的行控制电路341 (a)通过配置回读数据总线383 (a)交换数据。衍生寄存器和帧数据寄存器均包括多个数据寄存器组,且每个数据寄存器组可寄存一个32位字。帧数据寄存器321包含L个32位数据寄存器组,如721,722和723,此处L根据 FPGA可编程逻辑单元CLB的设计而不同,由配置存储单元矩阵的高度决定。这L个数据寄存器组采用串行结构连接,如32位数据780是数据寄存器组721的输入,而数据寄存器组 721的输出32位数据782又作为下一级寄存器组722的输入,数据寄存器组722的输出32 位数据784又是下一级数据寄存器组723的输入,如此反复。32位数据寄存器组内部包含 32个并行放置的数据寄存器721-1等。值得说明的是,此处32位数据在每一级之间是并行传输的,而整体上它们属于串行传输方式。在配置中心310所发出的控制信号总线3010控制下,帧数据寄存器321可进行配置数据的移位输入、回读数据移位输出等操作。帧数据寄存器列地址和行地址均采用独热码编码。与帧数据寄存器321相对应,衍生寄存器331也包含L个32位的衍生寄存器组, 如731、732和733,此处L值和帧数据寄存器321的L值相同。衍生寄存器331内的32位的衍生寄存器组731、732、733与帧数据寄存器321内的数据寄存器组721,722、723结构相似,也是由并行放置的32个衍生寄存器构成,但是不同的是每个32位衍生寄存器组之间是没有数据交换的,它们通过配置回读数据总线382(a)锁存对应的32位数据寄存器组721, 722和723的配置数据,通过配置回读数据总线383(a)接收并锁存对应的行控制电路341 传输的配置存储单元矩阵回读数据。每一个数据寄存器组(721、722、72;3)都包含32个1位数据寄存器,例如数据寄存器组721包含寄存器721-1,721-2,721-3,721-4,直到721-32。每一个衍生寄存器组(731、 732,733)也包含32个1位数据寄存器,如寄存器731-1,731-2,731-3,731-4,直到731-32。 在实际电路中,数据寄存器组和衍生寄存器组的寄存器单元在物理布局上相邻,例如图8 中给出了数据寄存器组721、722第一个寄存器单元721-1、722-1和衍生寄存器组731、732第一个寄存器单元731-1、732-1的详细电路图,从图中可见寄存器单元721_1、722_1、 731-1,732-1共用配置中心310输出的控制信号,具体包括使能信号824,回读衍生控制信号860,移位信号862,衍生写控制信号864,读写控制信号866和时钟868。寄存器单元721-1包含1个多路复用器850、1个D触发器854。多路复用器850 根据回读衍生控制信号860、移位信号862,来选择D触发器854的输出882、D触发器856 的输出886和前级的配置数据其中之一作为输出880,多路复用器850的输出880又接入D 触发器854的数据输入端。寄存器单元731-1包含1个多路复用器852、1个D触发器856和一个反相器858。 多路复用器852根据衍生写控制信号864、读写控制信号866,选择D触发器856的输出886、 D触发器854的输出882和从配置存储单元读出的回读数据输入η其中之一作为输出884, 多路复用器852的输出884又接入D触发器856的数据输入端。D触发器856的输出886 通过反相器858送至配置数据输出η。寄存器单元722-1包含1个多路复用器851、1个D触发器855。多路复用器851 根据回读衍生控制信号860、移位信号862,来选择D触发器855的输出883、D触发器856 的输出887和前级的配置数据其中之一作为输出881,多路复用器851的输出881又接入D 触发器855的数据输入端。寄存器单元732-1包含1个多路复用器853、1个D触发器857和一个反相器859。 多路复用器853根据衍生写控制信号864、读写控制信号866,选择D触发器857的输出 887、D触发器855的输出883和从配置存储单元读出的回读数据输入n+1其中之一作为输出885,多路复用器853的输出885又接入D触发器857的数据输入端。D触发器857的输出887通过反相器859送至配置数据输出n+1。在配置过程中,寄存器单元721-1、722_1串行移入配置数据(此时回读衍生控制信号860值为0、移位信号862值为1),再并行的写入寄存器单元731-1、732-1中(此时衍生写控制信号864值为0、读写控制信号866值为1),进而通过行控制电路341、多路选择器 351的相应单元写入配置存储器370中;而在回读过程中,寄存器单元731-1、732-1首先通过行控制电路341、多路选择器351的相应单元从配置存储器370中获得回读数据(此时衍生写控制信号864值为0、读写控制信号866值为0),然后锁存回读数据(此时衍生写控制信号864值为1、读写控制信号866值为X),寄存器单元721_1、722_1 (此时回读衍生控制信号860值为1、移位信号862值为X)再并行的从寄存器单元731-1、732-1中读取回读数据,通过串行移出(此时回读衍生控制信号860值为0、移位信号862值为1)。本发明行控制电路341、342、343、344在衍生寄存器331、332、333、334和多路选择器351、352、353、354之间交换数据,这种数据交换在配置和回读时传输方向是相反的。行控制电路341、342、343、344内部由若干行控制电路单元900构成,这些行控制电路单元900 具有双向数据传输能力,并且可以受控关闭这种数据传输能力。图9所示为行控制电路单元900的内部结构,它由多路选择器920、多路复用器930、三态驱动器910和反相器940构成。三态驱动器910的输入端A与多路复用器930的输出端Y连接,三态驱动器910的输入出端Y与多路选择器920的输入端D连接,三态驱动器910的使能端EN与行地址译码使能信号391连接。多路选择器920的数据输入端D与三态驱动器910的输出端相连,选择端S与读写控制信号3011相连,输出Y0、Y1分别于回读数据输出921、配置数据输出922相连。多路复用器930的输出端Y与三态驱动器910的输入端A相连,输入端DO、Dl分别于配置数据输入931、配置数据输出932相连,选择端S与读写控制信号941的反信号相连,此处反相器940提供了读写控制信号3011的反信号。在行控制电路单元900中,当相应的行地址译码使能信号391变为有效时,三态驱动器910被使能,可向外驱动数据,多路复用器 930再根据读写控制信号3011的反信号来选择配置数据或是回读数据作为输入,相应的, 多路选择器920也根据读写控制信号3011来选择将数据驱动输出至配置存储器370方向或是帧数据寄存器321、322、323、3M方向。例如,在配置过程中,读写控制信号3011值为 1,多路复用器930选择DO端的配置数据输入931,经三态驱动器910驱动后由多路选择器 920的Dl端配置数据输出922输出至配置存储器370 ;在回读过程中,读写控制信号3011 值为0,多路复用器930选择Dl端的回读数据输入932,经三态驱动器910驱动后由多路选择器920的DO端回读数据输出921输出至相应的衍生寄存器331、332、333、334。本发明的多路选择器351、352、353、3M功能是根据辅地址将配置存储器列内的8 个配置存储单元矩阵(分别为 CLB<0>、CLB<1>、CLB<2>、CLB<3>、CLB<4>、CLB<5>、CLB<6>、 CLB<7>)之一与行控制电路相连接,即形成数据通路。以图5所示为例,在配置过程中,配置数据可从行控制电路341经由多路选择器351写入由辅地址392选定的配置存储单元矩阵 (例如图5中配置存储器列373(a)的CLB<3>);在回读过程中,回读数据可从由辅地址392 选定的配置存储单元矩阵(例如图5中配置存储器列373(a)的CLB<3>)经由多路选择器 351和行控制电路341送至衍生寄存器331。图10描述了多路选择器351的内部结构,共包括N个1至8多路选择器单元 1010 (1) 1010 (η),N的值等于1个配置存储单元矩阵所包含的配置数据位数。1至8多路选择器单元将3位辅地址译码,控制选通1路输入被送至那1路输出。N个1至8多路选择器单元1010(1) 1010 (η)的所有第一个输出信号送至CLB<0>、第二个输出信号送至 CLB<1>,依此类推。N个1至8多路选择器单元组合在一起,即可在图5中的配置回读数据总线384(a)(对应图10中的1020(1) (η))与由辅地址392选定的配置存储单元矩阵 (例如图5中配置存储器列373(a)的CLB<3>)之间构成数据总线通路。例如3位辅地址为 100时,所有1至8多路选择器单元1010(1) 1010 (η)的输入都被从第四个输出端输出, 构成配置回读数据总线,送至CLB<4>。图11是本发明一种应用实例中配置第i行配置存储器的流程,第i行第j列辅地址m的配置存储单元矩阵所对应的数据首先串行移入帧数据寄存器(i),再并行写入衍生寄存器(i),然后经由行控制电路(i)和多路选择器(i)从衍生寄存器中将配置数据写入配置存储单元矩阵(i,j,m)中,每当完成一次写入m自动加1。当m= 15时代表第i行的第j列所有配置存储单元矩阵已配置完成,可进行第j+Ι列的配置操作。在数据从衍生寄存器向配置存储器列最后一个配置存储单元矩阵写入的同时,第i行第j+Ι列存储单元所对应的帧数据寄存器(i)可以串行移入新的配置数据,然后再重复第j列的类似操作即可完成第j+Ι列的存储单元写入。以此类推当完成全部列地址的配置操作后,第i行译码使能信号失效,第i+Ι行译码使能有效,开始下一行的配置任务,所有行完成配置任务后整个 FPGA芯片也就完成配置。
权利要求
1.一种FPGA配置电路架构,其特征在于包括配置存储器、配置中心、分布式列地址译码器、帧数据寄存器、衍生寄存器、行控制电路和多路选择器;配置存储器用于存储用户的配置数据并且根据所述配置数据控制FPGA内的可编程逻辑电路实现用户所设计的逻辑功能;所述配置存储器被划分为若干行和若干列,每一列又进一步划分为多个配置存储单元矩阵;所述配置存储器采用行地址、列地址和辅地址来寻址定位配置存储单元矩阵;所述辅地址为所述配置存储单元矩阵的地址;分布式列地址译码器对所述列地址进行译码且所述配置存储器的每一行中都包含有一个分布式列地址译码器;配置中心包括配置控制状态机和行地址译码电路,其中,行地址译码电路将译码得到的行地址送入所述行控制电路中,行控制电路根据得到的行地址控制对那一行进行读写操作;所述配置控制状态机产生控制信号控制帧数据寄存器和衍生寄存器工作;所述帧数据寄存器用于对用户的配置数据进行移位操作;所述衍生寄存器在帧数据寄存器和由行地址、列地址和辅地址来寻址定位的配置存储单元矩阵之间进行数据锁存和数据交换;多路选择器分布在行控制电路和配置存储器之间,将数据总线选通至根据辅地址所寻址定位的配置存储单元矩阵;所述数据总线为配置中心、帧数据寄存器、衍生寄存器、行控制电路和配置存储器之间数传用户配置数据的总线。
2.根据权利要求1所述的一种FPGA配置电路架构,其特征在于所述衍生寄存器和帧数据寄存器均包括多个数据寄存器组,且每个数据寄存器组可寄存一个32位字。
3.根据权利要求1所述的一种FPGA配置电路架构,其特征在于所述帧数据寄存器列地址和行地址均采用独热码编码。
4.根据权利要求1所述的一种FPGA配置电路架构,其特征在于所述的配置存储器的类型可以是易失存储单元、非易失存储单元或是它们的混合类型。
全文摘要
一种FPGA配置电路架构,包括配置存储器、配置中心、分布式列地址译码器、帧数据寄存器、衍生寄存器、行控制电路和多路选择器。通过对传统配置电路架构的改进设计,可将配置数据的帧结构由传统的纵向一位宽物理分布改进为以矩阵形式的物理分布,并且可使用行地址、列地址和辅地址对配置存储单元矩阵寻址,完成单次独立配置。采用此电路架构的FPGA配置方法简化了配置数据的帧长度设置,降低配置指令复杂程度,节约硬件开销;采用此电路架构的FPGA配置方法还能够对FPGA中的可编程逻辑模块进行独立重新配置,而不影响其周围的可编程逻辑模块功能,这为用户的动态重构应用提供节省了宝贵的配置时间,极大提升用户动态重构应用的灵活性。
文档编号H03K19/177GK102361451SQ20111026257
公开日2012年2月22日 申请日期2011年9月6日 优先权日2011年9月6日
发明者刘增荣, 周涛, 孙华波, 尚祖宾, 张帆, 张彦龙, 李学武, 王慜, 郭晨光, 陈雷 申请人:中国航天科技集团公司第九研究院第七七二研究所, 北京时代民芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1