当前位置: 首页 > news >正文

边界扫描测试原理 15 -- BSDL 9 应用示例

边界扫描测试原理 15 – BSDL 9 应用示例


文章目录

  • 边界扫描测试原理 15 -- BSDL 9 应用示例
    • BSDL 的应用示例
        • 每个引脚的多个单元
        • 内部单元
      • 合并单元
      • BSDL 描述示例


BSDL 的应用示例

边界扫描寄存器描述

以下示例说明了一些特殊情况的边界扫描寄存器结构的描述。

  • 每个引脚的多个单元
  • 内部单元
  • 合并单元
每个引脚的多个单元

组件引脚可以由多个单元服务。每个单元可以执行不同的功能。请注意,这个功能是相对于边界单元的,而不是组件引脚。例如,在一个双向引脚上,一个单元可以作为输入接收器,而另一个则作为输出驱动器。额外的仅观察(OBSERVE_ONLY)单元可以连接到任何I/O引脚。

图2-6所示的组件用于说明具有几个仅观察(OBSERVE_ONLY)单元的边界扫描寄存器。

  • 单元2是一个额外的仅观察(OBSERVE_ONLY)单元,与组件的双向引脚9相关联。

  • 单元7是一个额外的仅观察(OBSERVE_ONLY)单元,与组件的输出引脚8相关联。单元9、8和7可能是一个可编程的双单元双向实现,被重新编程为双态输出。

  • 单元15是一个额外的仅观察(OBSERVE_ONLY)单元,与组件的输入引脚6相关联。单元13和14也与引脚6相关联,但被描述为输入单元,并连接到系统逻辑。

  • 单元17是一个额外的仅观察(OBSERVE_ONLY)单元,与组件的输入引脚5相关联。单元16是引脚5的常规输入单元。

  • 如果图2-6中的组件支持INTEST,那么单元18必须是时钟(CLOCK)类型。如果组件不支持INTEST,单元18可以是输入单元或仅观察(OBSERVE_ONLY)单元。

内部单元

内部单元可用于在设计中捕获“常量”或系统逻辑依赖的值(0 和 1)。这种能力的一种建议用途是将硬编码值(可能在边界扫描寄存器的前几个比特中)捕获为一个非正式的识别码。另一个应用是监测电源连接,以确保它们接收到正确的输入电源,并根据测量结果捕获数据位。例如,如果电源连接良好,加载的数据将为1,而有故障的电源输入则会导致捕获0。内部单元,可以具有控制和观察能力或仅观察能力,可能位于核心电路数字和模拟部分之间的边界。最后,在可编程组件中可能有额外的未使用单元。

IEEE 不允许系统逻辑环绕在内部单元周围。

图2-6所示的组件用于说明具有多个INTERNAL单元的边界扫描寄存器。

  • 单元0和1是数字系统逻辑和模拟系统功能之间的INTERNAL单元。注意,单元0和1与引脚10无关。

  • 单元6、9和12是观察来自系统逻辑的信号的单元,与I/O引脚无关,被描述为INTERNAL单元。

  • 单元19是边界扫描寄存器中的额外单元。它不观察系统逻辑或I/O引脚,被描述为INTERNAL单元。

图2-6的边界扫描寄存器定义在示例2-51中给出。

示例 2-51

说明内部单元的边界扫描寄存器定义

attribute BOUNDARY_LENGTH of Figure_6: entity is 20;
attribute BOUNDARY_REGISTER of Figure_6: entity is--
--  num    cell     port         function         safe   [ccell   disval   rslt]
--
"   0 (    BC_1,     *           internal,        0),                      "&
"   1 (    BC_1,     *,          internal,        1),                      "&
"   2 (    BC_0,     BIDIR_1     observe_only,    X)                       "&
"   3 (    BC_1,     BIDIR_1     input,           X),                      "&
"   4 (    BC_1,     BIDIR_1,    output3,         0),     5,      0,     Z),  "&
"   5 (    BC_1,     *,          control,         0),                      "&
"   6 (    BC_0,     *,          internal,        X),                      "&
"   7 (    BC_0,     OUTPUT_2,   observe_only,    X),                      "&
"   8 (    BC_1,     OUTPUT_2,   output2,         1),                      "&
"   9 (    BC_0,     *,          internal,        X),                      "&
"  10 (    BC_1,     OUTPUT_1,   output3,         0,      11,     0,     Z),  "&
"  11 (    BC_1,     *,          control,         0),                      "&
"  12 (    BC_0,     *,          internal,        X),                      "&
"  13 (    BC_1,     INPUT_1,    input,           X),                     "&
"  14 (    BC_1,     INPUT_1,    input,           X),                     "&
"  15 (    BC_0,     INPUT-1,    observe_only,    X),                     "&
"  16 (    BC_1,     INPUT_2,    input,           X),                     "&
"  17 (    BC_0,     INPUT_2,    observe_only,    X),                     "&
"  18 (    BC_0,     INPUT_3,    observe_only,    X),                     "&
"  19 (    bc_0,     *,          internal,        X)                      ";

在这里插入图片描述

一个说明仅观察(Observe_Only)和内部单元(Internal Cells)的组件

合并单元

图2-7中显示的组件用于说明边界扫描寄存器描述以及处理的特殊情况。这些特殊情况出现的原因是因为IEEE允许在它们之间的系统逻辑为空时合并边界扫描单元。如果它们之间的“逻辑”只是一个数据路径,例如导线或缓冲器,则单元可以合并。合并完成时,结果单元必须遵循合并单元规则的组合。

在这里插入图片描述

说明多个合并单元的组件

图2-7的边界扫描寄存器定义在示例2-52中给出。

示例2-52

说明合并单元的边界扫描寄存器定义

attribute BOUNDARY_LENGTH of Figure_7: entity is 10;
attribute BOUNDARY_REGISTER of Figure_7: entity is--num    cell     port      function    safe    [ccell   disval   rslt]
--
"   0 (   BC_1,    *,        control,      0),                   "&
"   1 (   BC_1,    out2,     output2,      1,      1,      1,  Weak1), "&
"   2 (   BC_7,    BIDIR1,   bidir,        X,      3,      0,    Z),   "&
"   3 (   BC_2,    *,        control,      0),                  "&
"   4 (   BC_1.    *,        control,      0),                  "&
"   5 (   BC_1,    BIDIR3,   input,        X),                  "&
"   5 (   BC_1,    BIDIR2,   ouptut3,      X,      7,      1,    Z),  "&
"   6 (   BC_1,    BIDIR2,   input,        X),                  "&
"   6 (   BC_1,    BIDIR3,   output3,      X,      4,      0,    Z),  "&
"   7 (   BC_1,    *,        control,      1),                  *&
"   8 (   BC_1,    IN2,      input,        X),                  "&
"   9 (   BC_1,    IN1,      input,        X),                  "&
"   9 (   BC_1,    OUT1,     output3,      X,      0,      0,    Z)  ";
  • 单元0、4和7是位于系统逻辑和OUT1、BIDIR2和BIDIR3信号的启用之间的控制单元。请注意,这些单元的“安全”子字段被分配了值以导致关联驱动器禁用。

  • 单元3是用于双向信号BIDIR1的可逆单元的控制。注意它的“安全”子字段被赋予导致BIDIR1为输入的值。

  • 单元1是一个两态输出数据单元。注意它有三个额外字段,表明它控制了自身的开集电极非对称驱动器。通过在单元1中放置1,可以将OUT2的驱动器设置为非活动驱动状态,其中它将输出WEAK1状态。

  • 单元2是一个可逆单元,既可以作为输入(如果控制单元关闭了输出驱动器,这意味着单元3产生0)或作为驱动器的数据源(如果输出启用)。

  • 请注意BIDIR2和BIDIR3的结构允许对驱动器进行观察,从而允许简单的一致性检查。

  • 单元5(以及类似的单元6和9)具有合并行为:它既作为BIDIR3的输入接收器,也作为BIDIR2的数据源。因此,该单元在边界扫描寄存器定义中有两行描述。第一行描述其作为输入单元的行为,而第二行描述其作为输出单元的特征。请注意,以这种身份使用的单元BC_1必须支持输入和OUTPUT3功能。这反映在BC_1的定义中,其中所有指令都存在这两种功能。

图2-7中的示例极端并包括几个不寻常的情况。大多数组件实现相当简单和常规。

BSDL 描述示例

图 2-9

示例设备:TI 八位 D 型触发器

示例 2-53

BSDL 描述示例

entity ttl74bct8374 isgeneric (PHYSICAL_PIN_MAP : string := "DW");port (CLK:in bit; Q:out bit_vector(1 to 8); D:in bit_vector(1 to 8);GND, VCC:linkage bit; OC_NEG:in bit; TDO:out bit; TMS, TDI, TCK:in bit);use STD_1149_1_2001.all;  -- 获取 Std 1149.1-2001 属性和定义attribute COMPONENT_CONFORMANCE of ttl74bct8374 : entity is "STD_1149_1_1990";attribute PIN_MAP of ttl74bct8374 : entity is PHYSICAL_PIN_MAP;constant DW:  PIN_MAP_STRING:="CLK:1, Q:(2,3,4,5,7,8,9,10), " &"D:(23,22,21,20,19,17,16,15)," &"GND:6, VCC:18, OC_NEG:24, TDO:11, TCK:13, TDI:14";constant FK:  PIN_MAP_STRING:"CKL:9, Q:(10,11,12,13,16,17,18,19)," &"D:(6,5,4,3,2,27,26,25),"  &"GND:14, VCC:28, OC_NEG:7, TDO:20, TMS:21, TCK:23, TDI:24";attribute TAP_SCAN_IN                  of TDI : signal is true;attribute TAP_SCAN_MODE                of TMS : signal is true;attribute TAP_SCAN_OUT                 of TDO : signal is true;attribute TAP_SCAN_CLOCK  of TCK : signal is (20.0e6, BOTH);attribute INSTRUCTION_LENGTH of ttl74bct8374 : entity is 8;attribute INSTRUCTION_OPCODE of ttl74bct8374 : entity is"BYPASS (11111111,10001000, 00000101, 00000001)," &"EXTEST (00000000, 10000000)," &"SAMPLE (00000010, 10000010)." &"PRELOAD (00000010, 10000010)." &"INTEST (00000011, 10000011)," &"HIGHZ  (00000110, 10000110)," &   -- 新的 1149.1a HIGHZ 指令"CLAMP  (00000111, 10000111)," &   -- 新的 1149.1a CLAMP 指令"RUNT   (00001001, 10001001)," &   -- 边界运行测试"READBN (00001010, 10001010)," &   -- 边界读取正常"READBT (00001011, 10001011)," &   -- 边界读取测试,"CELLTST(00001100, 10001100)," &   -- 边界自测正常"TOPHIP (00001101, 10001101)," &   -- 边界切换输出测试"SCANCN (00001110, 10001110)," &   -- BCR 扫描正常"SCANCT (00001111, 10001111)";     -- BCR 扫描测试attribute INSTRUCTION_CAPTURE of ttl74bct8374 : entity is "10000001";attribute REGISTER_ACCESS of ttl74bct8374 : entity is"BOUNDARY (READBN, READBT, CELLTST)," &"BYPASS (TOPHIP, SETBYP, RUNT, TRIPBYP), "  &"BCR [2] (SCAMCM. SCAMCT)";  -- 2 位边界控制寄存器attribute BOUNDARY_LENGTH of ttl74bct8374 : entity is 18;attribute BOUNDARY_REGISTER of ttl74bct8374 : entity is -- num cell      port     function     safe [ccell    disval      rslt]"17 (BC_1,     CLK,     input,       X),                    " &"16 (BC_1,     OC_NEG,  input,       X),                    " & -- 已合并输入/控制"16 (BC_1,     *,       control,     1),                    " &"15 (BC_1,     D(1),    input,       X),                    " &"14 (BC_1,     D(2),    input,       X),                    " &"13 (BC_1,     D(3),    input,       X),                    " &"12 (BC_1,     D(4),    input,       X),                    " &"11 (BC_1,     D(5),    input,       X),                    " &"10 (BC_1,     D(6),    input,       X),                    " &"9  (BC_1,     D(7),    input,       X),                    " &"8  (BC_1,     D(8),    input,       X),                    " &"7  (BC_1,     Q(1),    output3,     X,    16,      1,      Z),  " &"6  (BC_1,     Q(2),    output3,     X,    16,      1,      Z),    " &"5  (BC_1,     Q(3),    output3,     X,    16,      1,      Z),  " &"4  (BC_1,     Q(4),    output3,     X,    16,      1,      Z),  " &"3  (BC_1,     Q(5),    output3,     X,    16,      1,      Z),  " &"2  (BC_1,     Q(6),    output3,     X,    16,      1,      Z),  " &"1  (BC_1,     Q(7),    output3,     X,    16,      1,      Z),  " &"0  (BC_1,     Q(8),    output3,     X,    16,      1,      Z)  ";end ttl74bct8374;
http://www.dtcms.com/a/562205.html

相关文章:

  • 唐山专业网站建设公司阿里云虚拟主机和云服务器的区别
  • 济南旅游网站建设前程无忧网深圳网站建设类岗位
  • 查企业资质上什么网站东华软件是外包公司吗
  • 整体设计 全面梳理复盘 之15 :整体设计属性体系构建与实体表格落地
  • 自建服务器做网站要备案英文企业网站源码
  • 广州 营销型网站图书宣传推广方案
  • 网站设计教学网页站点设计
  • 东莞在哪里学网站建设嘉兴网站制作计划
  • 计算机图形学·4 OpenGL编程1 背景知识
  • 做外贸的有些什么网站wordpress编辑器不行
  • 各大网站logo图标wap站开发
  • 山西 网站制作旅游网站开发说明
  • springboot基于java的少数民族音乐网站的设计与实现(代码+数据库+LW)
  • 强化学习2.4 MDP作业汇总(持续更新)
  • 使用Requests和正则表达式实现塔读小说网小说爬取
  • Guava TreeRangeSet:区间运算的数学之美!
  • 双指针问题(同向)
  • seo公司哪家便宜宁波关键词排名优化平台
  • 安徽静安集团网站建设网站打不开了怎么办
  • 建设ftp网站怎么创建数据库帮忙做ppt的网站
  • Java 大视界 -- Java 大数据在智能医疗手术风险评估与术前方案制定中的应用探索
  • 做外贸网站推广成都网站建设外包
  • linux命令-压缩-12
  • 手机网站的视频怎么才能下载wordpress top0.9主题
  • 专门做房地产设计的图片网站上谷网络网站建设
  • 网站上怎么做弹目提醒定制app开发平台
  • 下载 | Win11 25H2 正式版更新!(ISO映像、年度更新版本、26200.7019、Windows 11)
  • Java的Collection接口和常用方法(Iterator和增强for)
  • 赣州网站建设方案婚纱官网
  • 巨腾外贸网站建设网站有什么功能