Library介绍(三)

环境描述

工作条件

一般lib文件里面包含了芯片的工作条件即operation conditions,其指定了工艺(process)、温度(temperature)和电压(voltage),见图1。

其中,process代表了该工艺变量。如图1所示,代表tt_v1p2_25c这个corner的工艺变量是1。这个参数主要是给k库用的。所谓k库,就是通过已有的lib库,去生成一个foundry未提供的一个库。

打个比方,foundry提供了tt_1.2v_25c的库,但实际上该款芯片需要在tt_1.1v_25c下工作。那么,便可以通过k库的方式,通过k factor,便可根据tt_1.2v_25c lib生成tt_1.1v_25c的lib。

阈值定义

压摆值(slew)是基于库中指定的测量阈值点,通常是根据转换时间(transition time)来定义的,大多数上一代的库都使用10%和90%作为slew的测量阈值点。

压摆阈值点是选择对应波形的线性部分作为取值点的。随着技术发展,现在压摆阈值测量值取30%~70%部分(图2),而这一部分通常是实际波形最线性的部分。但是,由于之前测的slew在10%~90%之间。为了达到统一标准,需要将实际测算得到的30%~70%的slew进行加倍,将实际测算的slew值折算得到10%~90%的slew。而slew derate from library便是根据 ( 70% - 30% ) / ( 90% - 10% ) = 0.5得到的。上述定义在lib中的描述如图3所示。

而计算rise delay和fall delay时,怎么去取过渡时间的起始点和终止点呢?lib中也有的定义。一般是定义50%处,如图4所示。

默认属性(default attribute)

如果时序约束文件中(sdc)没有定义一些约束属性的话,那么便从lib中来获取相关参数了。如sdc中未定义max transition,而lib中定义了。那么,便采用lib中的约束。如果sdc中定义了相关约束的话,那么以sdc为准。

模板(templates)

所谓模板,就是定义了后续lookup table中需要根据哪几个input variable,来获取output variable的表格。如图5所示,为一个delay template,input变量有2个,分别为input net transition和output net capacitance。这个模板被应用在cell delay中。

k-factors

即上文所说的k库的参数(见图6)。在k库时,通过将k-factor代入到计算公式,便可以知道k完后的lib与原始lib直接的差异。

k库后的延迟 = 原始库的delay * (1 + kprocess * Δprocess + kvolt * Δvolt + ktemp * Δtemp )。

那么,如果将tt_1.1v_125c的库k到tt_1.2v_115c时,我们可以知道Δprocess= 0 ,kvolt = -0.042,ktemp = 0.0012

delay = 原始库delay * ( 1 + 0 – 0.042 * 0.1 - 0.0012 * 10 ) = 98.38%。

也就是说,tt_1.2v_115c库下cell delay约为tt_1.1v_125c的98.38%。

#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。如有需求,可打开星球芯冰乐,获取更多知识干货分享与答疑服务。

### 回答1: Linux GLM库是一款用于数学计算和图形处理的C++库。它提供了一系列数学函数和数据结构,旨在支持计算机图形学和游戏开发相关的操作。 GLM库的特点之一是完全兼容OpenGL标准,使用与OpenGL相同的数学约定和坐标系。它支持2D和3D矢量操作、矩阵变换、四元数计算、投影矩阵生成以及各种数学运算和变换。 GLM库还提供了灵活而强大的几何图形操作,包括点、线、面和体等基本图元的定义和操作。它也支持各种转换和变换,如平移、旋转、缩放和镜像等。 此外,GLM库还支持向量和矩阵之间的各种运算,如加法、减法、乘法和除法等。这些运算能够方便地进行线性代数计算,如矩阵求逆、矩阵乘法、向量归一化等。 与其他矩阵数学库相比,GLM库具有易于使用和学习的优势。它遵循了简单明了的语法和接口设计,使得开发人员能够轻松地理解和使用其功能。 总而言之,Linux GLM库是一款用于数学计算和图形处理的强大工具。它广泛应用于计算机图形学、游戏开发以及其他需要进行数学计算的领域,为开发人员提供了一个高效、可靠且易于使用的数学库。 ### 回答2: Linux GLM库是一个用于计算机图形学的C++数学库。它提供了一些常用的数学函数和数据类型,用于处理3D图形编程中的向量、矩阵、四元数等数学运算。GLM库是OpenGL数学库的一个替代品,可以在Linux操作系统上使用。 GLM库具有简单易用的特点,支持大部分OpenGL函数的参数和返回值类型。它不仅提供了高精度的浮点数运算,还具备了相应的精度可调节性,可以根据应用程序的需要灵活调整精度,从而提高了计算的速度和效率。 GLM库提供了丰富的数学函数,如向量的点乘、叉乘、归一化、长度计算等,矩阵的乘法、逆矩阵计算、转置等操作,还支持四元数的插值、旋转等功能。这些函数可以帮助开发人员在3D图形编程中进行复杂的数学计算,提高开发效率。 GLM库还提供了一些方便的数据类型,如vec2、vec3、vec4等用于表示二维、维、四维向量,mat2、mat3、mat4等用于表示2x2、3x3、4x4矩阵,quat用于表示四元数,以及其他一些辅助类型。这些数据类型与OpenGL的数据类型兼容,方便在OpenGL程序中使用。 总之,Linux GLM库是一个功能丰富、易于使用的数学库,适用于Linux操作系统上的计算机图形学编程。它提供了一些常用的数学函数和数据类型,帮助开发人员进行3D图形编程中的数学计算,提高开发效率。 ### 回答3: GLM是一个为OpenGL编写的C++数学库,它提供了包括向量、矩阵、四元数和欧拉角等各种数学对象的基本操作和函数。GLM的目标是提供与GLSL(OpenGL着色器语言)标准兼容的API,以便开发者在CPU和GPU之间进行无缝切换。 GLM库的特点之一是它的轻量级和高性能。它是一个仅包含头文件的库,因此使用非常简单,只需在代码中包含相应的头文件即可。GLM还使用SSE2、SSE3和NEON等指令集技术来优化数学运算,以提高计算性能。因此,GLM在计算性能上表现出色,是许多游戏引擎和图形库的首选数学库。 GLM库提供了几个模块,每个模块都提供了一组特定的功能。其中,最常用的模块是向量模块,它提供了不同维度的向量(如2D、3D和4D向量)及其相关的操作,如加法、减法、点积、叉积和归一化等。另外,GLM还提供了矩阵模块,用于执行各种矩阵操作,如乘法、逆矩阵和转置等。 GLM还提供了一些高级功能,如四元数和欧拉角的支持。四元数是用于表示旋转的一种数学工具,而欧拉角则用于描述旋转的方式。GLM库提供了可以方便地执行四元数和欧拉角转换的函数和方法。 总的来说,GLM是一个功能强大且易于使用的数学库,特别适用于OpenGL和图形编程领域。它具有高性能和兼容性,并提供了丰富的数学功能,使开发人员能够轻松进行数学计算和图形变换操作。无论是开发游戏、计算机图形学还是其他与OpenGL相关的应用程序,GLM都是一个不可或缺的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值