芯片布局方法
文献发布时间:2023-06-19 13:49:36
技术领域
本发明属于芯片技术领域,涉及可编程逻辑器件芯片集成电路软件工具的布局技术,尤其涉及一种芯片布局方法。
背景技术
在现代数字电路设计中,电路设计过程越来越复杂,可编程逻辑器件芯片因具有可编程功能,简化了数字电路的设计过程,得到了广泛的应用。
可编程逻辑器件芯片的资源主要有CLM资源、DRM资源、I/O资源、时钟资源等,现有技术中,将这些资源放置在一个坐标系中进行布局规划,因为每一类资源都有完全不同的分布规律,在同一坐标系进行布局时增加了布局难度与资源的放置难度,满足不了用户设计需求,且使软件性能受到限制。
发明内容
本发明提供一种芯片布局方法,对不同资源规划合理的坐标,为资源布局提供便利,方便全局布局阶段的建模,加速资源的放置,提升软件性能。
为达上述目的,本发明采用如下技术方案:
本发明提供了一种芯片布局方法,包括:
根据可编程逻辑器件芯片布线资源的分布规划建立顶层坐标系;
建立子坐标系:将可编程逻辑器件芯片的所有资源分成n个类,n为自然数,为每一类资源建立一个子坐标系;
进一步地,将可编程逻辑器件芯片资源进行分类,其中CLM资源为一类,DRM资源为一类,I/O资源为一类,时钟资源为一类,为每一类资源建立一个子坐标系。
建立从子坐标系到顶层坐标系的映射;
进一步地,建立从子坐标系到顶层坐标系的映射,即建立子坐标系与顶层坐标系之间的坐标函数关系。
进行全局布局:所有资源在子坐标系中的坐标为自变量,密度损失、线长损失、时序损失为目标函数,计算每个目标函数和自变量的关系和梯度,使用最优化求解得到合适的资源坐标;
进一步地,线长损失与自变量的关系为:
c_wl=f(g(x0))
其中,c_wl表示线长损失,f(g(x0))表示线长损失与自变量间的函数关系,x0表示线长损失计算中任意一个自变量,g(x0)表示线长损失中从子坐标系映射到顶层坐标系的函数关系。
进一步地,线长损失的梯度为:
其中,
进一步地,时序损失与自变量的关系为:
c_wl1=f(g(x1))
其中,c_wl1表示时序损失,f(g(x1))表示时序损失与自变量间的函数关系,x1表示时序损失计算中任意一个自变量,g(x1)表示时序损失中从子坐标系映射到顶层坐标系的函数关系。
进一步地,时序损失的梯度为:
其中,
进行资源放置:放置资源到相应的坐标。
进一步地,资源放置过程中,将一个资源放置在相应坐标时,通过计算得到该资源的合适坐标后,使用该资源对应的子坐标系,选取一个目标点,由目标点开始由近及远尝试放置,直至放置成功。
本发明的有益效果:
本发明提供的一种芯片布局方法,在可编程逻辑器件芯片中根据资源划分建立顶层坐标系,然后对可编程逻辑器件芯片所有资源进行分类,按资源建立子坐标系,通过子坐标系与顶层坐标系映射的函数关系,计算出该资源子坐标对应的顶层坐标,得到最合适的资源放置坐标放置资源。实现了资源布局的便利性、合理性,方便全局布局阶段的建模,加速资源的放置,提升软件性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为子坐标系与顶层坐标系的映射关系图;
图2为以CLM资源为例,x坐标映射的获取方法图;
图3为不同坐标系下的资源放置图。
具体实施方式
下面结合附图对本发明实施例一种芯片布局方法进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种芯片布局方法,具体方案如下:
在可编程逻辑器件芯片内建立顶层坐标系,为了保证资源映射到顶层坐标系后线长和时序的精确度,本方案根据芯片布线资源的分布规划建立顶层坐标系;
建立子坐标系:将芯片的所有资源分成n个类,n为自然数,为每一类资源建立一个子坐标系;在本方案中,将可编程逻辑器件芯片资源进行分类,其中CLM资源为一类,DRM资源为一类,I/O资源为一类,时钟资源为一类,为每一类资源建立一个子坐标系,所述的每一个子坐标系里对应的资源都紧密排列在该坐标系上。
建立从子坐标系到顶层坐标系的映射;即建立子坐标系与顶层坐标系之间的坐标函数关系,如图1是子坐标系与顶层坐标系的映射关系图,子坐标系的x坐标与y坐标映射后可以得到顶层坐标系的x坐标与y坐标。
图2是以CLM资源为例,x坐标映射的获取方法,如图2所示,CLM子坐标系x0坐标有序号0、1、2、3,顶坐标系x1坐标包括CLM资源与DRM资源,有序号0、1、2、3、4、5,子坐标系x0坐标的序号0映射到顶层坐标系x1的序号0,子坐标系x0坐标的序号1映射到顶层坐标系x1的序号1,子坐标系x0坐标的序号2映射到顶层坐标系x1的序号3,子坐标系x0坐标的序号3映射到顶层坐标系x1的序号5。
进行全局布局:所有资源在子坐标系中的坐标为自变量,密度损失、线长损失、时序损失为目标函数,计算每个目标函数和自变量的关系和梯度,使用最优化求解得到合适的资源坐标,因为有子坐标系与顶层坐标系的映射函数关系,所以可以得到资源的子坐标与顶层坐标。
其中,密度损失的计算和最优化求解的计算为本领域常用技术,在此不多做叙述;下面仅详细描述线长损失和时序损失的计算。
线长损失的计算如下所示:
设线长损失顶层坐标系与子坐标系的函数关系为:
x10=g(x0)
其中,x0表示线长损失计算中任意一个自变量,x10表示该自变量在顶层坐标系映射后的坐标,g(x0)表示线长损失中从子坐标系映射到顶层坐标系的函数关系。
顶层坐标系真实的反映了线长,因此,线长损失与顶层坐标的关系为
c_wl=f(x10)
即线长损失与自变量的关系为
c_wl=f(g(x0))
其中,c_wl表示线长损失,f(g(x0))表示线长损失与自变量间的函数关系,x0表示线长损失计算中任意一个自变量,g(x0)表示线长损失中从子坐标系映射到顶层坐标系的函数关系。
进一步地,线长损失的梯度为:
其中,
时序损失的计算如下:
设时序损失顶层坐标系与子坐标系的函数关系为:
x11=g(x1)
其中,x1表示时序损失计算中任意一个自变量,x11表示该自变量在顶层坐标系映射后的坐标,g(x0)表示时序损失中从子坐标系映射到顶层坐标系的函数关系。
顶层坐标系真实的反映了时序,因此,时序损失与顶层坐标的关系为
c_wl=f(x11)
即时序损失与自变量的关系为:
c_wl1=f(g(x1))
其中,c_wl1表示时序损失,f(g(x1))表示时序损失与自变量间的函数关系,x1表示时序损失计算中任意一个自变量,g(x1)表示时序损失中从子坐标系映射到顶层坐标系的函数关系。
进一步地,时序损失的梯度为:
其中,
进行资源放置处理:放置资源到相应的坐标,通过计算得到该资源的合适的放置坐标后,就可以进行资源的放置,资源的放置是会失败的,为了提高资源放置时候的成功率,可以使用对应的子坐标系放置资源,在资源的合适坐标下,选取一个目标点,先由近及远尝试放置,直至放置成功。
图3是不同坐标系下的资源放置图,如图3所示,在顶层坐标系中,既有CLM资源放置点,又有DRM资源放置点,在进行一个CLM资源放置时,周围的DRM资源放置点会干扰放置,减少了放置效率,在CLM子坐标系中进行放置时,放置效率会高于在顶层坐标系中进行放置,对比顶层坐标系和子坐标系的放置效果可知,放置相同次数,在子坐标系下的可行坐标明显多于顶层坐标系。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限与这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应视为本发明的保护范围。
- 用于低功率半导体芯片布局方法以及低功率半导体芯片
- 芯片布局方法、装置、终端设备及计算机可读存储介质