可编程逻辑器件硬件结构通用建模方法

文档序号:6459133阅读:427来源:国知局

专利名称::可编程逻辑器件硬件结构通用建模方法
技术领域
:本发明属电子
技术领域
,具体涉及可编程逻辑器件硬件结构通用建模方法。技术背景可编程逻辑器件的生产厂家在卖出可编程逻辑器件的同时,也需要提供给用户一款配套的CAD软件系统。用户可以用这套软件来根据给定的电路生成用于配置可编程逻辑器件的位流文件,将此文件载入到可编程逻辑器件中即可配置其中的硬件资源,使之实现用户指定的电路。这套软件包括读入用户电路、综合、映射、布局、布线、布码点、位流文件生成等步骤。软件运行时,在其中的任何一个步骤中,都将针对特定的硬件结构来建模,执行运算。由于可编程逻辑器件产品根据结构、规模、工艺、封装等方面的不同,往往型号众多,针对不同型号都开发各自的CAD软件系统非常不现实。一个比较受认可并被采用的方案是用一套CAD软件系统来应对所有已经推出的可编程逻辑器件,比如说Xilinx公司的ISE软件①与Altera公司的Quartus气他们用一款软件系统,覆盖了其生产的所有型号的FPGA产品,用户可以用它来配置其任何一个型号的产品。可是这种方案存在一些问题其一,在于这套软件系统把用户不需要的大量信息数据也捆绑在了一起,导致软件往往体积庞大;其二,在于一旦生产厂家推出新的产品型号,得把新型号的硬件结构加入到软件系统中去,这样就不得不相应地推出新的软件版本。这两个问题对于生产厂家和用户都会造成相当地不便。如果针对现代的可编程逻辑器件设计一套通用的建模方法,并采用一定的描述语法记录在文件中,这样就可以在此基础上开发一款通用CAD软件系统。而对于每款型号不同的可编程逻辑器件,在软件处理用户电路的同时,只须提供一个对于该款可编程逻辑器件硬件结构的描述文件让软件系统读即可。这样,每出一款可编程逻辑器件产品,并不需要对现有的软件进行任何改动,只时把描述其硬件结构的文件一并提供给用户即可。目前的硬件建模方法都并不适用于我们所要开始的这款通用CAD软件系统。比方说,VPR^寸于传统的结构所用的建模方法是一系列高度抽象的参数。这种方法在只在评估硬件结构或软件算法具有优势,却是无法针对具体硬件结构生成配置文件的。
发明内容本发明的目的在于提出通用的FPGA硬件建模方法,这种建模方法适用于所有的FPGA。本发明提出的可编程逻辑器件硬件结构通用建模方法,具体步骤如下一、划分层次现代FPGA采用的是"岛型结构",即整个FPGA芯片是由各类可编程模块(岛)拼成的阵列。比如在一块FPGA中一般只有一种可编程逻辑块(CLB),大量的岛都是完全相同的CLB的重复。我们的建模方法就基于这一点,采用层次化的建模方法。从整个FPGA芯片,到最细节的码点,我们按照现代FPGA的结构和行为的特性对其分层。根据经验,本发明将FPGA的硬件结构划分为5个层次,共6类模块单元,从高到低依次为FPGA、重复单元、同类单元族、信号传输单元、功能单元、基本单元;图1就是这个层次示意图。按划分的层次对硬件进行建模。每个层次中都有结构不同的多种模块单元,每个模块单元内包含一些低一级层次的模块单元以及联结它们的线网。线网中与外部线网有连接的端口,各模块单元又通过这些端口与外部线网联结其它模块,形成高一层次的模块单元。每个FPGA由重复单元组成,图2是一个简单的例子,一块FPGA芯片是由周围的IOB型重复单元和内部的CLB型重复单元拼成的阵列。图3则是以一个CLB型重复单元模块为例,一个CLB的内部有2个同类单元族SLICE1X2与TBUF1X2,分别包含2个SLICE型功能单元和2个TBUF型功能单元;1个信号传输元GRM—CLB1X1,包含一个GRM—CLB型的功能单元。同样,每个功能单元又是由基本单元组成的。经过了这样的分层之后,我们将大量的结构模块化了,同样的结构对应于相同的模块单元,在建模时就不用重复考虑,节省了建模的工作量,縮短时间。建模中,出于通用性的考虑,我们采用文本文件来对模型进行记录描述。我们按硬件的层次用多个文件进行记录,一个文件记录某一层次的一个或多个硬件单元。这样可以避免单一文件过于庞大,方便文件的规划、生成、管理,也便于设计人员的阅读。除了前面提到的6种模块外,我们的描述文件还记录模型的码点信息、封装信息和损坏单元信息,加起来一共是9种文件。由所有这9大类描述文件所构成的文件群就能全面地涵盖了CAD软件系统所需的可编程逻辑器件硬件结构的建模信息了。在语法方面,我们主要依赖可扩展标记语言(XML)的规则创建语法。这是目前最成熟的文本数据的语法之一,在软件开发时可以找到有不少针对它的成熟的库函数。很多现成的面向XML的工具也可以帮助我们更好的检査、阅读我们生成的建模描述文件。二、按层建模下面,本发明逐一说明如何对一块FPGA进行分5个层次建模,并用9类文件进行记录的。1.基本单元建模基本单元是芯片中最基本的组成部分,我们按其行为方式进行建模。基本单元的文本描述内容为基本单元的类型、单元的端口数量、每个端口的名称及其对应的负载电容、内部编程点的数量、每个编程点的名称及其对应的默认值、信号传输路径的数量、每种传输路径及其时延模型,以及这种传输路径下编程点的配置方法。在文本格式描述时,每个基本单元按端口信息(port—info),码点信息(smm—info),行为信息(pathjnfo)分别描述。2.功能单元建模功能单元是由基本单元连接而成的具有小规模可用逻辑的电路单元。我们按基本单元的联接结构进行建模。功能单元的文本描述内容为功能单元的类型、单元的端口数量、端口的名称、内部含有的基本单元、各基本单元之间的相互连接、单元内编程点的命名以及每个配置元素的配置原理。在文本格式描述时,对每个功能单元记录其端口信息(portjnfo),包括每个端口名,功能,和其与内部线网的连接情况;结构信息(structurejnfo),包括功能单元内部所出现的基本单元与其间的线网;以及逻辑配置信息(config—info),包括功能单元实现各种功能时的不同码点配置方法。3.同类单元族建模同类单元族是由同种类型的功能单元所排成的阵列,同类单元族的文本描述内容为类型名、构建同类单元族所需的功能单元类型、同类单元族的阵列大小以及族内各功能单元之间的专用连接。同类单元族的文本描述包含维度信息(dimention)和专用连接信息(linkjnfo)。前者指明这种功能单元的排列方式,后者说明功能这些同类的功能单元之间的专用连接。4.信号传输单元建模信号传输单用于通用可编程连接。一般而言,一个传输单元有且仅有一个通用互连资源类型的功能单元构成。信号传输单元的文本描述内容为它所包含的功能单元的具体类型名。5.重复单元建模重复单元是构建可编程核阵列的要素,在可编程核阵列内的每个位置上都有一个重复单元。重复单元的文本描述内容为端口、内部模块、内部线网。其端口不用端口名区分,而是以它的位置区分。当重复单元拼接成阵列后,重复单元的每个端口都与相邻的重复单元的对应端口连接。内部模块按同类单元族和信号传输单元中的方式描述各个功能单元。内部线网连接了各个功能单元和外部端口。用于描述重复单元的文本文件中要包含端口信息(portjnfo),同类单元族信息(cluster—info),以及信息传输元信息(transmission—info)。6.FPGA建模FPGA建模即对整个FPGA芯片进行最高层次的建模。一个FPGA芯片是由重复单元经重复排列而成的阵列。重复单元之间的线网就是相邻重复单元间对应端口的重合。FPGA层次建模要记录的信息是阵列的大小以及阵列内各位置上重复单元的类型。7.封装信息建模对于芯片的管脚,我们进行专门的建模。即把芯片的每个管脚认为与其所在的重复单元关联。对于封装模型,我们也用一个专门的文件来描述。记录每个管脚的名字和其对应的重复单元。8.编程点建模编程点按重复单元建模。每个重复单元拥有一个编程点阵列,这个阵列中的每个编程点都将分配给重复单元中的各个基本单元使用。在文本描述时,记录重复单元中每个基本单元所用到的码点在这个阵列中的位置。按照这种方法建模而得的描述文件可以被通用的FPGA应用软件系统正确地读入、识别、分析,并据此计算出相应的硬件资源配置策略来实现具体的电路。本发明人已经按照本发明的方法对设计生产的一款FPGA产品的硬件进行了建模。并且这一模型已经可以被开发的通用FPGA软件系统使用。图IFPGA硬件层次示意图。图2FPGA层次的例子。图3CLB型重复单元的例子。图4一个6选1MUX基本单元的例子。图5IOB例子中部分信息的图示。图6包含两个SLICE的同类单元族示意图。图7IOB型重复单元。图8FPGA重复单元实例图示。图9胃脚分布示意图。具体实施方式下面我们对于一个FPGA每个层次的建模依次举例,说明我们如果实施建模。在描述文字中的斜体字为注释。1.基本单元对于FPGA中的一个6选1MUX的基本单元,如图4所示。这个MUX共7个端口(IN0IN5,OUT)和6个配置码点(P0P5)。默认情况为关断,所有码点为0。当要使某一路径导通时就使对应的码点为1而让其它码点为0。对于这样一个6选1MUX,我们共花费81行的文本文件来描述对它的建模,以下我们摘取主要的内容进行介绍。<table>tableseeoriginaldocumentpage0</column></row><table>说明书第6/ll页2.功能单元(primitivesite)下面以一个IOB为例,介绍我们的建模方法。IOB是存在于FPGA芯片周边的tile中用于将内芯片的线网与连接芯片管脚相连的。在建模时它是一个功能单元。每个IOB功能单元中有9个端口,里面包含35个基本单元(basic一cell,即element),并由44根内部线网将它们的端口以及9个外部端口连接起来。建模后,这个IOB的描述文件共有607行,除了记录了上述信息外,大部分笔墨用于记录每个basic—cell的每种配置方法。<primitive_sitename="I0B">/05豸这个劝虔卓i游名字,<port—infoamount="9">#7个凝/7'以7^/幼瑞/7名'J^/^7^肅遂厨<portname="rfunctional"net='T'/></port—iiifo><structure—info>〈cell一infoamount="35">^^35f基本卓i'以7^/忠^^与实餺名<basic—cellname="TRIMUX"type="SPS4B2XlH17>这,基本粉游類^r,在淑游实證豫力77/Mf/X............A肝德,好皆够財</cell—info><net—infoamount-"44"〉关包#44裙/^肅錄/C议T^/幼名歡与ii"麥<netname="0_TBUF">这麟膽名舞0—r甜F它連麥^/基本卓iT5f/F游r7T/i^T游J以J77A^游爿凝/7<connectioncell—name="TBUF"pin—name="Y7><connectioncell—name="TRIMUX"pin—name="A7><connectioncell—name="TINV"pin—name="A"/></net>............yWf1^^以7"皆够W个</net—info></structure—info><config—infoamount^'24"〉基^:卓i0,秀W,^^f基本卓i,为免资述,好汉赠/么,就fS尸柳加//7類柳,个7Mn〈cfg一elementname="TRIMUX"><table>tableseeoriginaldocumentpage10</column></row><table>4.信号传输单元(signaltransmission)下面是一个信号传输单元的例子,它是CENTER型的tile中的信号传输元级的建模。它描述了这样一个事实"在此处有一个类型为GRM—CLB的功能单元,这个信号传输元命名为GRM—CLBlxl。"如图3中右边部分。〈transmission一library〉〈signal—transmissionname="GRM—CLBlxl"type="GRM—CLB7></transmission—library>5.重复单元(tile)下面以图7中的一个名为TOP的上方IO重复单元的例子,来说明如何在建模中描述重复单元层次。这个重复单元位于芯片中的最上方,其左、右、下方分别有线网与其它重复单元相连,在图中由LEFT,RIGHT和BOTTOM三条边表示。其内部有1个包含2个IOB的同类单元族,1个信号传输单元里面有一个GRM_TOP型功能单元。<tilename="TOP"><port_infoamount="220">縱離颜幼这,々,T^條方厨、,号灣/7舰A麟船<portside="left"serial="54"net="T0P—RST7><portside="right"seriaH'0"net="TOP—H6D07><portside="bottom"serial="0"net="TOP—S237></port—info><cluster_infoamount="1">包#一,/^^^〈clustertype:"IOBlX2"〉麟频纖類为謂,r鹏忠餅游劝虔粉。〈sitename="IOB0"positioi^"R0C0"〉劝虔牟无游类,y名i泣f〈site—connection〉身幼劝虔卓i游凝/7^f连置复卓7S游錄厨<portname="IQ"net="TOP—IQ37><table>tableseeoriginaldocumentpage12</column></row><table></FPGA>7.封装信息(package)以图9的结构为例,把每个管脚关联到重复单元中的IOB型功能单元。以下为描述其管脚分布情况的文本。〈packagedevice="EXAMPLE"name="PQ18"〉,/S个议尸赠每f,,詹名微f<table>tableseeoriginaldocumentpage13</column></row><table>8.编程点位置(bit—j30sition)以图7所示的TOP型重复单元为例。<bit_position><table>tableseeoriginaldocumentpage14</column></row><table>参考文献①XilinxInc.,TheProgrammableLogicDataBook,2000[M]②AlteraInc.,DataBook,1998[M]③VaughnBetz,JonathanRoseandAlexanderMarquardt,"ArchitectureandCADforDeep-SubmicronFPGAs",KluwerAcademicPublishers,1999.权利要求1、一种可编程逻辑器件硬件结构通用建模方法,其特征在于具体步骤如下(1)划分层次将FPGA的硬件结构划分为5个层次,共6类模块单元,从高到低依次为FPGA、重复单元、同类单元族、信号传输单元、功能单元、基本单元;每个层次中都有结构不同的多种模块单元,每个模块单元内包含一些低一级层次的模块单元以及联结它们的线网。线网中与外部线网有连接的端口,各模块单元又通过这些端口与外部线网联结其它模块,形成高一层次的模块单元;(2)按层建模按划分的层次对硬件建模,采用文本文件对模型进行记录描述,一个文件记录某一层次的一个或多个硬件单元,6类模块单元有6个文本文件;此外,还有记录模型的码点信息,封装信息和损坏单元信息的3个文本文件;具体如下①.基本单元建模基本单元是芯片中最基本的组成部分,基本单元的文本描述内容为基本单元的类型、单元的端口数量、每个端口的名称及其对应的负载电容、内部编程点的数量、每个编程点的名称及其对应的默认值、信号传输路径的数量、每种传输路径及其时延模型,以及这种传输路径下编程点的配置方法;在文本格式描述时,每个基本单元按端口信息,码点信息,行为信息分别描述;②.功能单元建模功能单元是由基本单元连接而成的具有小规模可用逻辑的电路单元;按基本单元的联接结构进行建模;功能单元的文本描述内容为功能单元的类型、单元的端口数量、端口的名称、内部含有的基本单元、各基本单元之间的相互连接、单元内编程点的命名以及每个配置元素的配置原理;在文本格式描述时,对每个功能单元记录其端口信息,包括每个端口名,功能,和其与内部线网的连接情况;结构信息,包括功能单元内部所出现的基本单元与其间的线网;以及逻辑配置信息,包括功能单元实现各种功能时的不同码点配置方法;③.同类单元族建模同类单元族是由同种类型的功能单元所排成的阵列,同类单元族的文本描述内容为类型名、构建同类单元族所需的功能单元类型、同类单元族的阵列大小以及族内各功能单元之间的专用连接;同类单元族的文本描述包含维度信息和专用连接信息;前者指明这种功能单元的排列方式,后者说明功能这些同类的功能单元之间的专用连接;④.信号传输单元建模信号传输单用于通用可编程连接;信号传输单元的文本描述内容为它所包含的功能单元的具体类型名;⑤重复单元建模重复单元是构建可编程核阵列的要素,在可编程核阵列内的每个位置上都有一个重复单元;重复单元的文本描述内容为端口、内部模块、内部线网;其端口不用端口名区分,而是以它的位置区分;内部模块按同类单元族和信号传输单元中的方式描述各个功能单元;内部线网连接了各个功能单元和外部端口;用于描述重复单元的文本文件中要包含端口信息,同类单元族信息,以及信息传输元信息;⑥.FPGA建模FPGA建模即对整个FPGA芯片进行最高层次的建模;一个FPGA芯片是由重复单元经重复排列而成的阵列;重复单元之间的线网就是相邻重复单元间对应端口的重合;FPGA层次建模要记录的信息是阵列的大小以及阵列内各位置上重复单元的类型;⑦.封装信息建模对于芯片的管脚,进行专门的建模;即把芯片的每个管脚认为与其所在的重复单元关联;对于封装模型,我们也用一个专门的文件来描述;记录每个管脚的名字和其对应的重复单元;⑧编程点建模编程点按重复单元建模;每个重复单元拥有一个编程点阵列,这个阵列中的每个编程点都将分配给重复单元中的各个基本单元使用;在文本描述时,记录重复单元中每个基本单元所用到的码点在这个阵列中的位置。全文摘要本发明属于电子
技术领域
,具体为一种可编程逻辑器件硬件结构的通用建模方法。该方法首先对FPGA硬件结构进行层次划分分为5个层次,共6类模块单元,然后按层次进行分别建模。建模时采用文本文件对模型进行记录描述,一个文本文件记录一个层次的硬件单元相关信息;此外,还设有记录模型码点信息、封装信息和损坏单元信息的文本文件。按本发明方法建模而形成的描述文件可以被通用的FPGA应用软件系统正确地读入、识别、分析,并据此计算出相应的硬件资源策略来实现具体的电路。文档编号G06F17/50GK101246510SQ20081003402公开日2008年8月20日申请日期2008年2月28日优先权日2008年2月28日发明者余建德,来金梅,健王,童家榕申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1