一种可编程逻辑器件的布局方法技术

技术编号:36420242 阅读:12 留言:0更新日期:2023-01-20 22:27
本申请属于集成电路技术领域,公开了一种可编程逻辑器件的布局方法。该方法包括:步骤S10:根据电路网络的扇出值将电路网络区分为第一类网络和第二类网络,获取第一类网络的负载和驱动单元,以及获取第二类网络的负载;步骤S20:根据全局布局的结果将负载和驱动单元设为若干个分组;步骤S30:获取每一个分组内的负载和驱动单元的权重;步骤S40:根据全局布局的结果按照任意顺序依次放置每一个分组的负载和驱动单元,并根据负载和驱动单元的权重确定每一个分组的负载和驱动单元的放置顺序。本申请提供的布局方法,相同电路网络的负载或驱动单元放置于同一可编程逻辑单元或放置于该可编程逻辑单元的同一行或同一列,减少了布局资源之间的布线拥塞。资源之间的布线拥塞。资源之间的布线拥塞。

【技术实现步骤摘要】
一种可编程逻辑器件的布局方法


[0001]本申请属于集成电路
,涉及一种可编程逻辑器件的方法。

技术介绍

[0002]可编程逻辑器件的布局基本流程包括全局布局、合法化布局和详细布局,全局布局用于为每个布局资源分配一个初始位置,合法化布局用于为每个布局资源确定一个合法的布局位置,详细布局用于调整已布局资源的位置从而优化布局资源的时序,现有的合法化布局方案在依据全局布局的结果进行布局时,主要是依据的是布局资源的密度进行合法化布局,虽然在合法化布局时使布局资源的密度均衡可以一定程度上减少布局资源之间的布线拥塞,然而现有的合法化布局方法完全不考虑布线资源进行合法化布局,仍然很容易出现布局后布局资源之间的布线密度过高的问题,进而导致布线拥塞。

技术实现思路

[0003]本申请的目的在于提供一种可编程逻辑器件的布局方法,以解决现有的合法化布局方案导致布局资源之间的布线拥塞的技术问题。
[0004]为解决上述技术问题,本申请的技术方案如下:
[0005]本申请提供一种可编程逻辑器件的布局方法,包括:
[0006]步骤S10:根据电路网络的扇出值将所述电路网络区分为第一类网络和第二类网络,获取所述第一类网络的负载和驱动单元,以及获取所述第二类网络的负载,所述电路网络为用户设计中端口之间的连接关系,所述驱动单元为电路网络中发出信号的端口,所述负载为电路网络中接收信号的端口;
[0007]步骤S20:根据全局布局的结果将所述负载和所述驱动单元设为若干个分组;
[0008]步骤S30:获取每一个所述分组内的所述负载和所述驱动单元的权重;
[0009]步骤S40:根据全局布局的结果按照任意顺序依次放置每一个所述分组的所述负载和所述驱动单元,并根据每一个所述分组的所述负载和所述驱动单元的权重确定每一个所述分组的所述负载和所述驱动单元的放置顺序。
[0010]进一步地,所述步骤S10包括:
[0011]将所述扇出值不超过第一扇出阈值的所述电路网络区分为所述第一类网络,获取所述第一类网络的负载和驱动单元,以及将所述扇出值超过第一扇出阈值的所述电路网络区分为所述第二类网络,获取所述第二类网络的负载。
[0012]进一步地,所述步骤S20包括:
[0013]步骤S21:将与所述负载和与所述驱动单元对应的坐标划分为若干个坐标集合;
[0014]步骤S22:将与每一个所述坐标集合内的所述坐标对应的所述负载或所述驱动单元设为一个分组。
[0015]进一步地,所述步骤S21包括:
[0016]步骤S210:设置任一所述坐标为中心坐标;
[0017]步骤S220:根据所述中心坐标和第一带宽设置所述坐标集合,所述坐标集合包括所述中心坐标以及与所述中心坐标距离在第一带宽内的所有的所述坐标;
[0018]步骤S230:获取所述坐标集合的漂移值,所述漂移值为所述中心坐标与所述坐标集合内每一个坐标之间矢量距离之和的平均值;
[0019]步骤S240:根据所述漂移值更新所述中心坐标,更新之后的所述中心坐标=更新之前的所述中心坐标+所述漂移值;
[0020]步骤S250:判断所述漂移值是否小于漂移阈值,若所述漂移值小于所述漂移阈值,则转至步骤S260;若所述漂移值不小于所述漂移阈值,则转至所述步骤S220。
[0021]步骤S260:判断任两个所述坐标集合的中心坐标之间的距离是否小于所述漂移阈值,若两个所述坐标集合的中心坐标之间的距离小于所述漂移阈值,则将两个所述坐标集合合并为一个坐标集合,转至步骤S270;若两个所述集合的中心坐标之间的距离不小于所述漂移阈值,则转至步骤S270。
[0022]步骤S270:判断是否存在所述坐标不属于任一个所述坐标集合,若存在不属于任一个所述坐标集合的所述坐标,则转至步骤S220;否则转至步骤S280;
[0023]步骤S280:检测属于至少两个所述坐标集合的同一所述坐标,将所述坐标划分至有合并的所述坐标集合。
[0024]进一步地,所述步骤S30包括:
[0025]步骤S310:根据位于同一分组的所述负载和所述驱动单元对应的坐标之间的距离,设置距离权重;
[0026]步骤S320:根据所述的负载之间的连接,以及所述负载和所述驱动单元的连接,设置连接权重;
[0027]步骤S330:根据所述负载和所述驱动单元的所属于的模块,设置模块相似度权重;
[0028]步骤S340:根据所述距离权重、所述连接权重和所述模块相似度权重设置每一个所述分组内的所述负载和所述驱动单元的权重,所述权重=距离权重+连接权重+模块相似度权重。
[0029]进一步地,所述步骤S310包括:
[0030]位于同一分组的所述负载和所述驱动单元对应的坐标之间的距离与所述距离权重成反比。
[0031]进一步地,所述步骤S320包括:
[0032]所述负载之间连接的连接权重小于所述负载与所述驱动单元连接的连接权重。
[0033]进一步地,所述步骤S330包括:
[0034]所述负载或所述驱动单元属于同一模块的权重大于所述负载或所述驱动单元属于同一模块的不同子模块的权重;
[0035]所述负载或所述驱动单元属于同一模块的不同子模块的权重大于所述负载或所述驱动单元属于不同模块的权重。
[0036]进一步地,所述步骤S40还包括:
[0037]步骤S410:当所述负载或所述驱动单元对应的坐标位置不能放置所述负载或所述驱动单元时,将所述负载或所述驱动单元放置于同一个尝试位置,所述尝试位置为所述负载或所述驱动单元对应的坐标不能放置所述负载或所述驱动单元时,为所述负载或所述驱
动单元分配的新位置;
[0038]步骤S420:当所述尝试位置不能放置所述负载或所述驱动单元时,将所述负载或所述驱动单元放置于所述尝试位置的同一行或同一列。
[0039]进一步地,所述步骤S40还包括:
[0040]判断所述负载或所述驱动单元选择的位置的布线密度是否超过密度阈值,若所述负载或所述驱动单元选择的位置的布线密度超过所述密度阈值,则重新选择所述负载或所述驱动单元所放置的位置,若所述负载或所述驱动单元选择的位置的布线密度不超过所述密度阈值,则放置所述负载或所述驱动单元。
[0041]相比于现有技术,本申请的有益效果:
[0042]本申请实施例提供的可编程逻辑器件的合法化布局方法,布局时考虑到布局资源之间的布线密度,通过为布局资源设置分组,设置分组内每一个布局资源的权重,根据分组和布局资源的权重进行合法化布局,使得相同电路网络的负载资源或驱动单元资源能放置到同一个可编程逻辑单元(CLB)或放置到该可编程逻辑单元(CLB)的同一行或同一列,减少了布局资源之间的布线拥塞,平衡了可编程逻辑器件各个方向各个位置上的布线资源。
附图说明
[0043]为了更清楚地说明本申请实施例或现有技术中的技术方案,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种可编程逻辑器件的布局方法,其特征在于,包括:步骤S10:根据电路网络的扇出值将所述电路网络区分为第一类网络和第二类网络,获取所述第一类网络的负载和驱动单元,以及获取所述第二类网络的负载,所述电路网络为用户设计中端口之间的连接关系,所述驱动单元为电路网络中发出信号的端口,所述负载为电路网络中接收信号的端口;步骤S20:根据全局布局的结果将所述负载和所述驱动单元设为若干个分组;步骤S30:获取每一个所述分组内的所述负载和所述驱动单元的权重;步骤S40:根据全局布局的结果按照任意顺序依次放置每一个所述分组的所述负载和所述驱动单元,并根据每一个所述分组的所述负载和所述驱动单元的权重确定每一个所述分组的所述负载和所述驱动单元的放置顺序。2.如权利要求1所述的可编程逻辑器件的布局方法,其特征在于,所述步骤S10包括:将所述扇出值不超过第一扇出阈值的所述电路网络区分为所述第一类网络,获取所述第一类网络的负载和驱动单元,以及将所述扇出值超过第一扇出阈值的所述电路网络区分为所述第二类网络,获取所述第二类网络的负载。3.如权利要求1所述的可编程逻辑器件的布局方法,其特征在于,所述步骤S20包括:步骤S21:将与所述负载和与所述驱动单元对应的坐标划分为若干个坐标集合;步骤S22:将与每一个所述坐标集合内的所述坐标对应的所述负载或所述驱动单元设为一个分组。4.如权利要求3所述的可编程逻辑器件的布局方法,其特征在于,所述步骤S21包括:步骤S210:设置任一所述坐标为中心坐标;步骤S220:根据所述中心坐标和第一带宽设置所述坐标集合,所述坐标集合包括所述中心坐标以及与所述中心坐标距离在第一带宽内的所有的所述坐标;步骤S230:获取所述坐标集合的漂移值,所述漂移值为所述中心坐标与所述坐标集合内每一个坐标之间矢量距离之和的平均值;步骤S240:根据所述漂移值更新所述中心坐标,更新之后的所述中心坐标=更新之前的所述中心坐标+所述漂移值;步骤S250:判断所述漂移值是否小于漂移阈值,若所述漂移值小于所述漂移阈值,则转至步骤S260;若所述漂移值不小于所述漂移阈值,则转至所述步骤S220;步骤S260:判断任两个所述坐标集合的中心坐标之间的距离是否小于所述漂移阈值,若两个所述坐标集合的中心坐标之间的距离小于所述漂移阈值,则将两个所述坐标集合合并为一个坐标集合,转至步骤S270;若两个所述集合的中心坐标之间的距离不小于所述漂移阈值,则转至步骤S270;步骤S270:判断是否存在所述坐标不属于任一个所...

【专利技术属性】
技术研发人员:刘焦王长龙张鑫夏炜
申请(专利权)人:深圳市紫光同创电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1