Synopsys CCD Optimization Flow in ICCompiler II

版权申诉
5星 · 超过95%的资源 3 下载量 142 浏览量 更新于2024-07-05 1 收藏 1.69MB PDF 举报
"CCD_in_ICC2.pdf - S家 Concurrent Clock and Data Optimization Flow Application Note K-2015.06-SP5 and L-2016.03" 这篇应用笔记主要介绍了S家(Synopsys)的集成电路编译器II(ICCOMPILERII)在K-2015.06-SP5和L-2016.03版本中的并发时钟和数据(Concurrent Clock and Data, CCD)优化流程。这个技术是针对集成电路设计中的关键优化问题,尤其是在高速通信和高性能计算领域,时钟和数据的同步处理至关重要。 **并发时钟和数据流(Concurrent Clock and Data Flow)** 此技术旨在提升数字集成电路设计的性能和功耗效率。通过同时优化时钟和数据路径,可以减少信号延迟,提高时钟速度,降低功耗,并改善整体系统性能。其工作流程包括以下几个关键部分: 1. **流程细节(Flow Details)** 这部分详述了如何在设计流程中集成CCD优化,可能包括预处理步骤、时钟树综合、数据路径优化、时序分析以及后处理等阶段。 2. **并发时钟和数据UI控制(Concurrent Clock and Data UI Controls)** 提供了一套用户界面(UI)控件,使得设计者能够定制和调整优化参数,以适应特定的设计需求。这些控制可能包括选择优化目标(如速度或功耗)、设置优化级别和约束条件等。 3. **优化策略(Optimizations in Concurrent Clock and Data Flow)** 在这个流程中,会应用一系列的算法和技术来改进时钟网络和数据路径,例如通过逻辑重组和门级延迟优化来缩短数据路径,通过时钟树修剪和时钟门控来减少时钟功耗。 **流程设置要求(Flow Setup Requirements)** 为了有效地使用这个优化流程,设计者需要遵循一些建议的设置和准备步骤: 1. **推荐的流程设置(Recommended Flow Settings)** 设计者应参考Synopsys提供的最佳实践,以确保在开始优化之前正确配置工具参数,这可能包括时序约束的设定、电源域的定义以及其他与CCD优化相关的选项。 2. **设计就绪检查(Checking Design Readiness)** 在开始CCD优化前,必须确保设计满足必要的输入要求,例如完整的时序信息、有效的功耗模型和完整的逻辑网表。这一步骤是为了确保优化过程能够顺利进行,并避免因设计问题导致的优化失败。 S家的CCD优化流应用笔记提供了详细指南,帮助集成电路设计者充分利用ICCOMPILERII工具,在K-2015.06-SP5和L-2016.03版本中实现高效、精确的时钟和数据路径优化,以提升系统性能和能效。同时,文档也提醒使用者注意,其中所描述的未来计划可能随时间而变化,实际产品和服务需按照授权协议进行购买。

select * from ( select row_.*, rownum rownum_ from ( select * from ( select distinct OB.BUSI_ORDER_ID, 0 as HIS_ID, OB.BUSI_CODE, OB.CUST_ID, OB.CEASE_REASON, OB.ORDER_STATE, OB.CHANNEL_TYPE, ob.user_id, OB.IS_BATCH_ORDER, OB.APPLICATION_ID, OB.CREATE_DATE, OB.DONE_DATE, OB.EFF_DATE, OB.EXP_DATE, OB.OPER_ID, OB.ORG_ID, OB.REGION_ID, OB.NOTE, OB.PROCESS_STATE, nvl(oi.cust_name, ic.cust_name) cust_name, nvl(oc.icc_id, iu.icc_id) icc_id, nvl(oc.svc_num, iu.svc_num) svc_num, icp.cust_name parent_cust_name, icp.cust_id parent_cust_id, ol.order_list_id from ord_busi ob left join ord_offer oo on oo.busi_order_id = ob.busi_order_id and ob.user_id = oo.user_id left join info_user iu on oo.user_id = iu.user_id left join info_cust ic on ob.cust_id = ic.cust_id left join ord_cust oi on ob.cust_id = oi.cust_id and ob.busi_order_id = oi.busi_order_id left join info_cust icp on nvl(ic.parent_cust_id, oi.parent_cust_id) = icp.cust_id left join ( SELECT * FROM ord_user WHERE user_order_id IN ( SELECT MAX(user_order_id) user_order_id FROM ord_user GROUP BY busi_order_id,user_id ) ) oc on ob.user_id = oc.user_id and ob.busi_order_id = oc.busi_order_id left join ord_list ol on ob.busi_order_id = ol.busi_order_id WHERE 1 = 1 and OB.CUST_ID IN( SELECT DISTINCT CUST_ID FROM (SELECT CUST_ID, PARENT_CUST_ID FROM INFO_CUST UNION SELECT CUST_ID, PARENT_CUST_ID FROM ORD_CUST) TMP START WITH TMP.CUST_ID = '10001009208' CONNECT BY TMP.PARENT_CUST_ID = PRIOR TMP.CUST_ID ) union all select distinct OB.BUSI_ORDER_ID,OB.HIS_ID, OB.BUSI_CODE, OB.CUST_ID, OB.CEASE_REASON, OB.ORDER_STATE, OB.CHANNEL_TYPE, OB.USER_ID, OB.IS_BATCH_ORDER, OB.APPLICATION_ID, OB.CREATE_DATE, OB.DONE_DATE, OB.EFF_DATE, OB.EXP_DATE, OB.OPER_ID, OB.ORG_ID, OB.REGION_ID, OB.NOTE, OB.PROCESS_STATE, nvl(oi.cust_name,ic.cust_name) cust_name , nvl(oc.icc_id, iu.icc_id) icc_id, nvl(oc.svc_num,iu.svc_num) svc_num, icp.cust_name parent_cust_name, icp.cust_id parent_cust_id, ol.order_list_id from ord_busi_his ob left join ord_offer_his oo on oo.busi_order_id = ob.busi_order_id 优化一下

2023-06-02 上传