本技术涉及芯片电路逻辑设计领域,尤其涉及一种对xmr信号传输模式进行转换的方法及装置。
背景技术:
1、在芯片电路逻辑设计中,常规的信号传输方式可以采用端口的模式,即通过模块的声明端口,将信号的实参赋值给声明的端口形参,传输到模块内部,信号再通过模块内部的其他声明实例传输给其他模块,从而形成严格的逐层传输的模式。这种端口形式的信号传输模式一方面结构简单,信号传输路径清晰,但另一方面严格的逐层传输也会比较麻烦,影响效率。
2、在这种背景下,ieee标准支持了xmr方式的信号传输,xmr(cross modulereference,跨模块引用)是一种特殊的rtl(register transfer level,寄存器传输级)的信号传输模式,该信号传输模式是为了方便用户在设计、编写芯片的电路逻辑时跨层级传输信号。它支持信号从某一层级的模块中直接传输给指定的另一层级的模块,节省了很多代码编写的过程,非常灵活。这种信号传输模式可以说是在语法树上打通了一个隧道,开启了后门,使得信号避开常规路径,隐秘、快速地直达目的地。
3、然而,发明人在实现本技术方案的过程中发现,xmr信号传输模式虽然方便了程序员的编写,但是却给后续的其他处理过程带来了不小的麻烦与困难。例如,对于rtl级别分割的场景,由于xmr信号传输模式不同于常规信号传输模式,所以在超图建模时可能会遗漏通过xmr进行传输的信号线,导致分割失败,逻辑被破坏;又例如,在bottom up(由底向上)的综合策略中,采用从语法树底部向顶部的方向,按照先综合(synthesize)子模块再综合父模块的顺序,逐层向上迭代综合,这种综合模式由于子模块综合过程可以相互独立,因而能够支持并行处理加快速度,同时相同模块只需要综合一次,进一步节省了时间,但在这种综合模式下,综合后的模块将不再暴露任何细节,如果上述模块中存在xmr信号传输模式,则将丢失xmr对应的信号,导致综合失败。
4、由此可见,由于xmr是一种特殊的信号传输模式,如果信号传输相关程序代码中出现了xmr,则需要对其进行处理,即,需要将xmr信号传输模式手动转换为常规信号传输模式,以避免出现遗漏信号等问题,而通过人工手动修改xmr,不仅浪费时间,效率很低,而且也容易出错。
技术实现思路
1、本技术提供了一种对xmr信号传输模式进行转换的方法及装置,以提高对xmr信号传输模式进行转换时的效率。
2、根据本技术实施例的第一方面,提供一种对xmr信号传输模式进行转换的方法,该方法包括:
3、获取用户芯片设计,使用解析器对用户芯片设计进行解析以在内存中形成语法树,其中用户芯片设计包含xmr信号传输模式;
4、获取xmr信号信息,其中xmr信号信息包括每跳xmr信号在语法树中的位置、信号名称、起始节点、终点节点;
5、根据语法树的结构和xmr信号信息,构建xmr信号传播有向图g,其中,有向图g中的节点为一跳xmr信号的起始节点或终点节点,有向图g中的边的方向由信号传播方向决定,有向图g中的边的距离是边两端的节点在语法树中到其最近共同祖先的层级之和;
6、通过遍历有向图g的所有路径获取最大距离路径;
7、确定共同祖先节点,其中共同祖先节点为最大距离路径中所有节点最近的共同的祖先节点;
8、在共同祖先节点中构建指定接口,将最大距离路径上所有节点所使用的xmr信号集中于指定接口中,并通知最大距离路径上每个节点直接在指定接口中读取各自所使用的xmr信号;
9、在语法树中删除最大距离路径对应的xmr信号传输模式,在有向图g中删除最大距离路径上的节点和边;
10、重复执行获取最大距离路径的步骤及其后续步骤,直到有向图g中不存在任何边。
11、可选的,该方法还包括:
12、如果一个节点被多个不同组的xmr信号所经过,则在构建有向图g时将节点复制多份,以使有向图g中的任何一个节点都不被不同组的xmr信号所共享,其中,本质上都是同一个xmr信号的各跳xmr信号组成同组xmr信号。
13、可选的,通过遍历有向图g的所有路径获取最大距离路径,包括:
14、将有向图g中所有源点加入源点队列中,其中源点为入度为0的节点;
15、建立已访问节点队列q_visited;
16、建立模型longest_distance(g,node,q_visited),模型用于确定最大距离路径;
17、弹出源点队列中的第一个节点s;
18、将节点s加入已访问节点队列中,比较所有的(s-n)+longest_distance(g,n,q_visited)的值并确定其中最大值所对应的邻居节点nmax,其中n为s的邻居节点,(s-n)为节点s到邻居节点n的距离,将节点s记录为nmax的前驱节点,并将nmax加入到已访问节点队列中,递归调用模型longest_distance(g,nmax,q_visited),直到所有的节点均被访问过或者邻居节点不再拥有任何未被访问过的邻居;
19、根据每次递归调用时所记录下的前驱节点形成最大距离对应的链,以获得以节点s为源点的最大距离路径;
20、继续弹出源点队列中下一个节点作为新的节点s,获取以新的节点s为源点的最大距离路径,直至源点队列变为空;
21、在所有源点的最大距离路径中选取最长者作为有向图g的最大距离路径。
22、可选的:
23、指定接口为interface接口,最大距离路径上所有节点所使用的xmr信号被集中于interface接口内部统一管理,interface接口内部根据xmr信号的数量定义多个中间变量,通过modport列表对中间变量的访问施加限制。
24、可选的,通知最大距离路径上每个节点直接在指定接口中读取各自所使用的xmr信号,包括:
25、按照最大距离路径中每个节点到共同祖先节点的路径顺序,依次在最大距离路径途径的节点所对应的电路模块端口中增加interface声明,把在共同祖先节点中声明的interface实例逐层传参给各途径节点对应的电路模块。
26、根据本技术实施例的第二方面,提供一种对xmr信号传输模式进行转换的装置,该装置包括:
27、语法树生成单元,用于获取用户芯片设计,使用解析器对用户芯片设计进行解析以在内存中形成语法树,其中用户芯片设计包含xmr信号传输模式;
28、信号信息获取单元,用于获取xmr信号信息,其中,xmr信号信息包括每跳xmr信号在语法树中的位置、信号名称、起始节点、终点节点;
29、有向图生成单元,用于根据语法树的结构和xmr信号信息,构建xmr信号传播有向图g,其中,有向图g中的节点为一跳xmr信号的起始节点或终点节点,有向图g中的边的方向由信号传播方向决定,有向图g中的边的距离是边两端的节点在语法树中到其最近共同祖先的层级之和;
30、最大距离路径获取单元,用于通过遍历有向图g的所有路径获取最大距离路径;
31、信号集中单元,用于确定共同祖先节点,其中共同祖先节点为最大距离路径中所有节点最近的共同的祖先节点;在共同祖先节点中构建指定接口,将最大距离路径上所有节点所使用的xmr信号集中于指定接口中,并通知最大距离路径上每个节点直接在指定接口中读取各自所使用的xmr信号;
32、修改单元,用于在语法树中删除最大距离路径对应的xmr信号传输模式,在有向图g中删除最大距离路径上的节点和边;
33、控制单元,用于重复依次触发最大距离路径获取单元、信号集中单元、修改单元,直到有向图g中不存在任何边。
34、可选的,有向图生成单元还用于:
35、如果一个节点被多个不同组的xmr信号所经过,则在构建有向图g时将节点复制多份,以使有向图g中的任何一个节点都不被不同组的xmr信号所共享,其中,本质上都是同一个xmr信号的各跳xmr信号组成同组xmr信号。
36、可选的,最大距离路径获取单元具体用于:
37、将有向图g中所有源点加入源点队列中,其中源点为入度为0的节点;
38、建立已访问节点队列q_visited;
39、建立模型longest_distance(g,node,q_visited),模型用于确定最大距离路径;
40、弹出源点队列中的第一个节点s;
41、将节点s加入已访问节点队列中,比较所有的(s-n)+longest_distance(g,n,q_visited)的值并确定其中最大值所对应的邻居节点nmax,其中n为s的邻居节点,(s-n)为节点s到邻居节点n的距离,将节点s记录为nmax的前驱节点,并将nmax加入到已访问节点队列中,递归调用模型longest_distance(g,nmax,q_visited),直到所有的节点均被访问过或者邻居节点不再拥有任何未被访问过的邻居;
42、根据每次递归调用时所记录下的前驱节点形成最大距离对应的链,以获得以节点s为源点的最大距离路径;
43、继续弹出源点队列中下一个节点作为新的节点s,获取以新的节点s为源点的最大距离路径,直至源点队列变为空;
44、在所有源点的最大距离路径中选取最长者作为有向图g的最大距离路径。
45、可选的:
46、指定接口为interface接口,最大距离路径上所有节点所使用的xmr信号被集中于interface接口内部统一管理,interface接口内部根据xmr信号的数量定义多个中间变量,通过modport列表对中间变量的访问施加限制。
47、可选的,信号集中单元在通知最大距离路径上每个节点直接在指定接口中读取各自所使用的xmr信号时,具体用于:
48、按照最大距离路径中每个节点到共同祖先节点的路径顺序,依次在最大距离路径途径的节点所对应的电路模块端口中增加interface声明,把在共同祖先节点中声明的interface实例逐层传参给各途径节点对应的电路模块。
49、本技术实施例提供的技术方案可以包括以下有益效果:
50、针对xmr信号传输模式在rtl级分割与bottom up综合等场景中所遇到的问题,本技术提出了对xmr信号传输模式进行转换的方法,先根据语法树的结构和xmr信号信息构建xmr信号传播有向图g,然后通过遍历获取最大距离路径,再确定最大距离路径中所有节点的共同祖先节点,在共同祖先节点中将最大距离路径上所有节点的xmr信号集中于指定接口中,并通知每个节点直接在该指定接口中读取各自所使用的xmr信号,在语法树中删除该最大距离路径对应的xmr信号传输模式,在有向图g中删除该最大距离路径上的节点和边,重复执行直到有向图g中不存在任何边。本技术方案能够高效率的批量完成多个节点之间的xmr信号传输模式的转换,使得后续过程免于人工修改,不但效率高而且不易出错,便于实现自动化处理。
51、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。