用于片上网络的增量拓扑综合的系统和方法与流程

文档序号:25651285发布日期:2021-06-29 20:32阅读:58来源:国知局
用于片上网络的增量拓扑综合的系统和方法与流程

1.本技术属于系统设计领域,并且更具体地涉及用于生成片上网络(noc)描述的拓扑综合。


背景技术:

2.多处理器系统已在通过片上网络(noc)进行通信的片上系统(soc)中实现。soc包括主(发起方)知识产权(ip)和从(目标)ip的实例。使用行业标准协议将事务从主设备发送到一个或多个从设备。连接到noc的主设备将请求事务发送到从设备,使用地址来选择从设备。noc将地址解码并将请求从主设备传输到从设备。从设备对事务进行处理并发送响应事务,响应事务由noc传输回到主设备。
3.通常,在设计过程期间使用综合工具来生成noc描述。该工具根据约束集合来生成noc。如果进行了更改,则工具将必须重新启动并重新执行。因此,每次输入约束发生更改时,工具被重新启动或综合被重新执行。这样,即使约束的更改是有限的或很小的,也存在从一次运行到下一运行提供完全不同的解决方案的风险。这是由于网络综合过程的性质所致,网络综合过程通常使用约束求解器方法来将指标最小化,并且约束求解器可以响应于稍微不同的约束集合而找到非常不同的解决方案。因此,工具在每次针对稍微不同的约束运行时会找到不同的解决方案。因此,当soc设计人员使用工具自动创建noc时,工具的可用性降低。在soc的设计时间期间,约束会发生变化并演进。如果每次软件运行时和每次用户进行小的更改时工具生成的结果都大不相同,则这将导致设计人员无法重用一些已经完成的实现工作。
4.例如,考虑已根据约束集合生成noc的情况。结果已通过asic设计流程进行了处理,其中逻辑综合以及布局和布线步骤完成。这些步骤通常花费很多时间(例如,多天)。在该第一代之后,决定从soc中删除部件,这会导致对布图规划(floorplan)和连接性的轻微修改。利用经更新的约束再次运行生成noc的工具。与第一次运行相比,工具提供了完全不同的结果。这样,即使约束更改很小,关于逻辑综合以及布局和布线的所有先前工作都需要从头开始再次进行。这对于项目来说是非常昂贵的。
5.因此,存在对于一种工具的需要,该工具确保在使用两个不同的小或次要约束变化集合的两次不同运行之间,对解决方案变化最小,其需要适应于经变化的约束。因此,需要一种方法,其允许工具根据约束集合来生成noc,同时在具有稍微不同/变化的约束的运行之间产生一致的结果,目的是将当前运行结果与先前运行结果之间的差异最小化。


技术实现要素:

6.根据本发明的各个实施例和各方面,提供了系统和方法,其允许工具根据约束集合来综合并生成noc,同时在具有轻微变化的约束的综合运行之间产生一致的结果。本发明的一个优点是,当任何一个约束中存在小的变化时,将诸如两个连续的综合运行的不同综合运行的结果之间的差异最小化。
附图说明
7.图1示出了包括用于创建网络的各种元件的集合的片上网络(noc)的逻辑视图。
8.图2示出了用于基于约束集合来生成noc描述或综合的方法。
9.图3示出了根据本发明的各个方面和实施例的使用先前的运行作为约束的noc综合的过程。
10.图4示出了根据本发明的各个方面和实施例的基于初始运行的noc的实现。
11.图5示出了根据本发明的各个方面的基于相对于图4的noc综合的后续运行的noc的实现。
12.图6示出了根据本发明的各个方面的基于相对于图4的noc综合的后续运行的noc的实现。
具体实施方式
13.以下描述了图示本发明的各个方面和实施例的本技术的各个示例。通常,示例可以以任何组合来使用所描述的方面。本文中叙述原理、方面和实施例及其特定示例的所有陈述旨在涵盖其结构和功能上的等同物。另外,意图是这样的等同物包括当前已知的等同物和将来开发的等同物,即,不论结构如何,所开发的执行相同功能的任何元件。
14.应注意,除非上下文另有明确规定,否则本文所使用的单数形式“一”、“一个”和“该”包括复数个指示物。在整个说明书中,对“一个实施例”、“实施例”、“某些实施例”、“各种实施例”或类似语言的引用意味着结合实施例描述的特定方面、特征、结构或特性被包括在本发明的至少一个实施例中。
15.如本文中所使用,“主设备”和“发起方”指代类似的知识产权(ip)模块或单元,并且在本发明的范围和实施例中可互换地使用这些术语。如本文所使用,“从设备”和“目标”指代类似的ip模块或单元,并且在本发明的范围和实施例中可互换地使用这些术语。如本文所使用,事务可以是请求事务或响应事务。请求事务的示例包括写入请求和读取请求。
16.因此,在整个说明书中,短语“在一个实施例中”、“在至少一个实施例中”、“在实施例中”、“在某些实施例中”以及类似语言的出现可以但并非必须全部指代相同或相似的实施例。此外,本文描述的本发明的各方面和实施例仅是示例性的,并且不应被解释为对本领域技术人员所理解的本发明的范围或精神的限制。所公开的发明被有效地制作或使用在包括本文所述的任何新颖方面的任何实施例中。本文中记载本发明的原理、方面和实施例的所有陈述旨在涵盖其结构和功能上的等同物。意图使得这样的等同物包括当前已知的等同物和将来开发的等同物。此外,就在具体实施方式和权利要求中使用术语“包括”、“包括
……
的”“具有”、(具有
……
的)、“利用”或其变型而言,这些术语旨在以与术语“包含”相似的方式进行包括。
17.现在参考图1,示出了根据本发明的各个方面和实施例的片上网络(noc)100。noc使用已组装的基本网络功能,例如:网络接口单元(niu)102、104、106、108、110、112、130、132和134;交换机114、116、118、120和122;适配器(诸如适配器126);以及缓冲器(诸如缓冲器124)。noc基本网络功能通常基于分组的传输,使用专用于noc 100的内部传输协议来彼此通信。niu将由附接的片上系统(soc)单元(未示出)使用的协议转换为noc 100内部使用的传输协议。交换机在源和目的地之间路由流量流动。缓冲器124用于插入流水线元件来跨
越长距离,或者用于存储分组来处理快速发送者和慢速接收者之间的速率适配,反之亦然。适配器126对数据宽度、时钟和功率域之间的各种转换进行处理。
18.现在参考图2,示出了用于生成noc(例如,图1的noc)综合的过程。该过程包括接收约束集合作为输入,约束集合可以包括:物理(布图规划相关、技术相关)210;功率和时钟域定义212;元件的连接性214;连接的ip的定义216;性能相关的约束(包括通过noc的延迟和吞吐量);以及待优化的任何其他类型的指标(例如,所得网络的面积和导线长度)。另外,可以包括各种场景(例如,场景1)作为约束。信息被提供给noc综合工具220。
19.现在参考图3,示出了过程300,其中工具302根据输入约束集合306生成noc描述304。工具302还接受与先前运行相关联的先前结果308作为附加约束集合。工具302使用先前结果308来将新结果与旧结果(例如,noc描述304)相比的变化量最小化。因此,工具302使用给定的约束(例如,图2中的概述)以及先前结果来生成新结果。根据本发明的一些方面,作为约束,对先前结果的描述的接受是可选的。因此,设计者或用户决定将先前结果用于后续运行对将与先前运行相比的变化量最小化是否重要。根据本发明的一些方面,对于第一运行,不存在先前结果。
20.根据本发明的各个方面和实施例,约束的格式和信息、结果以及用作约束的先前结果均是实现相关的。根据本发明的一些方面,先前的结果描述不仅仅包括先前的noc描述。工具接收的数据包括有关先前运行中使用的全局参数的信息。工具重新使用从先前运行生成的数据,并且维护一些全局参数。包括先前运行还提供了有关在开发用作先前运行的一部分的约束的整个过程中做出的决策和解决方案的概述信息,包括全局信息。这样,全局信息将保持不变,并且在后续运行期间被重新引入以重新使用。例如,尽管可以稍微改变元件的位置,但是保留待重新放置元件的物理邻域以及定义和连接性约束。附加示例可能包括由综合工具使用的一些其他内部数据结构(例如,中间计算),以产生所得到的综合。
21.现在参考图4,示出了通过noc 400的在主设备(m)402和从设备(s)404之间的路径406。使用在初始运行之后执行综合的工具来确定路径406。
22.现在参考图5,根据本发明的各个方面和实施例,基于小的约束变化(例如,主设备502的位置变化),示出了针对路径506的一个选项。基于主设备502的新位置(其是小的约束变化),由工具基于曼哈顿距离测量来确定路径506,路径506具有与图4的路径406几乎相同的长度。路径406相对于路径506具有较大的变化。
23.现在参考图6,根据本发明的各个方面和实施例,示出了通过noc400的路径606的另一选项,路径606位于在新位置处的主设备602和从设备604之间。如虚线细节线所示,主设备602处于相对于先前位置的新位置处。基于主设备602的新位置(相对于主设备602的原始位置是小的约束变化),由工具基于曼哈顿距离测量来确定路径606,路径606具有与图4的路径406几乎相同的长度。相对于来自先前运行的路径406,路径606具有小的或最小的变化。
24.共同参考图4、图5和图6,工具针对第二运行或后续运行生成结果。工具可以生成任意数目的选项,诸如路径506和路径606。作为一个约束,向工具提供先前运行允许工具将选项缩小到相对于生成路径406的先前运行而言变化最小的路径。因此,将生成路径406的工具的初始运行视为约束的能力将增强工具的性能,并且在分析诸如路径506和路径606的选项时将变化最小化。
25.根据一些方面和实施例,工具可以被修改为仅针对noc的子部分使用相同的方法。
26.根据一些方面和实施例,工具可以用于确保完成综合的多次迭代来用于noc的增量优化,这包括当提供给工具的一个约束是关于先前运行的信息时的情况。
27.根据本发明各个方面的某些方法可以通过存储在非暂时性计算机可读介质上的指令来执行。非暂时性计算机可读介质存储包括指令的代码,指令在由一个或多个处理器执行时,使得系统或计算机执行本文描述的方法的步骤。非暂时性计算机可读介质包括:旋转磁盘、旋转光盘、闪存随机存取存储器(ram)芯片以及其他机械移动或固态存储介质。任何类型的计算机可读介质都适合于存储包括根据各种示例的指令的代码。
28.本文已描述了某些示例,并且将注意,来自不同示例的不同部件的不同组合是可能的。提出了显著特征以更好地解释示例;然而,很明显,可以在不修改所描述的这些示例的功能方面的情况下增加、修改和/或省略某些特征。
29.各种示例是使用机器或机器组合行为的方法。不论大多数构成步骤发生在世界上何处,方法示例都是完整的。例如并且根据本发明的各个方面和实施例,ip元件或单元包括:处理器(例如,cpu或gpu)、随机存取存储器(ram,例如,片外动态ram或dram)、用于有线或无线连接(例如,以太网、wifi、3g、4g长期演进(lte)、5g和其他无线接口标准无线电)的网络接口。ip还可以包括各种i/o接口设备,根据需要,例如诸如触摸屏传感器、地理位置接收器、麦克风、扬声器、蓝牙外围设备以及usb设备(例如,键盘和鼠标)等。通过执行存储在ram设备中的指令,处理器执行本文描述的方法的步骤。
30.一些示例是被布置为存储针对本文描述的方法的这样的指令的一个或多个非暂时性计算机可读介质。无论机器持有何种包括任何必要代码的非暂时性计算机可读介质,都可以实现示例。一些示例可以被实现为:诸如半导体芯片的物理器件;这样的器件的逻辑或功能行为的硬件描述语言表示;以及被布置为存储这样的硬件描述语言表示的一个或多个非暂时性计算机可读介质。本文记载原理、方面和实施例的描述涵盖其结构和功能上的等同物。本文描述的元件具有通过直接连接或利用一个或多个其他中间元件间接地可实现的有效关系。
31.本领域技术人员将认识到许多修改和变化。修改和变化包括所公开特征的任何相关组合。本文记载原理、方面和实施例的描述涵盖其结构和功能上的等同物。本文中被描述为“耦合”或“通信耦合”的元件具有可通过直接连接或使用一个或多个其他中间元件的间接连接实现的有效关系。本文描述为与另一设备、模块或元件“通信”或“进行通信”的实施例包括任何形式的通信或链路并且包括有效关系。例如,可以使用有线连接、无线协议、近场协议或rfid来建立通信链路。
32.因此,本发明的范围并不旨在限于在本文中示出和描述的示例性实施例。相反,本发明的范围和精神由所附权利要求体现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1