TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化
相关阅读
TestMAX/DFT Compiler
https://blog.csdn.net/weixin_45791458/category_12865937.html?spm=1001.2014.3001.5482
时序单元的状态
未映射的时序单元(Unmapped Sequential Cell)
在Design Compiler读取了一个RTL设计后,Design Compiler内置的HDL Compiler工具会将其转化为GTECH格式(或者说Generic Technology格式)的网表,其中的时序单元(例如触发器和锁存器)会使用SEQGEN(或者说Generic/Unmapped Sequential Cell)表示,SEQGEN的框图如图1所示。

图1 SEQGEN及其引脚表示
例1展示了一个异步复位D触发器的RTL描述和其对应的SEQGEN实现,如图2所示。
// 例1
module D_FF (input wire clk, // 时钟信号input wire reset, // 异步复位信号input wire d, // 数据输入output reg q // 数据输出
);// 异步复位逻辑
always @(posedge clk or posedge reset) beginif (reset) // 如果复位信号为高,输出q清零q <= 1'b0;else // 否则,在时钟的上升沿将输入d传递到qq <= d;
endendmodule

图2 DFF的SEQGEN实现
实际上,一旦设计中存在未映射的单元(此处单元可以指时序单元也可以指其他叶单元,还可以指包含未映射叶单元的层次单元),使用preview_dft或insert_dft命令时就会报错,无法进行扫描替换或者扫描连接。有关叶单元的相关介绍,可以见静态时序分析:Leaf Cell(叶单元)一文。
未映射的时序单元会有一个值为true的属性is_a_generic_seq,如下所示。
dc_shell> get_attribute [get_cell q_reg] is_a_generic_seq
true
非扫描时序单元(Nonscan Cell)
在Design Compiler中使用综合命令(不使用-scan选项)后,SEQGEN将被映射为具体的库单元,此时的时序单元被称为非扫描时序单元。
图3展示了映射到库单元的异步复位D触发器,库单元的参考名为DFFRQX2。

图3 DFF的映射后实现
未连接/布线的测试就绪单元(Unstitched/Unrouted Test-ready Cell)
在Design Compiler中使用综合命令(使用-scan选项,这被称为Test-Ready Compile)后,非SEQGEN将被映射为未连接/布线的测试就绪单元,此时扫描链尚未将这些测试就绪单元连接起来,扫描输入(SI)和扫描使能(SE)等扫测试引脚会被连接到适当的状态以启用功能模式(这些连接临时的)。
图4展示了映射到库单元的扫描异步复位D触发器,库单元的参考名为SDFFRQX2,这是图3所示DFF的扫描等价。

图4 DFF的扫描单元实现
使用Test-Ready Compile将SEQGEN直接映射为未连接/布线的测试就绪单元是建议的行为,除此之外可以对已映射为非扫描时序单元的设计进行扫描替换(使用compiler -scan或insert_dft命令)得到未连接/布线的测试就绪单元。
未映射的时序单元会有一个值为true的属性scanned_by_test_compiler,如下所示。
dc_shell> get_attribute [get_cell q_reg] scanned_by_test_compiler
true
需要注意的是,在某些情况下,不使用-scan选项的综合命令也会将SEQGEN直接映射为扫描触发器(比如使用只有扫描触发器的库进行综合),但此时它不是一个未连接/布线的测试就绪单元,因此没有scanned_by_test_compiler属性。
已连接/布线的扫描单元(Stitched/Routed Scan Cell)
当使用insert_dft命令后,符合条件(比如满足设计规则约束)的未连接/布线的测试就绪单元将被连接为扫描链,成为已连接/布线的扫描单元,如图5所示。

图5 一个全扫描设计的扫描链路径
时序单元的连接顺序
在Design Compiler的线负载模式下,扫描单元按完整层次路径名称中的字母和数字顺序分配并排序到扫描链中。
在Design Compiler的拓扑模式下,扫描元件根据虚拟布局信息分配和排序到扫描链,这样可以减少扫描路由的开销。在这种情况下,preview_dft和insert_dft命令会发出以下消息,表示使用了拓扑信息:
Running DFT insertion in topographical mode.
后DFT优化
在扫描链连接后,还可以进行后DFT优化,根据模式的不同,后DFT优化的命令也不同。下面所有的例子,假设从RTL描述开始编译。
线负载模式
// 例2
// 对于DC Expert
dc_shell> compile -scan # Test-Ready Compile
...应用DFT设置...
dc_shell> preview_dft
dc_shell> insert_dft # 连接扫描链// 对于DC Ultra
dc_shell> compile_ultra -scan # Test-Ready Compile
...应用DFT设置...
dc_shell> preview_dft
dc_shell> insert_dft # 连接扫描链
在Design Compiler线负载模式下,insert_dft命令默认自动执行基本的门级后DFT优化。如果需要,可以通过以下命令禁用它:
dc_shell> set_dft_insertion_configuration -synthesis_optimization none
注意:在这种情况下,如果禁用了insert_dft命令的自动后DFT优化,仍然可以手动执行后DFT增量编译来进行后DFT优化。
// 对于DC Expert
dc_shell> compile -scan -incremental # 后DFT增量编译// 对于DC Ultra
dc_shell> compile_ultra -scan -incremental # 后DFT增量编译
拓扑模式
// 例3
// 对于DC Ultra
dc_shell> compile_ultra -scan # Test-Ready Compile
...应用DFT设置...
dc_shell> preview_dft
dc_shell> insert_dft # 连接扫描链
dc_shell> compile_ultra -scan -incremental # 后DFT增量编译// 对于Design Compiler Graphical
dc_shell> compile_ultra -scan -spg # Test-Ready Compile
...应用DFT设置...
dc_shell> preview_dft
dc_shell> insert_dft # 连接扫描链
dc_shell> compile_ultra -scan -spg -incremental # 后DFT增量编译// 对于Design Compiler NXT
dcnxt_shell> compile_ultra -scan -spg # Test-Ready Compile
...应用DFT设置...
dcnxt_shell> preview_dft
dcnxt_shell> insert_dft # 连接扫描链
dcnxt_shell> compile_ultra -scan -spg -incremental # 后DFT增量编译
在Design Compiler拓扑模式下,insert_dft命令不会执行后DFT优化,需要在insert_dft命令完成,手动执行后DFT增量编译来进行后DFT优化,下面的命令在拓扑模式是无效的。
dc_shell-topo> set_dft_insertion_configuration -synthesis_optimization all
当增量优化设计时,工具会根据需要对扫描链中的扫描单元进行重新排序和重分区,以进一步减少拥塞。在这种情况下,compile_ultra命令会显示以下消息:
Information: Performing scan chain reordering in the SPG flow. (SPG-126)相关文章:
TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化
相关阅读 TestMAX/DFT Compilerhttps://blog.csdn.net/weixin_45791458/category_12865937.html?spm1001.2014.3001.5482 时序单元的状态 未映射的时序单元(Unmapped Sequential Cell) 在Design Compiler读取了一个RTL设计后,Design Compiler内置的HDL Compiler工…...
CAN201 Introduction to Networking(计算机网络)Pt.3 网络层
文章目录 4.Network Layter(网络层)4.1 Overview4.2 Router(路由器)4.3 Internet Protocol4.4 IPv4 addressing4.5 NAT(network address translation,网路地址转换)4.6 IPv64.7 Generalized For…...
App Factory:简化和加速私人应用开发
App Factory是Codigger提供的一套先进的开发工具、库和API,旨在帮助开发人员在现有的软件基础上添加特定的功能或扩展。它为私人应用的创建、开发和发布提供了一整套先进的工具集、集成的相关资源库以及强大的API接口,使开发者能够在现有的Codigger架构之…...
PHP语言laravel框架中基于Redis的异步队列使用实践与原理
在 Laravel 中,基于 Redis 的异步队列是通过 Laravel 的队列系统与 Redis 服务结合来实现的。这种队列机制允许你将任务推送到队列中,并由后台工作进程异步处理这些任务。这样,你就可以将耗时的操作(如发送邮件、处理视频、数据同…...
全面Kafka监控方案:从配置到指标
文章目录 1.1.监控配置1.2.监控工具1.3.性能指标系统相关指标GC相关指标JVM相关指标Topic相关指标Broker相关指标 1.4.性能指标说明1.5.重要指标说明 1.1.监控配置 开启JMX服务端口:kafka基本分为broker、producer、consumer三个子项,每一项的启动都需要…...
kipotix4靶机实战
信息收集 1.判断靶机ip 原理:开靶机之前nmap扫一次网段,再开靶机之后扫一次,查看多出来的ip就是靶机ip ip192.168.98.1742.判断端口服务,系统版本 a.确定端口 b.-p指定端口进一步收集 c.信息筛选 1.端口:22,80,139,…...
我的秋招总结
我的秋招总结 个人背景 双非本,985硕,科班 准备情况 以求职为目的学习Java的时间大概一年。 八股,一开始主要是看B站黑马的八股文课程,背JavaGuide和小林coding还有面试鸭。 算法,250,刷了3遍左右 项目&…...
广义线性模型(GLM)全面解析
引言 广义线性模型(Generalized Linear Model, GLM)是统计学中一种重要的建模工具,它扩展了传统线性回归模型,能够处理响应变量的非正态分布和非线性关系。GLM 的灵活性和广泛的应用范围使其在金融、医学、社会科学等领域中成为数…...
C++ OCR 文字识别
一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…...
PHP实现登录和注册(附源码)
前言 本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包,该程序包集成了 ApachePHPMySQLphpMyAdmin 等多个工具,是很好用的调试环境的程序集成包。 目录 前言 1. 准备工作 1.1 工具 1.2 php…...
AEO海关认证的注意事项
AEO海关认证的注意事项繁多且至关重要,企业需细致准备,确保万无一失。 首先,企业需深入研读相关政策文件,如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》,以政策为指引࿰…...
ElasticSearch 分布式部署
一、引言 在当今大数据时代,数据呈爆炸式增长,如何高效地存储、检索数据成为了众多企业面临的关键挑战。ElasticSearch 作为一款强大的分布式搜索引擎,凭借其卓越的性能、灵活的扩展性以及强大的全文检索能力,在日志分析、数据分…...
Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶
1.直接借助Vue的动态绑定样式绑定 Vue动态样式绑定 在Vue中,动态样式绑定是一种强大的功能,它允许开发者根据数据的变化动态地更新元素的样式。以下是对Vue动态样式绑定的详细知识梳理与详解: 一、基础知识 Vue的动态样式绑定主要通过v-b…...
vue3 video 播放rtmp视频?(360浏览器支持)
** 注意:目前只能在360浏览器播放rtmp视频** 谷歌浏览器不支持Flash Player的问题 试过上面这个方法,目前没能实现(没解决),如果有更好的解决方法,告诉我一下 需要下载版本较低的video.js版本库࿰…...
RK356x bsp 7 - PCF8563 RTC调试记录
文章目录 1、环境介绍2、目标3、PCF85634、dts配置5、内核配置6、测试验证 1、环境介绍 硬件:飞凌ok3568-c开发板 软件:原厂rk356x sdk 2、目标 开发板断电后仍正常计时。 3、PCF8563 PCF8563 是由 NXP Semiconductors 公司生产的低功耗 CMOS 实时…...
定义Shape:打造属于你的独特图形
自定义Shape:打造属于你的独特图形 在Android开发中,自定义图形绘制是一个非常重要的技能,尤其是在需要实现复杂UI或特定设计需求时。Android提供了android.graphics.drawable.shapes包,其中包含了一些基本的形状类,如RectShape、OvalShape等。然而,有时这些基本形状无法…...
JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介
1. 基本概念 1.1、前言 web开发: web,网页的意思,www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化! 动态 web 淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化…...
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作,相关链接为: python学opencv|读取图像(二十)使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单,因此可以自由操作的空间也就大&#x…...
CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型
CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型 flyfish Learning Transferable Visual Models From Natural Language Supervision https://github.com/OpenAI/CLIP 摘要 CLIP Contrastive Language-Image Pre-Training Contrastive&…...
Linux 硬盘扩容 分区 挂载
Linux 硬盘扩容 分区 & 挂载 1. 添加分区 1.1. 查看新添加的硬盘 fdisk -l假设当前未挂载的盘符是/dev/sdb,后文中所有操作都按挂载/dev/sdb 操作 1.2. 分区管理 小硬盘 fdisk /dev/sdb大硬盘(2TB以上) gdisk /dev/sdb1.3. 编辑分…...
第一次训练周赛I题分析
这题来解决的话需要我们思考怎么才能排序最多个,那么我们知道_是需要一个的,-是需要两个的,那么我们就让-放在_的左右边来排序试试呢?那么要是放在左右边左右各放多少呢?那不如就试试平均分配呢?那么想到这…...
内网渗透全流程拆解|从入门到实战,小白也能看懂的步骤
内网渗透不是“盲目尝试”,而是遵循固定流程的系统化操作,核心流程可概括为:信息收集→漏洞利用→权限提升→横向移动→权限维持→痕迹清理,每个环节环环相扣,缺一不可。本文将结合小白易理解的实战场景,详…...
Android安全漏洞案例分析:血淋淋的教训
Android安全漏洞案例分析:血淋淋的教训 Android安全漏洞案例分析:血淋淋的教训 案例一:Secret Token泄露导致账户劫持 漏洞危害:攻击者获取用户全部权限 某社交App在客户端硬编码了API密钥,攻击者通过反编译获取密钥…...
三菱PLC与组态王四层电梯控制系统:详细图纸与IO分配解释
三菱PLC和组态王4层电梯四层电梯控制系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面实验室四层电梯模型卡成狗的时候,真的恨自己当初梯形图只会写互锁单按钮那种幼儿园题。后来拆前辈的旧板子加…...
集团型企业BI试点,为什么一定要先做多域资源隔离?
艾瑞咨询《2025年中国BI市场报告》显示,超7成集团型企业的首次BI试点项目因跨业务单元权限冲突、数据口径混乱延期或终止(统计样本覆盖120家年营收超50亿的国内集团企业,统计窗口为2022-2024年试点项目全生命周期)。这个数据和大部…...
2.2.2.3 Spark实战:词频统计
本次实战涵盖了Spark词频统计(WordCount)的两种主流实现方式。首先,利用Scala在spark-shell中完成从读取文件、flatMap分词、map映射到reduceByKey聚合的完整流程,并实现结果的降序排序。其次,针对Spark 3.3.2版本的需…...
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析 1. 评测背景与目的 东方人像生成一直是AI图像生成领域的特殊挑战。西方模型在生成东方人脸时常常出现面部结构不自然、表情僵硬、缺乏东方神韵等问题。本次评测将深入对比「云容笔谈」和S…...
PyTorch实战:手把手教你实现MobileFaceNet人脸识别模型(附完整代码)
PyTorch实战:从零构建MobileFaceNet人脸识别系统 人脸识别技术正在从实验室走向日常生活,而MobileFaceNet作为轻量级模型的代表,在移动端和嵌入式设备上展现出惊人的潜力。今天我们将深入探讨如何用PyTorch实现这个高效的神经网络架构&#x…...
你的企业还在靠人工处理重复工作?同行已经用 AI 释放人力了 | 2026企业数字化转型指南:基于实在Agent的端到端自动化解决方案
在2026年的数字化浪潮中,企业间的竞争已经从“资源规模”转向了“响应速度”。 当多数企业还在为报表合并、数据搬运、跨系统审核等重复性劳动耗费大量人力时, 领先的行业标杆已经开始通过智能体技术重构底层作业逻辑。 这种转变不仅是工具的更替&#x…...
OpenShamrock:零基础搭建QQ智能交互系统完全指南
OpenShamrock:零基础搭建QQ智能交互系统完全指南 【免费下载链接】OpenShamrock A Bot Framework based on Xposed with OneBot11 项目地址: https://gitcode.com/gh_mirrors/op/OpenShamrock 核心价值解析:为什么选择OpenShamrock构建QQ机器人&a…...
