DC综合入门【待完善】

news2024/11/15 7:22:59

一、文件说明

  • 工艺库

1、.db 格式:二进制工艺库文件;. lib 格式:可读工艺库文件(包含 operating _ conditions ).

二、. synopsys _ dc . setup

  • 搜索路径定义

1、set_search _ path [ list ./ home xxx(路径)]
2、多个地址可用\符号换行

  • 设计环境( PVT :工艺角、电压和温度)

1、库设置

1). 目标工艺库(标准单元综合库): set target_library {/home/xxx/PDK/typical.db}
2). 符号库: set symbol _ library {/ home / xxx/ PDK / typical . sdb}
3). 设置 IP 库:set synthetic_library [list dw_foundation.sldb]
4). 链接库(上一层调用底层已综合模块时的链接库,可以与 target library 相同,包含所有用到的库):set link_library {* ./home/xxx/PDK/typical.db}
5). 其他环境设置(不在link library内):set_min_library {slow.db} -min_version {fast.db}
6). 设置不同工作条件下对应库:set_operating_conditions -analysis_type on_chip_variation -max ss_v1p08_125c -min ff_v1p32_-40c

1)). ss_v1p08_125c和 ff_v1p32_-40c为最差和最好工作条件名,在 lib 中查找;
2)). slow 和 fast 分别为最差和最好 lib 名,在 search_path 中设置。

2、设置线负载模型、模式

1). set_wire_load_model -name ForQA

1)). model名在 lib 中查找
2)). slope:斜率(长度/扇出)

2). set_wire_load_mode top

top 顶层模式:适合扁平化设计、 enclosed 包围模式、 segmented 分段模式:

3、系统接口特性

1). set_drive XXX [list XXX]

用于输入端口输入电阻设置(单位与工艺库中一致,典型为0.05),端口列表可为"[ all _ inputs ]“或”{分别列举}"。

2). set_driving_cell -lib_cell XXX -pin XXX -no_design_rule [get_ports XXX]

设置端口驱动单元

3). set_input_transition XXX [get_ports XXXX ]

设置端口固定转换时间(单位与工艺库中一致)

  • 命名规则

1、 大写字母替换小写字母:define_name_rules BORG -restricted "A-Z" -replacement_char "a-z"

三、 TCL

  • 路径设置

1、 set REPORT "../report":使用时用 “$REPORT” 代替 “…/report”

  • 读取设计

1、读入 design:analyze -format verilog ./WORK/temp.v
2、建立 design,后面跟 module 名: elaborate temp

一般最顶层模块最后读入,作为Current Design

  • 设计规则约束

1、设置最大转换时间:set_max_transition XXX [XXX]

一般设置为周期的10%;all_inputs / all_outputs / find design

2、设置最大扇出负载(通过插入 buffer 以符合约束):set_max_fanout XXX [XXX]

  • 设计优化约束

1、时钟约束

1).时钟约束:create_clock -name CLK -period 5 -waveform {0 2.5} [get_ports CLK ]
2).时钟抖动: set_clock_uncertainty -setup xxx [get_clocks CLK]
/ set_clock_uncertainty -hold xxx [get_clocks CLK]【可以设置为10% ClockPeriod】
3).内部产生时钟约束:create_generated_clock -name CLKdiv2 -edges{2 4 6} -source CLK [get_pins Udiv/Q]
4).对于时钟禁止加入缓冲,时钟树在布局布线时加入:set_dont_touch_network [get_clocks CLK]
5).输入端口驱动: set_drive 0 [get_clocks CLK]【设置驱动阻抗】

参考:时钟的约束方法

2、复位信号约束

1). set_dont_touch_network [get_ports reset]:【不加buffer】
2). set_dont_touch_network [get_pins -hierarchical reset_ int]:【不加buffer】
3). set_drive 0 [get_ports reset]
4). set_ideal_network [get_nets -hierarchical reset_int] -no_propagate :【不做时序分析】

3、输入输出延迟

1). set_input_delay:【可以设置为40% ClockPeriod 】
2). set_output_delay:【同步设计寄存器输出可以不加】

4、时序例外

1). set_false_path -from [get_ports reset]
2). set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2]

5、面积约束

set_max_area 0【获得最小面积】

  • 编译(映射+优化)

1、compile -no_autoungroup
2、compile ultra

参考:DC学习综合与优化

  • 返回报告、保存结果

1、输出综合后网表文件:write_file -f verilog -hierarchy -output /home/working_design.v
2、输出延迟文件:write_sdf -version 1.0 /home/working_design.sdf
3、输出面积报告:report_area -hierarchy > /home/area_hier.rpt
4、输出时序违例文件:report_constraints -all_violators -verbose > /home/constraints.rpt

在这里插入图片描述

微信公众号:通信随笔XIDIAN

在这里插入图片描述

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

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

相关文章

eclipse中创建一个maven父工程和几个模块(子工程)

示例:创建一个父工程和几个模块(子工程) 1)、先创建一个父工程 注意:下面的Packaging选择pom: 点击Finish,父工程就创建好了: 2)、再创建模块(module&am…

软件测试用例三问,我的观点

背景 笔者最近换了新工作,可能是跟下属不熟悉的关系,昨天在会议上要求他们在用例中说清楚测试点。这句话引起了下属的一些情绪。我觉得这个问题有必要拿出来说一说,而且讨论这个问题的时候很容易从A变成B,这需要管理者警惕。 昨…

抖音如何查看自己上没上热门

抖音如何查看自己上没上热门 老铁,你的作品上热门了,你是不是还不知道呀? 如果说你还不知道怎么查看自己的作品上热门了,那么你一定要认真听我说。 首先呢,你的作品上热门播放量会比平时高几倍,几十倍&am…

@ConfigurationProperties 注解原理

前言 ConfigurationProperties注解是 SpringBoot 提供的一种更加便捷来处理配置文件中的属性值的方式,可以通过自动绑定和类型转换等机制,将指定前缀的属性集合自动绑定到一个Bean对象上。 加载原理 在 Springboot 启动流程加载配置的 prepareEnviron…

(2022,域邻近度)通过自适应感知核调制的 few-shot 图像生成

Few-shot Image Generation via Adaptation-Aware Kernel Modulation 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 通过源-目标域接近度的视角重新审视 FSIG 3.1 源-目标域邻近度分析 3.2 临近假设松弛下的 FSIG 方法 4. 自适应感知核调制 5. 实证研…

js实现日历效果

使用js实现日历效果,主要用到了元素的创建以及添加 对应的方法是document.createElement()和document.appendChild() 主要实现思路: 用div布局把日历的页面框架搭建出来依次遍历上月,本月,下月的天数切换月份的时候首先清空所有日…

在服务器安装mysql步骤以及mysql数据库连接报错:is not allowed to connect to this mysql server

mysql xxx is not allowed to connect to this MySQL server 服务器上面安装的mysql数据库在本地连接的时候报错:is not allowed to connect to this MySQL server 出现这种情况的原因是因为: mysql数据库只允许自身所在的本机器连接,不允许…

排序算法——直接选择排序

直接选择排序 以升序排序为例 文章目录 直接选择排序算法步骤动图演示实现代码改进算法(双指针)具体步骤处理特殊情况:实现代码 时间复杂度 算法步骤 方法一:直接交换数组元素 将第一个元素与其他元素进行比较,若其…

初识网络之再看tcp协议

目录 一、tcp协议段格式 二、tcp协议的解包 三、tcp协议的分用 四、TCP可靠性问题 1. 不可靠存在原因 2. 常见的不可靠问题 3. 如何保证可靠性 4. 确认应答机制 5. 序号 五、tcp报头其余字段 1. 16位窗口大小 2. tcp的6个标记位 2.1 SYN 2.2 FIN 2.3 ACK 2.4 P…

【Linux】C语言中多线程的创建、退出、回收、分离

概述 线程是轻量级的进程(LWP:light weight process),在 Linux 环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,…

【Spring AOP】面向切面编程

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 什么是Spring AOP? 2. 为什么要…

NFC type 12345 tag介绍

NFC(近场通信)被称为短距离无线技术,是一套通信协议,NFC技术将非接读卡器/Reader、非接标签/Tag和点对点(Peer-to-Peer)数据交换的功能设计融为一体!使电子设备之间能够进行简单、安全的双向交互。为推动NFC技术发展,2004年,诺基亚…

Stable-Diffusion环境搭建

硬件可以采用DELL R7525 搭配L4 或者T4 等等企业级显卡 环境如下: 可以看到有相应的GPU卡信息 esxi 7.u3 信息 设置GPU穿透方式 查看相应的虚拟机参数信息 PCI 设备加载穿透GPU信息 启动uefi 设置相应的参数信息 https://docs.nvidia.com/grid/latest/grid-vgpu-re…

如何检测视频中的绿屏、绿帧问题

今天给项目拷机,发现视频会偶现绿屏,非常偶现,很难复现出来。 由于问题暂时没有定位,只能先表面解决一下,就是过滤掉出现绿屏的帧。 当然,首先要把绿帧检测出来,才能做后续的补救措施。 绿屏、…

电感公式推导

目录 电感的磁感应强度用:B表示 加入磁芯的可以提高磁感应强度:BμNI (μ > μ0) 磁芯的磁通量用:Φ来表示 一匝线圈感生电动势用:E来表示 在整个电感线圈的里面产生的感生电动势用UL来表示&#xff…

软件测试项目实战,电商项目核心业务测试分析(全覆盖)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 登陆功能怎么测试…

第16章_多版本并发控制

第16章_多版本并发控制 1. 什么是MVCC MVCC(Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。换言之&#xff0…

chapter9: SpringBoot自定义Starter

尚硅谷SpringBoot顶尖教程 1. 自定义starter介绍 自定义starter从下面两个方面着手: 这个自定义starter的场景需要用到哪些依赖?如何编写自定义starter的自动配置? 查看springboot提供的已有starter组件的自动配置类,基本使用…

NFC Forum Type2 Tag

RC522作为一款NFC读写芯片,性价比还是很高的,因为在项目里需要采用NFC OOB配对,所以需要读取配对方模拟的NFC卡片信息 读取对象采用NRF52832,使用其NFC功能模拟type2 tag,但是读取方式和M1卡不一样,踩了不…

软件测试员不要过于迷信技术,忽视软技能

精于技术对于测试员,乃至技术员本身没毛病,甚至应大加赞赏,在组织中更应像国宝熊猫一样照顾好。然而我们发现,一些精于技术的测试员混的并不好。“纯正”的技术人员就该吃亏?问题到底出现在哪里? 根据我对…