当前位置: 首页 > 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…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...