CN101290640B - 集成电路设计的验证方法及装置 - Google Patents
集成电路设计的验证方法及装置 Download PDFInfo
- Publication number
- CN101290640B CN101290640B CN2008101155926A CN200810115592A CN101290640B CN 101290640 B CN101290640 B CN 101290640B CN 2008101155926 A CN2008101155926 A CN 2008101155926A CN 200810115592 A CN200810115592 A CN 200810115592A CN 101290640 B CN101290640 B CN 101290640B
- Authority
- CN
- China
- Prior art keywords
- submodule
- code file
- file
- code
- pin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012942 design verification Methods 0.000 title description 5
- 238000013461 design Methods 0.000 claims abstract description 110
- 238000012795 verification Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims description 53
- 102100024607 DNA topoisomerase 1 Human genes 0.000 description 7
- 102100033587 DNA topoisomerase 2-alpha Human genes 0.000 description 7
- 101000830681 Homo sapiens DNA topoisomerase 1 Proteins 0.000 description 7
- 101000801505 Homo sapiens DNA topoisomerase 2-alpha Proteins 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 101100123053 Arabidopsis thaliana GSH1 gene Proteins 0.000 description 2
- 101100298888 Arabidopsis thaliana PAD2 gene Proteins 0.000 description 2
- 101000590281 Homo sapiens 26S proteasome non-ATPase regulatory subunit 14 Proteins 0.000 description 2
- 101001114059 Homo sapiens Protein-arginine deiminase type-1 Proteins 0.000 description 2
- 101150092599 Padi2 gene Proteins 0.000 description 2
- 102100023222 Protein-arginine deiminase type-1 Human genes 0.000 description 2
- 102100035735 Protein-arginine deiminase type-2 Human genes 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010297 mechanical methods and process Methods 0.000 description 1
- 230000005226 mechanical processes and functions Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种集成电路设计的验证方法及装置,包括:确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;根据所述子模块组,对IC设计的代码文件中包含的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件进行分割;将与同一个子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件存入同一片现场可编程门阵列FPGA中对IC设计进行验证。上述方法实现了将大于单片FPGA容量的大规模集成电路设计的代码文件分割到多片FPGA中进行联合验证。实现简单、成本低。
Description
技术领域
本发明涉及半导体设计领域,尤指对大规模集成电路(Integrated Circuit,IC)设计进行FPGA原型验证时,对IC设计的代码文件实现自动分割验证的方法及装置。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA)原型验证广泛应用于IC设计的原型验证过程中。一方面FPGA原型验证的验证速度比较快,其频率通常能达到几十MHz,而普通的SIMULATION频率只能达到几十kHz。另一方面FPGA原型验证可以实现软件编写和芯片设计的协同开发,在IC设计的验证结束的同时,软件编写也几乎可以同时完成,有效减少了芯片开发的时间。
因此,FPGA原型验证在IC设计中是至关重要、必不可少的。目前,FPGA原型验证仍在大部分IC设计中用作判定代码能否冻结的最终判据。
随着IC设计规模的不断增大,单片FPGA的容量已经不能满足IC设计原型验证的需求,必须使用2片或4片,甚至多片的FPGA来实现IC设计的原型验证。这样就需要将一个IC设计的代码文件分割到多片FPGA中。
现有技术中还没有一种针对具体情况,简单、低成本地实现对IC设计的代码文件分割,以达到使用多片FPGA来实现IC设计的原型验证的方法。
发明内容
本发明实施例提供一种集成电路设计的验证方法及装置,简单实现使用多片FPGA对IC设计进行原型验证。
一种集成电路设计的验证方法,所述集成电路IC设计的代码文件包括:顶层代码文件、引脚代码文件、引脚控制代码文件和集成电路核心实体代码文件,所述IC设计的代码文件所描述的IC设计中包括:引脚模块、引脚控制模块以及集成电路核心实体模块,该方法包括:
对所述IC设计的代码文件进行解析,根据解析出的所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系,确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;
根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件;
将与同一个所述子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件存入同一片现场可编程门阵列FPGA中对IC设计进行验证。
根据本发明的上述方法,所述根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件,具体包括:
根据所述子模块组,对所述集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个所述分割后的集成电路核心实体代码文件中包含从所述集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段;以及
根据所述子模块组,对所述引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个所述分割后的引脚控制代码文件中包含从所述引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;以及
根据所述子模块组,对所述引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个所述分割后的引脚代码文件中包含从所述引脚代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;以及
根据所述子模块组,对所述顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个所述分割后的顶层代码文件中包含从所述顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
本发明的上述方法,还包括:根据所述分割后的顶层代码文件生成新的顶层代码文件,所述新的顶层代码文件中包含每一个所述分割后的顶层代码文件的例化代码,所述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
本发明的上述方法,还包括:根据所述IC设计的代码文件的大小和所述FPGA的容量,以及所述集成电路核心实体模块中能够划分出来的所述子模块组的数量,确定对所述IC设计的代码文件进行验证时划分的所述子模块组的数量。
一种集成电路设计验证装置,所述集成电路IC设计的代码文件包括:顶层代码文件、引脚代码文件、引脚控制代码文件和集成电路核心实体代码文件,所述IC设计的代码文件所描述的IC设计中包括:引脚模块、引脚控制模块以及集成电路核心实体模块,该装置包括:分组模块、文件分割模块和验证模块;
所述分组模块,用于对所述IC设计的代码文件进行解析,根据解析出的所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系,确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;
所述文件分割模块,根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件;
所述验证模块,用于将与同一个所述子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件装入同一片现场可编程门阵列FPGA中对所述IC设计进行验证。
根据本发明的上述装置,所述分组模块,包括:解析单元、确定单元和分组单元;
所述解析单元,用于对所述IC设计的代码文件进行解析,解析出所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系;
所述确定单元,用于根据所述物理连接关系确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;
所述分组单元,用于根据所述确定单元确定出的所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块,将所述各子模块分成至少两个子模块组。
根据本发明的上述装置,所述文件分割模块,包括:第一分割单元、第二分割单元、第三分割单元和第四分割单元;
所述第一分割单元,用于根据所述子模块组,对所述集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个所述分割后的集成电路核心实体代码文件中包含从所述集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段;
所述第二分割单元,用于根据所述子模块组,对所述引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个所述分割后的引脚控制代码文件中包含从所述引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
所述第三分割单元,用于根据所述子模块组,对所述引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个所述分割后的引脚代码文件中包含从所述引脚代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
所述第四分割单元,用于根据所述子模块组,对所述顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个所述分割后的顶层代码文件中包含从所述顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
本发明的上述装置,还包括:
文件生成模块,用于根据所述分割后的顶层代码文件生成新的顶层代码文件,新的顶层代码文件中包含每一个所述分割后的顶层代码文件的例化代码,所述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
本发明的上述装置,还包括:
数量确定模块,用于根据所述IC设计的代码文件的大小和所述FPGA的容量,以及所述集成电路核心实体模块中能够划分出来的所述子模块组的数量,确定对所述IC设计的代码文件进行验证时划分的所述子模块组的数量。
本发明实施例提供的集成电路IC设计的验证方法及装置,通过确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;根据所述子模块组,对IC设计的代码文件中包含的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件进行分割;将与同一个子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件存入同一片现场可编程门阵列FPGA中对IC设计进行验证。采用本发明明方法及装置,使用软件程序(例如使用TCL脚本),即可自动完成将大于单片FPGA容量的大规模集成电路IC设计分割到多片FPGA中进行联合测试这一过程,且实现简单、成本低。
附图说明
图1为本发明实施例中IC设计验证方法的流程图;
图2为本发明实施例中IC设计顶层代码文件的代码内容图;
图3为本发明实施例中集成电路核心实体代码文件的代码内容图;
图4为本发明实施例中代码文件解析出的IC设计的物理连接关系示意图;
图5为本发明实施例中IC设计中的各子模块进行分组的示意图;
图6为本发明实施例中分割后的第一核心实体代码文件的代码内容图;
图7为本发明实施例中分割后的第一顶层代码文件的代码内容图;
图8为本发明实施例中分割后的第二核心实体代码文件的代码内容图;
图9为本发明实施例中分割后的第二顶层代码文件的代码内容图;
图10为本发明实施例中新生成的顶层代码文件TOP的代码内容图;
图11为本发明实施例中IC设计验证装置的结构示意图。
具体实施方式
本发明实施例提供的集成电路IC设计的验证方法,将大于单片FPGA容量的大规模集成电路IC设计分割到多片FPGA中进行联合测试,其流程图如图1所示,执行步骤如下:
步骤S101:对IC设计的代码文件进行解析。
通过对IC设计的代码文件进行解析,根据代码文件中所描述的该IC设计中各模块以及各模块所包含的各子模块之间的信号交互关系,确定出该IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系。
其中,IC设计的代码文件一般包括:顶层代码文件、引脚代码文件、引脚控制代码文件和集成电路核心实体代码文件;所描述的集成电路一般包括引脚模块、引脚控制模块和集成电路核心实体模块。
例如:如图2所示的IC设计顶层(TOP)的代码文件中所描述的该IC设计中各模块以及各模块所包含的各子模块之间的信号交互关系,可以确定出该IC设计中包括:引脚(PAD)模块,引脚控制(PADC)模块和集成电路核心实体(ASICBODY)模块等三个模块。其中,
引脚模块,包括IC所需要的所有输入/输出数据缓冲器(Input/OutputBuffer,IO BUFFER)。
引脚控制模块,用于控制生成引脚模块所需要的输出数据控制信号和输入/输出数据信号,它是集成电路核心实体模块与引脚模块之间的接口模块。
集成电路核心实体模块是整个系统的功能模块,其相应的代码内容可以如图3所示,图3所示的代码所描述的IC设计中的集成电路核心实体模块可以包括,例如:MA,MB,MC,MD四个功能子模块。
对图2所示的顶层代码文件和图3所示的集成电路核心实体ASICBODY代码文件的内容进行解析,其中,各代码具体含义如下:
描述引脚模块的相关代码:PAD_MA,PAD_MB,PAD_MC和PAD_MD,分别表示MA,MB,MC和MD子模块需要的引脚PAD;
PAD_MA_I,PAD_MB_I,PAD_MC_I和PAD_MD_I,分别表示PAD_MA,PAD_MB,PAD_MC和PAD_MD的输出数据信号;
PAD_MA_C,PAD_MB_C,PAD_MC_C和PAD_MD_C,分别表示PAD_MA,PAD_MB,PAD_MC和PAD_MD的输入数据信号;
PAD_MA_OEN,PAD_MB_OEN,PAD_MC_OEN和PAD_MD_OEN,分别表示PAD_MA,PAD_MB,PAD_MC和PAD_MD的输出数据控制信号。
描述引脚控制模块的代码:PADC_MA_S,PADC_MB_S,PADC_MC_S和PADC_MD_S,分别表示PADC模块与MA,MB,MC和MD之间的传输信号。其余类似格式的代码,含义可以依此类推。
图3中所示的集成电路核心实体ASICBODY代码文件的具体内容。其中,
PADC_MA_S,PADC_MB_S,PADC_MC_S和PADC_MD_S,分别表示PADC模块到MA,MB,MC和MD子模块的传输信号;
MA_PADC_S,MB_PADC_S,MC_PADC_S和MD_PADC_S,分别表示MA,MB,MC和MD子模块到PADC模块的传输信号。
类似的,MA/B/C/D_MA/B/C/D_S,表示MA、MB、MC、MD子模块之间的传输信号;
根据上述解析出的、各代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的信号交互关系,可以得到引脚模块,引脚控制模块和集成电路核心实体模块及其他们所包含的子模块之间的物理连接关系。解析得到IC设计的物理连接关系如图4所示。
集成电路核心实体模块中的MA子模块与引脚控制模块之间有信号交互;引脚控制模块中与MA子模块相关联的信号,可以统称为PADC_A;MA子模块通过引脚控制模块与引脚模块之间有输出数据信号(I)、输出数据控制信号(OEN)和输入数据信号(C)等信号传输,引脚模块中MA子模块相关联的信号,可以统称为PAD_A。
MB子模块、MC子模块和MD子模块,与引脚控制模块之间有信号交互以及通过引脚控制模块与引脚模块之间的输出数据信号(I)、输出数据控制信号(OEN)和输入数据信号(C)等信号传输,与上述MA子模块的信号传输情况类似。
集成电路核心实体模块中的MA子模块、MB子模块、MC子模块和MD子模块之间也有信号交互。
步骤S102:根据上述解析出的物理连接关系,确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块,将各子模块分成至少两个子模块组。
确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块,以使得分割到不同子模块组中的子模块在PADC模块处不相互耦合,这是通过软件程序,例如TCL脚本实现对代码文件自动分割所必须具备的两个前提条件之一。
通过TCL脚本实现对代码文件自动分割所必须具备第二个前提条件是:所使用的至少两个FPGA,其任意两者之间的连线数目大于分割后各子模块组之间的传输信号数目。
通常的FPGA互连线数量大概在500条左右,根据分割后的各子模块组分割代码文件后,将分割后的各个代码文件分装到不同的FPGA中,不同FPGA中交互的子模块之间的传输信号的数量通常要远小于上述互连线的数量。因此这个条件一般都能够得到满足。
在实际操作过程中,首先要确定需要将原来的一个代码文件分割成几个代码文件,具体可以根据IC设计代码文件的大小、FPGA的容量以及所述集成电路核心实体模块中能够划分出来的不相耦合子模块组的数量确定:在满足分割到不同子模块组中的各子模块在引脚控制模块处不耦合的情况下,既可以确定恰好能容纳IC设计代码文件的FPGA的数量为需要生成的代码文件的数量,也可以在FPGA容量允许的范围内设定分割的代码文件的数量。
沿用上边的例子,以将图2和图3所示的代码文件所描述的如图4所示的IC设计的集成电路核心实体模块中各子模块划分为两个子模块组为例。
图4所示的IC设计,引脚控制模块和引脚模块之间的、与MA子模块相关联的输入(C)/输出(I)数据信号及输出数据控制(OEN)信号,仅与集成电路核心实体模块中的MA子模块有关,因此,可以认为MA子模块与MB、MC、MD子模块在引脚控制模块处不耦合。
同理,MB子模块与MA、MC、MD子模块在引脚控制模块处不耦合;MC子模块与MA、MB、MD子模块在引脚控制模块处不耦合;MD子模块与MA、MB、MC子模块在引脚控制模块处不耦合。即MA、MB、MC和MD互相之间均不耦合。因此,可以将图4所示的IC设计集成电路核心实体模块的各子模块任意两个划分为一组。
对图4所示的IC设计的各子模块进行分组,如图5所示,将集成电路核心实体模块的各子模块进行分组,得到两个子模块组,例如:MA和MB子模块为第一子模块组,MC和MD子模块为第二子模块组。
需要说明的是,上述只是IC设计的一个例子,在实际应用中就也会存在某两个子模块之间有耦合的情况,例如:引脚控制模块与引脚模块之间的、和MA子模块相关联的输入/输出数据信号及输出数据控制信号,不仅与集成电路核心实体模块中的MA子模块有关,还和MB子模块有关,则可以认为MA子模块与MB子模块在引脚控制模块处耦合。
步骤S103:根据确定出的子模块组,对各个代码文件进行分割,生成分割后的各个代码文件。具体为:
根据划分得到的子模块组,对IC设计的集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个分割后的集成电路核心实体代码文件中包含从集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
根据划分得到的子模块组,对引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个分割后的引脚控制代码文件中包含从引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段。
根据划分得到的子模块组,对引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个分割后的引脚代码文件中包含从引脚代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段。
根据划分得到的子模块组,对顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个分割后的顶层代码文件中包含从顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
然后,根据分割后的顶层代码文件生成新的顶层代码文件,新的顶层代码文件中包含每一个分割后的顶层代码文件的例化代码,上述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
沿用上边的例子,将各个代码文件中描述第一子模块组和第二子模块组的代码进行分割,并在分割后的各个代码文件中添加第一子模块组中的各子模块与第二子模块组中的各子模块之间的传输信号描述代码段。具体为:
根据第一子模块组,将集成电路核心实体代码文件ASICBODY中描述MA和MB子模块的传输信号描述代码段划分到第一集成电路核心实体代码文件ASICBODY1中,并在ASICBODY1中添加描述MA、MB子模块与MC、MD子模块之间的传输信号的传输信号描述代码段。第一集成电路核心实体代码文件ASICBODY1的代码内容具体如图6所示。
根据第一子模块组,将引脚控制代码文件PADC中描述与MA子模块相关联的输入/输出/控制信号的代码段和描述与MB子模块相关联的输入/输出/控制信号的代码段划分到第一引脚控制代码文件PADC1中。
根据第一子模块组中,将引脚代码文件PAD中描述与MA子模块相关联的输入/输出/控制信号的代码段和描述与MB子模块相关联的输入/输出/控制信号的代码段划分到第一引脚代码文件PAD1中。
根据第一子模块组,将顶层代码文件TOP中与第一子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码划分到第一顶层代码文件TOP1中;并在TOP1中添加描述第一子模块组中各子模块与第二子模块组中各子模块之间的传输信号描述代码段。第一顶层代码文件TOP1的代码内容具体如图7所示。
根据第二子模块组,将集成电路核心实体代码文件ASICBODY中描述MC和MD子模块的传输信号描述代码段划分到第二集成电路核心实体代码文件ASICBODY2中,并在ASICBODY2中添加描述MC、MD子模块与MA、MB子模块之间的传输信号的传输信号描述代码段。第二集成电路核心实体代码文件ASICBODY2的代码内容具体如图8所示。
根据第二子模块组,将引脚控制代码文件PADC中描述与MC子模块相关联的输入/输出/控制信号的代码段和描述与MD子模块相关联的输入/输出/控制信号的代码段划分到第二引脚控制代码文件PADC2中。
根据第二子模块组,将引脚代码文件PAD中描述与MC子模块相关联的输入/输出/控制信号的代码段和描述与MD子模块相关联的输入/输出/控制信号的代码段划分到第二引脚代码文件PAD2中。
根据第二子模块组,将顶层代码文件TOP中与第二子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码划分到第二顶层代码文件TOP2中;并在TOP2中添加描述第二子模块组中各子模块与第一子模块组中各子模块之间的传输信号描述代码段。第二顶层代码文件TOP2的代码内容具体如图9所示。
由生成的第一顶层代码文件TOP1和第二顶层代码文件TOP2重新组成IC设计的顶层代码文件TOP。新的顶层代码文件TOP中包含分割后的顶层代码文件TOP1和TOP2的例化代码。新的顶层代码文件TOP的代码内容具体如图10所示。
步骤S104:将每一组分割后的代码文件分别装入一片现场可编程门阵列FPGA中。其中,一组分割后的代码文件包括:与同一个子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件。
沿用上边的例子,将分割后的顶层代码文件TOP1、分割后的集成电路核心实体代码文件ASICBODY1、分割后的引脚控制代码文件PADC1和分割后的引脚代码文件PAD1装入一片FPGA中;将分割后的顶层代码文件TOP2、分割后的集成电路核心实体代码文件ASICBODY2、分割后的引脚控制代码文件PADC2和分割后的引脚代码文件PAD2装入另一片FPGA中。
步骤S105:对IC设计进行多FPGA联合验证。
沿用上边的例子,并通过生成新的顶层代码文件TOP,建立起分割后的顶层代码文件TOP1和分割后的顶层代码文件TOP2之间的信号传输关系,使用两片FPGA对设计TOP进行联合验证。
根据本发明的上述方法,可以构建一种集成电路IC设计验证装置,其结构如图11所示,包括:分组模块101、文件分割模块102和验证模块103。
分组模块101,用于确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块,将IC设计的集成电路核心实体代码文件所描述的各子模块分成至少两个子模块组。
较佳的,分组模块101进一步可以包括:解析单元1011、确定单元1012和分组单元1013;
解析单元1011,用于对IC设计的代码文件进行解析,解析出IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系。
确定单元1012,用于根据解析单元1011解析出的物理连接关系确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块。
分组单元1013,用于根据确定单元1012确定出的集成电路核心实体模块中在引脚控制模块处不耦合的各子模块,将IC设计的集成电路核心实体代码文件所描述的各子模块分成至少两个子模块组。
文件分割模块102,用于根据分组模块101划分的子模块组,对集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件进行分割。
较佳的,文件分割模块进一步可以包括:第一分割单元1021、第二分割单元1022、第三分割单元1023和第四分割单元1024。
第一分割单元1021,用于根据分组模块101划分的子模块组,对集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个分割后的集成电路核心实体代码文件中包含从集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段;
第二分割单元1022,用于根据分组模块101划分的子模块组,对引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个所述分割后的引脚控制代码文件中包含从所述引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
第三分割单元1023,用于根据分组模块101划分的子模块组,对引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个分割后的引脚代码文件中包含从引脚代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
第四分割单元1024,用于根据分组模块101划分的子模块组,对顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个分割后的顶层代码文件中包含从顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
验证模块103,用于将与同一个子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件装入同一片现场可编程门阵列FPGA中对该IC设计进行验证。
上述集成电路IC设计验证装置,还包括:文件生成模块104,用于根据分割后的顶层代码文件生成新的顶层代码文件,新的顶层代码文件中包含每一个所述分割后的顶层代码文件的例化代码,所述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
上述集成电路IC设计验证装置,还包括:数量确定模块105,用于根据IC设计的代码文件的大小和单片FPGA的容量,以及集成电路核心实体模块中能够划分出来的不相耦合子模块组的数量,确定对IC设计的代码文件进行联合验证时,需要划分的所述子模块组的数量。
本发明实施例提供的集成电路IC设计的验证方法及装置,通过TCL脚本对IC设计的各个代码文件进行解析,自动获取各个代码文件中所描述的IC设计中各模块以及各模块所包含的各子模块之间的信号交互关系,确定出该IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系。
可以根据各个代码文件的描述,确定出集成电路核心实体模块中在引脚控制模块处不耦合的各子模块,将各子模块分成至少两个子模块组,根据划分后的子模块组对代码文件进行分割,生成分割后的代码文件;且保证分割后的集成电路核心实体代码文件所描述的各子模块在在引脚控制模块处不耦合的;在对一个代码文件进行分割、生成新的代码文件时,可以自动生成其所描述的各子模块与其他新生成的代码文件所描述的子模块之间需要添加的接传输信号描述代码段,保证分割后的IC设计的各个代码文件能够实现与分割前的IC设计的各个代码文件相同功能。
将与同一个子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件装入同一片现场可编程门阵列FPGA中,对IC设计进行多FPGA联合验证,实现了对大于单片FPGA容量的大规模集成电路IC设计的原型验证。
上述IC设计的代码文件分割和原型验证过程仅通过TC1脚本即可自动完成,操作简单、成本低。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化、替换或应用到其他类似的装置,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (9)
1.一种集成电路设计验证方法,所述集成电路IC设计的代码文件包括:顶层代码文件、引脚代码文件、引脚控制代码文件和集成电路核心实体代码文件,所述IC设计的代码文件所描述的IC设计中包括:引脚模块、引脚控制模块以及集成电路核心实体模块,其特征在于,该方法包括:
对所述IC设计的代码文件进行解析,根据解析出的所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系,确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;
根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件;
将与同一个所述子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件存入同一片现场可编程门阵列FPGA中对IC设计进行验证。
2.如权利要求1所述的方法,其特征在于,所述根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件,具体包括:
根据所述子模块组,对所述集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个所述分割后的集成电路核心实体代码文件中包含从所述集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段;以及
根据所述子模块组,对所述引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个所述分割后的引脚控制代码文件中包含从所述引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;以及
根据所述子模块组,对所述引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个所述分割后的引脚代码文件中包含从所述引脚代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;以及
根据所述子模块组,对所述顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个所述分割后的顶层代码文件中包含从所述顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
3.如权利要求1所述的方法,其特征在于,还包括:
根据所述分割后的顶层代码文件生成新的顶层代码文件,所述新的顶层代码文件中包含每一个所述分割后的顶层代码文件的例化代码,所述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
4.如权利要求1-3任一所述的方法,其特征在于,还包括:
根据所述IC设计的代码文件的大小和所述FPGA的容量,以及所述集成电路核心实体模块中能够划分出来的所述子模块组的数量,确定对所述IC设计的代码文件进行验证时划分的所述子模块组的数量。
5.一种集成电路设计验证装置,所述集成电路IC设计的代码文件包括:顶层代码文件、引脚代码文件、引脚控制代码文件和集成电路核心实体代码文件,所述IC设计的代码文件所描述的IC设计中包括:引脚模块、引脚控制模块以及集成电路核心实体模块,其特征在于,该装置包括:分组模块、文件分割模块和验证模块;
所述分组模块,用于对所述IC设计的代码文件进行解析,根据解析出的所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系,确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;将所述各子模块分成至少两个子模块组;
所述文件分割模块,根据所述子模块组,对所述集成电路核心实体代码文件、所述引脚控制代码文件、所述引脚代码文件和所述顶层代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件、引脚控制代码文件、引脚代码文件和顶层代码文件;
所述验证模块,用于将与同一个所述子模块组对应的分割后的集成电路核心实体代码文件、分割后的引脚控制代码文件、分割后的引脚代码文件和分割后的顶层代码文件装入同一片现场可编程门阵列FPGA中对所述IC设计进行验证。
6.如权利要求5所述的装置,其特征在于,所述分组模块,包括:解析单元、确定单元和分组单元;
所述解析单元,用于对所述IC设计的代码文件进行解析,解析出所述IC设计的代码文件所描述的IC设计中各模块以及各模块所包含的各子模块之间的物理连接关系;
所述确定单元,用于根据所述物理连接关系确定出所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块;
所述分组单元,用于根据所述确定单元确定出的所述集成电路核心实体模块中在所述引脚控制模块处不耦合的各子模块,将所述各子模块分成至少两个子模块组。
7.如权利要求6所述的装置,其特征在于,所述文件分割模块,包括:第一分割单元、第二分割单元、第三分割单元和第四分割单元;
所述第一分割单元,用于根据所述子模块组,对所述集成电路核心实体代码文件进行分割,生成与各子模块组对应的分割后的集成电路核心实体代码文件,每个所述分割后的集成电路核心实体代码文件中包含从所述集成电路核心实体代码文件中解析并分割出来的、描述一个子模块组中各子模块的传输信号描述代码段和新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段;
所述第二分割单元,用于根据所述子模块组,对所述引脚控制代码文件进行分割,生成与各子模块组对应的分割后的引脚控制代码文件,每个所述分割后的引脚控制代码文件中包含从所述引脚控制代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
所述第三分割单元,用于根据所述子模块组,对所述引脚代码文件进行分割,生成与各子模块组对应的分割后的引脚代码文件,每个所述分割后的引脚代码文件中包含从所述引脚代码文件中解析并分割出来的、描述与一个子模块组中各子模块的传输信号相关联的输入/输出/控制信号的代码段;
所述第四分割单元,用于根据所述子模块组,对所述顶层代码文件进行分割,生成与各子模块组对应的分割后的顶层代码文件,每个所述分割后的顶层代码文件中包含从所述顶层代码文件中解析并分割出来的一个子模块组对应的分割后的集成电路核心实体代码文件的例化代码、分割后的引脚控制代码文件的例化代码和分割后的引脚代码文件的例化代码,以及新添加的所述一个子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
8.如权利要求5-7任一所述的装置,其特征在于,还包括:
文件生成模块,用于根据所述分割后的顶层代码文件生成新的顶层代码文件,新的顶层代码文件中包含每一个所述分割后的顶层代码文件的例化代码,所述例化代码中包含所述分割后的顶层代码文件对应的子模块组中各子模块与其他子模块组中各子模块之间的传输信号描述代码段。
9.如权利要求8所述的装置,其特征在于,还包括:
数量确定模块,用于根据所述IC设计的代码文件的大小和所述FPGA的容量,以及所述集成电路核心实体模块中能够划分出来的所述子模块组的数量,确定对所述IC设计的代码文件进行验证时划分的所述子模块组的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101155926A CN101290640B (zh) | 2008-06-25 | 2008-06-25 | 集成电路设计的验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101155926A CN101290640B (zh) | 2008-06-25 | 2008-06-25 | 集成电路设计的验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101290640A CN101290640A (zh) | 2008-10-22 |
CN101290640B true CN101290640B (zh) | 2010-06-23 |
Family
ID=40034896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101155926A Expired - Fee Related CN101290640B (zh) | 2008-06-25 | 2008-06-25 | 集成电路设计的验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101290640B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106291222A (zh) * | 2016-07-25 | 2017-01-04 | 北京联盛德微电子有限责任公司 | 一种信号线连接关系的测试方法和装置 |
CN112084735B (zh) * | 2020-09-03 | 2023-12-22 | 深圳国微晶锐技术有限公司 | 一种基于rtl源码的fpga切割方法及系统 |
CN113361220A (zh) * | 2021-06-22 | 2021-09-07 | 无锡江南计算技术研究所 | 一种对集成电路设计自动裁剪的验证环境构建方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711729B1 (en) * | 2000-12-05 | 2004-03-23 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits using automatic reallocation techniques |
CN101136036A (zh) * | 2006-10-12 | 2008-03-05 | 中兴通讯股份有限公司 | 一种组合式现场可编程门阵列验证装置 |
CN101165652A (zh) * | 2006-10-18 | 2008-04-23 | 中兴通讯股份有限公司 | 一种用cpu同时加载多片fpga的方法 |
-
2008
- 2008-06-25 CN CN2008101155926A patent/CN101290640B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711729B1 (en) * | 2000-12-05 | 2004-03-23 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits using automatic reallocation techniques |
CN101136036A (zh) * | 2006-10-12 | 2008-03-05 | 中兴通讯股份有限公司 | 一种组合式现场可编程门阵列验证装置 |
CN101165652A (zh) * | 2006-10-18 | 2008-04-23 | 中兴通讯股份有限公司 | 一种用cpu同时加载多片fpga的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101290640A (zh) | 2008-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108028654B (zh) | 用于fpga的测试和配置的系统和方法 | |
US4862399A (en) | Method for generating efficient testsets for a class of digital circuits | |
CN106021044A (zh) | 可重用spi总线协议模块验证环境平台及其验证方法 | |
US20090100304A1 (en) | Hardware and Software Co-test Method for FPGA | |
CN106156424B (zh) | 一种仿真系统 | |
CN101290640B (zh) | 集成电路设计的验证方法及装置 | |
US9304881B2 (en) | Trace routing network | |
US20140109029A1 (en) | Mixed signal ip core prototyping system | |
US6611936B2 (en) | Programmable delay elements for source synchronous link function design verification through simulation | |
US20020108094A1 (en) | System and method for designing integrated circuits | |
CN107340467B (zh) | 测试系统 | |
US9294094B1 (en) | Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system | |
Baig et al. | An island-style-routing compatible fault-tolerant FPGA architecture with self-repairing capabilities | |
WO2007096376A1 (en) | Communication scheme between programmable sub-cores in an emulation environment | |
US11775716B2 (en) | High speed, low hardware footprint waveform | |
US20040230934A1 (en) | System and method for emulating systems with multiple field programmable gate arrays | |
US8082139B1 (en) | Displaying signals of a design block emulated in hardware co-simulation | |
CN105843745B (zh) | 一种用于测试余度管理软件的方法及系统 | |
CN102280141A (zh) | 一种闪速存储器芯片编程方法及装置 | |
US20150204944A1 (en) | Programmable logic device and verification method therefor | |
US8065128B1 (en) | Methods and apparatus for automated testbench generation | |
WO2021086469A1 (en) | Programmable device configuration memory system | |
Smirnov et al. | Methods for designing electrical equipment for testing VLSI used in aviation digital information systems | |
CN116879723B (zh) | 一种通用芯片测试板 | |
CN111123082B (zh) | 一种小体积立体式反熔丝fpga在线调试验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100623 Termination date: 20120625 |