DC综合_lab1_Task1~Task8

实验概述:从设置文件的准备、工具的调用与环境设置验证,到设计的读取、约束的应用、编译操作,再到结果分析与报告生成,以及最后的设计保存和工具退出等一系列关键步骤。相当于大致跑了一遍DC综合的整个流程

学习流程:相关资料下的pdf文件是官方的文件,实验实操以这个pdf文件为主。lab1其实就是教你大概走一遍DC综合的流程,后续一些细节和深入的知识都放在了lab2及以后的实验上。相关的脚本文件在服务器上。

一 相关资料

https://so.csdn.net/so/search?q=Design%20Compiler&t=blog&u=weixin_43775201

二 Task1流程介绍

主要聚焦于对 Design Compiler 设置文件的检查与修改,以确保工具在后续设计综合流程中能正确调用所需的库文件和技术数据

        1. 进入工作目录并列出相关文件:

        列出与 Synopsys 相关的设置文件,如synopsys_dc.setupcommon_setup.tcldc_setup.tcl。这个common_setup.tcl文件包含用户定义变量,它指定了技术文件与文件名称,这些变量将会在dc_setup.tcl文件中使用。

        2. 编辑common_setup.tcl文件:

        打开common_setup.tcl文件,需要根据那个表格将相应的变量设置为正确的值,使 Design Compiler 在后续操作中能够准确找到所需的各种资源,从而顺利进行设计综合流程。这里不用管,大概看一下。

三 Task2流程介绍

指定库文件,调用 Design Vision 并验证设置,确保这个工具的运行环境正确配置。

        1. 用脚本打开DC工具:

        等待一下工具开启

        2. 在命令行确认变量设置和别名:

        通过在命令行输入printvar target_libraryprintvar link_libraryprintvar search_path命令,可以直接查看与设计综合紧密相关的关键变量的具体设置值。这有助于确保在之前编辑common_setup.tcl文件时,对变量(如TARGET_LIBRARY_FILESADDITIONAL_SEARCH_PATH等)的赋值准确无误。如果变量设置错误,可能导致后续设计读取、编译等操作无法找到所需的库文件或设计文件,从而影响整个设计综合流程的顺利进行。

        3. 检查库的一致性:

        执行check_library命令,检查逻辑库与物理库之间的一致性,确保在设计综合过程中,逻辑设计所需的单元与物理实现所需的单元相匹配,有助于在设计综合的早期阶段发现可能存在的库相关问题。如果存在其他未被预期的单元缺失或不匹配情况,可能会导致后续设计编译、布局布线等阶段出现错误,如无法正确映射逻辑单元到物理单元,或者在物理实现过程中出现连接错误等。

        命令执行后的数据包含这些信息:逻辑库基本信息(库名、文件路径、库类型、库版本),物理单位信息(时间单位1ns、电容单位、漏电功率单位、电流单位),检查选项相关信息。

四 Task3流程介绍

将设计源文件(如 VHDL 或 Verilog 文件)正确导入到 Design Compiler 环境中,为后续的设计处理做准备,确认设计层次结构、链接设计以解决引用问题、保存未映射设计状态、查看设计和库的相关信息。

        操作需要调用GUI界面,这里无法按照pdf一对一操作,看看有没有其它相似的操作或案例。下面给出参考的例子,了解一下

        1.读入设计文件(将设计读入DC内存中):

        2.查看设计文件:

        查看设计文件名和与之连接的逻辑库等库的名字:list_designs、list_libs

五 Task4~Task5流程介绍

        讲的Design Vision 中的视图操作和鼠标功能,熟悉设计的可视化展示,直接忽略。

六. Task6相关流程

使用脚本文件对 TOP 设计进行约束,设置设计约束。设计约束包括设计规则约束和优化约束,设计规则约束(design  rule constraint)由工艺库决定,在设计编译过程中必须满足,用于使电路能按功能要求正常工作。设计优化约束定义了 DC 要达到的时序和面积优化目标,该约束由用户指定,DC 在不违反设计规则约束的前提下,遵循此约束综合设计。

        1.执行约束脚本:

        输入source TOP.con,输入后将执行名为TOP.con的脚本文件,此脚本文件包含了对 TOP 设计的一系列约束条件,虽然这些约束在视图窗口中不可见,但它们已被应用到设计中。

dc_shell-topo> source scripts/TOP.con 
Current design is 'TOP'.
Information: No preferred routing direction is found for design layer METAL. Automatically deriving direction H. (DCT-035)
Information: No preferred routing direction is found for design layer METAL2. Automatically deriving direction V. (DCT-035)
Information: No preferred routing direction is found for design layer METAL3. Automatically deriving direction H. (DCT-035)
Information: No preferred routing direction is found for design layer METAL4. Automatically deriving direction V. (DCT-035)
Information: No preferred routing direction is found for design layer METAL5. Automatically deriving direction H. (DCT-035)
Information: No preferred routing direction is found for design layer METAL6. Automatically deriving direction V. (DCT-035)
1
Current design is 'TOP'.

 七. Task7相关流程

        选择编译策略,对设计进行编译,并通过多种方式查看编译结果。

        1.输入compile_ultra命令,启动设计的编译:

        等待编译完成即可。在编译过程中监控日志,日志中会显示不同优化阶段的各种表格。其中,“AREA” 列显示设计的面积大小,反映了设计所占用的资源规模;“WORST NEG SLACK” 列表示设计中关键路径(即最长延迟路径)违反约束的程度,其值为实际延迟与预期延迟的差值,差值越大,说明违反约束越严重;“TOTAL NEG SLACK” 是所有违反路径裕度总和,当优化达到一定程度,所有违反路径裕度总和为零时,表示设计中不存在违反时序的路径。

八. Task8相关流程

        生成并分析各种报告。

        1.报告违规的路径及其负裕度,和总的裕度值

        输入rc(这是在.synopsys DC.setup文件中定义的别名,等同于report_constraint -all_violators命令),执行该命令后会生成一个约束报告,列出所有约束违反的摘要信息。通常会看到一些“max_delay/setup”违反的情况,这些违反信息提示设计中可能存在的时序问题,可后续通过生成书序报告来获取更详细的时序路径信息。

        2.生成详细时序报告并记录关键数据

        输入rt,生成详细的时序报告,报告中指出各路径的延时和数据要求、到达时间,判断违规情况。从报告中记录最坏时序违反情况,即Slack (VIOLATED)的值。此数据用于评估设计的时序性能,判断设计是否满足时序要求。如果Slack值为负,则表示存在时序违反,需要采取措施进行优化,如调整时钟频率、优化逻辑路径或增加约束等;如果Slack值为正,则说明设计在时序上有一定余量,可根据实际情况进一步优化或保持现状。

        3.生成面积报告并记录数据

        输入ra,生成的报告会指出设计的各部分形式单元的面积:组合逻辑部分,反相器缓冲器部分、非组合逻辑部分,最后的总面积为单元的面积和连线的面积之和。

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值