相关阅读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工具会将其转化为GTECH格式或者称为Generic Technology格式的网表其中的时序单元例如触发器和锁存器会使用通用时序单元SEQGEN或者称为Generic/UnmappedSequential 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) begin if (reset) // 如果复位信号为高输出q清零 q 1b0; else // 否则在时钟的上升沿将输入d传递到q q d; end endmodule图2 DFF的SEQGEN实现实际上一旦设计中存在未映射的单元此处单元可以指时序单元也可以指其他叶单元还可以指包含未映射叶单元的层次单元使用preview_dft或insert_dft命令时就会报错无法进行扫描替换或者扫描连接。有关叶单元的相关介绍可以见静态时序分析Leaf Cell(叶单元)一文。未映射的时序单元会有一个值为true的属性is_a_generic_seq如下所示。dc_shell get_attribute [get_cells 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直接映射为未连接/布线的测试就绪单元是建议的行为除此之外可以对已映射为非扫描时序单元的设计进行扫描替换使用带-scan选项的综合命令或insert_dft命令得到未连接/布线的测试就绪单元。未映射的时序单元会有一个值为true的属性scanned_by_test_compiler如下所示。dc_shell get_attribute [get_cells 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-topo compile_ultra -scan # Test-Ready Compile ...应用DFT设置... dc_shell-topo preview_dft dc_shell-topo insert_dft # 连接扫描链 dc_shell-topo compile_ultra -scan -incremental # 后DFT增量综合 // 对于Design Compiler Graphical dc_shell compile_ultra -scan -spg # Test-Ready Compile ...应用DFT设置... dc_shell-topo preview_dft dc_shell-topo insert_dft # 连接扫描链 dc_shell-topo compile_ultra -scan -spg -incremental # 后DFT增量综合 // 对于Design Compiler NXT dcnxt_shell compile_ultra -scan -spg # Test-Ready Compile ...应用DFT设置... dcnxt_shell-topo preview_dft dcnxt_shell-topo insert_dft # 连接扫描链 dcnxt_shell-topo 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)
企业数字化 ERP 产品动态
相关推荐
moto 中 DataBrew 的 Mock 实现:API 覆盖范围、源码结构与测试实战指南 Mock测试 【免费下载链接】moto A library that allows you to easily mock out tests based on AWS infrastructure. 项目地址: https://gitcode.com/gh_mirrors/mo/moto 点击查看 免费下载 本篇以 moto 仓库的 DataBrew 服务文档 为主体,系统梳理 mot… · 2026/9/25 5:25:25
反射能调用私有方法,Java的封装性到底还剩什么? 这个问题我见得太多了,几乎每次讲反射,都会有人从后排站起来问:既然反射能拿到私有方法,还能直接调,那Java的封装性是不是就白设计了?很多刚接触反射的同学会有这种幻灭感,觉得访问修饰符就是个… · 2026/9/25 5:25:19
Windows 11网线直连文件共享:SMB凭据问题排查与解决 两台Windows 11电脑用一根网线直连传文件,听起来像是十分钟就能搞定的事,但真正动过手的人都知道,最容易卡住的地方不是网线插没插好,也不是共享文件夹有没有设对,而是那个反复弹出来的"输入网络凭据"对话框… · 2026/9/25 5:25:19
前端必懂:Nginx解决前后端分离部署、跨域与404难题 先讲个真实场景。去年我负责一个支付中台的前端项目,技术栈就是很标准的 Vue 3 Spring Boot 前后端分离。开发环境一切顺滑,npm run dev一把梭,代理、热更新、跨域全都不是事。等我信心满满地把打包产物丢到服务器上,连环坑就一个… · 2026/9/25 5:55:14
第32周周报怎么写?避开流水账,用五段框架抓住项目关键进展 第三十二周。翻日历的时候我自己都愣了一下,一年已经过去一大半了。这个时间点的周报,很多人写得特别痛苦——年中总结刚写完,Q3的大目标还在攻坚,这周好像没什么“大新闻”,项目没上线,指标没暴涨… · 2026/9/25 5:55:14
ROS2四轮差速机器人:从URDF建模到Gazebo仿真与Nav2导航全解析 简介:基于ROS2的四轮差速机器人仿真与自主导航工程,面向机器人开发者与ROS2初学者,可解决仿真环境搭建、运动控制与导航功能开发等核心问题。工程围绕Gazebo物理仿真环境构建、URDF/Xacro机器人建模、激光雷达与惯性测量单元(IMU)的多传感器融… · 2026/9/25 5:55:08
NodeGui DockWidgetArea 枚举详解:停靠区域位标志定义、源码实现与主窗口应用场景 桌面应用跨平台 【免费下载链接】nodegui A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org 项目地址: https://git… · 2026/9/25 5:55:02
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37