ICC_lab总结

最近在学习后端的流程,做lab是最好不过了。但是有时候做过了lab,过了一段时间之后就会忘记,因此需要自己总结一下,加强印象。

ICC_lab1:数据设置和基本流程

数据设置

一、数据准备:

在启动ICC之前,需要准备好下面的文件:

(1)非库文件

①ICC启动的环境设置文件:.synopsys_dc.setup文件,这个以后是需要我们书写的。

主要的设置内容有:

  ·禁止显示一些警告,比如创建库、布局布线过程中的一些警告;

  ·设置一些有用的功能操作(ICC中没有的),需要相应的设置文件

  ·设置一些变量开关状态(开或者关)

  ·设置允许记录shell的命令信息

  ·设置一些关联命令

  ·逻辑库设置(设置search_path ,target_libr,link_library,设置min库:包括标准单元库、IO库、ram库),这就需要库了

  ·定义一些变量,这些变量内容是不同路径下一些文件的名称

②设计的verilog门级网表:.v文件,这个文件可以通过综合完成,不需要我们生成。

③设计的平面布局图:.def文件,这个文件在本次实验中用到,这个通过布局规划得到,以后需要我们自己生成。

④时序约束文件:.sdc文件,主要是时序的约束,这个文件可以从.sdc(标准设计约束)文件得到,不需要我们书写。

⑤时序和优化控制文件:opt_ctrl.tcl文件,主要是对设计进行优化的设置,这个以后是需要我们自己书写的。

⑥检查零互联时的时序约束文件:zic_timing.tcl文件,主要是检查设计在0负载的时候,时序的情况。这个以后需要我们自己书写。

⑦创建电源和地的逻辑连接文件:derive_pg.tcl文件。顾名思义就是创建电源和地的逻辑连接;以后这个文件需要我们自己书写。

(2)参考库文件(ref文件夹),主要有:(参考库不需要我们书写,但是需要我们熟悉,因为在上面的设置中,需要用到这些库)

·普通的库文件(db):里面有标准单元库、IO单元库、RAM宏单元库等

·参考的milkyway物理库(mw_lib):里面有各种单元库(IO单元、标准单元等)文件夹

·工艺库文件夹(tech):主要是.tf工艺库文件

·寄生参数库(tlup):主要是RC参数(.tluplus库文件),用来提取寄生参数用。.map文件主要是用来映射的文件。

二、创建milkyway设计库

对于一个设计,需要根据参考可以,创建相应的milkyway库。

启动ICC后,第一件事就创建设计库

create library:主要是填写new library name(这个跟设计名称一样)、工艺库名字,不需要导入物理库;然后导入参考库ref中的库单元(ref中的sc、io、ram);勾选打开库,然后确定之后就可以完成mw_lib的创建了

三、加载/读入.v网表文件、tlu+(也就是RC参数)文件、约束以及控制文件

①确保设计库打开的情况下,导入.v文件(FILE-import design),导入过程中,需要注意设置顶层设计。

②加载tlup+寄生文件:file -- set tlu+(寄生文件在ref的寄生文件夹下面),注意需要对于的文件(max、min还是.map)

③检查物理库和逻辑库的一致性(check_library):

如果有缺失或者不匹配的标准单元库(standard cells)、IP cells、IOpads(注意不是pin),那么需要修改库,否则可以忽视警告消息。

④检查tlu+文件是否添加(check_tlu_plus_files):有三个passed才算通过。

⑤验证指定的已经加载的库(list_lib):查看.synopsys_dc.setup文件中定义的库是否正确。

⑥定义电源、地和网络之间的连接,同时检查是否有未连接的电源和地引脚:

    

⑦读入时序约束文件,进行时序约束

    

  ·读入时序约束之后,需要检查一下是否缺失或者不一致的约束:

      

  ·查看是否有时序例外或者时序异常:

      

  ·检查是否有禁止时序分析的路径:

      

  ·检查约束的模式是否正确:

检查设计是否已针对特定的“模式”或“case”配置,例如“功能”与“测试”模式。 这是通过在定时分析和优化期间将控制引脚或端口约束为常量逻辑 0 或 1,而不是“硬连线”。 这有助于确认您的设计是否处于物理设计优化的正确“模式”:

      

·验证时钟是否正确建模:

    

⑧执行时序和优化脚本文件

    

⑨执行零互联约束:

source script/zic_timing.tcl

ZIC 模式将线网的容性负载设置为零。

执行完之后,保存相应的时序报告,可以查看相应的时序报告:

    

⑩删除理想的网络:

    

“扫描使能”信号(scan_en)被定义为一个理想的网络(见$ sdc_file),以防止综合缓冲这个信号。 删除理想的网络定义,以便在物理设计期间进行缓冲插入。

⑪保存单元设计:

    

基本流程:

一、设计规划

①读入布局规划文件:

    

这个.def在以后是需要我们进行设计生成的。

②确保标准单元不会放置在电源和接地金属路径下(此约束不是DEF 的一部分):

     

③保存设计规划后的设计:

    

二、布局

①进行布局,生成时序报告:

    

②布局完成之后,可以查看拥塞情况

③保存布局后的设计:

    

三、进行时钟树综合

①使用默认设置生成时钟树。 然而,为了允许 ICCompiler在时钟树合成期间计算实际时钟偏移,而不是结合来自约束的估计偏斜,首先去除“clockuncertainty,时钟不确定性”。 此外,启用保持时间修复:

    

最后那个是保持时序报告

②时钟树综合之后,可以查看时钟树的形状

③保存时钟树综合后的设计:

      

四、布线

①布线操作:

      

②布线之后,就可以进行查看各种时序报告

③保存布线后的设计:

      

基本的流程就是这样了。

最后,需要注意的是,当要打开某一个阶段的设计时,需要重新加载时序和控制优化:

    

第一个lab到这里结束了。

数据准备:各种文件、库文件-->创建milkway库-->加载/读入.v网表文件、tlu+(也就是RC参数)文件、约束以及控制文件(期间进行各种检查,执行各种文件)

基本流程:设计/布局规划-->布局-->时钟树综合-->布线

ICC_lab总结——ICC_lab1:数据设置和基本流程的更多相关文章

  1. asp.net 微信企业号办公系统-流程设计--流程步骤设置-数据设置

    数据设置是控制在流程处理过程中,当前步骤的数据显示与编辑状态,控制当前步骤哪些字段为只读,隐藏或可编辑.需要配合表单设计器使用.

  2. .NET开源工作流RoadFlow-流程设计-流程步骤设置-数据设置

    数据设置是控制在流程处理过程中,当前步骤的数据显示与编辑状态,控制当前步骤哪些字段为只读,隐藏或可编辑.需要配合表单设计器使用.

  3. Bridge的数据在内核处理流程

    转:http://blog.sina.com.cn/s/blog_67cc0c8f0101oh33.html 转载一篇Bridge的数据在内核处理流程,文章写的不错啊! (2013-07-05 16: ...

  4. Struts2 利用AJAX 导出大数据设置遮罩层

    Struts2 利用AJAX 导出大数据设置遮罩层 需求背景: 每次我们导出excel的时候 ,如果数据量很大,导出花费的时间会很长,页面却有没人任何反应,这个时候用户会认为系统有问题,要么关了页面, ...

  5. 关于大数据T+1执行流程

    关于大数据T+1执行流程 前提: 搭建好大数据环境(hadoop hive hbase sqoop zookeeper oozie hue) 1.将所有数据库的数据汇总到hive (这里有三种数据源 ...

  6. Excel按照某一列的重复数据设置隔行变颜色效果

    问题:如图所示,想按照A列中的重复数据设置隔重复行变颜色的效果,能否通过条件格式命令实现. 方法1:(最佳答案) 条件格式公式:=MOD(SUMPRODUCT(--($A$1:$A1<>$ ...

  7. Vue 使用$set动态给数据设置属性

    在实际的开发过程中,给表单元素绑定model的时候,绑定的元素的属性是根据后台数据动态生成的.如果使用常规的赋值方式,是无法更新视图的 需要使用, this.$set(dataName,keyName ...

  8. 【Oracle】删除(释放)数据文件/表空间流程

    oracle删除(释放)数据文件/表空间流程 生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G 再alter database datafile '...../niptest ...

  9. (九)Activitivi5之使用 RuntimeService 设置和获取流程变量

    一.案例 /** * 设置流程变量数据 */ @Test public void setVariableValues(){ RuntimeService runtimeService=processE ...

随机推荐

  1. pytho查找斐波那契序列中的值

    ''' 实现斐波那契序列,查找其中第N个数的值 ''' def FeiBSequence(list,N): length=len(list); i=0; while i<length: if N ...

  2. 关于WIN10开机无法输入密码的问题

    昨日,电脑 遇到了开机无法输入密码的问题,神烦. 作为一个计算狗,怎么能直接装系统(百度了一堆方法,装系统,果真万能)呢. 所以,深刻的分析了下. 1 .首先说明基本情况. 计算机品牌:ASUS 系统 ...

  3. OCR技术浅探: 语言模型(4)

    由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方法之一. ...

  4. 有趣的++i和i++

    作为一个天天和代码“约会”的人来说i++和++i这玩意再熟悉不过了,因为使用频率太高了. 虽然如此,但也未必见得我们真的了解她,不妨猜猜下面的输出结果. #inlcude <stdio.h> ...

  5. asp.net权限认证:Forms认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  6. Python系列之heapq内置模块

    heapq 是 python 的内置模块,源码位于 Lib/heapq.py ,该模块提供了基于堆的优先排序算法. 堆的逻辑结构就是完全二叉树,并且二叉树中父节点的值小于等于该节点的所有子节点的值.这 ...

  7. Swift 网络请求数据与解析

    一: Swift 网络数据请求与处理最常用第三方 又有时间出来装天才了,还是在学swift,从中又发现一些问题,这两天上网找博客看问题弄的真的心都累.博客一篇写出来,好多就直接照抄,就没有实质性的把问 ...

  8. java线程之多个生产者消费者

    温故一下上一节所学习的生产者消费者代码: 两个线程时: 通过标志位flag的if判断和同步函数互斥较好解决两个线程,一个生产者.一个消费者交替执行的功能 类名:ProducterConsumerDem ...

  9. html5橡皮檫特效

    体验效果:http://keleyi.com/keleyi/phtml/html5/32.htm 效果描述: 有点像刮刮卡一样,在移动设备上,把某张图片刮掉显示出另一张图片.效果图如下: 这种刮图的效 ...

  10. 代码审计中的XSS反射型漏洞

    XSS反射型漏洞 一 XSS漏洞总共分三总 XSS反射型漏洞,XSS保存型漏洞,基于DOM的XSS漏洞 这次主要分享XSS反射型漏洞 基本原理:就是通过给别人发送带有恶意脚本代码参数的URL,当URL ...