当前位置: 首页 > news >正文

【IC设计】DC工具的target、link、synthetic、symbol库

Specifying Libraries

You use dc_shell variables to specify the libraries used by Design Compiler.
Table 4-1 lists the variables for each library type as well as the typical file extension for the library.

你使用dc_shell变量去指定dc要使用的库。下表列出了每种库以及对应的常用扩展名

Library typeVariableDefaultFile extension
Target librarytarget_library{“your_library.db”}.db
Link librarylink_library{“*”,“your_library.db”}.db
Symbol librarysymbol_library{“your_library.sdb”}.sdb
DesignWare librarysynthetic_library{}.sldb

Specifying Technology Libraries

To specify technology libraries, you must specify the target library and link library.

要指定工艺库,就要指定目标库和链接库

Target Library

Design Compiler uses the target library to build a circuit. During mapping, Design Compiler
selects functionally correct gates from the target library. It also calculates the timing of the
circuit, using the vendor-supplied timing data for these gates.
Use the target_library variable to specify the target library.

DC使用目标库来构建电路。在映射时,DC从目标库中选择功能正确的门。它也使用供应商的时序数据来计算电路的时序

Link Library

Design Compiler uses the link library to resolve references. For a design to be complete, it
must connect to all the library components and designs it references. This process is called
linking the design or resolving references.

DC使用链接库来解决依赖(reference后面均翻译为依赖)。在一个设计要完成时,它必须连接到所有库元件并且设计它的依赖。这个过程被叫做链接设计或解决依赖。

During the linking process, Design Compiler uses the link_library system variable, the local_link_library attribute, and the search_path system variable to resolve references. These variables and attribute are described below:

在链接过程中,DC使用link_library,local_link_library和search_path系统变量来解决依赖。这些变量和属性被描述如下:

• link_library variable
The link_library variable specifies a list of libraries and design files that Design
Compiler can use to resolve references. When you load a design into memory, Design
Compiler also loads all libraries specified in the link_library variable.

• link_library variable
link_library变量指定一个库和设计文件的列表,DC用他们来解决依赖。当你加载设计文件到内存中时,DC也加载所有在link_library 变量中指定的库。

Because the tool loads the libraries while loading the design, rather than during the link
process, the memory usage and runtime required for loading the design might increase.
However, the advantage is that you know immediately whether your design can be
processed with the available memory.

因为工具是在载入设计时加载库,而不是在链接时加载库,所以在加载设计时内存的使用可能会增加。
不过,这么做的好处是你可以根据可用内存立刻知道你的设计是否能被处理。

An asterisk in the value of the link_library variable specifies that Design Compiler
should search memory for the reference.

link_library中的*号指定DC应该在内存中寻找依赖。

• local_link_library attribute

The local_link_library attribute is a list of design files and libraries added to the
beginning of the link_library variable during the linking process. Design Compiler
searches files in the local_link_library attribute first when it resolves references.

local_link_library属性是一个设计文件和在链接过程中要加入到link_library变量开头的库。DC会先在local_link_library属性中搜索文件来解决引用。

• search_path variable

If Design Compiler does not find the reference in the link libraries, it searches in the
directories specified by the search_path variable, described in “Specifying a Library
Search Path” on page 4-8. For more information on resolving references, see “Linking
Designs” on page 5-13.

如果DC没有在链接库中找到引用,它会搜索由search_path变量指定的目录,这部分内容在4-8中的"Specifying a Library Search Path"有描述。更多信息查看"Linking Designs"在5-13。

If you do technology translation, add the standard cell library for the existing mapped
gates to the link_library and the standard cell library being translated to the
target_library.

如果你做了技术转化,为已经存在的映射门添加标准单元库到link_library中,并添加标准单元库到target_library中

Your target_library specification should only contain those standard cell libraries that you want Design Compiler to use when mapping your design’s standard cells. Standard cells are cells such as combinational logic and registers. Your target_library specification should not include any DesignWare libraries or macro libraries such as pads or memories.

你的目标库应当只包含那些你想要DC在映射你的设计中标准单元时使用的库。标准单元是组合逻辑和寄存器单元。你的目标库应当不包含任何DesignWare库或者宏库,例如pads或memories。(端口或内存)

The target_library is a subset of the link_library and listed first in your list of link
libraries, as shown in Example 4-1. This example includes the additional_link_lib_files user
created variable to simplify the link library definition.

目标库是一个link_library的子集,并且在你的link库的开头列了出来,如例4-1所示。这个例子包含了用户创建的additional_link_lib_files变量来简化link库的定义。

Example 4-1 Setting the Target, Synthetic, and Link Libraries
set target_library [list of standard cell library files for mapping]
set synthetic_library [list of sldb files for designware, and so on]
set additional_link_lib_files [list of additional libraries for linking: pads, macros, and so on]
set link_library [list * $target_library $additional_link_lib_files $synthetic_library]

When you specify the files in the link_library variable, consider that Design Compiler searches these files from left to right when it resolves references, and it stops searching when it finds a reference. If you specify the link library as {“*” si_10k.db}, the designs in memory are searched before the lsi_10k library

在link_library变量中指定文件时,要考虑到DC工具搜索文件时遵循从左到右的顺序来解决依赖,在找到依赖时立刻停止搜索。如果指定link library如 {“*” si_10k.db},在内存中的设计会先于lsi_10k库搜索。

Design Compiler uses the first technology library found in the link_library variable as the main library. It uses the main library to obtain default values and settings used in the absence of explicit specifications for operating conditions, wire load selection group, wire load mode, and net delay calculation. Design Compiler obtains the following default values and settings from the main library:

DC使用在link_libary变量中找到的第一个工艺库作为主库。它使用主库在缺乏操作条件、线负载选择组、线负载模式和网络延迟计算时进行默认的值和设置。DC从主库中获得下面的默认值和设置:

  • Unit definitions
  • Operating conditions
  • K-factors
  • Wire load model selection
  • Input and output voltage
  • Timing ranges
  • RC slew trip points
  • Net transition time degradation tables

If other libraries have units different from the main library units, Design Compiler converts all units to those that the main library uses.

如果其他库有单元不同于主库单元,DC转化所有单元为那些主库使用的单元。

If you are performing simultaneous minimum and maximum timing analysis, the logic libraries specified by the link_library variable are used for both maximum and minimum timing information, unless you specify separate minimum timing libraries by using the set_min_library command. The set_min_library command associates minimum timing libraries with the maximum timing libraries specified in the link_library variable.
For example,
dc_shell> set link_library “* maxlib.db”
dc_shell> set_min_library maxlib.db -min_version minlib.db

如果你在同时执行最大、最小时序分析,在link_library变量中指定的逻辑库会被用于最大最小时序信息,除非你通过set_min_library命令分别单独指定最小时序库。set_min_library 命令将最小时序库和在link_library变量中指定的最大时序库链接在一起。

To find out which libraries have been set to be the minimum and maximum libraries, use the list_libs command. In the generated report, the letter “m” appears next to the minimum library and the letter “M” appears next to the maximum library.

为了找到哪个库被用于设置最大最小库,使用list_libs命令。在生成的报告中,小写m旁边的是最小库,大写字母M旁边的是最大库。

Specifying DesignWare Libraries

You do not need to specify the standard synthetic library, standard.sldb, that implements the built-in HDL operators. The software automatically uses this library.If you are using additional DesignWare libraries, you must specify these libraries by using the synthetic_library variable (for optimization purposes) and the link_library variable (for cell resolution purposes).

你不需要指定标准synthetic library,standard.sldb,那会被内置的HDL运算符实现。这个软件会自动地使用这个库。
如果你正在使用额外的DesignWare库,你必须通过使用synthetic_library变量和link_library变量来指定这些库(出于优化的目的)。

For more information about using DesignWare libraries, see the DesignWare documentation.

更多关于DesignWare库的信息,参见DesignWare文档。

Specifying a Library Search Path

You can specify the library location by using either the complete path or only the file name.
If you specify only the file name, Design Compiler uses the search path defined in the search_path variable to locate the library files. By default, the search path includes the current working directory and $ SYNOPSYS/libraries/syn, where $ SYNOPSYS is the path to the installation directory. Design Compiler looks for the library files, starting with the leftmost
directory specified in the search_path variable, and uses the first matching library file it finds.

你可以通过绝对路径或仅使用文件名的方式来指定库的路径。
如果你仅通过文件名指定库的路径,DC会使用预定义的search_path变量来定位库文件。默认情况下,search path包含当前的工作目录和$SYNOPSYS/libraries/syn目录,其中$SYNOPSYS指的是安装目录的路径。DC寻找库文件从search_path变量的最左侧开始,并使用第一个匹配的库文件。

For example, assume that you have technology libraries named my_lib.db in both the lib directory and the vhdl directory. If the search path contains (in order) the lib directory, the vhdl directory, and the default search path, Design Compiler uses the my_lib.db file found in the lib directory, because it encounters the lib directory first.

例如,假定你在lib目录和vhdl目录下都有名为my_lib.db的工艺库。如果搜索路径包含lib目录,vhdl目录和默认的搜索路径,DC会使用在lib目录下找到的my_lib.db,因为DC最先搜索到lib目录。

You can use the which command to see which library files Design Compiler finds (in order).

你也可以使用which命令来看DC按照顺序会找到什么库。

dc_shell> which my_lib.db
/usr/lib/my_lib.db, /usr/vhdl/my_lib.db

总结

DC涉及的库有:
目标库target_library、链接库link_library、算数运算库synthetic_library(就是DesignWare library,是同一个东西)、符号库symbol_library

DC在读文件时会读入所有需要的库,先在链接库里按照【从左到右】的顺序找对应的标准单元进行替换,如果找到就停止,如果找不到再到search_path里找库进行替换,earch path包含当前的工作目录和$SYNOPSYS/libraries/syn目录。可以通过which name.db来查看会先找到哪个目录下的库。

target libray和link library是工艺库,扩展名是.db,target libary定义了standard cell相关的信息。target library的内容需要写在link library中。

link_library变量中指定的逻辑库会被用于最大最小时序信息的分析,为了找到哪个库被用于设置最大最小库,使用list_libs命令。在生成的报告中,小写m旁边的是最小库,大写字母M旁边的是最大库。

link_library和target_library的区别:
target_library是综合时要映射的标准单元库,是link_library的子集,link_library包含target_library、synthetic_library、购买的硬核IP、IO Pad。

synthetic_library是算术运算库,扩展名是.sldb,DC初始化时默认使用standard.sldb来实现算术运算。例如加法,默认综合会使用串行进位的加法器来实现,如果需要超前进位加法器,就需要设置synthetic library。同时,synthetic_library需要添加到link_library中,以方便在链接时DC能找到对应运算符的实现。

symbol_library是工艺库单元显示原理图(Schematic)的库,扩展名.sdb,在使用design_analyzer或design_vision分析电路时会用到该库,缺省情况下会使用默认的符号库。

相关文章:

【IC设计】DC工具的target、link、synthetic、symbol库

Specifying Libraries You use dc_shell variables to specify the libraries used by Design Compiler. Table 4-1 lists the variables for each library type as well as the typical file extension for the library. 你使用dc_shell变量去指定dc要使用的库。下表列出了每种…...

redisson常用APi-Example

中文文档目录 redisson中文文档目录 分布式对象 package com.example.redissondemo.test;import com.example.redissondemo.RedissonDemoApplication; import com.example.redissondemo.test.domain.Order; import lombok.Data; import lombok.extern.slf4j.Slf4j; import o…...

小程序学习(四):WXML模板语法

WXML模板语法-数据绑定 1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据 2.动态绑定属性 WXML模板语法-事件绑定 3.什么是事件 4.小程序中常用的事件 5.事件对象的属性列表 6.target和currentTarget的区别 7.bindtap的语法格式 8.在事件处理函数中为data中的数据…...

IDEA好用的插件总结

IdeaVim 这个看个人喜好,我比较喜欢用vim,并且支持自定义修改按键绑定alibaba java code guidelines alibaba的java编程规范plantUML 绘制UML,支持语言显示plantUML integration 能够直接将代码转化为UML图,非常方便rainbow brack…...

如何在Linux系统中安装ActiveMQ

1、环境 ActiveMQ是一个纯Java程序,这里安装5.18.2版ActiveMQ,该版MQ运行在JDK 11环境内,为此需要先搭建JDK 11环境,这里安装JDK 15。 1.1、卸载 卸载开源JDK软件包,如下所示: [rootlocalhost ~]# rpm -…...

【Latex】常用公式编辑与符号:公式换行,标号居中、常用符号等

【Latex】常用公式编辑与符号 文章目录 【Latex】常用公式编辑与符号1. 公式换行,且标号居中2. 常用符号3. 常用的希腊字母 1. 公式换行,且标号居中 \begin{equation}\label{eq14} \begin{aligned}a & b/c, \\d & e/f \end{aligned} \end{equ…...

【ArcGIS Pro二次开发】(55):给多个要素或表批量添加字段

在工作中可能会遇到这样的场景:有多个GDB要素、表格,或者是SHP文件,需要给这个要素或表添加相同的多个字段。 在这种情况下,手动添加就变得很繁琐,于是就做了这个工具。 需求具体如下图: 左图是待处理数据…...

CentOS7.3 安装 docker

亲测、截图 阿里云服务器 文章目录 更新源2345 启动开机自启 更新源 sudo yum update -y2 sudo yum install -y yum-utils device-mapper-persistent-data lvm23 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo4 sudo yum …...

代码随想录算法训练营第五十二天 | 300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

文章目录 一、300.最长递增子序列二、674.最长连续递增序列三、718.最长重复子数组 一、300.最长递增子序列 题目链接 代码如下&#xff1a; class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() < 1) return nums.size();vector<…...

1、Tomcat

java介绍 Java语言和平台由以下几个主要部分组成&#xff1a; 1、Java编程语言(Java Language)&#xff1a;这是Java的核心部分&#xff0c;包括Java语法、关键字、数据类型、运算符、控制结构等。程序员使用Java语言来编写应用程序的源代码。 2、Java开发工具包(Java Developm…...

centos 内网实现mail发送

文章目录 1、frp 穿透公网和内网2、邮件 配置2.1、mail配置文件 3、测试 1、frp 穿透公网和内网 参考地址&#xff1a;https://zhaosongbin.blog.csdn.net/article/details/88865890 frps端部署在内网&#xff0c;frpc端部署在外网 frps端配置和上面文章中的一样&#xff0c…...

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…...

如何用C#实现上位机与下位机之间的Wi-Fi通信?

有IP协议支持的话用UDP报文或者TCP直接发IP地址和端口不行么&#xff1f;你说的WiFi难道是2.4GHz频率模块那种东东&#xff1f; 你既然用了wifi&#xff0c;那么只要上位机和下位机的对应wifi网卡都具有ip地址以及其协议支持&#xff0c;那么和网络编程没啥子明显区别的吧………...

学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件

原作者&#xff1a;依依│百度飞桨产品经理 一乔│飞桨开发者技术专家 分享内容 01:大模型应用简介 02:LLM应用开发范式 03: Al Studio大模型社区 04:AI对话类应用开发技巧 大模型技术爆发&#xff0c;各类应用产品涌现 文心产业级知识增强大模型 工作中的“超级助手”—…...

VB客运中心汽车售票管理系统设计与实现

摘 要:该系统是信息管理系统在售票管理方面的一个分支和具体运用,是为长治客运中心而设计的管理售票、车次、票价及客票收入统计等日常事物的系统。此系统选择Visual Basic 6.0作为开发工具来实现客运中心汽车售票所要求的各种功能。本文主要介绍了开发此管理系统的背景、必要…...

计算机网络——学习笔记

付费版&#xff1a;直接在上面的CSDN资源下载 免费版&#xff1a;https://wwsk.lanzouk.com/ijkcj13tqmyb 有疑问或者错误的地方可以在评论区指出&#xff0c;我会尽快回复 示例图&#xff1a;...

JSON对象

目录 简介 创建对象 ​编辑json对象作为属性值 json用于交换数据 简介 json&#xff1a;javascript object notation(js标记对象)是一种轻量化的数据交换模式&#xff0c;特点&#xff1a;体积小&#xff0c;数据量大 在js中&#xff0c;json是以对象的形式存在的&#x…...

26 用lsqnonlin求解最小二乘问题(matlab程序)

1.简述 函数语法 x lsqnonlin(fun,x0) 函数用于&#xff1a; 解决非线性最小二乘(非线性数据拟合)问题 解决非线性最小二乘曲线拟合问题的形式 变量x的约束上下限为ub和lb&#xff0c; x lsqnonlin(fun,x0)从x0点开始&#xff0c;找到fun中描述的函数的最小平方和。函数fu…...

Verilog语法学习——LV6_多功能数据处理器

LV6_多功能数据处理器 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 描述 根据指示信号select的不同&#xff0c;对输入信号a,b实现不同的运算。输入信号a…...

发送信息----策略模式

发送信息----策略模式 发送信息 发送信息 发送信息到手机、邮箱等&#xff0c;可扩展 package mainimport ("errors""fmt" )type PushContext struct {Phone, Email, Message stringTage int }type PaymentStrategy interface {Push(*P…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...