网站空间提供商/小程序定制

网站空间提供商,小程序定制,广东建设信息网站,广州网站建设市场相关阅读 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工…

相关阅读

TestMAX/DFT Compilericon-default.png?t=O83Ahttps://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)

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

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

相关文章

8086汇编(16位汇编)学习笔记06.串操作、流程转移指令

8086汇编(16位汇编)学习笔记06.串操作、流程转移指令-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 串操作 源操作数使用si&#xff0c;默认段为DS&#xff0c;可段超越 目的操作数使用di&#xff0c;默认段为ES&#xff0c;不可段超越 串方向 串方向由D…

TCP off-path exploits(又一个弄巧成拙的例子)

承接前面几篇文章的观点&#xff0c;本文用一个安全攻击的例子说明为了解决一个伤害很低的低概率问题&#xff0c;会引入多么大的麻烦&#xff0c;这次是可怕的被攻击 (⊙o⊙)。 TCP 端口号只有 16bit&#xff0c;序列号只有 32bit&#xff0c;这意味着在强大攻击算力面前&…

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

本篇文章将介绍一个新的改进机制——SMFA&#xff08;自调制特征聚合模块&#xff09;&#xff0c;并阐述如何将其应用于YOLOv11中&#xff0c;显著提升模型性能。随着深度学习在计算机视觉中的不断进展&#xff0c;目标检测任务也在快速发展。YOLO系列模型&#xff08;You Onl…

大表:适用于结构化数据的分布式存储系统

大家觉得有意义和帮助记得及时关注和点赞!!! 译者序摘要1 引言2 数据模型 2.1 行&#xff08;Row&#xff09;2.2 Column Families&#xff08;列族&#xff09; 2.2.1 设计2.2.2 column key 的格式&#xff1a;family:qualifier2.2.3 访问控制和磁盘/内存记账&#xff08;acco…

【AIGC-ChatGPT副业提示词指令 - 动图】魔法咖啡馆:一个融合创意与治愈的互动体验设计

引言 在当今快节奏的生活中&#xff0c;咖啡早已不仅仅是提神醒脑的饮品&#xff0c;更成为了一种情感寄托和生活态度的表达。本文将介绍一个独特的"魔法咖啡馆"互动体验设计&#xff0c;通过将咖啡与情感、魔法元素相结合&#xff0c;创造出一个充满想象力和治愈感…

xterm遇到的问题及解决方案

xterm遇到的问题及解决方案 /r插入终端导致的之后插入的数据覆盖了改行头部的数据 问题说明 如图所示&#xff0c;当在一行输入的候&#xff0c;输入的l插入到了改行的头部。 查看ws返回数据 可见ws返回的信息存在\r字符&#xff0c;在xterm.js中\r是回车字符的意思&…

Chrome被360导航篡改了怎么改回来?

一、Chrome被360导航篡改了怎么改回来&#xff1f; 查看是否被360主页锁定&#xff0c;地址栏输入chrome://version&#xff0c;看命令行end后面&#xff08;蓝色部分&#xff09;&#xff0c;是否有https://hao.360.com/?srclm&lsn31c42a959f 修改步骤 第一步&#xff1a…

blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质

描述&#xff1a;在blender中合并的模型导出为glb&#xff0c;在threejs中导入仍显示多个mesh&#xff0c;并不是统一的整体&#xff0c;导致需要整体高亮或者使用DragControls等不能统一控制。 原因&#xff1a;模型有多个材质&#xff0c;在blender中合并的时候&#xff0c;…

C语言----输入输出

目录 输入输出 1.按格式输入输出 2. 按格式输入 3. 按字符输入输出 输入&#xff1a; 输出&#xff1a; 垃圾字符回收 1. 通过空格回收 2. %*c 3.getchar&#xff08;&#xff09; 强制类型转换 输入输出 分为按格式输入输出和按字符输入输出 1.按格式输入输出 通…

计算机网络 (10)网络层

前言 计算机网络中的网络层&#xff08;Network Layer&#xff09;是OSI&#xff08;开放系统互连&#xff09;模型中的第三层&#xff0c;也是TCP/IP模型中的第二层&#xff0c;它位于数据链路层和传输层之间。网络层的主要任务是负责数据包从源主机到目的主机的路径选择和数据…

WebRTC服务质量(11)- Pacer机制(03) IntervalBudget

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…

一维、线性卡尔曼滤波的例程(MATLAB)

这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能&#xff0c;用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出** 源代码 总结 一维线…

【Compose multiplatform教程13】【组件】Column和Row组件

查看全部组件文章浏览阅读495次&#xff0c;点赞17次&#xff0c;收藏12次。alignment。https://blog.csdn.net/b275518834/article/details/144751353 Column 功能说明&#xff1a;将子组件按照垂直方向依次排列&#xff0c;能够设置组件之间的间距、对齐方式等属性&#xff…

观察者模式和发布-订阅模式有什么异同?它们在哪些情况下会被使用?

大家好&#xff0c;我是锋哥。今天分享关于【观察者模式和发布-订阅模式有什么异同&#xff1f;它们在哪些情况下会被使用&#xff1f;】面试题。希望对大家有帮助&#xff1b; 观察者模式和发布-订阅模式有什么异同&#xff1f;它们在哪些情况下会被使用&#xff1f; 1000道 …

每天40分玩转Django:实操多语言博客

实操多语言博客 一、今日学习内容概述 学习模块重要程度主要内容国际化配置⭐⭐⭐⭐⭐基础设置、语言切换翻译模型⭐⭐⭐⭐⭐多语言字段、翻译管理视图处理⭐⭐⭐⭐多语言内容展示、URL处理前端实现⭐⭐⭐⭐语言切换、界面适配 二、模型设计 # models.py from django.db im…

iviewui表单验证新手教程

1、表单验证介绍 下面来讲解iviewui表单验证的实现&#xff0c;下面上示例代码&#xff1a; <template><Form ref"formInline" :model"formInline" :rules"ruleInline" inline><FormItem prop"user"><!--prop属…

Doris的SQL原理解析

今天来介绍下Doris的SQL原理解析&#xff0c;主要从语法、解析、分析、执行等几个方面来介绍&#xff0c;可以帮助大家对Doris底层有个清晰的理解~ 一、Doris简介 Apache Doris是一个基于MPP架构的高性能、实时的分析型数据库&#xff0c;能够较好的满足报表分析、即席查询、…

OpenHarmony开发板环境搭建

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 0.OpenHarmony 0.1 OpenHarmony OpenHarmony是一款面向全场景、全连接、全智能的…

Web前端基础知识(四)

CSS简介 CSS(层叠样式表)&#xff0c;用于定义网页样式和布局的样式表语言。 一般与HTML一起用于构建web页面的。 HTML负责定义页面的结构和内容&#xff0c;CSS负责控制页面的外观和样式。 通过CSS&#xff0c;可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景…

ESP32_h2-创建一个工程后,添加驱动文件并在调用

点击F1或者ctrlshiftP 输入组件名字&#xff1a; 创建好后&#xff0c;可以看到文件目录多了components文件夹和组件文件 &#xff08;文件夹名字uart就是组件名字&#xff09;这里更改了文件名字 在整个工程目录下找到&#xff1a; 添加路径 finish&#xff01; 调用 程…