Mentor-dft 学习笔记 day46-Graybox OverviewTessent On-Chip Clock Controller(1)

news2024/11/20 6:25:08

graybox功能简化了分层设计中的扫描插入和ATPG处理过程,允许对子模块执行扫描和ATPG操作,然后允许在以下情况下使用该子模块的简化灰箱表示在下一个更高层次执行扫描和ATPG操作。由于子模块的灰盒表示仅包含最小数量的互连电路,因此在大型分层设计中使用灰盒可以显著减少执行扫描插入、优化时序、分析故障和创建测试模式所需的内存和工具运行时间。

What Is a Graybox?
灰盒是子模块的简化表示,该子模块仅包含在下一个更高层次处理灰盒子模块所需的最小数量的互连电路(主输入/输出、包装链和包装链外部的粘合逻辑)。

为了理解子模块的灰盒表示,首先考虑图16-1所示的完整网表表示。该图显示了输入和输出包装器链、核心扫描链以及包装器链内外的组合逻辑。在为该子模块执行扫描插入、故障统计和模式创建之后,您将创建子模块的灰色框表示,如图16-2所示。

图16-2是图16-1所示子模块的灰盒表示。注意,灰盒仅包含主输入/输出、包装链和包装链外部的组合逻辑(即,主输入或输出与最近连接的触发器之间的任何组合逻辑)。

Graybox Process Overview
以下是生成灰箱网表的整个过程的描述。当工具处于分析系统模式且设计处于外部模式时,灰箱功能可用。外部模式意味着输入包装链用于常规测试模式(捕获和移位),而输出包装链仅用于非捕获模式(移位、保持或旋转)。通过在移位和捕获阶段将输出包装器链Scan_enable信号约束为活动,Tessent Scan插入的包装器链以外部模式配置。 用于生成灰箱网表的dofile执行以下操作:

1.定义外部模式中使用的时钟引脚(使用add_clocks命令)。

2.约束将电路置于外部模式的测试控制引脚(使用add_input_constrats命令)。

3.定义包装链(使用add_scan_chains命令)。

4.使用测试程序文件将电路置于外部模式。该测试程序文件应执行以下操作:

o定义外部模式的测试设置程序,以强制启用信号路径的主输入到包装单元。

o定义移位和加载卸载程序,以强制包装链扫描启用信号,并切换外部模式的移位时钟。可能还需要其他类型的扫描和时钟程序(如主观察或阴影观察)和非扫描程序(如捕获),以确保电路在外部模式下正确运行。

5.使用analyze_graybox命令标识灰盒逻辑。该命令还显示一个摘要,以指示分析所识别的组合逻辑门和顺序逻辑门。该工具通过设置其“in_graybox”属性来标记已识别的灰盒实例。通过使用set_attribute_value命令启用/禁用此属性,还可以在灰箱网表中包含其他实例(或从灰箱网列表中排除特定实例)。灰盒分析通过从所有主输出引脚和包装链向后追踪来执行识别。然而,芯链的扫描输出引脚被排除在反向跟踪之外。由于核心链不是用add_scan_chains命令定义的,因此可以通过使用set_attribute_value命令设置扫描引脚的ignore_for_graybox属性来实现这一点。

6.“write_design-graybox”命令将写出用in_graybox属性标记的所有实例。该工具取消了灰箱网表中包含的所有模块(顶部模块除外),保留未验证模块的接口(端口声明)。

Example dofile for Creating a Graybox Netlist
The following dofile example shows how to create a graybox netlist.
# Define clock pins used for external mode
: add_clocks 0 NX2
: add_clocks 0 NX1
:
:# Set up for external mode
:# Hold output wrapper chain scan enable active
: add_input_constraints sen_out -C1
:
:# Define wrapper chains
: add_scan_groups grp1 external_mode.testproc
: add_scan_chains wrapper_chain1 grp1 scan_in1 scan_out1
: add_scan_chains wrapper_chain2 grp1 scan_in2 scan_out2
:
:# Ignore core chains scan_out pins for graybox analysis to exclude the
:# logic intended for internal test mode
: set_attribute_value scan_out3 –name ignore_for_graybox –value true
: set_attribute_value scan_out4 –name ignore_for_graybox –value true
:
: set_system_mode analysis
# Identify graybox logic
analyze_graybox -collect_reporting_data
report_graybox_statistics -top 10
# NOTE: At this point, you can use the set_attribute_value command with
# the in_graybox attribute to include/exclude specific instances into/from
# graybox netlist.
# Write graybox netlist
write_design –graybox –output_file graybox.v -replace
Graybox Netlist Generation for EDT Logic Inserted Blocks
还可以为其扫描链由EDT逻辑驱动的块生成灰箱网表。 下面是一个示例dofile,用于为其包装器链扫描I/O端口直接通过包装器外部端口访问的块生成灰箱网表,绕过EDT逻辑。

当使用“set_wrapper_chains-wrapper_extest_ports”命令插入包装链时,Tessent Scan会将这些端口插入到块中。通过将全局信号wrapper_extest约束为逻辑1来激活包装器外部端口。通过在执行灰盒分析之前使用ignore_for_graybox属性标记EDT通道输出,EDT逻辑和随后的核心逻辑被排除在灰盒网表之外。

# Define clocks
add_clocks 0 clk
# Set up for external mode
# Enable access to wrapper chain extest ports and
# hold output wrapper chain scan enable active
add_input_constraints wrapper_extest -C1
add_input_constraints scan_en_out -C1
# Define wrapper chains
add_scan_groups grp1 cpu_block1_extest.testproc
add_scan_chains chain1 grp1 scan_in1 scan_out2
add_scan_chains chain2 grp1 scan_in3 scan_out4
add_scan_chains chain3 grp1 scan_in5 scan_out6
add_scan_chains chain4 grp1 scan_in7 scan_out8
# Ignore all EDT channel outputs to exclude EDT logic and core chains
# from the graybox netlist.
set_attribute_value edt_channels_out1 -name ignore_for_graybox -value true
set_attribute_value edt_channels_out2 -name ignore_for_graybox -value true
set_attribute_value edt_channels_out3 -name ignore_for_graybox -value true
set_attribute_value edt_channels_out4 -name ignore_for_graybox -value true
# DRC
set_system_mode analysis
# Identify graybox logic
analyze_graybox
# Write graybox netlist
write_design -graybox -output_file graybox.v
在下面的示例中,块没有专用的包装器外部端口,因此扫描I/O端口仅在外部期间通过EDT逻辑访问。EDT逻辑的设置被跳过以简化DRC过程,因为在相同的工具运行中不会生成pattern。

EDT逻辑的插入方式使得通道I/O引脚的排他子集仅用于包装链。这允许通过使用ignore_for_graybox属性标记核心链EDT通道输出,从灰箱网表中排除核心逻辑。如果分配给包装器链的信道输出上的sequential pipeline stages的深度小于2,则灰箱分析可以识别对外部敏感的EDT逻辑。然而,在本示例中,EDT块被指定为保留实例,以将其完全包含在灰箱网表中。

# Define clocks
add_clocks 0 clk
# No EDT setup
set_edt_options off
# Set up for external mode
add_input_constraints seno C1
# Define wrapper chains
add_scan_groups grp1 setup.testproc
add_scan_chains -internal chain1 grp1 \
/edt_block_i/edt_scan_in[0]/edt_block_i/edt_scan_out[0]
add_scan_chains -internal chain2 grp1 \
/edt_block_i/edt_scan_in[1] /edt_block_i/edt_scan_out[1]
# Ignore EDT channel outputs that access core logic in graybox analysis
set_attribute_value edt_channels_out3 -name ignore_for_graybox -value true
set_attribute_value edt_channels_out4 -name ignore_for_graybox -value true
# DRC
set_system_mode analysis
# Identify graybox logic
analyze_graybox -preserve_instances edt_block_i
# Write graybox netlist
write_design -graybox -output_file graybox.v
EDT逻辑也可以包含在灰箱网表中,而无需显式使用-preserve_instances开关。EDT Finder可以识别EDT逻辑中对外部敏感的部分,并自动将其添加为灰盒分析的保留实例。这也允许

通道I/O引脚上的任何顺序流水线级都将包含在灰箱网表中。以下示例dofile显示了在灰箱分析中使用EDT取景器的典型设置。为核心链分配的EDT通道引脚被限制/屏蔽,以便EDT查找器忽略。然而,当为包装和核心链插入单独的EDT块时,这通常是有效的。

# Define clocks
add_clocks 0 clk
# Set up for external mode
add_input_constraints seno C1
# EDT Finder is on by default
# Ignore EDT channels that are used for core logic
add_clocks 0 edt_clock
add_input_constraints edt_clock C0
add_input_constraints edt_channels_in2
-C0
add_output_masks edt_channels_out2
# Define EDT block and all chains
add_edt_blocks edt_block
set_edt_options -channels 2 -longest_chain_range
4 28
set_edt_pins input_channel 1 edt_channels_in1
-pipeline_stages 4
set_edt_pins input_channel 2 edt_channels_in2
-pipeline_stages 4
set_edt_pins output_channel 1 edt_channels_out1
-pipeline_stages 3
set_edt_pins output_channel 2 edt_channels_out2
-pipeline_stages 3
add_scan_groups grp1 setup.testproc
add_scan_chains -internal chain1
grp1 /edt_block_i/edt_scan_in[0] \ /edt_block_i/edt_scan_out[0]
add_scan_chains -internal chain2
grp1 /edt_block_i/edt_scan_in[1] \ /edt_block_i/edt_scan_out[1]
add_scan_chains -internal chain3
grp1 /edt_block_i/edt_scan_in[3] \ /edt_block_i/edt_scan_out[3]
add_scan_chains -internal chain4
grp1 /edt_block_i/edt_scan_in[4] \ /edt_block_i/edt_scan_out[4]
# Ignore EDT channel outputs that access core logic in graybox analysis
set_attribute_value edt_channels_out3
-name ignore_for_graybox -value true
set_attribute_value edt_channels_out4
-name ignore_for_graybox -value true
# DRC
set_system_mode analysis
# Identify graybox logic
analyze_graybox
# Write graybox netlist
write_design -graybox -output_file
graybox.v
Tessent On-Chip Clock Controller
在现代设计中,片上时钟控制(OCC)电路通常用于在测试期间管理时钟。这种时钟控制器可以在ATPG过程的控制下生成低速或高速时钟序列。Tessent OCC是创建的时钟控制器的一种实现

由Tessand Shell提供,其设计满足ATPG, Logic BIST, EDT, and Low Pin Count Test.。

Tessent OCC Overview
使用Tessent Shell,可以生成Tessent OCC并将其插入到设计中。配置OCC以在ATPG控制下生成可编程时钟脉冲。此外,可以将TK/LBIST混合控制器连接到Tessent OCC,该OCC具有捕获启用触发和外部时钟控制功能。 在这种情况下,Tessent OCC用于确保满足以下要求:

•ATPG对每个时钟域进行独立控制,以提高覆盖率,减少pattern计数,并在用户干预最少的情况下实现安全计时。

•在捕获期间,根据每个pattern提供正确数量的时钟脉冲。

•在移位和捕获时钟之间进行正确切换。

•在捕获期间启用慢速或快速时钟,以应用慢速和高速模式。

•在包芯内生成的扫描可编程时钟波形是在芯层生成pattern的理想选择。这些pattern可以重新定位到顶层并合并,以同时测试多个内核,而不会在每个内核内控制时钟的方式上发生冲突。

You can use the Tessent OCC with the following:

OCC Tessent Core Description-based automation for ATPG
TK/LBIST Hybrid Controller
Primary OCC Functions
典型的片上时钟控制器有三个主要功能:control clock selection, clock chopping control, and clock gating

•时钟选择

o选择使用的始终捕获或始终脉冲时钟。

o根据频率、测试类型和其他标准选择时钟。

•Clock Chopping Control

o扫描可编程移位寄存器控制时钟脉冲抑制。

o为时钟门控创建启用信号。

•Clock Gating

oGates clock based upon clock chopping enable signal

默认情况下,Tessent OCC包含一个内部时钟门控器。此选项可以在生成步骤中禁用。当设计已经包含时钟门控器时,可以用时钟使能信号生成Tessent OCC。 当使用具有时钟启用功能的Tessent OCC时,该工具检测OCC控制的时钟门控单元。此过程是自动的,不需要用户输入。为了能够正确检测OCC控制的时钟门控单元,需要在单元库中使用适当的模拟功能对单元进行适当建模。

 

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

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

相关文章

Oracle-在线重定义dbms_redefinition.sync_interim_table增量同步引发TX行锁问题

前言: 近期处理了一起用户使用在线重定义dbms_redefinition增量同步操作引发TX行锁的问题,用户在使用dbms_redefinition.sync_interim_table进行数据增量同步时,在线重定义的原表SQL语句出现了TX行锁等待问题 后面经过分析,发现产生TX行锁问…

短链接业务解决方案(附源码项目)

开源地址 https://github.com/lcy19930619/short-link 一个单节点短链接项目,有需要的拿去改改就行了,如果方便,可以帮忙点点star 什么是短链接 蓝色部分就是短链接 为什么要用短链接? 因为短信是按照字符去计算条数的&#x…

12月21日 OpenCV 实战基础学习笔记——背景建模、光流估计

文章目录前言一、背景建模1、帧差法2、混合高斯模型二、光流估计前言 本文为12月21日 OpenCV 实战基础学习笔记,分为两个章节: 背景建模;光流估计。 一、背景建模 1、帧差法 由于场景中的目标在运动,目标的影像在不同图像帧中…

Redis哨兵机制以及发布订阅

Redis哨兵机制1 哨兵Sentinel机制2 哨兵架构原理3 搭建哨兵架构4 通过springboot操作哨兵Redis发布订阅1 哨兵Sentinel机制 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例组成的Sentinel 系统可以监视任意多个主服务…

海格里斯HEGERLS深度解析|重型四向穿梭车的轨道换向组件及轨道系统

随着自动化仓储物流系统的广泛应用,物流设备也更趋于多样化,比如在货架轨道上可四向行走的穿梭车应运而生,重型四向穿梭车作为一种新型的物流存储设备,通常在轨道平面上有行走方向相互垂直的两个行走系统,通过两个行走…

gRPC学习Go版(一)

文章目录微服务入门gRPC是什么proto 服务定义gRPC 优势gRPC入门简单使用一元RPC服务流RPC客户流RPC双工流RPCgRPC底层原理RPC流长度前缀的消息分帧请求消息响应信息通信模式下的消息流微服务入门 现在的软件很少是一个孤立的单体应用运行的,相反更多是通过互联网连接…

玩以太坊链上项目的必备技能(错误处理以及异常-Solidity之旅十四)

错误处理 作为开发者的我们知道,我们所编写出来的程序难免会出现 bug ,而要做的是捕获异常,给用户抛出一个友好地错误提示。 而在 Solidity 中,根据状态恢复异常来处理错误,该异常将撤销在当前调用中对状态所做的所有…

[思维模式-9]:《如何系统思考》-5- 认识篇 - 改变开环、组合逻辑的线性思考,实施闭环、时序逻辑的动态思考。

目录 第1章 因果关系 1.1 因果关系 1.2 因果关系的特点 1.3 因果关系的类型 第2章 线性思考遇到的问题:开环思维、组合逻辑 2.1 开环系统 2.2 组合逻辑 2.3 线性关系 2.4 什么是线性思维:线性因果关系 2.5 线性思维的数学本质 2.6 线性思维的…

自动化药房出药升降机选型设计

一、 运动规划、运动参数的确定 1、 运动参数计算 运动参数主要通过速度规划确定,速度规划采用直线速度特性,如图所示。 运动方程为: 2、 X方向的速度和加速度的估算 已知参数: X方向行程:1…

stream_component_open函数分析

stream_component_open() 函数主要作用是打开 音频流或者视频流 对应的解码器,开启解码线程去解码。 流程图如下: stream_component_open() 的函数定义如下: /* open a given stream. Return 0 if OK */ static int stream_component_open(…

K8S知识点及dashboard操作

1.什么是K8S? K8S是一组服务器集群,可以在集群的各个节点上运行特定的容器。 K8S所管理的是:集群节点上的容器 特性: 自我修复,弹性伸缩(根据实时服务器的并打情况,增加或收缩容器数量&…

网络编程套接字Socket(通过两个用例,逐行注释,详细理解)干活满满建议收藏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言1.分类1.流套接字2.数据报套接字3.原始套接字2.Socket通信模型 3.UDP套接字编程1. DatagramSocket API1.构造方法1.DatagramSocket()2.DatagramSocket(int port)…

C语言之复合类型上卷(十八)(阴阳两极)

上一篇: C语言之内存管理(十七)(转世灵童现世) 逐梦编程,让中华屹立世界之巅。 简单的事情重复做,重复的事情用心做,用心的事情坚持做; 文章目录前言一、什么是结构体?二、结构体的定义及初始化…

USB TO SPI(上海同旺电子)调试器调试MCP3201 A/D 转换器

所需设备: 1、USB TO SPI(上海同旺电子); 2、MCP3201 12 位A/D 转换器; 特性 • 12 位分辨率 • 1 LSB DNL (最大值) • 1 LSB INL (最大值)(MCP3201-B) • 2 LSB INL &#xff…

pdf文件太大怎么变小,如何压缩pdf大小

pdf文件太大怎么变小?如果你是Windows电脑,可以使用PDF编辑器来减小PDF文件的大小,比如这款出色的PDF压缩工具-易我PDF编辑器,它的“压缩”功能提供了两种减小文件大小的方法,这使得它既适合那些只想获得更小的PDF的人…

【vscode】c++程序的自动编译及调试(环境centos)

目录1.新增配置文件(1)c_cpp_properties.json(2)files.associations(3)tasks.json(4)CMakeLists.txt2.断点调试1.新增配置文件 VS Code的配置文件一般是指特定目录下的JSON文件。所谓JSON是一种文本格式&a…

LCF-ATEPC(2020 Elsevier)面向中文的方面级提取和分类

论文题目(Title):A Multi-task Learning Model for Chinese-oriented Aspect Polarity Classification and Aspect Term Extraction (面向中文的方面极性分类和方面项提取的多任务学习模型) 研究问题(Question&#…

适用于 Windows 10/11 电脑 的 5 大好用的离线录屏软件

屏幕录制应用程序可以数字记录出现在任何设备或 PC 屏幕上的内容,并同时以高清流式传输音频和视频。 因此,他们帮助创建营销视频、跟踪客户行为、设计产品演示、监控员工活动、录制教育内容、网络研讨会内容和业务会议内容。 现在您已经意识到屏幕录…

VS系列多通道振弦传感器无线采发仪的数据发送说明

每次设备启动后会将采集到的传感器数据进行内部存储,并在设置好的时间间隔将数据发送出去,通过修改“数据发送方式”参数,监测数据可由数据接口输出也可经由无线网络发送。在发送监测数据时,可通过修改“数据包协议”参数来设置所…

函数和数组习题

个人主页:平行线也会相交 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创 收录于专栏【C语言基础习题】 文章目录知识点习题2.实现一个整型数组的冒泡排序(编程体)。3.编程题:创建一个整型…