为FPGA码点分配SRAM单元的方法及系统与流程

文档序号:21778968发布日期:2020-08-07 19:52阅读:260来源:国知局
为FPGA码点分配SRAM单元的方法及系统与流程

本发明涉及集成电路技术领域,特别涉及一种为fpga码点分配sram单元的方法。



背景技术:

fpga(fieldprogrammablegatearray,现场可编程逻辑阵列)是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。它的编程控制是靠其配置sram存储单元里的存储值来实现的。fpga的码点是fpga配置sram的存储单元里的数据值(0/1)。

sram中存储的数据排列成如图1所示,当sram的相邻单元存储相反的逻辑值时,由于相邻单元都是相反的逻辑信息,单元之间的干扰容易使相邻单元的电荷丢失,这就是sram的checkboard格式。



技术实现要素:

本发明的目的在于提供一种fpga相关联码点的标识方法,解决现有技术中码点存储在sram中尽量避免产生checkboard格式,以提高fpga的可靠性。

为了解决上述问题,本申请公开了一种为fpga码点分配sram单元的方法,包括:

对fpga所有码点进行标识,所述标识表示所述码点之间的相关性;

判断是否存在与码点具有相关性的其他码点;

如果存在,将该码点分配到存储具有相关性的其他码点的sram单元附近的sram单元;

如果不存在,将该码点随机分配到sram单元。

在一个优选例中,所述fpga包括至少一个一级嵌套模块,所述一级嵌套模块中包括至少一个无嵌套模块,所述无嵌套模块包括至少一个逻辑门。

在一个优选例中,所述对fpga所有码点进行标识的步骤,进一步包括:

归纳所述fpga所有码点的相关性,所述相关性表示码点被同时设置;

定义码点的标识,所述标识中具有至少三个部分,每个部分具有一个或多个字符,第一部分具有表示码点特征的字符,第二部分具有表示码点与无嵌套模块中其他码点相关性的字符,第三部分具有表示码点与一级嵌套模块中其他码点相关性的字符;

判断码点是否与所述无嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第二部分设置为相同的字符;

判断码点是否与所述一级嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第三部分设置为相同的字符;

逐个生成所述fpga中所有码点的标识。

在一个优选例中,所述判断码点是否与所述无嵌套模块中的其他码点具有相关性的步骤,进一步包括,如果码点与所述无嵌套模块中的其他码点都不具有相关性,该码点的标识的第二部分设置为表示否的值。

在一个优选例中,所述判断码点是否与所述一级嵌套模块中的其他码点具有相关性的步骤,进一步包括,如果码点与所述本一级嵌套模块中的其他码点都不具有相关性,该码点的标识的第三部分设置为表示否的值。

在一个优选例中,所述fpga包括至少一个包括一级嵌套模块的二级嵌套模块,所述方法还包括:判断码点是否与所述二级嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第四部分设置为相同的字符,如果没有,该码点的标识的第四部分设置为表示否的值。

在一个优选例中,所述第四部分具有1-3个字符长度。

在一个优选例中,所述标识具有至少4个字符。

在一个优选例中,所述第一部分具有1-3个字符长度。

在一个优选例中,所述第二部分具有1-3个字符长度。

在一个优选例中,所述第三部分具有1-3个字符长度。

本申请还公开了一种为fpga码点分配sram单元的系统,该系统包括:

标识模块,被配置为对fpga所有码点进行标识,所述标识表示所述码点之间的相关性;

判断模块,被配置为判断是否存在与码点具有相关性的其他码点;

分配模块,如果存在,所述分配模块将该码点分配到存储具有相关性的其他码点的sram单元附近的sram单元,如果不存在,所述分配模块将该码点随机分配到sram单元。

本申请还公开了一种为fpga码点分配sram单元的系统,该系统包括:

存储器,用于存储计算机可执行指令;以及

处理器,与所述存储器耦合,用于在执行所述计算机可执行指令时实现如前文描述的方法中的步骤。

本申请还公开了一种计算机可读存储介质所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现如前文描述方法中的步骤。

相对于现有技术,本申请具有以下有益效果:

本申请中,在fpga设计时,将相关码点(即会同时被设置成相同值的码点)用命名的方式作显示标识。在fpga码点分配的时候将这些码点放在相邻位置。这样相邻码点为不同值的情况会大大减少。

附图说明

参考以下附图描述本申请的非限制性和非穷举性实施例,其中除非另有说明,否则相同的附图标记在各个附图中指代相同的部分。

图1示出了现有技术中sram中存储的数据的排列形式。

图2示出了本申请一实施例中为fpga码点分配sram单元的方法的流程图。

图3示出了本申请fpga各级嵌套模块的示意图。

图4示出了本申请一实施例中为fpga码点进行标识的方法的流程图。

图5示出了本申请一实施例中fpga的示意图。

图6示出了本申请一实施例中fpga码点的标识示意图。

图7示出了本申请一实施例中sram中存储的数据的排列形式。

图8示出了本申请一实施例中为fpga码点分配sram单元的系统的框图。

具体实施方式

在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。

本申请的第一实施方式中公开了一种为fpga码点分配sram单元的方法,图2中示出了本申请一实施例中为fpga码点分配sram单元的方法的流程图,该方法包括:

步骤101,对fpga所有码点进行标识,所述标识表示所述码点之间的相关性;

步骤102,判断是否存在与码点具有相关性的其他码点;

步骤103,如果存在与码点具有相关性的其他码点,将该码点分配到存储具有相关性的其他码点的sram单元附近的sram单元;如果不存在与码点具有相关性的其他码点,将该码点随机分配到sram单元。其中,随机分配可以是分配到任意位置或已经分配有码点的sram单元的附近。

在一实施例中,所述fpga包括至少一个一级嵌套模块,所述一级嵌套模块中包括至少一个无嵌套模块,所述无嵌套模块包括至少一个逻辑门。应当理解,fpga可以包括多级嵌套模块,某一级的嵌套模块可以调用下一级嵌套模块。图3示出了fpga的结构示意图,图3中示出了fpga包括两级嵌套模块,二级嵌套模块30可以包括一个或多个一级嵌套模块20,图3中仅以一个示例,二级嵌套模块30可以调用一级嵌套模块20,一级嵌套模块20可以包括一个或多个无嵌套模块10,图3中仅以一个示例,一级嵌套模块20可以调用无嵌套模块10,无嵌套模块10可以包括一个或多个逻辑门,例如,与门、或门、非门等等。本领域技术人员应当理解的是,fpga可以仅包括一级嵌套模块20和无嵌套模块10,不包括二级嵌套模块30。

图4示出了本申请一实施例中为fpga码点进行标识的方法的流程图,所述对fpga所有码点进行标识的步骤进一步包括:

步骤201,归纳所述fpga所有码点的相关性,所述相关性表示码点被同时设置。例如,同时被设置为1,当然也可以同时被设置为0。

步骤202,定义码点的标识,所述标识中具有至少三个部分,每个部分具有一个或多个字符,第一部分具有表示码点特征的字符,第二部分具有表示码点与无嵌套模块中其他码点相关性的字符,第三部分具有表示码点与一级嵌套模块中其他码点相关性的字符。

在一实施例中,所述标识具有至少3个字符,所述第一部分具有1-3个字符长度,所述第二部分具有1-3个字符长度,所述第三部分具有1-3个字符长度。例如,所述标识具有5、7、9、12等个数的字符,第一部分具有3个字符,第二部分具有2个字符,第三部分有2个字符。当然,本领域技术人员应当理解是,上述具体数字仅作为示例,并不构成对本申请的限制。

步骤203,判断码点是否与所述无嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第二部分设置为相同的字符。在一实施例中,所述判断码点是否与所述无嵌套模块中的其他码点具有相关性的步骤,进一步包括,如果码点与所述无嵌套模块中的其他码点都不具有相关性,该码点的标识的第二部分设置为表示否的值。

步骤204,判断码点是否与所述一级嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第三部分设置为相同的字符。在一实施例中,所述判断码点是否与所述一级嵌套模块中的其他码点具有相关性的步骤,进一步包括,如果码点与所述本一级嵌套模块中的其他码点都不具有相关性,该码点的标识的第三部分设置为表示否的值。

步骤205,逐个生成所述fpga中所有码点的标识。

在一实施例中,所述fpga包括至少一个包括一级嵌套模块的二级嵌套模块,所述方法还包括:判断码点是否与所述二级嵌套模块中的其他码点具有相关性,如果有,该码点与具有相关性的其他码点的标识的第四部分设置为相同的字符,如果没有,该码点的标识的第四部分设置为表示否的值。在一实施例中,所述第四部分具有1-3个字符长度,例如,2个字符长度。当然,本领域技术人员应当理解是,该具体数字仅作为示例,并不构成对本申请的限制。

为了能够更好地理解本说明书的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。

图5中示出的fpga包括多个与门和一个选择器,例如与门(and)0,1,2和选择器(mux),多个与门和一个选择器是无嵌套模块,并且都包括在一个一级嵌套模块中。

从图5中可以看出,and0的t0和mux的q0相关,and1的t1和mux的q1相关,and2的t2和mux的q2相关。也就是说,t0必须和q0一起被设为1,t1必须和q1一起被设为1,t2必须和q2一起被设为1,才能让信号通过,依次类推。因此,and0的t0在一级嵌套模块里和mux的q0相关,and1的t1在一级嵌套模块里和mux的q1相关,and2的t2在一级嵌套模块里和mux的q2相关。

假如码点标识定义如下:第1~3个字符为码点特征位,第4~5个字符为二级嵌套模块的相关联字段,第6~7个字符为一级模块的相关联字段,第8~9个字符为本模块(即无嵌套模块)的相关联字段。

假设码点特征位用mad表示,二级嵌套模块没有相关联码点,对应的字段就是nn,一级嵌套模块的相关联字段分别用aa,bb,cc,dd,dd,ee表示,如果本模块内没有相关联的码点,那么对应的字段就是nn。

图6中示出了fpga码点标识定义的结果。各个码点的标识如下:and0的t0的标识为madnnaann_t0,and1的t1的标识为madnnbbnn_t1,and2的t2的标识为madnnccnn_t1,mux的q0、q1、q2的标识分别为madnnaann_q0,madnnbbnn_q1,madnnccnn_q1。

图7示出了本申请一实施例中sram中存储的数据的排列形式。从图7中可以看出,将会同时被设置成相同值的码点用命名的方式作显示标识,在fpga码点分配的时候将这些码点放在相邻位置。这样相邻码点为不同值的情况会大大减少。

本申请的第二实施方式中还公开了一种为fpga码点分配sram单元的系统,图8示出了本申请一实施例中为fpga码点分配sram单元的系统框图,该系统包括:

标识模块301,被配置为对fpga所有码点进行标识,所述标识表示所述码点之间的相关性;

判断模块302,被配置为判断是否存在与码点具有相关性的其他码点;

分配模块303,如果存在,所述分配模块将该码点分配到存储具有相关性的其他码点的sram单元附近的sram单元,如果不存在,所述分配模块将该码点随机分配到sram单元。

标识模块301对fpga码点进行标识的方法可以采用前文所述的方法,也可以采用其他的标识方法,只要可以表示码点之间的相关性都可以作为本申请的标识方法。

第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。

需要说明的是,本领域技术人员应当理解,上述为fpga码点分配sram单元系统的实施方式中所示的各模块的实现功能可参照数据读写方法的相关描述而理解。分配系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本申请实施例分配系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

相应地,本申请的另一实施方式通过一种计算机可读存储介质中的可执行指令实现。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。

在本说明书提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。

在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1