实现动态可重构逻辑电路结构设计的方法

文档序号:7508529阅读:101来源:国知局
专利名称:实现动态可重构逻辑电路结构设计的方法
技术领域
本发明通常涉及在集成电路上形成的可编程逻辑器件,更明确地说涉及一种实现动态可重构逻辑电路的结构设计的方法。
背景技术
动态可重构逻辑(也称为高速缓存逻辑)是一种用于重构可编程逻辑电路,例如基于SRAM的现场可编程门阵列(FPGA)和复合可编程逻辑器件(CPLD)的数字设计技术。动态可重构逻辑器件利用了基于SRAM的FPGA的动态和部分可重构性,在重构部分FPGA逻辑时,同时使逻辑的剩余部分不会被中断而继续工作。
在图6中说明了动态可重构逻辑的原理,它示出了在FPGA上实现一部分逻辑重构。替代逻辑120存储在片外存储器124中。在重构期间,仅对要替换的那部分逻辑(可重构逻辑116)进行重写。所有其他的逻辑、静态逻辑114和未用逻辑112不受影响,并且继续正常的工作。由于仅重构一部分FPGA,使得构造位流大小最小化。因此,使得重构FPGA所花费的时间(称为重构执行时间)以及片外存储器的大小都最小化。这与传统的FPGA设计形成了对照,传统FPGA设计产生固定的逻辑电路实现,其在运行时不能改变。
因为FPGA资源是在许多不同的逻辑电路实现之间进行共享,因此,动态可重构逻辑为设计人员提供了许多重要的帮助。与固定逻辑设计相比可以使用更少的FPGA资源。可利用这点将更多的逻辑封装到给定FPGA中,或可能采用比其他方式更少或更小、更低廉的FPGA。因此,成本、板面积和功率消耗都可减少。另外,从全系统范围角度来看,动态可重构逻辑提供了通常与微处理器和工作速度相关联的运行时间灵活水平和近似常规硬件的精细粒度并行性。这种优点被用于可重构计算应用中,该应用使用FPGA来实现专用、定制协处理器,它们的功能可以在运行时间中改变。
商业上可用的计算机辅助设计(CAD)工具提供了一种用于传统、固定逻辑FPGA设计的很好的解决方案。设计者可以确定逻辑,执行功能性模拟,创建物理布局,执行布设后模拟以及产生FPGA构造位流。这种处理的结果是设计者可以对FPGA设计有高度信心,进到原型阶段。作为这种处理的一部分,自动FPGA编译(平面布置、布局和布线)方法提供了快速设计周转,并且设计者不需要考虑目标FPGA结构的细节或不需要具有FPGA手工布局和布线方法的专业知识。
对于动态可重构逻辑设计来说,现有的商业、结构设计方法具有严重的局限性。为了使用这些方法,设计者必须独立开发FPGA逻辑的每个不同范围,如同固定逻辑设计。由大多数FPGA厂家提供的渐增设计变化能力可以通过允许设计者在不改变静态逻辑的布局和布线的情况下,就能对结构布局做出改变来为这种处理提供帮助。对于那些对逻辑部分做许多可能变化的设计来说,这种处理是非常消耗时间的,并且难以管理。而且,设计的平面布置、布局和布线的变化必须手工执行以确保不同的范围使用同一FPGA资源。这就需要设计者对目标FPGA结构十分熟悉,并且是结构设计方法的专家使用者。
对于早期的新技术实践人员,该结构设计方法的局限性是可以容忍的。然而,对于大多数设计者(他们承受着要符合市场节拍的压力,并且可能不具有FPGA结构和方法的详细知识),该结构设计方法不会被接受。为了解决这个问题,就需要将设计方法学尽可能透明地结合到现有的FPGA设计流程中,解决动态可重构逻辑设计的性能验证,并且提供结构设计的自动处理。
尝试解决该问题的已有技术包括授予Hung的美国专利号5,781,756,它揭示了一种动态和部分可重构FPGA,它允许在不需要对配置存储单元完全重写的情况下,在运行时间进行重构。’756专利还揭示了一种在不需要对配置单元完全重写的情况下,对FPGA配置进行动态和部分重构的方法。在FPGA中包括存储器配置器件,用于控制FPGA数据寄存器和地址寄存器的加载。这种器件允许忽略未变化的配置存储单元。因此,只有需要改变的配置单元才会进行重写。
名为“Automating Production of Run-Time Reconfigurable Designs”(由Nabeel Shirazi、Wayne Luk和Peter Y.K.Cheung提出)的会议报告揭示了两种相继电路配置匹配以确定它们公共部件,这样,重构时间就可最小化。匹配过程包含3个步骤1)将两个相继电路中的部件表示为二分图中的节点;2)对一种配置中的每个节点与另一配置中的节点进行最佳匹配计算,所述计算考虑到了权重值;3)插入RC-Mux和RC_Dmux以产生具有明确的可重构区域。然而,在整个设计过程中,该匹配是在结构设计处理之前进行。
本发明的一个目标是为设计者提供一种实现动态可重构逻辑电路物理设计的方法,该方法提供了在传统、固定逻辑设计中所享有的自动化水平。
本发明的另一目标是提供一种实现结构设计的方法,这种方法确保了该设计实现的正确性,不会违背目标器件中的任何电气规则,并且将避免对FPGA资源的运行时间争用。

发明内容
上述的目的是通过一种用于实现动态可重构逻辑应用的手工和自动结构设计的方法来完成。该方法使用软件来执行,该软件形成了一种结构设计流程,从而采取了从示意或高级描述语言到FPGA构造位流文件的设计规范。该方法涉及读取设计网表,该网表包括一组静态宏和一组可重构宏范围;对每条可重构宏进行编译;布局和布线初始器件范围,该范围含有静态宏组的初始宏范围以及每个可重构宏的范围;通过随意选择每个可重构宏的范围来更新器件的范围;布局和布线经更新的器件范围并重复更新和布局步骤,直到所有的可重构宏的范围已经布局和布线。随后,在编译处理完成后,产生完整、部分和增加的位流。
本发明的方法让设计者摆脱了FPGA具体考虑的束缚,从而允许他们集中精力在系统级的问题上。使用本发明并不需要动态可重构逻辑实现或FPGA结构的专业水平的知识,因为本发明使用了工业标准设计输入格式。由于许多关键的设计步骤可以自动化,通过消除对手工执行平面布置、布局和布线的要求,就可以节省宝贵的时间。本发明的方法为设计者提供了从动态可重构逻辑原理到FPGA实现的直接路径,因此,允许设计者满足符合市场节拍的约束。


图1是在本发明的方法中随使用的动态可重构逻辑设计说明的框图。
图2是采用本发明方法中所使用的设计网表的图1动态可重构逻辑设计说明的框图。
图3是在本发明的方法中所使用的动态可重构逻辑结构设计处理的框图。
图4是在图3结构设计处理中所使用的动态可重构逻辑设计流程框图。
图5是在图3结构设计处理中所使用的可重构硬宏编译流程方法。
图6是本领域中所知的已有动态可重构逻辑原理框图。
具体实施例方式
参照图1,使用可重构宏的动态可重构逻辑设计示出为包括静态逻辑140和可重构逻辑150。每个静态140和可重构150逻辑电路由电路宏网络组成。每个宏是一个表示目标FPGA结构中基本逻辑资源的电路元件,例如逻辑门或存储元件。或者,电路宏可以是分层结构的,含有其他层次的宏或电路元件,或含有这两者。宏A 141、宏B 142、宏C 143以及宏D 144构成静态宏网络,而宏E 155和宏F 156构成可重构宏网络。FPGA输入133示为提供给静态逻辑网络的宏A 141。FPGA输出134是从静态逻辑的宏C 144产生,而FPGA输出135由可重构逻辑的宏F 156产生。这些宏在动态可重构逻辑设计中互连。
在动态可重构逻辑设计中,另外又定义了可重构宏,与每个可重构宏相关联的是一个或多个宏范围或配置。每个宏范围定义为一个电路宏的网络。宏范围表示和定义了可重构宏能够实现的不同电路配置。与一个可重构宏关联的宏范围组共享同一FPGA资源。因此,在任何时刻在FPGA上只有一个宏范围有效。那些不能重构的宏称为静态宏,因为它们在运行期间永久驻留在FPGA上。含有静态宏和每个可重构宏的特定范围的一种设计实现就称为器件范围。每个器件范围由设计中的静态逻辑和每个可重构宏特定宏范围的选择来定义。可重构宏具有多个功能性范围,而静态宏具有单一功能性范围。静态宏含有固定逻辑网络,而可重构宏却没有。取而代之的是每个可重构宏由一组宏范围定义。
动态可重构逻辑设计可以使用工业标准设计输入格式,例如VHDL、Verilog或逻辑图输入来规定。该设计中的可重构逻辑由一组每个可重构宏的每个范围的独立网表进行描述。初始器件范围描述作为包括设计中所有静态逻辑以及用于每个可重构宏的初始范围的网表。参照图2,初始范围网表或设计网表160包括静态宏140网络和每个可重构宏、宏E 155和宏F 156的初始范围宏。每个可重构宏都由一组宏网表165、166定义,每个网表定义了一个特定的宏范围。
参照图3,示出了本发明的结构设计处理。如上所述,是使用任意工业标准设计输入格式来进入设计输入步骤12。设计入口规定了设计网表14和每个可重构宏的宏网表16。设计网表14和宏网表16作为输入提供给FPGA结构设计工具18。结构设计工具18用于对设计中的静态和可重构逻辑进行编译。在结构设计工具框架中,关键的编译步骤(包括平面布置、布局和布线)可以手工或自动执行。本发明的方法是在结构设计工具的这种处理功能中实现的。编译处理的自动化意味着将设计者从FPGA结构和工具的详细知识要求中解放出来。自动化还实现了快速设计周期,并确保不会违反目标结构的电子设计规则,并且还避免了FPGA资源的运行时间争用。结构工具包括产生设计中的配置以及静态和可重构逻辑的重构位流的能力。在图3中,存在两种不同的软件工具流程。一种软件工具流程是用于可重构硬宏的创建指定的宏流程22,而一种软件流程用于完整高速缓冲逻辑设计的创建指定的设计流程。可重构硬宏的原理与固定逻辑设计中静态逻辑硬宏的相似点在于两种硬宏都含有目标FPGA结构的布局和布线信息。然而,可重构硬宏的不同之处在于其具有多个范围,每个范围是目标结构上可重构宏范围的特定实施。而可重构宏具有不同的功能性范围,可重构硬宏具有不同的功能性和结构性范围。宏流程22和设计流程20可以独立使用。或者,在将自动执行可重构硬宏创建的情况下,通过将宏范围网表以及设计网表作为动态可重构逻辑设计流程的部分,就能在设计流程中隐含地使用宏流程。使用用户库24来存储经编译后的可重构硬宏。
在图3中所示的设计处理的最终结果是收集配置和重构位流文件。产生了三种不同类型位流文件。设计位流30是目标FPGA的完整配置位流。设计位流30包括设计中的静态逻辑和每个可重构宏的初始范围。设计位流30用作FPGA在加电启动或系统复位的初始配置。第二种位流类型称为部分位流32。高速缓存设计中的每个可重构宏范围产生一个部分位流32。部分位流仅含有有关特定宏范围和该范围与静态逻辑的互连以及其他单独可重构宏范围的配置数据。对部分位流32进行组织,以便它们可以应用到目标FPGA,而可忽略处理其的宏范围。所产生的第三种配置位流类型称为增加重构位流34。增加重构位流34含有将特定范围转换到特定可重构宏中另一范围所需的配置数据。
图3没有示出通常作为FPGA设计处理一部分执行的模拟步骤。对于固定逻辑设计,在执行结构设计步骤之前就执行预布局模拟。只要设计已经完成布局和布线,就执行布设后模拟。在此所述的动态可重构逻辑设计流程中,可以将模拟用于独立地验证FPGA每个器件的范围。
用于完整动态可重构逻辑设计创建的软件设计流程20在图4中示出。设计流程处理20在读取设计网表的步骤40开始。在设计网表14中对应于可重构硬宏的任意宏将进行预先编译,并通过宏流程处理存储在用户库24中,这将随后参照图5进行描述。在设计网表14中对应于可重构硬宏范围的宏指定作为范围网表36,并且在此步骤期间将从用户库中读取。另外,在用户的指导下,设计网表14中的宏可以与可重构宏相关联,所述可重构宏还没有含有任何布局或布线信息。这些还没有含有任何布局或布线信息的可重构宏称为可重构软宏。
只要已经读取了设计网表14和所有的范围网表36,在编译处理中的下一步骤就是为用户所指定的特定可重构软宏创建可重构硬宏。参照图5,示出了创建可重构硬宏的软件工具流程。创建可重构硬宏的方法是在设计流程20(图3)之前使用,并且在读取设计网表的步骤40(图4)之后还使用,以便将可重构软宏转换成可重构硬宏。宏流程处理22从在用户指导下读取宏范围网表36组的步骤60开始,以便形成可重构硬宏。只要已经读取所有的范围网表36,预处理步骤62就对每个范围网表进行修改以确保每个范围具有相同的输入和输出端口。通常,这意味着将输入和输出端口加入到范围网表,以便当包括在特定器件范围中时,每个范围具有相同的输入和输出连接。编译处理中的下一步骤64是查找需要最多FPGA资源来实现的宏范围。当布局和布线时,该范围的大小将限定为一个有界框,在其中将布局和布线所有其他的范围。只要已经选定最大的范围,下一步骤66就在FPGA上对最大范围进行布局和布线。所有其他范围的布局和布线是一种迭代过程,包括计算该范围和初始范围之间布局匹配的步骤,以及在FPGA上布局和布线该范围的步骤。对于每个范围,匹配算法首先设法将与初始范围中I/O部件相同位置上的具有I/O端口的部件进行放置。这样做时,不同范围上的I/O端口大致在FPGA上的相同位置驻留。只要已经放置好了I/O端口部件,下一步骤就寻找剩余部件和初始范围之间的最佳结构匹配。通过匹配功能和结构,就能使增加位流的重构规模最小化,从而使得重构执行时间也最小化。判定是否布局和布线了所有范围68,如果存在任何剩余范围就选择下一范围72,查找初始范围的最佳匹配74,以及布局和布线范围66的处理持续进行,直到所有的范围都已经布局和布线。只要所有的范围已经布局和布线,就已经将可重构硬宏进行编译,并存储在用户库24中70,以便用于动态可重构逻辑设计。
回顾图4,在将可重构软宏编译成可重构硬宏22的步骤之后,下一步骤是锁定用于可重构宏44的所有资源,并随后布局和布线含有可重构宏45初始范围的初始器件范围。对于可重构硬宏,将所有范围的布局和布线信息用于判定与初始范围布局相关的哪些资源(例如,总线部分、总线计算机连接、核心单元或部分核心单元等)将被锁定或保留,从而不让静态逻辑使用。这就确保了在静态逻辑和可重构逻辑之间不会存在对FPGA资源的争用问题。资源的阻断在第一次布局可重构宏范围时发生,并且要求已经布局的该静态逻辑从所保留的FPGA资源离开。因为仅有由可重构宏范围使用的详细资源才锁定不被静态逻辑使用,在静态逻辑的布局和布线中就可以实现FPGA资源的选择和使用。并不需要将整个可重构硬宏有界框中的所有资源都锁定。因此,可重构硬宏就能具有不规则形状,并且可以与静态逻辑交替散置和布线。
只要完成初始器件范围的布局和布线,在FPGA上所有可重构宏的所有范围的布局位置是隐含定义的(即每个可重构宏的范围将布局在与该宏初始范围相同的位置上)。另外,静态逻辑的布局和布线也是对所有器件范围定义。然而,这时用户可以手工干预和修改静态和可重构逻辑的布局和布线。对可重构宏范围所做的任何变化将引起该宏所有其他范围的布局改变到相同位置。因为可重构宏上的I/O端口连接对于所有的范围来说可能在或可能不在FPGA的相同位置上,每个范围可能具有不同的物理布线,将其与静态逻辑宏相连。因此,可重构宏的每个范围布局与连接到器件范围中其他静态宏的物理布线相关联。对于在不同可重构宏之间的连接,必须注意无论连接的是什么特定范围,都要确保使用相同的物理布线。
通过更新器件范围和编译的迭代过程,持续进行编译处理。为了更新器件的范围,为每个可重构宏任意地选择一个范围。随后,由新选定的范围在相同的FPGA位置上来替代可重构宏的先前范围48。设计中的静态逻辑仍然维持已有的布局和布线,然而,可重构宏和其他宏之间的物理布线被拆除,并且和先前宏范围一起存储。因此,经更新的器件范围编译仅涉及新范围宏和器件范围中其他宏之间的物理连接布线。完成动态可重构逻辑设计(包括初始器件范围)编译所需的迭代次数与具有最大范围数的可重构宏中的范围数相等。处理一直持续到选择、更新以及布局和布线了所有的范围为止。最终,在完成编译步骤之后,软件就自动或在用户的指导下产生完整、部分和增加的位流。
权利要求
1.一种用于实现可重构宏结构设计的方法,其特征在于,所述方法包括读取一组范围网表,所述范围网表组对应于多个可重构宏中的一个特定可重构宏;修改范围网表组中的每个范围网表,以便第一组范围中的每个范围具有相同的输入和输出端口组;从所述第一组范围中选择最大的范围;在所述逻辑电路上布局和布线所述最大范围;从所述第一组范围中选择下一范围;计算下一范围和最大范围之间的布局匹配;在所述逻辑电路上布局和布线所述下一范围;以及对所述第一组范围中所有的范围重复执行所述选择以及布局和布线步骤。
全文摘要
一种用于实现动态可重构逻辑电路结构设计的方法。该方法使用软件执行,该软件形成了一种结构设计流程,从而采取了从示意或高级描述语言(HDL)到FPGA配置位流文件的设计规范。该方法涉及读取输入的设计网表(160),该网表(160)包括一组静态宏(140)和一组可重构宏范围(150);对每条可重构宏(150)进行编译;布局和布线初始器件范围,该范围含有静态宏组的初始宏范围以及每个可重构宏的范围;通过随意选择每个可重构宏的范围来更新器件的范围;布局和布线经更新的器件范围并重复更新和布局步骤,直到所有的可重构宏的范围已经布局和布线。随后,在编译处理完成后,产生完整、部分和增加的位流。
文档编号H03K19/173GK1641651SQ20051000689
公开日2005年7月20日 申请日期2000年11月2日 优先权日1999年12月14日
发明者D·A·马康恩耐尔, A·V·达萨利, M·T·梅森 申请人:爱特梅尔股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1