验证平台,SV 和UVM

2023-05-16

验证是确保设计和预定的设计期望一致的过程。

验证平台:被用来应用一个或多个测试激励,并将激励发送到设计的输入中,激励可通过验证平台产生,或者通过手动创建。最后,输出进行比较,看结果是否正确。结果检查可通过验证平台、脚本或者手工来实现。

验证平台的主要功能:产生激励、把激励应用到被测设计DUT中,检查结果和验证测试是否通过,也就是确保被测设计的输出和期望一致。

验证的难点:如何产生全部的激励,如何检查结果的正确性。

功能验证流程:制定验证策略(定义测试用例,验证平台抽象层次,激励产生方案,结果检查方案)和验证计划(搭建验证平台,创建测试用例、运行和调试)、 覆盖率分析和回归测试。

验证流程:1、仔细阅读设计文档,并理解分析。2、指定验证计划,包括验证功能点的提取,规划tests,TB的架构,用什么方法学,功能覆盖率的提取以及检查机制。3、搭建验证环境,码代码,测试用例编写以及调试debug。4、回归测试。5、覆盖率包括代码代码覆盖率和功能覆盖率,增加一些tests。6、撰写验证报告,主要是覆盖率的分析。

验证手段:黑盒验证:只通过其边界信号来验证一个模块或者设计的功能。通过这种方法,激励可以被应用到设计和参考模型中,在某个抽象层次,通过被测设计和参考模型的输出被校对,黑盒验证存在下列主要的缺点:很难验证和设计相关的特点、很难调试、要求一个精确的参考模型。白盒验证:可以不需要参考模型,通过在设计内部或外部输出信号放置监控器和断言来保证设计操作的正确性。灰盒验证:综合了白盒和黑盒的一个阶段,也就是在设计内部添加监控器和断言来减少对参考模型的精确要求,在错误发现的时候也减少调试的压力。

验证可能出现的错误:从来没有被激发过的错误,被激发的错误没有被传递出来,多个潜在的错误掩盖了其他错误。

代码覆盖率:行覆盖率、状态机覆盖、翻转覆盖、判定覆盖、条件覆盖、路径覆盖。

功能覆盖率:代表设计要求的功能中有多少被验证了。功能覆盖率包括3个概念:覆盖点、交叉覆盖率、传输覆盖率。覆盖点是单个标量值或者表达式的抽样。目的是确保所有感兴趣的和相关的值都可以在已抽样的值或表达式中被观测到。交叉覆盖率是度量同一点多个标量值的结合,可以设计两种或者多种覆盖点的结合,只能用于同一类的覆盖组。传输覆盖率是度量一系列值的存在和发生,可以包括统一覆盖点上超过两个的连续不断的值。

功能覆盖率高、代码覆盖率低:验证计划不充分,需要增加佛南功能覆盖点。

代码覆盖率高,功能覆盖率低:设计没有实现指定的功能。

覆盖率驱动验证:最重要的特点是基于随机激励产生。随机激励生成是提高效率的最主要的原动力,覆盖率验证驱动是将事务级验证、约束随机激励产生、自动化结果比较、覆盖率统计分析和直接测试。事务级验证允许在一个更高的抽象层次来创建验证场景。约束随机激励产生可以获取更高的效率,为生成验证场景和自动化结果比较提供了充分的保证,设计能够在各种随机的情况下被验证。覆盖率统计是必须的,若没有覆盖率统计,就没有办法清晰的分析哪个场景被随机生成过。直接测试也是必须的,因为最终不可能全部的场景都能够随机生成。覆盖率驱动验证方法学要求指定一个可以数量化衡量完备性,可追踪、有组织的验证计划,这对于验证计划的严格要求可以暴露出可能被遗漏的相关场景。

验证存在的挑战,一个有效的验证方案必须解决验证完备性、验证可重用性、验证可靠性、验证效率、验证的性能。验证完备性是如何最大限度地验证被测设计的行为,难点在于如何获取所有必须被验证的场景,可采用覆盖率驱动的验证方法学。覆盖率驱动验证方法学要求指定一个可以数量化衡量完备性,可追踪、有组织的验证计划,这对于验证计划的严格要求可以暴露出可能被遗漏的相关场景。验证可重用性是优化验证环境的架构,使之可以在不同的场合重用。重用可以通过模块化验证组件、采用标准接口、将激励产生机制和验证架构分离等方式实现。一个项目中,深层次的重用是如何实现一个验证平台可以供多个测试用例使用。验证可靠性在于如何减少在完成一个验证项目中的手工操作,手工操作可能存在错误、冗长和耗时很大的问题。有一个很好的方法是约束随机验证,是通过搭建一个自动化的系统来产生激励和自动比较,进而提高验证的可靠性。验证的效率可以通过提高验证平台的抽象层次和采用重用。验证性能是在运行回归测试时候,迭代周期主要为验证平台运作的有效性来决定,验证程序的性能成为这个阶段的主要因素。

数字ic设计流程:确定项目需求,指定芯片的具体指标,系统级设计,用系统建模语言对各个模块描述。前端设计,RTL设计,仿真,硬件原型验证,电路综合,后端设计,版图设计,物理验证,后仿真。

数字ic设计具体指标:物理指标(制作工艺)、性能指标(速度、功耗)、功能指标(功能描述、接口定义)

集成电路产业链:集成电路设计、晶圆、封装测试、组装、成品整机。

soc芯片最重要的是cpu

总线连接,总线直接桥接,AHB-bridge-APB总线协议。

system controller产生系统的时钟和复位信号。

soc芯片主要无线通信和数据存储功能,主要应用场景是数码相机的存储片。

无线通信功能是通过apb总线上的spi接口外挂wifi芯片。

sv基本语法:2值逻辑(0,1)和4值逻辑(0,1,x,z,reg类型,verilog中用),有符号数(整型)与无符号数(bit),合并数据(内存空间更紧凑)与非合并数据(每个元素占用32bit内存空间),动态数据(数组大小不确定)和队列,关联数据(不需要连续空间,可以整数、字符串等),数组的方法。

多线程:join(三个子线程都执行完后,才可以执行主线程),fork_join_any(任何一个子线程执行完后,便可以执行主线程),fork_join_none(子线程不会阻塞主线程、先执行主线程,三个子线程才会并行执行。)

function是没有时间的,task是有时间的。void function是没有返回值。

static:module和program子程序默认是静态存储。

automatic:自动存储模式,函数和任务的重入成为可能。

random()产生有符号的随机数,urandom()产生无符号的随机数,randomc产生平均分布的平均数。

sv预定义随机化方法:randomize,pre_randomize, post_randomize.调用randomize之前调用pre,之后调动post

用super.task_name()调用一个定义在父类的task

this是指向当前class

local和protected都是保护变量,外部不可以访问,子类不能访问父类的local变量。子类可以访问父类的protected变量。

把代码打包,使用package,解决类命名冲突等问题

dut是module,TB是program,不同代码运行在不同区域,program与module运行的时间域是不同的,这样会避免竞争和冒险。

virtual interface : virtual interface的本质是指向interface的指针,因此其并不是一个真实存在的实体,而interface是一个真实存在的实体。

静态cast是数据类型的转化。动态cast类的向下转换(当父类句柄指向的对象是真正的子类对象,可使用),或者是枚举的转换。

类的三大属性:封装性、继承性、多态性。

多态:虚方法与重写的实现。当一个类派生出子类的时候,基类中的一些方法(定义为virtual)可能需要被重写(在派生类),对象中的类型来决定调用方法的实现方式,通常这是一个动态的过程,动态的选择方法的实现方式叫多态。如果想要重写某个方法,在父类中声明中为虚方法,后续继承过程中永远是一个虚方法,不再注意是否virtual。

封装性:通过访问控制来实现的。高内聚、低耦合,类的内部数据操作细节自己完成,不允许外部干涉,仅暴露少量的方法给外部使用。通常是禁止直接访问一个对象中数据的实际表示,应该通过操作接口来访问,称为信息隐藏。封装可以提高程序安全性,保护数据,隐藏代码实现细节,统一接口,更加具有规范性,增加系统可维护性。

继承:对某一批类的抽象,从而实现对显示世界更好的建模。

UVM:分层的验证环境,组件(test、env、agent、sequencer、driver、monitor、scoreboard)、每个类的激励,如何通信,如何连接(port)、如何启动、如何结束、如何打印信息、数据(uvm_sequence_item)。

uvm平台的开启和结束:启动:在run-test函数里面调用用例名字,仿真用UVM_TESTNAME, 结束:正常结束(drops objection+check)异常结束(错误而挂起 / timeouts)

UVM 的PHASE:build phase总体目的是构建、配置和连接测试台组件层次结构,所有的build phases方法都是functions,在0仿真时间执行完成。一旦构建了UVM testbench根节点组件,build phase 就开始执行。是从上到下地构建testbench组件层次结构。connect phases用于在组件之间建立TLM连接,或者向testbench资源池分配对象句柄。connect phase 在build phases方法之后自底向上地执行。run phase(reset、configure、main、shutdown 共12个)发生在start_of_simulation阶段之后,用于激励的产生和testbench的监测和检查。run phase 作为一个task实现,所有uvm_component 的run phase 都并行执行。

PHASE同步用同步机制。build phase和finel phase是自顶向下的。其他的是自下向上的。run phase是task,其他的phase均是function。run phase 和run-time tasks是消耗时间的。一个phase执行完后才会执行下一个phase

new是产生一个对象,build_phase是产生组件,create调用UVM factory 产生一个对象 ,会用到一个registry注册表。

uvm_info才有打印等级,最高是uvm_debug, 最低是uvm_medium, fatal、error、warning无打印等级.

sequence机制,控制并产生一系列的事物,并通过某种方法将事物发送给driver的机制。具有控制何时产生事物,产生事物,并将事物发送给driver的功能。sequence是一个产生和发送数据的过程,会消耗仿真时间。只有在task_phase中才会启动。

事物产生和发送流程:1、当进入某个task_phase之后,sequence被启动产生事物,并将事物发送给sequencer。2、当driver需要驱动事物发送给DUT时,首先向sequencer发送事物请求,sequencer再将产生好的事物发送给driver。3、driver处理完事物,会发送完成响应,并发送给sequencer,在转发给sequence。sequence收到响应会产生下一个事物。

sequence机制有五个uvm class,uvm_sequence, uvm_sequence_item, uvm_sequencer, uvm_driver, uvm_agent, 主要涉及到三个组件sequence、sequencer和driver。

sequence:当sequence的start的函数启动,sequence会执行body方法,产生事物,并将事物发送给sequencer放入FIFO中储存。sequence会等待一个driver的完成响应,得到之后会退出该次事物的产生。

sequencer: 当sequencer启动时,首先会检查自身的default_sequence是否配置,如果配置了会创建实力,设置该sequence的starting_phase并随机化该sequence。最后调用sequence的start()函数启动该sequence。

driver:首先向sequencer发送一个事物请求,然后等待事物,sequencer会将产生好的事物发送给driver,driver在处理完该事物后,返回一个完成响应。

sequence机制的实现流程:传入句柄是sequence_item类型时,调用start_item函数,随机化item,最后调用finish_item函数。如果句柄是sequence类型,则调用该对象的start().

UVM callback (回调函数)机制: 最大用处就是为了提高验证平台的可重用性,在不创建复杂的OOP层次结构前提下,针对组件中的某些行为,在其之前之后,内置一些函数,增加或者修改UVM组件的操作,增加新的功能,从而实现一个环境多个用例,还可以通过callback机制构建异常的测试用例。回调函数的使用步骤:1、在UVM组件中内嵌回调函数或者任务。2、声明一个UVM回调空壳类。3、从UVM回调空壳类中扩展UVM callback类。4、在验证环境中创建并登记UVM callback 实例。UVM——Callback机制(作用、使用步骤实例)_簡時光℃的博客-CSDN博客_uvm中callback

 UVM configure机制:可以传递值、可以传递对象、可以传递interface(virtual)。作为半个全局变量,为避免全局变量带来的风险,高层次组件可以通过该机制实现不改变代码的机制下更改它所含子组件的变量,各个层次都可使用,支持通配符和正则表达式,支持用户自定义的数据类型,可以在仿真运行的过程中进行配置。configuration机制使用的是set函数和get函数的过程。

interface使用configure机制:首先根据DUT构建interface,为driver添加virtual interface和驱动DUT,将事物信息分解为pin级信号驱动给DUT,新建top.sv文件,将其他平台组件include,建立顶层module,进行各种连接,将实例化interface配置给virtual interface。

使用uvm_config_db的优势在于:
1.与SV的层次化索引不同,可以在顶层对任意层次进行配置,也可以在硬件域对软件域的接口进行配置,操作更方便
2.验证组件更独立,水平复用和垂直的移植都更加方便
3.即使在顶层没有配置,底层也不会报错,一方面提高了复用性,另一方面增加了隐患,所以最好在配置时设置调试语句,在配置失败时报错,以便于调试。

UVM资源池由两部分组成,分别是添加配置资源和获取配置资源。

UVM的验证环境构成可分为两个部分,一部分构成了环境的层次,这部分代码是通过uvm_component类完成,另一部分构成了环境的属性和数据传输,这部分是通过uvm_object类完成。

UVM factory:为了更方便替换验证环境中的实例或注册了的类型,同时工厂的注册机制也带来了配置的灵活性。1、注册,使用factory机制的第一步是将类注册到工厂,这个factory是整个全局仿真中存在且唯一的机构,所有被注册的类才能使用factory机制。2、创建,创建就是实例化对象,所有注册到factory的类均可通过factory独特的方式实例化对象。但factory的独特方式,实际上是调用了new函数,也是先创建了句柄再赋予对象。3、创建函数的重载,重载也就是覆盖、替换,对于UVM中的factory机制,可实现factory机制中创建函数的重载,即将父类的创建函数重载为子类的创建函数,也就是说,重载之后,父类的句柄指向的是子类的实例。

从流程上,如何保证芯片验证的质量,验证代码覆盖率与功能覆盖率如何相互保证验证质量?

从流程上看,要保证验证的独立性、完备性和正确性。还需要采用各类先进的验证方法和策略,比如覆盖率驱动的验证策略,随机化验证策略,基于断言的验证策略,还需要维护回归测试的流程。

覆盖率包含了功能覆盖率和代码覆盖率,当两者都达到100%时,就可以去流片,其中功能覆盖率为主,需要工程师根据需求和经验,设计功能覆盖率模型,代码覆盖率为辅,可以通过EDA获取客观数据。当又一个覆盖率较低的时候需要分析。

功能覆盖率高、代码覆盖率低:验证计划不充分,需要增加佛南功能覆盖点。

代码覆盖率高,功能覆盖率低:设计没有实现指定的功能。

SRAMC控制器用一组总线实现了8个SRAM块,每个SRAM是8k,SRAM做片选时,是怎么验的,回答:通过看sram_csn片选信号。32位,4个byte是0,4,8,c。2个byte是0,2,4,6,8。1个byte是0,1,2,3,4。

stam控制器的低功耗设计与时钟门控没有关系,跟sram选片有关系。因为通过阅读sram的数据手册,发现当不选中sram时的功耗只有选中sram的千分之一,因此设计了8*8k的多片SRAM。而且支持8/16/32位的数据操作,就是通过片选信号实现低功耗。

低功耗设计跟三态门也没有关系,sram控制器项目中没有三态门,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证平台,SV 和UVM 的相关文章

  • 文章UVM and C – Perfect Together的解读与思考

    解读UVM and C Perfect Together 文章获取方式 xff1a 路科验证 gt 资源 gt DVCon2018 USA zip gt 08 3 http rockeric com resource paper 文章主要内
  • 验证平台,SV 和UVM

    验证 是确保设计和预定的设计期望一致的过程 验证平台 xff1a 被用来应用一个或多个测试激励 xff0c 并将激励发送到设计的输入中 xff0c 激励可通过验证平台产生 xff0c 或者通过手动创建 最后 xff0c 输出进行比较 xff
  • APB协议UVM验证环境的搭建

    APB协议UVM验证环境的搭建 一 编译文件 只需编译这两个文件即可 apb pkg sv 里面包含了 apb svh 即编译apb pkg sv这个文件的同时 也会编译所需要的所有的头文件 ifndef APB PKG SV define
  • UVM的构造函数new的个人理解

    构造函数new 自己总结的规律 理解 结合UVM实战这本书的阅读理解 归纳一下自己对new函数的个人理解 只是书本前几章阅读后的认知 还不能完善 在此只为记录防丢失 构造函数new 一般类的实例化 包含类的声明和类的构造 比如 my dri
  • UVM中的phase机制

    5 1 phase机制 5 1 1 task phase与function phase UVM中的phase 按照其是否消耗仿真时间 time打印出的时间 的特性 可以分成两大类 一类是function phase 如build phase
  • vcs覆盖率选项

    vcs中常用的收集覆盖率选项如下 1 cm dir
  • 说一说system verilog内建函数$value$plusargs()

    在学习system verilog的时候遇到了一个长的很奇怪的函数 奇怪到啥程度 别的函数都是一个 xxx 这个函数一次来了两个 长的虽然奇怪 但是这个函数的作用很大 首先看一下它的基本格式 value plusargs user stri
  • DUT处理延迟 对Monitor采数和验证环境结束机制的影响分析

    1 问题背景 一句话描述 验证环境中 当激励完成发送时 由于DUT存在处理延迟 monitor在延迟一段时间后才能采集到DUT完整的输出 如何设计验证环境的结束机制 此处的验证环境结束机制 可以认为是main phase的结束控制 但并不单
  • 如何在父uvm_transaction中随机及例化子的uvm_transaction

    Use Case AXI DMA控制器有128个独立的通道 可以并行进行读写操作 首先我们对AXI DMA控制器的top level的事务进行建模 如下 class axi dmac transaction extends uvm tran
  • uvm_info信息定制

    1 uvm自带的打印信息国语繁重 不利于debug uvm info TESTCASE sformatf my case0 new UVM DEBUG UVM INFO home zl Desktop uvm study template
  • uvm之寄存器模型

    寄存器模型的意义 寄存器模型的搭建 寄存器模型的FAQ 寄存器模型的意义 寄存器模型 字面理解 跟参考模型类似 就是为工程里的寄存器提供一个参考模型 这个模型里 包括各个寄存器字段描述 寄存器 寄存器组 寄存器地址映射等信息 有如下好处 寄
  • UVM::phase的run order

    1 build time bulid connect end of elaboration 2 run time start of simulation run run有分为 pre reset reset post reset pre c
  • UVM环境(env)树形结构

    UVM验证环境的组成 sequencer 负责将数据转给 driver driver 负责数据的 发送 driver 有时钟 时序的概念 agent 其实只是简单的把 driver monitor 和 sequencer 封装在一起 age
  • UVM 寄存器内建测试序列(built-in sequences)

    原文链接 https blog csdn net qq 42419590 article details 121487295 UVM 寄存器内建测试序列 built in sequences 不少有经验的UVM用户可能会忽略UVM针对寄存器
  • Verdi之nTrace/nSchema

    目录 3 nTrace介绍 3 1 启动Verdi 3 2查看Verdi中的设计结构 3 3查看Verdi中的验证结构 3 4 查找模块和trace信号 3 5 查找string 3 6 信号drive load 3 7 快速查看设计有哪些
  • 验证网站列表,持续更新中...

    verificationacademy com verificationguide com chipverify com https www runoob com w3cnote verilog2 sdf html https www th
  • uvm的config_db

    config db 是用于在各个uvm对象里传递参数 一般参数类型 是interface int等 据说参数必须是静态类型 这个可以在uvm config db相关代码里确认 后来知道 config db还能设置sequence和seque
  • SV 或 UVM 中的正则表达式

    我需要调用哪些函数才能在 Systemverilog UVM 中使用正则表达式 注意 我不是问如何使用正则表达式 只是问方法名称 首先 如果您想使用正则表达式 您需要确保您使用的是与其 DPI 代码一起编译的 UVM 库 即UVM NO D
  • UVM 测试平台 - 将两个不同驱动程序连接到同一接口的“UVM”方式是什么?

    在我的测试平台中 我有一个需要驱动的接口 该接口可以以两种不同的模式驱动 每种模式都有自己的驱动程序协议和事务类型 到目前为止 我已经分别设计了两个 uvm agents 现在 我需要一种方法来交换其中一个或另一个 具体取决于我正在运行的测
  • 从测试台访问 uvm_config_db 的最佳方式?

    我想在我的顶级测试平台中创建一个时钟 其周期可以通过测试进行控制 我所做的是将周期设置到 uvm config db 中并将其返回到测试台中 我必须输入 1 以确保构建阶段已完成 否则 get 返回错误值 module testbench

随机推荐

  • AMOVLAB-QGC地面站二次开发-第七章

    下面红色部分为添加内容 第一步 xff0c 增加单个设备复选按钮 xff0c 位于MultiVehicleList qml中 ColumnLayout id innerColumn anchors margins margin anchor
  • vmware虚拟机usb协调服务器,win10虚拟机vmware usb arbitration service找不到如何解决

    近来 xff0c 一位用户反馈自己在win10系统电脑中运行虚拟机安装xp系统 xff0c 可是进入系统后发现无法使用USB xff0c 而且还提示需要启用vmware usb arbitration service服务 xff0c 之后在
  • Ubuntu14.04下配置并使用MTK flash tool

    前言 由于从事的工作需要经常对手机进行刷机操作 xff0c 而MTK提供的flash tool基本都是在Windows下运行的 xff0c 很多工作又是在linux下完成的 xff0c 要涉及到大量的android源码编译 生成刷机包 调试
  • ubuntu remmina 调整窗口大小以适应远程分辨率

    ubuntu 11 04使用了 remmina作为默认的远程控制软件 xff0c 有个问题是 调整窗口大小以适应远程分辨率 这个按钮 点击后 由于不能计算出分辨率 xff0c 导致不停的计算 无法使用 解决方法 xff1a 在 xff5e
  • Centos squid配置

    squid配置 题目 一 关闭Selinux跟防火墙 二 安装squid服务 并启动 三 配置路由转发 提供路由功能 临时开启 永久开启 四 浏览器测试 打开火狐浏览器找到网络设置 提示 有任何问题可以私信我 下班看到第一时间回复 题目 s
  • [系统安全] Windbg Preview调试记录

    本文为笔者从零基础学习系统安全相关内容的笔记 如果您对系统安全 逆向分析等内容感兴趣或者想要了解一些内容 欢迎关注 本系列文章将会随着笔者在未来三年的读研过程中持续更新 前文链接 系统安全 PE文件格式详解1 系统安全 PE文件格式详解2
  • 北斗和GPS的工作频段

    北斗GPS铱星频段 北斗短报文发送L 1615 68 3MHZ 北斗短报文接收S 2491 75 3MHZ B1 xff1a 1559 052MHZ 1591 788MHZ 民用 标称频率1561 098MHZ B2 xff1a 1166
  • ftp虚拟用户服务器,FTP服务器虚拟用户配置

    FTP服务配置问题及解决方案 使用被动模式 xff0c 设置云主机IP为被动模式数据传输地址 xff1a 在配置文件内添加 pasv enable 61 YES pasv promiscuous 61 YES pasv address 61
  • 关于mac 上传、下载linux服务器sftp命令

    二话不说 xff0c 直接贴命令 root 是用户名 xxx xx x xx 是ip地址 sftp root 64 xxx xx x xx ip地址 连接进行输入密码即可执行 xff1a 上传 xff1a Put 本地地址 线上地址 下载
  • 正则表达式中?: ?= ?! ?<= ?<!的用法

    pattern 非获取匹配 xff0c 匹配pattern但不获取匹配结果 xff0c 不进行存储供以后使用 这在使用或字符 来组合一个模式的各个部分是很有用 例如 industr y ies 就是一个比 industry industri
  • python程序猿必备-reStructuredText快速入门

    reStructuredText快速入门 reStructuredText也称为reST xff0c 这是一种被Python程序员广泛使用的纯文本标记语言 xff0c 就像markdown一样 reStructuredText pychar
  • 程序关闭计算机没反应为什么,电脑点击关机没反应怎么办

    我们不用电脑时候都会关机 xff0c 但是有时点击关机没反应或者卡住 xff0c 应该怎么解决呢 xff1f 下面学习啦小编教大家笔记电脑关不了机的解决方法 xff0c 供您参考 笔记本电脑关不了机的解决方法 当电脑无法关机时 xff0c
  • 梯度反转层(Gradient reversal layer, GRL)

    GRL作用 xff1a 将传入到GRL的梯度乘上一个负数 xff0c 使得在GRL前后的网络的训练目标是相反的 在接入GRL以后 xff0c 特征提取器就会有两个目标需要满足 xff0c 第一是特征提取器需要生成能够预测出正确标签的特征 x
  • 远程连接Ubuntu Server安装图形化界面的过程

    远程连接ubuntu server的坑 首先下载xshell xff0c 新建连接后设置主机名字 xff0c 在host里面填上ipv4或ipv6的地址 xff0c 注意端口号要在主机的 etc ssh sshd config这个文件中查看
  • 网络操作系统 第十章 DNS服务器管理与配置

    习题 1 什么是域名系统 xff1f 描述域名解析的过程 1 xff09 域名系统 xff1a Domain Name System缩写DNS xff0c 是因特网的一项核心服务 域名系统作为可以将域名和IP地址相互映射的一个分布式数据库
  • pytorch模型保存与加载:state_dict、load_state_dict

    简而言之 xff0c pytorch保存模型时用的映射关系 pytorch中的state dict是一个简单的python字典对象 xff0c 将每一层与之对应的参数建立映射关系 只有参数可训练的layer才会保存到模型 的state di
  • python中@staticmethod

    64 staticmethod用于修饰类中的方法 xff0c 使其可以再不创建类实例的情况下调用方法 xff0c 这样做的好处是执行效率较高 xff0c 当然也可像一般方法一样用实例调用该方法 该方法一般被成为静态方法 静态方法不可以引用类
  • attention is all you need

    摘要 主流的序列转换模型都是基于复杂的循环或卷积神经网络 xff0c 这个模型包含一个编码器和一个解码器 具有最好性能的模型是通过一个注意力机制 xff0c 将编码和解码连接在一起 我们提出了一个新的简单网络结构 Transformer x
  • 软件测试流程、测试方法、测试软件

    软件测试的流程主要包含单元测试 组装测试 确认测试 系统测试四个阶段 单元测试 xff1a 也叫模块测试 xff0c 单元是指清晰定义了子功能的最小单位 xff0c 如程序的最小编译单位等 xff0c 是测试工作的第一步 单元测试通常要编写
  • 验证平台,SV 和UVM

    验证 是确保设计和预定的设计期望一致的过程 验证平台 xff1a 被用来应用一个或多个测试激励 xff0c 并将激励发送到设计的输入中 xff0c 激励可通过验证平台产生 xff0c 或者通过手动创建 最后 xff0c 输出进行比较 xff