DFT系列文章之 《SCAN技术 scan cell 讲解》

在可测性设计(DFT)技术中,scan的设计是其中非常重要的的一块内容,今天就来介绍一下业界常用的三种scan cell。

一般来说,一个scan cell有两个不同的可选择的输入。第一个输入为数据输入(data input),也就是电路的组合逻辑的输入端。而第二个输入是扫描输入(scan input),由上一个scan cell的输出驱动的,从而形成一个或多个移位寄存器链(shift registers),我们把它称为扫描链(scan chain)。这些扫描链可由外部直接访问,将扫描链中第一个scan cell的输入设为主输入(primary input),扫描链最后一个输出作为主输出(primary output)。

由于scan cell中有两个输入,因此要加入一个多路选择器使得scan cell在两种不同模式下工作:正常/捕获(capture)模式和移位(shift)模式。

在正常/capture模式下,选择数据输入来传送到输出。在移位模式下,选择扫描输入传送到输出。这样就可以把任意测试向量从一个或多个主输入灌入到所有扫描单元,同时通过一个或多个主输出移出所有扫描单元的测试向量数据。

在本文中,我们来介绍一下三种广泛使用的扫描单元设计:muxed-D scan、clock-scanlevel-sensitive scan design(LSSD)设计。

1、Muxed-D Scan Cell

Muxed-D很容易理解了,结构示意图如下,边沿触发,它由D触发器和多路选择器组成。多路选择器使用扫描使能端(SE)来选择数据输入(DI)或扫描输入(SI)。

edge-triggered muxed-D scan cell

在正常/capture模式下,SE设置为0。当时钟时钟上升沿到来时,数据输入DI处的值被捕获到内部D触发器中。在shift模式下,SE设置为1。当D触发器的值被移出时,SI将新的数据移到D触发器。波形图如下:

优缺点:使用muxed-D扫描单元的主要优点是它们与使用单时钟D触发器的主流设计兼容,以及现有EDA提供的全面支持。缺点是每个muxed-D扫描单元在function path上增加了多路选择器导致的时钟延迟。

2、Clocked-Scan Cell

在scan的设计中,边缘触发的时钟扫描单元也可以用来代替D触发器,与muxed-D扫描单元类似,时钟扫描单元也有数据输入DI和扫描输入SI;而在时钟扫描单元中,使用两个独立的时钟进行输入选择,数据时钟DCK和shift时钟SCK。

clocked-scan cell

在正常/capture模式下,数据时钟DCK用来capture在数据输入DI到scan cell的值。在shift模式下,移位时钟SCK用于将新的数据从SI移到scan cell中去,当前scan cell的值将被移出。

优缺点:和muxed-D相比,主要优点是它不会导致数据输入的性能下降。主要的缺点是,它需要额外的移位时钟(SCK)线路。

3、LSSD Scan Cell

muxed-D scan cells 和 clocked-scan cells是基于flip-flop的边沿触发设计,LSSD是基于锁存器的电平敏感的设计。

如下图LSSD是由两个latch组成,A,B为shift clock,D为function clock. C为数据输入,I 为scan 输入。L1, L2为输出,都可以用来驱动组合逻辑。

LSSD示意图

LSSD原始电路图如下:

附带一个波形图以及真值表来帮助读者更好的理解其设计:

LSSD waveform

truth table

优缺点:LSSD scan cell的主要优点就是其可以应用到带有锁存器的设计中。缺点是需要引入额外的时钟,从而为布线增加了难度。

以上就是三种常用的scan cell的介绍,在实际的项目中,scan cell的设计都是通过EDA工具来完成的。

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

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

相关文章

Linux NFC 子系统剖析

1.总览 linux源码中NFC在net/nfc下,文件结构如下图: hci:Host Controller Interface 主要是针对NFC的主机-控制器接口协议 nci:NFC Controller Interface 主要是NFC的控制器接口协议,用于NFCC(NFC Controller)和DH(…

springboot网站开发01-如何搭建Maven类型父子嵌套结构项目

springboot网站开发01-如何搭建Maven类型父子嵌套结构项目!众所周知,实际上,在真正的公司项目开发中为了让代码实现更多的复用,提升项目的开发效率,节省开发的成本(人力成本较高,代码可以尽量复…

算法【查找算法的概念】

查找算法概念 1、查找的基本概念2、评价查找算法3、问题: 查找过程中我们要研究什么? 1、查找的基本概念 查找的概念: 根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素或者记录。 查找算法也可以叫搜索算法。查找算法就是从一个有序…

Dynamo批量将房间名称转换为模型文字

今天呢,我们简单聊聊如何把房间名称,变成模型文字,好在三维中能够看到房间名称。 本来吧,我觉得批量创建模型文字应该是个很简单的事,但是我在Dynamo中搜了下ModelText,发现只有一个在族环境中创建模型文字…

【MATLAB源码-第146期】基于matlab的信源编码仿真GUI,对比霍夫曼编码,算术编码和LZ编码。

操作环境: MATLAB 2022a 1、算法描述 霍夫曼编码、算术编码和LZ编码是三种广泛应用于数据压缩领域的编码技术。它们各自拥有独特的设计哲学、实现方式和适用场景,因此在压缩效率、编解码速度和内存使用等方面表现出不同的特点。接下来详细描述这三种编…

T-Dongle-S3开发笔记——分区表

参考: ESP32之 ESP-IDF 教学(十三)—— 分区表_esp32分区表-CSDN博客 分区表 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com) 分区表是 ESP32 划分内部 flash 闪存的清单,它将 flash 划分为多个不同功能的区域用于…

反序列化字符串逃逸 [安洵杯 2019]easy_serialize_php1

打开题目 $_SESSION是访客与整个网站交互过程中一直存在的公有变量 然后看extract()函数的功能: extract($_POST)就是将post的内容作为这个函数的参数。 extract() 函数从数组中将变量导入到当前的符号表(本题的作用是将_SESSION的两个函数变为post传参) function…

展锐S8000安卓核心板参数_紫光展锐5G核心板模块定制方案

展锐S8000核心板模块是基于八核S8000平台开发设计的,采用了先进的6nm EUV制程技术。搭载了全新的智能Android 13操作系统,展现出超强的画面解析能力和高性能双通道MIPI,拥有120Hz高刷新率,独立NPU和3.2TOPS Al算力,同时…

【leetcode热题】填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到…

运维SRE-15 自动化批量管理-ansible1

## 1.什么是自动化批量管理重复性工作与内容: 思考如何自动化完成. 部署环境,批量查看信息,批量检查:自动化 一般步骤:1.如何手动实现2.如何自动化管理工具,批量实现3.注意事项:想要自动化一定要先标准化(所有环境,软件,目录一致)…

.net6 webapi log4net完整配置使用流程

前置&#xff1a;为项目安装如下两个依赖 1.创建文件夹cfgFile 2.创建log4net.Config <?xml version"1.0" encoding"utf-8" ?> <log4net><appender name"ConsoleAppender" type"log4net.Appender.ConsoleAppender"…

猫头虎分享已解决Bug || ReferenceError: process is not defined ‍

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …