Conformal ECO 流程介绍

        之前听说过一句话,没有修过ECO的人生是不完整的。最近就给我整得再次完整了。。。。。。

        最近赶项目,RTL freeze之后,后仿发现出了bug(还好拦下来了,不然头更大),于是做了一次function ECO,记录下流程。。。。项目还是delay了。。。。。永远记得checklist一定得过!!!!

RTL freeze就是说,从今天起,大家谁也不能再修改RTL了。RTL freeze是一个分水岭。在freeze之前,你仿真也好,看代码也好,FPGA验证也好,发现的任何bug,都可以通过修改RTL的方式进行直接更正。但是freeze之后,被freeze的RTL将会进行综合,STA,然后送给后端人员,做floor plan,电源综合,时钟综合,布局布线等等。这些后端流程都是极其耗时的,而且通常不可逆的。


        闲话扯完了,下面进入正题。

        Conformal是Cadence家的一款形式验证驱动的等效、低功耗和ECO解决方案,使用可为用户提供独立的等效性检查解决方案,支持从RTL到P&R的最终网表验证设计。要做ECO的话需要Conformal ECO XL 或 GXL license。目前主要大厂都用它做ECO。(S家的formality主要是我不知道如何自动生成ECO脚本,不过去年好像出了视频,年后抽空学习一下。。。。)

        ECO的介绍就不多提了,见:

数字后端——ECO_沧海一升的博客-CSDN博客对ECO(engineering change order)进行简单介绍https://blog.csdn.net/qq_21842097/article/details/121717450         Conformal支持Flattened ECO Flow和Hierarchical ECO Flow。这里主要说明Flattened ECO Flow,这也是官方推荐的。Flattened下,工具会将 ECO 分析重点放在从平面比较中确定的非等效关键点上,且更容易设置,所有 ECO 补丁都可以用一个命令创建。

        FLOW如下:

        1、使用 SET ECO OPTION -flat 命令(setup mode)指定运行 FEF 流:

SET FLATTEN MODEL -ECO
SET FLATTEN MODEL -ENABLE_ANALYZE_HIER_COMPARE

        它还会自动将以下选项添加到 ANALYZE HIER_COMPARE 命令

-CONstraints
-NOEXact_pin_match
-FUNCTION_Pin_mapping
-INPUT_OUTPUT_Pin_equivalence
-THRESHOLD 0 //便于工具确定所有模块边界

        2、为ANALYZE HIER_COMPARE命令增加额外指令。

        3、使用 ADD COMPARE POINTS -all 和 COMPARE 命令开始flatten设计之间的比较。 这里主要是确定非一致性的关键点。

        4、使用 COMPARE ECO HIERARCHY 命令根据模块边界(由步骤 1 确定)将非一致性点(在步骤 2 中确定)分解为其子模块。

        5、使用 ANALYZE ECO -hierarchical 命令创建所有必要的patches。

        6、分别使用 APPLY PATCH 和 OPTIMIZE PATCH 命令应用和优化patches。


        下面主要说下function ECO(pre-mask)的流程,这次我跑的就是这个,只能说不幸中的万幸吧。。。 流程如下:

         1、将旧 RTL 与旧网表进行比较。应该结果是等价的,这里需要通过添加扫描约束来禁用扫描。

        2、综合修改后的RTL。一般来说用与创建旧网表相同的综合工具、版本和脚本。 尽量减少任何更改。

        3、将新 RTL 与新网表进行比较。应该结果是等价的。

        4、将旧 RTL 与新 RTL 进行比较。结果是不等价的。这里需要注意的是,新的RTL读入为Golden design,旧的RTL读入为Revised design。

        5、比较旧网表和新网表。

        6、使用旧网表和新网表创建 ECO patch文件。在验证了第 5 步中的所有非等价点都是由功能更改引起的之后,使用 Conformal 为每个非等价模块创建一个patch文件。 在此步骤中使用的任何 ADD ECO PIN 命令也必须用于第 7 步和第 8 步。如果在创建 ECO patch 文件期间进行了任何展平,则必须对第 7 步和第 8 步执行相同的展平。

        7、应用patch并写出 ECO 网表。在分析所有 ECO 模块后使用patch文件创建 ECO 网表,然后写出尚未映射或优化的网表。

        8、优化补丁。这一步有点类似综合。

        9、ECO网表进行等价性检查。一致性检查必不可少。

        还是看脚本比较直接。ANALYZE ECO 命令会为每个非等价模块创建patch文件。 patch文件定义了一个patch模块并包含将改变设计功能的更改。 patch模块名称是附加了 _eco 的原始非等价模块名称。我这里主要是对比了两个网表,然后进行处理:

set log file eco.log -replaceset flatten model -eco
set flatten model -gated_clock
set flatten model -enable_analyze_hier_compareread library xxx.lib -replace -libertyread design r2.v -golden -replace
read design r1.v -revised -replace
//===================================
//等价的写法
//set x conversion e -both
//read design r1.v -golden -replace
//read design r2.v -revised -replace
//===================================report design data
report black boxuniquify -all -nolibrary -revised
add module attribute mod* -eco_module -noflatten -bothset system mode lec
analyze hier -eco_aware
add compare point -all
compare
compare eco hierarchy
analyze eco patch.v -preserve_clock -replace -hierarchical
//analyze 有-ecopin_dofile选项来增加eco pins,这次没用到set system mode setup
apply patch -golden -keephierarchy -auto
optimize_patch -workdir <working_directory> \-library <lib_file_list> \-sdc <sdc_filename> \-instancenaming “ECOinst_%d” \-netnaming “ECOnet_%d” \-sequentialnaming “ECOreg_%s” \-synexec “genus” \-verbose
report eco changes -script -file xxx.script -replace
write eco design -newfile eco.v -replace -report ECOprelogics.rpt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新天猫面试题(含总结):线程池+并发编程+分布式设计+中间件

最新天猫面试题&#xff08;含总结&#xff09;&#xff1a;线程池并发编程分布式设计中间件https://my.oschina.net/u/3892...

关于NAND flash的MTD分区与uboot中分区的理解 .

今天做内核移植&#xff0c;准备添加NAND flash的驱动&#xff0c;做到MTD分区时&#xff0c;想起在一本书上看到的一句话&#xff0c;说的是分区时每个区之间没有间隙&#xff0c;前一个区的结束地址是后一个区的起始地址。可是当我看我的开发板的教程时&#xff0c;分区如下&…

Zabbix discoverer processes more than 75% busy

原文发表于cu&#xff1a;2016-06-22 Zabbix discoverer processes more than 75% busy原因及处理。 一&#xff0e;现象 配置了discovery任务后&#xff0c;zabbix dashboard 告警如下&#xff1a; Zabbix discoverer processes more than 75% busy 二&#xff0e;原因 1. 配置…

Begin()

好&#xff0c;要开始在新的博客里写东西了&#xff0c;上一个博客的账号和密码都忘了... 我开通博客的申请里写&#xff0c;我博文的内容会以机器学习和控制算法的学习笔记为主。 那我写的估计是假的申请。 好吧&#xff0c;既然是这样写申请的一定程度上也是要兑现承诺的&…

图像紫边消除(depurple)

图像紫边广泛存在于目前的手机摄像头、数码相机、监控摄像头等数字成像系统所得图像中,当我们使用这些设备在逆光、大光圈等条件下拍摄时,所得图像的局部区域,特别是高反差区域(亮暗对比反差很大的图像区域,比如天空、灯管与物体相接的边缘)会比较容易观察到紫边,解决图…

Swift 性能相关

起初的疑问源自于「在 Swift 中的, Struct:Protocol 比 抽象类 好在哪里&#xff1f;」。但是找来找去都是 Swift 性能相关的东西。整理了点笔记&#xff0c;供大家可以参考一下。 一些疑问 在正题开始之前&#xff0c;不知道你是否有如下的疑问&#xff1a; 为什么说 Swift 相…

linux_NandFlash_driver_超详细分析 .

分类&#xff1a; Linux 驱动 Nand 驱动 2011-11-06 23:16 474人阅读 评论(0) 收藏 举报 今天学习了NandFlash的驱动&#xff0c;硬件操作非常简单&#xff0c;就是这个linux下的驱动比较复杂&#xff0c;主要还是MTD层的问题&#xff0c;用了一下午时间整理出来一份详细的分析…

HTTPS 路径配置

1: 首先安装 fiddlercertmaker.exe 文件2:Tools -> HTTPS 3: Connections 勾中Allow remote computer to connect转载于:https://www.cnblogs.com/eason-d/p/7492177.html

CMOS图像传感器——相位对焦

之前介绍了许多自动对焦的方案 自动对焦方法学习_沧海一升的博客-CSDN博客自动对焦的各类方法学习介绍https://blog.csdn.net/qq_21842097/article/details/121373263 在里面提到了遮蔽像素相位检测法,原理上算是相位检测法(Phase Detection Auto Focus,PDAF)的一种。…

51nod 1343 行列式的根

这题分块搞一搞&#xff0c;算到最后发现结果就是算矩阵J的行列式&#xff0c;要取模m&#xff0c;那个sign消掉了。 参考文献在这&#xff0c;欧几里德算法的应用&#xff0c;金斌 代码还是比较好写的&#xff0c;python代码 n,mmap(int,raw_input().split()) a[] for i in ra…

Spring Cloud Config 和Spring Cloud Bus实现配置中心

2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud是很多组件的集合&#xff0c;Spring将常用的技术框架进行包装和整合&#xff0c;如mybatis zookeeper rabbitmq redis等等&#xff0c;还有一些科技公司贡献出来的一些经过生产环境验证的组件如奈飞公司贡献…

ARM Linux启动过程分析

1. 引 言 Linux 最初是由瑞典赫尔辛基大学的学生 Linus Torvalds在1991 年开发出来的&#xff0c;之后在 GNU的支持下&#xff0c;Linux 获得了巨大的发展。虽然 Linux 在桌面 PC 机上的普及程度远不及微软的 Windows 操作系统&#xff0c;但它的发展速度之快、用户数量的日益…

你有没有靠谱的基因?一个人靠不靠谱,其实就看这三点:“凡事有交代,件件有着落,事事有回音。”...

你有没有靠谱的基因&#xff1f;一个人靠不靠谱&#xff0c;其实就看这三点&#xff1a;“凡事有交代&#xff0c;件件有着落&#xff0c;事事有回音。” 故事一、做了就忘了&#xff1f; 一天上班后&#xff0c;我让小王给上级部门送一个材料。 一个小时过去了&#xff0c;没…

CMOS图像传感器——闪烁(flicker)现象

一、概述 闪烁(Flicker),通常发生在室内场景,曝光时间设置如果不是光源能量周期的整数倍,则图像不同位置处积累的信号强度不同,并呈周期性变化,这是单帧图像的情况。在视频序列上,如果满足一定条件,视频会出现条纹模式在垂直方向上缓慢移动。 二、形成原因 1、光源 …

一条命令教你安装centos下面的pip服务

yum install -y python-pip转载于:https://blog.51cto.com/12131824/2177874

strcpy,memcpy,memset函数实现

strcpy 实现&#xff0c;只能拷贝字符串 char* strcpy(char* des,const char* source) {char* rdes; assert((des ! NULL) && (source ! NULL));while((*des *source)!\0);return r; } memcpy 实现&#xff0c;注意目的地址和源地址重合的情况&#xff0c;以及强制类…

CMOS图像传感器——图像传感器噪声

图像传感器噪声取决于图像传感器的制作工艺、内部结构及内部补偿技术等原因,噪声反应了图像传感器的内部特性。CMOS图像传感器基本原理见: CMOS图像传感——概述_沧海一升的博客-CSDN博客_cmos图像传感器CMOS图像传感器基本介绍https://blog.csdn.net/qq_21842097/article/d…

TI Davinci DM6441嵌入式Linux移植攻略——UBL移植篇

目录(?)[] 一DM6441的Boot过程简介二DM6441的UBL移植 CCS文件夹Common文件夹GNU文件夹 移植DDR2移植Nand Flash其它 声明&#xff1a;本文参考网友zjb_integrated的文章《TI Davinci DM6446开发攻略——UBL移植》和《DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移…

python接口自动化测试(二)-requests.get()

环境搭建好后&#xff0c;接下来我们先来了解一下requests的一些简单使用&#xff0c;主要包括&#xff1a; requests常用请求方法使用&#xff0c;包括&#xff1a;get&#xff0c;postrequests库中的Session、Cookie的使用其它高级部分&#xff1a;认证、代理、证书验证、超时…

从一个Android码农视角回顾2018GDD大会

两天的GDD大会结束了&#xff0c;很开心&#xff0c;可以看得出&#xff0c;这次Google真的很用心。不但分享的内容质量很高。而且又有得吃又有得玩&#xff0c;还有许多好看的小姐姐&#xff0c;真不妄我请了两天年假来参加这个大会。先来几张图镇楼 哈哈&#xff0c;跑题了。…