CN116776794A - Fpga互联矩阵形式验证方法 - Google Patents
Fpga互联矩阵形式验证方法 Download PDFInfo
- Publication number
- CN116776794A CN116776794A CN202310712679.6A CN202310712679A CN116776794A CN 116776794 A CN116776794 A CN 116776794A CN 202310712679 A CN202310712679 A CN 202310712679A CN 116776794 A CN116776794 A CN 116776794A
- Authority
- CN
- China
- Prior art keywords
- module
- connection
- verified
- modules
- relative
- 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.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 21
- 238000003491 array Methods 0.000 claims abstract description 3
- 238000012545 processing Methods 0.000 claims description 4
- 230000005284 excitation Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000000605 extraction Methods 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract description 2
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000004804 winding Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 239000003995 emulsifying agent Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
FPGA互联矩阵形式验证方法,涉及集成电路技术,本发明包括下述步骤:(1)对每一个待验证模块,按照正交阵列位置,整理形成绝对位置路径对应表;(2)以任意一个典型待验证模块作为指定模块,以指定模块自身为零点建立坐标系,在此坐标系下描述连接规则,形成相对连接规则;(3)以一个待验证模块作为零点,所有的待验证模块获得相对于该模块的相对位置坐标,并基于相对位置坐标,调用相对连接规则,形成连接对应表;(4)生成实际映射关系表;(5)生成形式化工具支持的表达语句;(6)对剩余待验证模块重复步骤(3)~(5)。本发明大大减少了连线提取和描述时间,提升FPGA验证效率。
Description
技术领域
本发明涉及集成电路技术,特别涉及集成电路验证技术。
背景技术
当前对FPGA互联矩阵的连线验证,大范围都是依托于在整芯片进行功能验证时,EDA工具布线布到哪儿才能验到对应的位置,这样验证效率极低,并且EDA工具算法限制走线会有优先级选择,也会导致很多连线靠工程永远的约束不过去。随着FPGA芯片规模越来越大,验证一个用例所需时间和空间也越来越大,靠仿真达到验证的高覆盖率也越来越难。迫切的需要使用工具来替代人工,使用静态验证代替动态仿真。当前主流是使用形式化验证工具对模块级代码进行形式验证,基本可达到全覆盖,对模块做连线验证是形式化验证的其中一种方式。
其基本流程如下:
1、确认模块接口信号连接规则;
2、通过连接规则,转换实际模块间的连接为(外部工具)可识别的语法文件;
3、执行工具使文件作用于验证对象(可综合的网表或者RTL代码);
4、结果分析。
在已知信号连接规则情况下,第二步为验证重难点,难度在于:
1、个数较少的模块可以单独提出来进行连接规则编写和验证。但在芯片中这类模块只占用了极小部分的连线。像互联矩阵这一类,数量太大,其量级轻松就过万。
2、芯片实现的代码或者网表有层次调用关系,不同模块的调用层次深度不一定一致,与其连接的其它模块路径也不一致。因此在连接规则转换的时候,只能单模块单操作,不能做到直接的重复性调用。
总之,需要靠人工实现所有模块的连接规则转换,工作量巨大,性价比极低。由于互联矩阵数量和FPGA规模正相关,一般一个功能块至少对应一个互联矩阵,就目前的设计规模而言,数量上万非常常见。数字前端当前行业验证主流为模块级和IP级采用形式化验证方法进行充分验证,可以达到高的功能覆盖率和代码覆盖率,完整芯片或SOC阶段采用FPGA/Emulator应用场景验证。只能进行典型功能的正确性验证,使用传统验证方法以设计不同功能进行芯片级的连线验证,面临仿真配置时间长、空间需求大、工具约束局限等问题,覆盖率极低。在实际验证过程中,通过大量用例验证,连线覆盖很难到百分之三十,越往后越难以覆盖。
发明内容
本发明所要解决的技术问题是,提供一种高效的FPGA互联矩阵连线验证方法,能够极大的提高验证效率。
本发明解决所述技术问题采用的技术方案是,FPGA互联矩阵形式验证方法,涉及集成电路技术,包括下述步骤:
(1)对每一个待验证模块,按照正交阵列位置,整理形成绝对位置路径对应表,所述绝对位置路径对应表记载了待验证模块的绝对位置和调用路径的对应关系;
(2)以任意一个典型待验证模块作为指定模块,以指定模块自身为零点建立坐标系,形成一个相对坐标系,将预定的连接规则在此坐标系下进行描述,形成相对连接规则;
所述典型待验证模块的定义:
对于一个待验证模块,以适用预定的连接规则后所能形成的最大覆盖范围作为参考范围,所有的连接对象皆处于该参考范围内,则该待验证模块属于典型待验证模块;例如处于正交矩阵中央位置的待验证模块,完全不涉及边界条件。
(3)以一个待验证模块作为零点,所有的待验证模块获得相对于该模块的相对位置坐标,并基于相对位置坐标,调用相对连接规则,形成连接对应表,连接对应表的信息包括自身端口名、功能、连接对象ID和连接对象端口名对应关系,所述连接对象ID为连接对象的相对位置坐标;对于涉及边界条件的待验证模块,按照预设方式处理;
(4)根据绝对位置路径对应表和连接对应表,生成实际映射关系表,所示实际映射关系表中的信息包括自身端口名、各连接对象绝对位置和连接对象端口名;
(5)依据实际映射关系表,生成形式化工具支持的表达语句;
(6)对剩余待验证模块重复步骤(3)~(5),直至表达语句覆盖所有待验证模块。
进一步的,所述步骤(5)为:依据实际映射关系表,生成形式化工具支持的表达语句,并依据该表达语句对芯片施加激励进行验证。
所述步骤(3)中,预设方式为:连接端口组替代连接对象。
采用本发明的技术,验证模块连线可以基本可以达到全覆盖,但是互联矩阵数量太多,在已清楚连接规则的情况下,靠人工进行连线描述,一个模块至少两天,想在此基础上继续缩短连线描述时间,必须使用脚本加方法进行优化,在使用本方法时,除开前面映射关系和脚本的编写时间,一个模块可以在分钟内产出连线关系。大大减少了连线提取和描述时间,提升FPGA验证效率。
附图说明
图1是一种简单FPGA模块分布图。
图2是实施例1的互联矩阵绝对位置分布图。
图3是实施例1的L_X2Y0模块的部分端口和周边模块端口连线示意图。
图4是实施例1的R_X3Y0的部分端口和周边模块端口连线示意图。
具体实施方式
FPGA的布局是有规则的,以行列排布,简单的FPGA模块分布图如图1所示。图中CLB统指其它功能模块,非CLB则为互联矩阵模块。
图1中互联矩阵命名含义如下:
A、L和R为互联矩阵的两种类型,如果和其连线的功能块(CLB)在互联矩阵的右边,则该互联矩阵的命令以L开头,比如图一种的L_X0Y0。如果和其连线的功能块(CLB)在互联矩阵的左边,则该互联矩阵的命令以R开头,比如图一种的R_X1Y0。
B、X和Y为坐标显示,从左下角X0Y0开始,向上Y增加,向右X增加,从0到N。
由于本文主要描述互联矩阵之间的连接验证,因此单独把互联矩阵提取出来,形成了图2所示的互联矩阵绝对位置分布图,每个互联矩阵模块的命名为唯一可辨别性位置名,也就是绝对位置名。
实施例1
本实施例以现有技术和本发明进行对照。
一、整理形成每一个位置的模块调用路径和模块名的对应关系,以便于连线转换时提取实际路径等内容,形成绝对位置路径对应表,如表1所示:
绝对位置名 | 电路实际位置调用路径 |
R_X1Y0 | R2C0.R1C1.R0C0 |
L_X2Y0 | R1C0.R0C1.R0C2 |
R_X3Y0 | R1C2.R0C0 |
... | ... |
表1
其中电路实际位置的调用路径中间的点“.”为电路实际层次关系,R1C0、R0C1这些为在每一层互联矩阵模块所处的坐标位置,和XY坐标类似。
二、描述连接规则:
互联矩阵的绕线有两种类型:
A、外部绕线:即互联矩阵和互联矩阵之间的绕线,包含单线、二倍线、四倍线、六倍线、长线(水平方向为12倍线,垂直方向为12和18倍线),中间点输出等。
B、局部绕线:互联矩阵和其它功能模块(比如图1中的CLB)连接的局部直连线。
连接规则定义了一个模块从自身各端口对外连线的连接关系,参见图3,绝对位置名为L_X2Y0的模块周边的各箭头示出了连接规则对L_X2Y0模块的适用效果。参见图4,绝对位置名为R_X3Y0的模块周边的各箭头示出了连接规则对R_X3Y0模块的适用效果。
需要说明的是,连接规则是连线关系的表达,连接规则可以包括适用于非边界模块的一般性规则,也可以包括针对处于边界位置的模块的边界规则。
作为一个举例,参见图3和图4,图中的各箭头的集合示出了一种连接规则,图3的箭头集合向右平移一个模块即成为图4,即该连接规则既适用于L_X2Y0模块,也适用于R_X3Y0模块,以及其他非边界模块。对于涉及边界条件的待验证模块,按照预定方式处理即可。最简单的预定方式是,以连接端口组替代连接对象。
例如图3中左上角位置的L_X0YN模块(为简化说明,此时忽略虚线箭头),若简单适用实线箭头组所示的连接规则,则会出现该模块涉及边界条件,也就是port1、port3、port4、port6、port7和port8所示的端口无处可连的状况,此时可将其空置,或者连接到6个外部连接端口构成的连接端口组(图中未示出)。此时的边界规则即为一般性规则的特殊适用,但不超出一般性规则;也可以将边界规则预设为其他处理方式,例如单独处理。
因此,需要识别待验证模块是否属于涉及边界条件,若是,适用预定义的边界规则即可。边界条件系指适用连接规则后应有的连接对象超出矩阵范围的情况。
三(现有技术)、选取一个互联矩阵模块作为目标模块(待验证模块),例如L_X2Y0,整理得到表2的连线信息,表中的“对象”是“连接对象模块”的简写。
表2
如果切换R_X3Y0为想要验证的目标模块,则连线信息为:
表3
对比表2和表3可知,每切换一个需要验证的目标模块,期望的到的连线信息中对应的连接模块(绝对位置名)需要进行相应的修改,互联矩阵数量级为万数或者十万数,想要验证更多的互联矩阵,需要大量对应的连接信息表,修改极为费时费力,并且出错概率相当大。
因此,本发明采用了相对位置坐标的方式。根据已知的连线规律,首先以目标模块为中心点(零点),建立相对坐标系,给其可能连接的的所有模块取相对位置名,所有模块获得相对坐位置标,如表4所示:
表4
X0Y0为目标模块,以目标模块为中心的其它模块的相对位置名按照XY坐标显示,N代表负。
然后按照相对位置名设置目标模块和需要与其连接的各连接对象模块的每个端口信号名的对应连接关系,如表5所示:
表5
表中第一列表示目标模块的端口信号名,第二列表示端口属性(输入、输出、过线等,该列功能预留),第三四列表示和第一列目标模块有连接的一个模块的相对位置名和连接的端口信号,第五六列表示和第一列目标模块有连接的另一个模块的相对位置名和连接的端口信号,以此类推列出和目标模块全部端口信号有链接的模块的相对位置名和连接的端口信号。
该表是一个包含和目标端口有相连的所有对象模块端口连接信息表,其连接模块全部使用相对位置表示,当确定一个目标模块时,仅需把相对位置全部替换成绝对位置和实际路径即可。
至此,
表1记载了各模块绝对位置与实际调用路径的对应关系,
表4记载了以指定模块为零点的、各模块的相对位置,也就是当前坐标系下的各模块位置坐标,
表5记载了当前坐标系下定义连接规则,称为“相对连接规则”,见表5,一般性规则在被不同的非边界模块调用时无需改动,对于边界模块,适用预定义的边界规则,例如,位于边界位置的特殊模块,可能会有一些连线没有连接,呈悬空状态,悬空的连线在最后生成的实际映射关系表中以“不体现”处理。
结合表1和表5,或者说,将表5中的各对象的相对位置坐标替换为绝对位置,即可获得目标模块自身端口名、各连接对象绝对位置和连接对象端口名的对应信息;称为实际映射关系表,如表6:
表6
然后把表6中的映射关系转换为形式化工具支持的语法,保存在文件中,以供后续验证。
工作状态下,本发明采用脚本方式,只需对各个待验证模块调用表5所述连接规则,然后依据表4进行坐标变换,再依据表1附加实际调用路径,即可获得表6的实际映射关系,极大的提高了工作效率。
实施例2
本实施例包括下述步骤:
1、列出FPGA的互联矩阵全局排列图,给每个互联矩阵一个绝对位置名。如表9所示。
... | ... | ... | ... | ... | ... | ... | ... | |
L_X0Y27 | R_X1Y27 | L_X2Y27 | R_X3Y27 | ... | L_X38Y27 | R_X39Y27 | L_X40Y27 | ... |
L_X0Y26 | R_X1Y26 | L_X2Y26 | R_X3Y26 | ... | L_X38Y26 | R_X39Y26 | L_X40Y26 | ... |
L_X0Y25 | R_X1Y25 | L_X2Y25 | R_X3Y25 | ... | L_X38Y25 | R_X39Y25 | L_X40Y25 | ... |
L_X0Y24 | R_X1Y24 | L_X2Y24 | R_X3Y24 | ... | L_X38Y24 | * | L_X40Y24 | ... |
L_X0Y23 | R_X1Y23 | L_X2Y23 | R_X3Y23 | ... | L_X38Y23 | R_X39Y23 | L_X40Y23 | ... |
L_X0Y22 | R_X1Y22 | L_X2Y22 | R_X3Y22 | ... | L_X38Y22 | R_X39Y22 | L_X40Y22 | ... |
... | ... | ... | ... | ... | ... | ... | ... | |
L_X0Y4 | R_X1Y4 | L_X2Y4 | R_X3Y4 | ... | L_X38Y4 | R_X39Y4 | L_X40Y4 | ... |
L_X0Y3 | R_X1Y3 | L_X2Y3 | R_X3Y3 | ... | L_X38Y3 | R_X39Y3 | L_X40Y3 | ... |
L_X0Y2 | R_X1Y2 | L_X2Y2 | R_X3Y2 | ... | L_X38Y2 | R_X39Y2 | L_X40Y2 | ... |
L_X0Y1 | R_X1Y1 | L_X2Y1 | R_X3Y1 | ... | L_X38Y1 | R_X39Y1 | L_X40Y1 | ... |
L_X0Y0 | R_X1Y0 | L_X2Y0 | R_X3Y0 | ... | L_X38Y0 | R_X39Y0 | L_X40Y0 | ... |
表9
注:如有被其它功能块占用,未能连续的模块,用*号代替。
2、对所有互联矩阵位置和实际调用路径做映射,并存储在CSV文件中,方便后续脚本的调用。如表10所示:
表10
3、描述连接规则,本实施例采用表4的相对坐标命名方式,并采用表5所定义的连接规则。
4、采用脚本对模块接口信号的连线进行判断和提取。
设置L_X20Y20为目标模块,以该模块为零点建立坐标系。
导入表4,映射目标模块到X0Y0,得到与其相连接的所有模块的相对位置与绝对位置的映射关系:
表11
导入表10,得到所有相连模块的真实路径的映射,如下表所示:
相对位置名 | 电路实际位置调用路径 |
X0Y1 | R1C3.R0C32.R21C1 |
X0Y0 | R1C3.R0C32.R20C1 |
X0YN1 | R1C3.R0C32.R19C1 |
... | ... |
X1Y1 | R1C3.R0C30.R21C1 |
X1Y0 | R1C3.R0C30.R20C1 |
X1YN1 | R1C3.R0C30.R19C1 |
... | ... |
XN1Y1 | R1C3.R0C34.R21C1 |
XN1Y0 | R1C3.R0C34.R20C1 |
XN1YN1 | R1C3.R0C34.R19C1 |
表12互联矩阵实际路径映射
此时已经实现了实际网表或者代码中模块之间的连线映射。只需要最后导表5模块端口信号连线表,把连接转换成工具支持的语法描述即可。以jaspergold为例,生成内容如下的csv文件。
表13连线约束
该文件可以直接被工具识别然后导入进行验证。
各列释义:
CONNECTION为csv语法关键字,代表连接,不同工具关键字可能不一样。
name为连接名,是为该连接取的一个连接名,以L_X20Y20_1为例,L_X20Y20代表目标连接模块实际模块名,后面的1为序号,每添加一个连接,序号加一。
Source Instance为目标模块的真实例化路径,也称为源路径。
Source Signal为目标模块需要连接的端口名,也叫做源端口信号
Destination Instance为和目标模块相连的模块例化路径,也称为目标路径。
Destination Signal为和目标模块相连的模块端口名,也称为目标端口信号。
Claims (3)
1.FPGA互联矩阵形式验证方法,其特征在于,包括下述步骤:
(1)对每一个待验证模块,按照正交阵列位置,整理形成绝对位置路径对应表,所述绝对位置路径对应表记载了待验证模块的绝对位置和调用路径的对应关系;
(2)以任意一个典型待验证模块作为指定模块,以指定模块自身为零点建立坐标系,形成一个相对坐标系,在此坐标系下描述连接规则,形成相对连接规则;
(3)以一个待验证模块作为零点,所有的待验证模块获得相对于该模块的相对位置坐标,并基于相对位置坐标,调用相对连接规则,形成连接对应表,连接对应表的信息包括自身端口名、功能、连接对象ID和连接对象端口名对应关系,所述连接对象ID为连接对象的相对位置坐标;对于涉及边界条件的待验证模块,按照预设方式处理;
(4)根据绝对位置路径对应表和连接对应表,生成实际映射关系表,所示实际映射关系表中的信息包括自身端口名、各连接对象绝对位置和连接对象端口名;
(5)依据实际映射关系表,生成形式化工具支持的表达语句;
(6)对剩余待验证模块重复步骤(3)~(5),直至表达语句覆盖所有待验证模块。
2.如权利要求1所述的FPGA互联矩阵形式验证方法,其特征在于,所述步骤(5)为:
依据实际映射关系表,生成形式化工具支持的表达语句,并依据该表达语句对芯片施加激励进行验证。
3.如权利要求1所述的FPGA互联矩阵形式验证方法,其特征在于,所述步骤(3)中,预设方式为:连接端口组替代连接对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310712679.6A CN116776794A (zh) | 2023-06-13 | 2023-06-13 | Fpga互联矩阵形式验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310712679.6A CN116776794A (zh) | 2023-06-13 | 2023-06-13 | Fpga互联矩阵形式验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116776794A true CN116776794A (zh) | 2023-09-19 |
Family
ID=87992435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310712679.6A Pending CN116776794A (zh) | 2023-06-13 | 2023-06-13 | Fpga互联矩阵形式验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116776794A (zh) |
-
2023
- 2023-06-13 CN CN202310712679.6A patent/CN116776794A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2614986B2 (ja) | フィールドプログラム可能なゲートアレイ・インプリメンテーションをマスクプログラム可能な論理セル・インプリメンテーションに変換するための方法と装置 | |
US5471398A (en) | MTOL software tool for converting an RTL behavioral model into layout information comprising bounding boxes and an associated interconnect netlist | |
CN110765523A (zh) | 一种基于bim技术的深基坑围护结构快速构建方法 | |
CN1521830A (zh) | 集成电路设计、验证与测试一体化的技术方法 | |
CN106682268B (zh) | 可编程逻辑器件配置方法及设备 | |
CN114818553B (zh) | 一种芯片集成设计方法 | |
CN109272571B (zh) | 一种PDS三维数据转换为Flowmaster模型的系统和方法 | |
CN104750887A (zh) | 一种模板化产生参数化单元的方法 | |
CN110889257A (zh) | Fpga电路验证生成网表的方法及电路逻辑验证平台 | |
US20060020441A1 (en) | Method and system for creating timing constraint library | |
CN116776794A (zh) | Fpga互联矩阵形式验证方法 | |
CN108563810B (zh) | 一种自动布线与生成报表的方法 | |
CN102156789B (zh) | Fpga约束文件自动生成系统及方法 | |
CN107273598B (zh) | 一种SoC芯片PAD控制端寄存器RTL代码自动生成方法和系统 | |
CN114661596B (zh) | 一种自动测试参数化单元功能的方法 | |
KR100486274B1 (ko) | 집적회로 장치 설계용 네트리스트 작성 방법 | |
CN104461569B (zh) | 一种基于matlab的c/c++程序生成辅助方法 | |
CN111353335A (zh) | 一种将控制层逻辑图转换为仿真系统组态文件的方法 | |
CN111142013B (zh) | 基于max7000系列cpld逻辑还原方法 | |
CN109117431A (zh) | 用于将来自源应用的源数据合并至目标应用的目标数据的系统和方法 | |
US20200302105A1 (en) | Analog design tool having a cell set, and related methods | |
US7398506B2 (en) | Net list producing device producing a net list with an interconnection parasitic element by hierarchical processing | |
JP5229834B2 (ja) | 回路設計方法、回路設計システム及び記録媒体 | |
CN111428436A (zh) | 一种程序化分析集成电路线路结构的方法 | |
US7178117B1 (en) | Apparatus and method for RTL based full chip modeling of a programmable logic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |