ldpack工作日记-2016/5/4&5

这两天把所有case中导致crash的bug修复了,主要有以下bug:

1. 在global placement中,将所有cell分类成movable和fixed两类,其中fixed cell是从movable cell出发找出相连的fixed cell,而有case中出现一种连接情况是in->IBUF->OBUF->out,即两个fixed的BUF无法通过movable cell找到,于是在访问这两个BUF的坐标时会出错。

    解决方法:在实例化IOBUF的cluster前先判断这个IOBUF是否与至少一个movable cell相连,如果有就实例化,否则就不实例化。

2. 在pack的DRC中,在摆放FF时如果对应位置的LUT是空的话,该SLICE的BY(或BX)会被设为FF的D端的net,而再摆放一个RAM32X1S时,会判断BY(或BX)的net和RAM32X1S的A0端的net是否相同,不同则不能pack,而显然RAMD和FF是可以pack在一起的。

    解决方法:在放置RAM32X1S的时候判断FF的D端是否由该RAM32X1S驱动,如果是,则将BY(或BX)端的net清空。

3. 目前的flow不支持SRL chain,要实现SRL chain的支持比较麻烦,而出现SRL chain的case只有一个(quip_bt/15/oc_dct_slow),所以暂时不跑这个case。

4. 关于等价单元无法推开的问题,增加随机扰动:dist += dist / 1000 * (rand() % 100)。max density只能降到1.9,还需要继续debug。


待修复的问题:目前在LUT层的global placement中,IOBUF的坐标都固定在(0,0),对预布局有比较大的影响,应该放置在对布局有利的位置上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值