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

【Tessent】【Command】set_design_level Design Level

  • Usage
  • Description
  • physical_block vs. sub_block
  • instrument_block

set_design_level 命令的基本内容,以及不同 design level 之间的区分。


Usage


该命令的用法比较简单,主要是区分不同的 design level。

set_design_level {chip | physical_block | sub_block | instrument_block}

Description


dft -rtl 或者 dft -no_rtl context 中进入到 analysis system mode 时候,必须使用该命令指定 design level。

该命令没有默认值,但它会对 create_dft_specificationprocess_dft_specification 两条命令产生影响,所以不许要指定正确的 design level。

使用 process_dft_specification 命令之后立即使用 extract_icl 命令,工具会将 top ICL module 的 tessent_is_physical_module 属性设置为 true。

如果 extract_icl 命令是单独使用的,那么在使用该命令之前,必须设定 design level。


chip

将 design level 设置为 chip 意味着:

  • 所有的端口都有一个 pad buffer
  • 使用 create_dft_specification 命令时会插入一个 TAP

所以,chip 通常指的是芯片的最顶层。此外,根据定义,chip 也算是 physical block。



physical_block vs. sub_block


在标准的 Tessent Shell workflows 中, physical_block 和 sub_block level 用于 child block,chip level 用于 top 。

区分 physical block 和 sub-block 是十分重要的,其不同之处如下所述:


physical block 在 synthesis 和 layout 中是一个独立的个体。

如果 physical block 在另一个 physical block 中实例化,那么在对 parent physical block 进行综合(synthesizing)时,综合工具或者 layout 工具并不会加载 child physical block 的 netlist view,而是使用 child physical block 的 timing model。

也就是说,parent physical block 的 SDC 只能参考 child physical block 的 pins,而不能参考 child physical block 中的 elements。

但是对于 parent physical block 中的 sub-block 而言,-to 或者 -from 不能参考 sub-block 的 pins,可以参考 sub-block 中的 elements。


sub-block 的 netlist 通常只是 parent physical block netlist 的一部分,在对 physical block 进行 scan insertion 的时候带上 sub-block。

但是,如果是 child physical block,可以单独对其进行扫描链的插入,然后将这些扫描链连接到 parent physical block 的扫描链。

【简单来说,在综合之后,sub-block 会融合到 parent physical block,不再有明显的边界,不能对其单独操作,但是 child physical block 会有明显的边界,可以单独对其进行操作。】


在 RTL DFT flow 中,sub-block 经常被当作 physical block。

在使用 read_def 命令提取 memories 的布局信息用于为每个 physical cluster 构建 memoryBIST 控制器时,如果是对 sub-block 进行 mbist 插入,就必须使用 -instance_of_current_design 选项。

因为根据定义,只能得到 physical block 的 DEF 文件,而不能得到 sub-block 的 DEF 文件,因为 sub-block 被综合到 parent physical block 中。只能使用 parent physical block 的 DEF 文件,并使用 -instance_of_current_design 指定 sub-block 在其中的实例路径。


在 signoff 仿真中,test benches 按照 physical block 进行划分,用以优化性能。

对于 sub-block modules,会作为 parent physical block 的一部分,同 parent physical block 一起仿真。因为在 gate-level 仿真的时候,只有 physical block 的 netlist 和 SDF 文件,sub-blocks 被综合到 parent physical block 中。


使用 read_design 命令加载一个 sub-block 到工具中的时候,如果它不是 current_design 并且使用 -rtl context,is_hard_module 属性会被自动推断为 true。

is_hard_module是 Data Models 中 module 的一个属性,它为 true 意味着该模块不能被编辑。类型为 cell 或者 primitive 的所有模块该属性都会被自定设置为 true。】

在对 current design (不是 sub-block,但其中包含 sub-block)进行 DFT elements 插入的时候,链接关系只能添加到 sub-block 模块的 pins。

如果想要在 sub-block 的内部添加内容,就必须将 sub-block 模块设置为 current design,然后再 sub-block level 进行内容添加(以及 sub-block 对应的 ICL 文件的提取)。

在 parent physical region 提取 ICL 的时候,是要复用 sub-block 的 ICL 描述,并且要从 sub-block 的 pins 向外追踪。


instrument_block


一个特殊的空模块,其中插入了 DFT elements。需要在 parent block 中手动实例化,并手动将其 pins 连接到 parent block。

如果不想要 Tessent Shell 修改 golden RTL,一个常用的 flow 是手动在 design block 中插入 DFT module。然后将该 DFT module 设置为 current_design,将该模块的 design level 设置为 instrument_block,使用 Tessent DFT flow 在其中插入 IjtagNetwork、EDT 控制器、SSN

该 DFT module 包含预先存在的的端口(clock、IJTAG network and SSN ports),需要预先手动将其连接到 parent module。

对该 DFT module 完成 DFT 插入之后,该 block 的 parent ,就好像你在该 level 完成了正常的 DFT flow。添加在 DFT module 的 DFT signals 会存在于 parent level。在 parent module 进行 ICL 提出之后,child DFT block 的 DFT elements 也会存在于 parent block’s TSDB 中。

示例:

首先,一个空的 DFT module ,其中包含了 IJTAG 和 SSN 的端口定义,以及每个功能时钟的输入和输出端口。

也可以为 all_test 和 async_set_reset_dynamic_disable 这两个 DFT 信号创建输出端口,用于在 scan shifting 过程中控制 clock mux 和 disable Async Set Reset signals。

在这里插入图片描述

然后,手动实例化并连接该 DFT module 到 parent module 中。

将 golden RTL 中的所有 clk 修改为 clk_occ,这样所有 scannable elements 是时钟都由即将插入到 block 的 OCC 控制。

在这里插入图片描述

将该 DFT module 当作普通的模块进行 DFT insertion,但是有两种不同:

在这里插入图片描述

在 next level,正常的读取设计并使用 read_design 命令加载 DFT module。定义时钟之后,执行 DRC。

在使用extract_icl命令时,就好像是使用正常的 flow 在当前 level 进行了 DFT element 的差人。ICL 提取完成之后,可以到 DFT context 中验证 RTL 具有可控制的时钟和复位信号。

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【系统架构设计师】二十四、安全架构设计理论与实践⑤
  • 双算法https证书获取指南
  • win10自带dll修复丢失的几种方法,快速修复错误dll文件的方式
  • c++初阶-----STL---list
  • 人力资源杂志人力资源杂志社人力资源编辑部2024年第13期目录
  • 白骑士的PyCharm教学高级篇 3.1 性能分析与优化
  • SQL各种注入详解加案例--持续更新
  • 【数据结构】mapset详解
  • 结构开发笔记(一):外壳IP防水等级与IP防水铝壳体初步选型
  • 六点建议有效防止晶振老化
  • 武汉流星汇聚:亚马逊助力领航跨境蓝海,品牌影响力跃上新台阶
  • YoloV10 论文翻译(Real-Time End-to-End Object Detection)
  • SpringBoot面试题整理(1)
  • 二维码生成原理及解码原理
  • SQL注入实例(sqli-labs/less-7)
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • .pyc 想到的一些问题
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • const let
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Laravel 实践之路: 数据库迁移与数据填充
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Node项目之评分系统(二)- 数据库设计
  • python学习笔记 - ThreadLocal
  • React as a UI Runtime(五、列表)
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 番外篇1:在Windows环境下安装JDK
  • 将 Measurements 和 Units 应用到物理学
  • 两列自适应布局方案整理
  • 七牛云假注销小指南
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 进程与线程(三)——进程/线程间通信
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​插件化DPI在商用WIFI中的价值
  • ​字​节​一​面​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014# day.2 T2 寻找道路
  • (4.10~4.16)
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net Core 生成管理员权限的应用程序
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net FrameWork简介,数组,枚举
  • .NET 解决重复提交问题
  • .net 流——流的类型体系简单介绍
  • .Net 知识杂记
  • .Net多线程总结