BSCAN2-1:load design

news2025/3/19 12:17:54

1. DFT Flow Using Tessent Shell

Tessent BoundaryScan 具有一个基本的高层次流程顺序。下图展示了将 Tessent BoundaryScan 插入设计所需的高层次步骤顺序。图中的每个步骤都链接到有关可测试性设计(DFT)流程的更详细信息,包括示例。

Design Flow Prerequisites

要使用 DFT(可测试性设计)流程,您必须拥有一个插入了 I/O 焊盘的 RTL 或门级网表设计。

  • 对于 RTL 网表,您必须拥有 Tessent  cell library or the pad library for the pad cells。

  • 对于门级网表,您必须拥有用于标准单元的 Tessent  cell library or the ATPG library,以及用于 I/O 焊盘单元的 Tessent 单元库。

注意:如果没有用于 I/O pad cells 的 Tessent cell library,Tessent Shell 也原生支持 Tessent BoundaryScan-LV 焊盘库。

Design Flow Example

Pin Order File

使用引脚顺序文件(pin order file)将端口映射到封装引脚,并定义边界扫描链的顺序。

  • 您可以手动创建引脚顺序文件,也可以选择从 check_design_rules 命令生成的文件开始。
  • 使用 set_boundary_scan_port_options 命令的 -pin_order_file 选项加载引脚顺序文件。

注意:如果您使用 -pin_order_file 选项运行 set_boundary_scan_port_options 命令,则 check_design_rules 命令不会生成该文件。

  • 引脚顺序文件的第一列列出了与边界扫描链单元关联的端口名称。行的顺序定义了扫描链的顺序。扫描链从引脚顺序文件第一行中列出的端口所创建的单元开始,接着是第二行中列出的端口所创建的单元,依此类推。

  • 第二列列出了用于在 BSDL 文件中映射器件封装引脚的引脚 ID()。如果引脚顺序文件是在 check_design_rules 期间自动生成的,您可以使用 set_boundary_scan_port_options 命令的 -packed_pin_name 选项来定义引脚 ID。

  • 第三列定义了端口的选项。请不要使用引脚顺序文件来设置这些选项,而是使用 set_boundary_scan_cell_options 命令的 -cell_options 选项,或在 BoundaryScan 或 EmbeddedBoundaryScan 封装中使用 BoundaryScanCellOptions 来设置这些选项。

  • 第四列指定端口的逻辑组。请不要使用引脚顺序文件来定义这些组,而是使用 BoundaryScan 或 EmbeddedBoundaryScan 封装中的 LogicalGroups 来定义它们。

Notes: Pin name对应top module。port name对应core

2.Load the Design

Loading the design is the first step in Tessent BoundaryScan insertion using Tessent Shell. The process consists of setting the correct context, reading libraries, reading the design, and elaborating the design.

Set the context

在 Tessent Shell 中,设置上下文(context)有两层含义。首先,最重要的是,您必须将上下文设置为 dft,以便创建边界扫描硬件。其次,您必须指定要读取的设计类型是否为 RTL。如果是 RTL 设计,则必须指定 -rtl 选项;如果要读取的是门级 Verilog 网表,则应指定 -no_rtl 选项。

  • 在 -no_rtl 模式下,DFT 插入阶段结束时将输出一个拼接的网表。

  • 在 rtl 模式下,输入设计的文件结构将保持不变,DFT 插入阶段结束时仅输出修改后的设计文件以及新创建的测试 IP。

  • 要读取的网表可以是 Verilog、VHDL 或混合语言。

如果您使用了 Tessent 嵌入式边界扫描流程(Embedded Boundary Scan Flow),并且嵌入式边界扫描在下一层级集成,则必须使用 open_tsdb 命令打开子模块(嵌入式边界扫描的 sub_block 或 physical_block)的 Tessent Shell 数据库(TSDB)。如果子模块和父模块使用相同的 TSDB,您可以重用 TSDB(默认是 tsdb_outdir),并且不需要显式打开默认 TSDB,因为 TSDB 输出目录的现有内容会自动对工具可见。有关如何控制 TSDB 输出目录的名称和位置,请参阅 set_tsdb_output_directory 命令的描述。

示例 1 以下示例将上下文设置为 dft,并指定要读取的设计是 RTL 编写的。

set_context dft -rtl

示例 2 以下示例将上下文设置为 dft,并指定要读取的是门级网表。

set_context dft -no_rtl

示例 3 以下示例打开子模块的 TSDB 目录,从而在父模块层级中暴露它。

open_tsdb ../ebscan_tsdb_outdir

Read the Libraries

您可以使用 read_cell_library 命令读取设计中实例化的pad  I/O 宏的库文件。如果您正在将 Tessent BoundaryScan 插入到 RTL 网表或设计中,读取pad I/O 宏的库文件就足够了。如果 Tessent 单元库不包含 pad 信息,read_cell_library 命令原生支持传统的 LV 焊盘库格式,并可用于通过焊盘信息扩展 Tessent 单元库。

示例 1 以下示例读取用于pad I/O 宏的 Tessent 单元库文件。

read_cell_library ../library/adk_complete.tcelllib

示例 2 以下示例在 Tessent 单元库不包含焊盘信息时,读取 ATPG.lib 文件和旧的焊盘库描述文件。

read_cell_library ../library/atpg.lib 
read_cell_library ../library/pad.library

Read the design

在 Tessent Shell 中,设置上下文并加载所需的库之后,您可以使用 read_verilog 命令读取设计。

示例 1以下示例读取一个网表文件,该文件可以是 RTL 或门级网表。

read_verilog ../netlist/cpu_top.v

示例 2 以下示例读取一个 Verilog 文件和一个包含设计文件的目录。

set_design_sources -format verilog -V ../design/top.v \ 
-Y ../design -extensions {v gv}

Elaborate the design

加载设计的下一步是使用 set_current_design 命令对设计进行elaborate。set_current_design 命令指定设计的根模块。如果缺少任何模块描述,设计细化过程会识别它们。对于 Tessent BoundaryScan 插入,不需要诸如存储器实例、PLL 实例等模块。您可以使用 add_black_box -module 命令指定这些模块。

示例  以下示例展示了如何使用 set_current_design 命令。

set_current_design cpu_top

(注:set_current_design 命令用于指定设计的顶层模块,以便工具能够正确解析和细化设计。)

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

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

相关文章

【css酷炫效果】纯CSS实现立体旋转立方体

【css酷炫效果】纯CSS实现立体旋转立方体 缘创作背景html结构css样式完整代码效果图 想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90492014 缘 创作随缘,不定时更新。 创作背景 刚看到csdn出活动了&am…

LLM中lora的梯度更新策略公式解析

LLM中lora的梯度更新策略公式解析 目录 LLM中lora的梯度更新策略公式解析区别如何使用LoRA代码中的参数更新方式二阶导数(如右侧公式关联的Fisher信息)的作用区别 定义与理论来源: 左公式 F ( w i ) = 1 n

Mac下Ollama安装全攻略:开启本地大模型之旅

文章目录 Mac下Ollama安装全攻略:开启本地大模型之旅一、Ollama 是什么功能特点优势应用场景 二、安装前准备(一)系统要求(二)硬件要求 三、下载安装包(一)官网下载(二)其…

线程大乱斗:从入门到精通,解锁Java并发编程的终极秘籍

目录 什么是线程? jave创建线程方式有几种? 线程中常用的方法 线程状态 多线程 解决线程安全问题 线程通信 何为并发编程? 并发执行和并行执行 线程的三个主要问题: 1、不可见性: 2、乱序性: …

Web3游戏行业报告

一,gamefi经济 什么是gamefi GameFi是一个缩写,它结合了游戏和去中心化金融(“DeFi”)这两个术语,关注的是游戏玩法如何在去中心化系统中实现货币化。对于游戏而言,只要开放了交易市场,允许玩家自由买卖,…

hibernate 自动生成数据库表和java类 字段顺序不一致 这导致添加数据库数据时 异常

hibernate 自动生成的数据库表和java类 字段顺序不一致 这导致该书写方式添加数据库数据时 异常 User user new User( null, username, email, phone, passwordEncoder.encode(password) ); return userRepository.save(user);Hibernate 默认不会保证数据库表字段的顺序与 Ja…

Cursor在内网环境配置自定义DeepSeek API

关键字 Cursor、DeepSeek、API配置、内网代理、HTTP/2 背景环境 使用Cursor集成环境开发程序。但是我使用公司的内网并不能使用cursor自带的模型,于是我就想使用DeepSeek官方的API服务。 环境:Windows 11系统 解决过程 网络检测 首先进行环境检测&am…

【初学者】解释器和脚本各是什么?有什么区别与联系?

李升伟 整理 解释器和脚本的定义 1. 解释器(Interpreter) 定义:解释器是一个程序,负责逐行读取并执行代码。它将源代码翻译成机器能理解的指令,并立即执行。特点: 逐行执行代码。适合交互式编程&#xf…

Kafka跨集群数据备份与同步:MirrorMaker运用

#作者:张桐瑞 文章目录 前言MirrorMaker是什么运行MirrorMaker各个参数的含义 前言 在大多数情况下,我们会部署一套Kafka集群来支撑业务需求。但在某些特定场景下,可能需要同时运行多个Kafka集群。比如,为了实现灾难恢复&#x…

设计模式(创建型)-抽象工厂模式

摘要 在软件开发的复杂世界中,设计模式作为解决常见问题的最佳实践方案,一直扮演着至关重要的角色。抽象工厂模式,作为一种强大的创建型设计模式,在处理创建一系列或相关依赖对象的场景时,展现出了独特的优势和灵活性。它通过提供一个创建对象的接口,让开发者能够在不指定…

观察者模式详解:用 Qt 信号与槽机制深入理解

引言 你是否曾遇到这样的需求:一个对象的状态发生变化后,希望通知其他对象进行相应的更新?比如: 新闻订阅系统:当新闻发布后,所有订阅者都会收到通知。股票行情推送:股价变化时,所…

OSWorld:开启多模态智能体的真实计算机环境革命

OSWorld:开启多模态智能体的真实计算机环境革命 在人工智能技术突飞猛进的今天,多模态智能体正逐步突破实验室的限制,试图融入人类的日常工作场景。然而,如何评估这些智能体在真实计算机环境中处理开放式任务的能力,成为学术界和产业界共同关注的难题。2024年,由xlang-ai…

LabVIEW烟气速度场实时监测

本项目针对燃煤电站烟气流速实时监测需求,探讨了静电传感器结构与速度场超分辨率重建方法,结合LabVIEW多板卡同步采集与实时处理技术,开发出一个高效的烟气速度场实时监测系统。该系统能够在高温、高尘的复杂工况下稳定运行,提供高…

强化学习基础篇二:马尔可夫决策过程

写在前面 本文是对李沐等“动手学强化学习”教程的个人阅读总结,原文链接:动手学强化学习。 第3章 马尔可夫决策过程 3.1 重要性 马尔可夫决策过程是强化学习中的基础概念,强化学习中的环境就是一个马尔可夫决策过程,与多臂老虎…

EtherCAT转profinet网关集成汽车变速箱制造生产线自动化升级

客户的汽车零部件制造商需要升级其变速箱齿轮加工生产线,面临的关键挑战是整合新引进的欧洲齿轮精密检测设备(基于EtherCAT协议)与现有使用profinet协议自动化系统通信。 企业核心控制平台基于西门子PLC,而现场各工位采用分布式I/…

tongweb7控制台无法访问

tongweb7控制台无法访问 排查 1.首先确认版本,如果版本是轻量级版本,轻量版不支持会话(session)的备份和复制、管理控制台、APM 运维工具等企业级增量功能。 2.查看端口 命令:ss -tnlp 或者netstat -tnlp 确认控制台端口是否开启 3.在conf…

【STM32】从新建一个工程开始:STM32 新建工程的详细步骤

STM32 开发通常使用 Keil MDK、STM32CubeMX、IAR 等工具来创建和管理工程。此处是 使用 Keil MDK5 STM32CubeMX 创建 STM32 工程的详细步骤。 新建的标准库工程文件已上传至资源中,下载后即可直接使用。 标准库新建 STM32 工程的基本目录结构:STD_STM…

搞定python之九----常用内置模块

本文是《搞定python》系列文章的第九篇,介绍常用的内置模块的使用。到此为止python的基础用法就彻底说完了,大家可以在此基础上学习爬虫、web处理等框架了。 本文的代码相对比较多,大家注意看代码即可。python的文档我贴出来,毕竟…

判断是不是完全二叉树(C++)

目录 1 问题描述 1.1 示例1 1.2 示例2 1.3 示例3 2 解题思路 3 代码实现 4 代码解析 4.1 定义队列,初始化根节点 4.2 层序遍历,处理每个节点 4.3 处理空节点 4.4 处理非空节点 5 总结 1 问题描述 给定一个二叉树,确定他是否是一…

神经外科手术规划的实现方案及未来发展方向

Summary: 手术规划软件 效果图,样例: 神经外科手术规划样例: 神经外科手术规划,三维重建,三维建模,三维可视化 Part1: 手术规划的定义与作用 一、手术规划的定义 手术规划是指在手术前,通过详…