集成电路仿真中数据通信的方法、模块、存储介质及系统与流程

文档序号:21781369发布日期:2020-08-07 20:07阅读:154来源:国知局
集成电路仿真中数据通信的方法、模块、存储介质及系统与流程

本发明属于数字集成电路软件逻辑仿真领域,具体涉及一种集成电路仿真中数据通信的方法、模块、存储介质及系统。



背景技术:

目前常用的数字集成电路软件逻辑仿真器仅仅用单台服务器实现运行仿真程序,为实现复杂的集成电路软件逻辑仿真运算可使用跨计算节点。使用大规模计算集群来实现数字集成逻辑仿真的技术。

数字集成电路逻辑仿真与验证是数字集成电路设计中一项重要的工作。大规模数字电路逻辑仿真需要耗费巨大的计算能力,往往单台高性能服务器不能胜任。因此需要大规模并行计算集群做算力的支撑。通过将要仿真模拟的数字电路模块分布到不同的计算节点上并行运算获得仿真速度的提升。通过计算集群做逻辑仿真,逻辑模块之间通过高速局域网传递数据,在数据量大的情况下会造成仿真运算速度的瓶颈。



技术实现要素:

本发明提供了一种集成电路仿真中数据通信的方法、模块、存储介质及系统,解决了在通过计算集群做逻辑仿真,逻辑模块之间通过高速局域网传递数据,现有技术直接将模块间的信号数据做直接的传输,在数据量大的情况下会造成仿真运算速度瓶颈的问题。

本发明所采用的技术方案为:

集成电路仿真中数据通信的方法,在每个时钟周期,当仿真运算模块a中有数据更新时,将数据传输给下一个仿真运算模块b。通过只有在当前仿真运算模块中数据更新时才进行数据传输,可以大大节约数据通讯带宽占用量,由此,不同模块之间的数据通讯效率提升,仿真运算模块a以及仿真运算模块b可以代表计算集群中不同的计算机,也可代表单台服务器的仿真器,仿真器之间逻辑仿真也可通过此方法进行提升性能;解决在通过计算集群做逻辑仿真,逻辑模块之间通过高速局域网传递数据,现有技术直接将模块间的信号数据做直接的传输,在数据量大的情况下会造成仿真运算速度瓶颈的问题。

进一步的,在每个时钟周期,仿真运算模块a传输一个信号数据给仿真运算模块b,所述信号数据用于代表仿真运算模块a中是否有数据更新;

当仿真运算模块a中没有数据更新时,仿真运算模块b接收到代表没有数据更新的信号数据后,即认定所有从a传输过来的信号保持当前值不变。通过仿真运算模块a传输信号数据告知接收单元即仿真运算模块b是否是有数据更新,可以让接收单元具有数据监视、进程回馈的功能,而且在数据无更新时认定所有从仿真运算模块a传输过来的信号保持当前值不变作为结果输出,避免重复从仿真运算模块a中获取相同数据,节约数据传输时间、以及数据通讯占用的带宽,提升计算集群或单元模块之间的传输效率。

进一步的,当仿真运算模块a中有数据更新,将数据传输给下一个仿真运算模块b时,具体通过数据压缩法进行传输,数据压缩法是先将数据进行压缩,形成数据包,然后再进行传输。通过将数据进行压缩后传输,提升数据传输效率。

进一步的,将数据进行压缩时,具体通过数据分组压缩法进行数据压缩,所述数据分组压缩法具体操作如下,

将所有数据按顺序划分为多个定长的数据组,并将每个数据组按顺序进行位置标定排序形成标定参数;若一个数据组中的数据具有更新,则将该数据组标定成具有更新的数据组;反之,若一个数据组中的数据没有更新,则标定成为没有更新的数据组;然后将标定参数以及标定为具有更新的数据组一起形成数据包传输给仿真运算模块b。由于并非每个时钟周期s都会有数据更新,更不会所有的数据总是一同更新,因此十分有必要通过削减重复的数据发送来压缩数据量,通过将数据进行分组,然后将有更新的数据组进行打包传输,这与把所有数据进行打包比起来,其可以大大减小传输数据量,从而提升传输效率,再通过将标记了哪些分组数据是跟新了的标定参数传给仿真运算模块b,使得仿真运算模块b可以根据标定参数知道原始数据中哪些位置的数据进行了更新,然后将接收到的更新的数据组根据标定参数标定的位置,在上一次数据的基础上进行替换更新,由此实现传输效率的提升。

进一步的,所述定长的数据组为6~10比特。

进一步的,所述定长的数据组为8比特。根据仿真效果,可以调整数据组的容量大小。

进一步的,将所述数据包传输到仿真运算模块b的同时也将压缩算法控制参数传输到仿真运算模块b,所述压缩算法控制参数用于代表数据压缩的算法类型。通过将数据包传输到仿真运算模块b的同时也将压缩算法控制参数传输到仿真运算模块b,可以实现不同的压缩方式对数据进行压缩,数据接收端的仿真运算模块b根据压缩算法控制参数代表的数据压缩算法进行相应的解压,实现不通过压缩方式的数据传输,提高方法的实用性。

一种集成电路仿真模块,包括处理器,处理器被配置为可执行所述集成电路仿真中数据通信的方法。

一种可读取存储介质,可读存储介质存储有程序,所述程序被处理器执行时实现所述的方法。

一种集成电路仿真系统,包括多个所述的集成电路仿真模块。

本发明具有如下的优点和有益效果:

1、本发明通过只有在当前仿真运算模块中数据更新时才进行数据传输,可以大大节约数据通讯带宽占用量,由此,不同模块之间的数据通讯效率提升,仿真运算模块a以及仿真运算模块b可以代表计算集群中不同的计算机,也可代表单台服务器的仿真器,仿真器之间逻辑仿真也可通过此方法进行提升性能;解决在通过计算集群做逻辑仿真,逻辑模块之间通过高速局域网传递数据,现有技术直接将模块间的信号数据做直接的传输,在数据量大的情况下会造成仿真运算速度瓶颈的问题;

2、本发明通过仿真运算模块a传输信号数据告知接收单元即仿真运算模块b是否是有数据更新,可以让接收单元具有数据监视、进程回馈的功能,而且在数据无更新时认定所有从仿真运算模块a传输过来的信号保持当前值不变作为结果输出,避免重复从仿真运算模块a中获取相同数据,节约数据传输时间、以及数据通讯占用的带宽,提升计算集群或单元模块之间的传输效率;

3、本发明通过将数据进行分组,然后将有更新的数据组进行打包传输,这与把所有数据进行打包比起来,其可以大大减小传输数据量,从而提升传输效率,再通过将标记了哪些分组数据是跟新了的标定参数传给仿真运算模块b,使得仿真运算模块b可以根据标定参数知道原始数据中哪些位置的数据进行了更新,然后将接收到的更新的数据组根据标定参数标定的位置,在上一次数据的基础上进行替换更新,由此实现传输效率的提升;

4、本发明通过将数据包传输到仿真运算模块b的同时也将压缩算法控制参数传输到仿真运算模块b,可以实现不同的压缩方式对数据进行压缩,数据接收端的仿真运算模块b根据压缩算法控制参数代表的数据压缩算法进行相应的解压,实现不通过压缩方式的数据传输,提高方法的实用性。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:

图1是本发明的两个仿真运算模块模块a、b之间的数据传输关系图。

图2是本发明实施例中数据分组压缩算法将s=(s1,s2,s3,...,sn)划分为多个定长的数据分组生成的数据格式示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。

应当理解,术语模块a、模块b等仅用于区分描述,而不能理解为指示或暗示相对重要性。尽管本文可以使用术语模块a、模块b等等来描述各种单元/模块,这些单元/模块不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将模块a称作模块b,并且类似地可以将模块b称作模块a,同时不脱离本发明的示例实施例的范围。

应当理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,单独存在b,同时存在a和b三种情况,本文中术语“/和”是描述另一种关联对象关系,表示可以存在两种关系,例如,a/和b,可以表示:单独存在a,单独存在a和b两种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”关系。

本文使用的术语仅用于描述特定实施例,并且不意在限制本发明的示例实施例。如本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解术语“包括”、“包括了”、“包含”、和/或“包含了”当在本文中使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。

实施例1:

本实施例提供了一种集成电路仿真中数据通信的方法,在每个时钟周期,当仿真运算模块a中有数据更新时,将数据传输给下一个仿真运算模块b。

如图1所示,每个时钟(clock)周期,仿真运算模块a向仿真运算模块b发送{s1,s2,s3...sn}信号,每个信号宽度为一比特位。令s={s1,s2,s3...sn},需要仿真的时钟频率的提高以及s集合大小|s|的增大,仿真运算模块a与仿真运算模块b之间的数据通讯量随之显著的增加。然而并非每个时钟周期s都会有数据更新,更不会所有的数据总是一同更新。因此十分有必要通过削减重复的数据发送来压缩数据量。

具体实施时,在每个时钟周期,仿真运算模块a传输一个信号数据给仿真运算模块b,所述信号数据用于代表仿真运算模块a中是否有数据更新;当仿真运算模块a中没有数据更新时,仿真运算模块b接收到代表没有数据更新的信号数据后,即认定所有从a传输过来的信号保持当前值不变。通过只有在当前仿真运算模块中数据更新时才进行数据传输,可以大大节约数据通讯带宽占用量,由此,不同模块之间的数据通讯效率提升,仿真运算模块a以及仿真运算模块b可以代表计算集群中不同的计算机,也可代表单台服务器的仿真器,仿真器之间逻辑仿真也可通过此方法进行提升性能;解决在通过计算集群做逻辑仿真,逻辑模块之间通过高速局域网传递数据,现有技术直接将模块间的信号数据做直接的传输,在数据量大的情况下会造成仿真运算速度瓶颈的问题;通过仿真运算模块a传输信号数据告知接收单元即仿真运算模块b是否是有数据更新,可以让接收单元具有数据监视、进程回馈的功能,而且在数据无更新时认定所有从仿真运算模块a传输过来的信号保持当前值不变作为结果输出,避免重复从仿真运算模块a中获取相同数据,节约数据传输时间、以及数据通讯占用的带宽,提升计算集群或单元模块之间的传输效率。

优选的,当仿真运算模块a中有数据更新,将数据传输给下一个仿真运算模块b时,具体通过数据压缩法进行传输,数据压缩法是先将数据进行压缩,形成数据包,然后再进行传输。

优选的,将数据进行压缩时,具体通过数据分组压缩法进行数据压缩,所述数据分组压缩法具体操作如下,

将所有数据按顺序划分为多个定长的数据组,并将每个数据组按顺序进行位置标定排序形成标定参数;若一个数据组中的数据具有更新,则将该数据组标定成具有更新的数据组;反之,若一个数据组中的数据没有更新,则标定成为没有更新的数据组;然后将标定参数以及标定为具有更新的数据组一起形成数据包传输给仿真运算模块b。所述定长的数据组为6~10比特。通过将数据进行分组,然后将有更新的数据组进行打包传输,这与把所有数据进行打包比起来,其可以大大减小传输数据量,从而提升传输效率,再通过将标记了哪些分组数据是跟新了的标定参数传给仿真运算模块b,使得仿真运算模块b可以根据标定参数知道原始数据中哪些位置的数据进行了更新,然后将接收到的更新的数据组根据标定参数标定的位置,在上一次数据的基础上进行替换更新,由此实现传输效率的提升;

优选的,所述定长的数据组为8比特。

优选的,具体实施时,将所述数据包传输到仿真运算模块b的同时也将压缩算法控制参数传输到仿真运算模块b,所述压缩算法控制参数用于代表数据压缩的算法类型。通过将数据包传输到仿真运算模块b的同时也将压缩算法控制参数传输到仿真运算模块b,可以实现不同的压缩方式对数据进行压缩,数据接收端的仿真运算模块b根据压缩算法控制参数代表的数据压缩算法进行相应的解压,实现不通过压缩方式的数据传输,提高方法的实用性。

具体实施方式如下:

仿真模块间的通讯通过依照特定格式定义的数据报文来实现。

采用格式字段ind表示是否有信号更新数据,0=无更新,1=有更新,格式字段宽度1(bit);

采用格式字段alg表示报文使用了何种数据压缩算法,格式字段宽度k(bit),假设k=3,那么:00=无压缩,01=信号分组压缩法,其余数值可用于表示其他压缩算法;

采用格式字段dat,表示数据包,数据段的,依alg值,此字段可以包含标定参数以及压缩算法控制参数和压缩后的信号数据;

无数据更新时ind=0;这种情况下,需要传输的数据仅仅为1比特。仿真运算模块b接收到ind=0后,即可认定所有从仿真运算模块a连接过来的信号保持当前值不变。

有信号数据更新,无压缩ind=1;alg=00,dat=(s1,s2,...,sn)

数据表示有信号数值变化,没采用任何压缩算法,所有信号的新的数值在dat中。

有信号数据更新,采用数据分组压缩法ind=1;alg=01,dat=数据分组压缩数据。

此种情况下,信号数据不是直接拷贝到dat字段,而是经“数据分组压缩法”压缩之后填入数据报文的dat字段。

数据分组压缩算法将s=(s1,s2,s3,...,sn)划分为多个定长的数据分组生成的数据格式如图2所示,图中“数据更新指示位”及“数据更新组”联合组成前述dat字段。其中g包含若干比特位,每一个比特相对应于s中的一组定长的数据,此例中为8比特。假若对应信号数值有变更,则相应的g中的比特为1,否则为0。只有当g中相应的比特位为1时,信号数据分组才会追加到“数据更新组”去。因此,没有信号变化的部分数据将不会被传输,以节省带宽。

在实际应用中还可以兼容其他的压缩算法。彼种情况下,需要给不同的压缩算法规定不同的alg值。

综上,现有技术直接将模块间的信号数据做直接的传输,不做任何压缩。本发明可以显著的提高通讯效率,加快仿真时间。这是因为在大多数的情况下,模块之间的信号并无更新。如果每次都做完整的数据传输会浪费大量的带宽。

实施例2

一种集成电路仿真模块,包括处理器,处理器被配置为可执行实施例1所述的集成电路仿真中数据通信的方法。

实施例3

一种可读取存储介质,可读存储介质存储有程序,所述程序被处理器执行时实现如实施例1所述的方法。

实施例4

一种集成电路仿真系统,包括多个如实施例2所述的集成电路仿真模块。

本发明用于集成电路仿真中,不同模块之间的数据通讯效率提升。本发明并不假设仿真必然在计算集群上运行,亦可用于单台服务器仿真器之逻辑仿真提升性能。

本发明应用于利用大规模计算集群做集成电路逻辑仿真的软件产品,从架构上就区别于传统的逻辑仿真器。本发明解决的是不同计算节点之间的通讯效率问题,在基于单台服务器运行的逻辑仿真器中通讯效率问题不显著。因此,本发明是一个完全创新技术平台上的一部分。

另外,与此创新技术平台接近的学院派试验性技术确实存在,但并无做节点间通讯效率优化的工作。因此本发明是一项全新的技术。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1