GRID问题

1、Grid滚动条

Grid不显示水平滚动条的办法:

在grid创建之后,或grid重新动态配置之后,加入下面两行代码即可

this.grid.getView().mainBody.dom.style.width = this.grid.getView().getTotalWidth();
this.grid.getView().mainBody.dom.style.height = '1px';

注:this.grid为创建的grid

控制滚动条位置

grid.getSelectionModel().selectFirstRow();//第一行
grid.getSelectionModel().selectLastRow() ;//最后一行
grid.getView().focusRow(grid.getStore().getCount()-1);//指定行

2、让ExtJs的Grid单元格显示竖线


Ext GridPanel 的默认样式的单元格没有显示竖线,若要显示可在页面中加入以下CSS样式:

<style type=“text/css”>
.x-grid3-cell-inner{
border-right: 1px solid #eceff6;
}
</style>
然后发现竖线与表头没有对齐,有一个像素的误差,再加入样式,代码就成了这样:

<style type=“text/css”>
/*显示竖线*/
.x-grid3-cell-inner{
border-right: 1px solid #eceff6;
}
/*与表头对齐*/
.x-grid3-row td, .x-grid3-summary-row td{
padding-right: 0px;
}
</style>
接着发现行间有一个像素的间隔,代码如下:

<style type=“text/css”>
/*显示竖线*/
.x-grid3-cell-inner{
border-right: 1px solid #eceff6;
}
/*与表头对齐*/
.x-grid3-row td, .x-grid3-summary-row td{
padding-right: 0px;
}
/*去掉行间空白*/
.x-grid3-row {
border-top-width: 0px;
border-bottom-width: 0px;
}
</style>
<think>嗯,用户问的是Innovus中的Off Grid问题,我得先回忆一下相关知识。Off Grid通常是指在芯片设计布局时,某些单元或者连线没有正确对齐到制造工艺所要求的网格上。这可能是因为设计工具在优化或布局过程中没有严格遵守网格约束,导致物理位置不符合制造规则。 首先,得解释Off Grid问题的原因。可能的原因包括工具设置不当,比如网格参数未正确配置;设计中的单元本身不在网格上,比如第三方IP或手动调整后的布局;还有优化步骤比如时钟树综合或时序优化可能移动了单元,导致偏离网格。此外,工艺文件中的网格定义不正确或者与设计规则不匹配也是一个可能因素。 接下来是解决方法。需要检查工艺文件,确认网格定义是否正确。然后检查工具设置,比如Placement和Routing的网格参数是否与工艺一致。使用checkPlace命令检查Off Grid错误,定位问题单元。对于有问题的单元,可以用moveInst或placeInst命令手动调整位置。在优化步骤中加入网格约束,防止工具移动单元后偏离。如果问题普遍,可能需要修改流程脚本,在关键步骤后加入网格对齐检查。此外,与Foundry沟通确认网格要求是否准确也很重要。 用户可能需要具体的操作步骤,比如具体的命令和检查方法,应该详细说明。另外,要提醒用户预防措施,比如流程中的网格约束设置和定期检查,避免问题在后期才发现。可能还需要区分不同阶段出现的问题,比如布局阶段和布线阶段的Off Grid,解决方法可能有差异。需要确保回答结构清晰,步骤明确,帮助用户逐步排查和解决问题。</think>在Innovus设计中,Off Grid问题通常是由于单元/引脚/走线未对齐制造工艺要求的网格导致的。以下是逐步分析和解决方案: 一、问题原因分析 1. 工艺约束未对齐: - 制造工艺定义的网格精度(如5nm)与设计工具设置不一致 - 例如:工艺要求所有金属层必须对齐5nm网格,但设计中存在4.8nm坐标值 2. 单元布局违规: - 标准单元/宏单元放置时未对齐网格 - 手动调整实例(instance)位置时忽略网格约束 3. 优化过程偏移: - CTS(时钟树综合)后缓冲区位置偏移 - 时序优化(optDesign)导致单元移动 4. 特殊结构影响: - 电源网络(PG mesh)与信号线网格不匹配 - 自定义布线未遵循金属层pitch规则 二、检测方法 1. 使用命令行检查: ```tcl checkPlace -honorGrid # 检查Placement网格对齐 verifyGeometry -report off_grid.rpt # 生成几何违规报告 ``` 2. GUI可视化检查: ```tcl highlightOffGrid -layer all # 高亮显示所有层违规 editSelect -offGrid # 选择违规对象 ``` 三、解决方案 1. 预防性设置(推荐): ```tcl setPlaceMode -place_global_place_on_grid true # 全局布局对齐网格 setOptMode -usefulSkew # 优化时保持网格对齐 ``` 2. 修正现有违规: ```tcl snapFPlan -unit X # 将floorplan元素对齐到X nm网格 place_opt_design -honor_grid # 带网格约束的布局优化 ``` 3. 金属层处理: ```tcl setAttribute -net * -non_default_rule strict_grid # 布线网格约束 setNanoRouteMode -routeWithViaInPin true # 引脚通孔对齐 ``` 4. 特殊场景处理: - 对于模拟模块: ```tcl setPlaceMode -analog_flow grid # 启用模拟模块网格模式 ``` - 对于IO单元: ```tcl setIoFlowFlag -honorGrid true # IO布局网格约束 ``` 四、验证流程 1. 阶段检查: ```tcl after place_opt: checkPlace -honorGrid after route: verifyProcessAntenna ``` 2. 签核检查: ```tcl setVerifyGeometryMode -offGrid true verifyGeometry ``` 五、注意事项 1. 工艺文件一致性检查: $$ \text{Grid精度} = \max\left( \frac{\text{Metal Pitch}}{2}, \text{Foundry要求} \right) $$ 2. 单元库验证: - 确认所有标准单元的边界坐标满足: $$ x \mod G = 0,\ y \mod G = 0 \quad (G为网格尺寸) $$ 3. 时钟树特殊处理: ```tcl setCTSMode -opt_with_grid true # CTS优化时保持网格对齐 ``` 建议在项目初期建立网格约束检查流程,使用以下正则表达式快速定位日志中的网格违规: `grep -E "OFFGRID|SPACING" innovus.log` 通过上述方法可系统解决Off Grid问题,同时建议定期与Foundry确认最新的网格规则要求,特别是在先进工艺节点(如5nm以下)设计中,网格约束会直接影响可制造性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值