本发明涉及eda仿真工具技术领域,特别是涉及一种大规模rc电路的存储方法。
背景技术:
对电路中rc器件的仿真处理是集成电路设计的必要环节,需要对每一个rc器件使用单独的对象进行存储,分别访问每个rc存储对象并进行相关处理。
但随着超大规模集成电路的发展,集成电路的复杂性越来越高。由于电路中有大量的rc器件,电路仿真中对rc器件的存储和访问对内存和时间的消耗是非常大。更加有效的减少rc电路处理对内存和时间消耗,已成为亟待解决的问题。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种基于矩阵的rc电路存储方法,将电路中的rc器件存储到rc矩阵中并进行处理,能够更加有效的减少rc电路处理对内存和时间消耗,同时支持rc电路高效查询,rc器件增加、删除、改值等动态更新,更新后支持溯源以及名字映射等操作。
为实现上述目的,本发明提供的一种基于矩阵的rc电路存储方法,包括以下步骤:
1)建立rc矩阵,将电路中的rc器件存储到rc矩阵中;
2)基于rc矩阵,建立矩阵中的rc端点的索引映射;
3)基于rc矩阵,建立矩阵中的rc端点的名称映射;
4)基于rc端点的变换,重建rc矩阵并更新rc端点的索引映射;
5)基于rc矩阵,输出rc相关的仿真结果。
进一步地,所述建立rc矩阵,将电路中的rc器件存储到rc矩阵中的步骤,还包括,
对电路中rc器件的端点进行编号,当所述rc器件存储到rc矩阵时,根据端点的编号表示所述rc器件在矩阵中的位置,所述rc器件的值代表其在矩阵中对应元素的值。
进一步地,还包括,
每个rc器件包括两个端点,相同的rc器件端点编号相同,当所述rc器件存储到rc矩阵时,两个端点的编号分别表示rc器件在矩阵中的行和列;
对于接地的rc器件,根据另一个端点的编号将其存储到矩阵的对角线上。
进一步地,还包括,所述rc矩阵为对称矩阵,对所述对称矩阵进行压缩存储。
进一步地,所述基于rc矩阵,建立矩阵中的rc端点的索引映射的步骤,还包括,构建一维数组,所述数组的长度为电路中rc器件的端点个数,所述数组下标表示初始状态下每个rc端点的旧索引,数值的值表示矩阵变换后rc端点在新矩阵中的新索引,初始状态下所述旧索引和所述新索引一一对应且相等。
进一步地,所述基于rc矩阵,建立矩阵中的rc端点的名称映射的步骤,还包括,存储电路中所有rc端点的名称,建立所述rc端点的名称的存储位置与端点对应的旧索引的映射。
进一步地,所述基于rc端点的变换,重建rc矩阵并更新rc端点的索引映射的步骤,还包括,
51)根据rc器件端点的变换操作,得到变换后的端点对应的新索引;
52)遍历所述rc矩阵,根据端点的新索引更新矩阵中元素的相关数据;
53)对rc端点进行重新编号,保证端点新索引的连续性,去掉矩阵的空行,压缩存储空间。
更进一步地,还包括,在执行所述步骤52)和53)时更新端点的旧索引和新索引的映射。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于矩阵的rc电路存储方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于矩阵的rc电路存储方法的步骤。
本发明的基于矩阵的rc电路存储方法、电子设备及计算机可读存储介质,具有以下有益效果:
1)基于矩阵对rc网络进行存储,由于将rc网络存储到矩阵中,不再对单独的rc器件进行存储,这样将会减少rc器件对内存的的消耗;
2)基于矩阵的rc电路处理,能够利用一些矩阵的优化算法,这样对整个电路仿真特别是rc器件较多的电路,也能够降低整个仿真的处理时间;
3)目前测试结果表明对于大部分电路,能将内存占用降低到传统技术的1/2以下,仿真时间降低到传统技术的1/2以下。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于矩阵的rc电路存储方法流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的基于矩阵的rc电路存储方法流程图,下面将参考图1,对本发明的基于矩阵的rc电路存储方法进行详细描述。
首先,在步骤101,建立rc矩阵,将电路中的rc器件存储到rc矩阵中。
本发明实施例中,首先对电路中rc器件的端点进行编号,编号从0开始依次增长,不同rc器件共用同一个端点(相同端点)则使用相同的编号。
本发明实施例中,每个rc器件有两个端点,rc器件存储到rc矩阵时,用两个端点的编号表示rc器件在矩阵中的位置,分别代表矩阵中的行和列。
本发明实施例中,rc器件的值代表其在矩阵中对应元素的值。
本发明实施例中,对于接地的rc器件,根据另一个端点的编号将其存储到矩阵的对角线上。
本发明实施例中,rc矩阵是一个对称矩阵,对其进行压缩存储,矩阵中的相同数据元素只存一个,即存储上三角或者下三角。
在步骤102,基于rc矩阵,建立矩阵中的rc端点的索引映射(index映射)。
本发明实施例中,构建一个一维数组,数组的长度为电路中rc器件的端点个数,数组下标表示初始状态下每个rc端点的index,称作oldindex,数值的值表示矩阵变换后rc端点在新的矩阵中的index,称作newindex,初始状态下oldindex和newindex是一一对应并且相等的。
在步骤103,基于rc矩阵,建立矩阵中的rc端点的端点名映射(name映射)。
本发明实施例中,将电路中所有rc端点的name存储起来。
本发明实施例中,建立rc端点的name的存储位置与端点对应的oldindex的映射。
在步骤104,基于rc端点的变换,重建rc矩阵并更新rc端点的index映射。
本发明实施例中,电路仿真过程中会对rc器件的端点进行合并,交换,重置,删除等相关操作。可具体执行为:
(1)根据rc器件端点的变换操作,得到变换后的端点对应的newindex。
(2)遍历rc矩阵,根据端点的newindex更新矩阵中元素的位置和值等相关数据。
(3)对rc端点进行重新编号,保证端点的newindex的连续性,去掉矩阵的空行,压缩存储空间。
(4)在步骤(2)和(3)中同步更新端点的oldindex和newindex的映射。
在步骤105,基于rc矩阵,输出rc相关的仿真结果。
本发明实施例中,根据newindex,从oldindex与newindex的映射表中得到newindex对应的oldindex。
本发明实施例中,根据oldindex得到端点对应的name。
本发明实施例中,输出端点仿真结果,(name)=仿真结果。
实施例2
下面结合一具体实施例对本发明的基于矩阵的rc电路存储方法做进一步的说明。
本实施例中,电路包含如下的rc器件:
rabr=1
rcdr=2
步骤1:建立rc矩阵,将电路中的rc器件存储到rc矩阵中,矩阵如下所示:
按照压缩矩阵规则存储为如下几个数组
cols=(1,0,3,2)
vals=(1,2)
数组cols存储rc器件在矩阵中的位置,下标表示矩阵行,值表示矩阵列;
数组vals存在rc器件的值;
步骤2:基于rc矩阵,建立矩阵中的rc端点的index映射
rc器件相关的端点的oldindex为:
a:1
b:2
c:3
d:4
初始化oldindex与newindex的映射:
步骤3:基于rc矩阵,建立矩阵中的rc端点的name映射
初始化oldindex与name的映射:
步骤4:基于rc端点的变换,重建rc矩阵并更新rc端点的index映射,比如将端点c合并到端点b:
a)更新端点c的newindex与b一致,即为2;
b)更新rc矩阵如下所示:
c)更新oldindex和newindex的映射:
d)变换newindex4为3,保证index连续,更新rc矩阵如下所示
010
102
020
e)更新oldindex和newindex的映射:
步骤5:基于rc矩阵,输出相关rc端点的仿真数据。
遍历rc矩阵中所有rc端点
a)根据newindex从oldindex与newindex的映射表中得到newindex对应的oldindex;
b)根据oldindex得到端点对应的name;
c)输出端点仿真结果,(name)=仿真结果。
本发明的基于矩阵的rc存储方法,提高了集成仿真电路中,大规模电路中rc的存储访问效率,压缩rc器件存储空间,降低内存使用,可以更加有效的减少rc电路处理对内存和时间消耗。同时支持rc电路高效查询,rc器件增加、删除、改值等动态更新,更新后支持溯源以及名字映射等操作。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的基于矩阵的rc电路存储方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的基于矩阵的rc电路存储方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。