UVM笔记

UVM学习整理——UVM整体介绍 目录 一、典型UVM验证平台介绍 1.1典型UVM验证平台的主要组成和基本功能 1.2UVM类库地图 1.3UVM常用类的继承关系 一、典型UVM验证平台介绍 1.1典型UVM验证平台的主要组成和基本功能 driver:向sequencer申请sequence_item(数据包transaction),并将包里的信息按照总线协议规定驱动到DUT的端口上; sequencer:组织管理sequence,driver申请数据时,它就把sequence生成的sequence_item发给drive 阅读详情

一、UVM基本 概念

验证计划
功能覆盖率,结构覆盖率
模块机/芯片级/系统级
白盒/灰盒/黑盒

在这里插入图片描述

二、构建简化的UVM平台

在这里插入图片描述
在这里插入图片描述
简化的UVM平台
只有master agent

2.1、创建transaction

在这里插入图片描述

2.2、创建sequence

在这里插入图片描述
在这里插入图片描述
含义:启动后产生10个事物对象,然后停止仿真。

2.3、创建agent(sequencer,monitor、driver,phase顺序)

sequencer:
在这里插入图片描述

driver:
在这里插入图片描述
在这里插入图片描述
创建monitor:
在这里插入图片描述

在这里插入图片描述
phase执行顺序

UVM平台中所有的组件具有phase概念,它们按照一定顺序执行的任务或函数产生。
在这里插入图片描述

2.4、创建agent

在这里插入图片描述

在这里插入图片描述

2.5、创建env

在这里插入图片描述
在这里插入图片描述

2.6、创建testcase

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.7、运行仿真

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、UVM平台组件

在这里插入图片描述

3.1、UVM库

UVM库-在类库中使用继承和封装
基本要素的三个层次:
1、TLM:TLM是组件之间的通信标准
2、Structural Elements:不同方法学的通用类:组件、信息系统、仿真阶段等等
3、Methodology:这个时用户实现平台重要的主要接口。使用这些接口用户可以在不改变测试平台代码的情况下更改平台的配置、替换平台组件、更换不同的激励甚至改变仿真行为等。

在这里插入图片描述
UVM package包含了三个主要的类
1、uvm_component:是用来构建UVM testbench层次结构最基本的类
2、uvm_object:作为UVM的一种数据结构,课作为配置对象来配置测试平台
3、uvm_transaction:用来产生激励和收集响应

3.2、uvm_component

在这里插入图片描述
这一分类为事物服务
在这里插入图片描述

3.3、UVM结构树

1、agent包含driver
在这里插入图片描述
2、env包含agent
在这里插入图片描述
3、test_case实例化env
在这里插入图片描述

简化的UVM结构树
顶层名字总为uvm_test_top
在这里插入图片描述
在这里插入图片描述
uvm的实际顶层为uvm_root,系统自己产生。

UVM构建这种结构的原因:
1、为config机制提供搜索路径
2、为override机制提供搜索路径
3、时phase自动执行的需要

3.4、UVM phase

UVM中为平台组件定义了一套phase流程来控制仿真平台的执行过程。
phase是uvm_component的属性

在这里插入图片描述
Task phase & Function phase。Task phase消耗仿真时间,图中黄色为Task phase其余都为Function phase。
build_phase自顶向下执行,其他phase都是自下向上执行。
黄色区域为12个run-time pahse,这12个之间按顺序执行。相同组件的task phase同一时刻进行。
注意:
1、只有当所有component的同名phase都执行完毕时,才会执行下一个phase。
2、同名phase在不同的component中的顺序执行。
3、run phase与12个run time phase的关系。同时存在可以同时使用

从验证平台的构建,到配置,到连接,再到运行,最后停止需要有一定的先后顺序。
在这里插入图片描述
每一个component中都有一个任务或者函数与某个phase相对应,这些任务或者函数会在该phase阶段被自动的执行。
在这里插入图片描述
依次调用buile phase。

每个phase的功能:
在这里插入图片描述
12个run-time phase
在这里插入图片描述
uvm_phase的启动
-使用run_test()启动UVM平台
在这里插入图片描述

3.5、UVM object

UVM phase具有objection属性
UVM phase的objection属性有两个作用:
1、控制task phase的运行与终止
2、同步各个components同名的task phase

objection的使用方法:
1、在task phase中调用raise_objection()和drop_objection()。
2、task phase中其他需要执行的语句放在这两个方法之间。

UVM objection注意事项:
1、objection对于task phase才有意义,控制task phase的运行和终止。
2、必须在执行消耗仿真时间的语句之前raise objection。如果在raise之前加入消耗仿真时间的语句,会导致raise失效,延时过后直接结束当前task。
3、在task phase结束时drop objection。否则将用于不会执行下一个phase,一直停留在当前phase。
4、在一个component中的某个task phase中raise和drop objection会影响到其他component中相同名字的task phase。
5、建议在每个task phase中都raise和drop objection一次。

示例对比:
在这里插入图片描述
在这里插入图片描述
因为按顺序执行phase,所以如果reset_phase的执行了,那么configure_phase的打印就会变成在200延时打印。

在这里插入图片描述
修改代码后,在reset_phase添加raise和drop objection。

注意事项4和5:
在这里插入图片描述
monitor中的reset_phase没有raise和drop objection,但打印还是被执行了,原因在于,在driver中有同名的reset_phase
在这里插入图片描述
各组件中相同的task phase会并行执行。并且会同时开始,同时退出。
但是如果monitor中执行打印时的延时高,比如#50变成#150那么将不会有打印。因为在driver #100时结束了drop_objection,而monitor中又没有raise objection,那么monitor的objection会被终止。

四、UVM factory

4.1、什么是factory

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2、使用factory(uvm_component_utils,uvm_object_utils)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3、factory机制与override机制

factory机制要与override机制结合使用。
factory是基础。override机制是为实现第三步而存在的,即要想factory的替换列表中添加替换项。

常见的override函数有两个:
set_type_override_by_type(original_class_name::get_type(),target_class_name::get_type());
set_inst_override_by_type(“original_inst_path”,original_class_name::get_type(),target_class_name::get_type());
这两个函数存在于component中,并且一般需要在build_phase()中调用。

在这里插入图片描述第一个为全局替换,第二个为替换指定的路径,比如只替换master_agent中的类。
问题1:要将transaction中的da值约束为3
在这里插入图片描述
解决:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题2:
仅仅希望替换master_agent中sequencer中的transaction类型而不是整个平台的呢?
解决:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
UVM平台的重要性:在不改变原来平台的代码的情况下即可实现不同激励的产生。

五、事物级建模

5.1、什么是事物级建模

事物是一系列具有一定关系和功能的数据集合。
比如满足PCI协议的称为PCI事物,满足AMBA AXI协议的称为AMBA AXI事物。
是各个组件通信的基本单元。

5.2、从uvm_sequence_item扩展事物

例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3、UVM field automation机制

在这里插入图片描述
uvm_field_automation可以使用打印,复制,对比,记录,打包,解压等功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、UVM信息服务

6.1、信息服务机制

在这里插入图片描述

6.2、安全等级及信息行为

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、UVM configuration

7.1、什么是UVM configuration机制

在这里插入图片描述
configuration机制的特点:
1、半个全局变量,避免全局变量带来的风险
2、高层组件可以通过configuration机制实现在不改变代码的情况下更改它所包含子组件的变量
3、在各个层次上都可以使用configuration机制
4、支持通配符和正则表达式对多个变量进行配置
5、支持用户自定义的数据类型
6、可以在仿真运行的过程中进行配置

configuration的原理:
UVM configuration机制的实现由两部分组成
1、设置配置资源
2、获取配置资源

7.2、如何使用configuration

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用法1:
在这里插入图片描述
在这里插入图片描述
用法2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用法3:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
回顾过程:
在这里插入图片描述

八、UVM sequence机制

在这里插入图片描述

8.1、什么是UVM sequence机制

控制和产生一系列的事物,并将事物发送给driver的一套机制。

UVM sequence将事物的产生和驱动互相分离。

8.2、UVM sequence机制的原理

sequence机制在driver、sequenc、sequencer中完成。
在这里插入图片描述

8.3、如何使用UVM sequence机制

1、driver中实现 sequence机制:
在这里插入图片描述
2、sequencer中实现sequence机制:
UVM已经实现sequencer全部功能,只需要拿来实现即可。

3、sequence中实现sequence机制:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果不用uvm_do宏,使用上述分解步骤完成可实现同样功能。

8.4、如何启动sequence

有两种方法:1、默认default启动 2、手动启动
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一般使用方法2(手动启动)

8.5、sequence机制其他知识

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九、UVM TLM

在这里插入图片描述

9.1、什么是UVM TLM

TLM -Transaction Level Model事物级建模,用于组件之间通信。

9.2、为什么要使用TLM

建立专门的通信通道,避免通信出现混乱。
各个通道独立,互不影响。

9.3、UVM TLM原理

在这里插入图片描述

9.4、常用的UVM TLM port/import/export

在这里插入图片描述

T:该参数代表port所要传输的transaction的类型
TMP:指定所在的component
put():是一个task,可能会阻塞当前进程直到transaction传输成功。
try_put():是一个function,不会阻塞当前进程,不管transaction传输是否完成都会立刻返回。
can_put():是一个function,不会阻塞当前进程,不会发生transaction传输,只会检查对方是否准备好了接收。
*get():同理,传输变成接收。
port和import成对使用

uvm_put_port 支持 put(),try_put(),can_put()
uvm_blocking_put_port支持put()
uvm_nonblocking_put_port 支持 try_put(),can_put()
uvm_get_port 支持 get(),try_get(),can_get()
uvm_blocking_get_port 支持 get()
uvm_nonblocking_get_port 支持 try_get(),can_get()
在这里插入图片描述
export通常作为中间端口使用
在这里插入图片描述
示例:
在这里插入图片描述

9.5、普通TLM端口的使用方法(PUT、GET、FIFO)

1、PUT模式
lab08
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、GET模式
lab08-a
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、FIFO模式(在PUT基础上修改)
lab08-b
在这里插入图片描述
在这里插入图片描述

十、UVM analysis component

lab09
analysis component:1、reference model 2、scoreboard
在这里插入图片描述
实现步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、UVM callback

在这里插入图片描述

11.1、什么是UVM callback

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.2、如何使用UVM callback

在这里插入图片描述
在这里插入图片描述
lab10
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
前三步都为定义,第四步为实例化使用。
在这里插入图片描述
在这里插入图片描述
上图这个示例没有载入post_send方法(post_send也会执行),所有post_send没有任何功能。

十二、UVM Advanced

在这里插入图片描述

12.1、什么是UVM sequence library

在这里插入图片描述
sequence library其本质是一个sequence,相对于普通的sequence,sequence library有以下功能:
1、其他sequence可以想sequence library注册
2、可根据配置产生并且执行已经在其注册过的sequence
3、具有多种内嵌的选择sequence的算法
4、支持用户自定义的sequence选择算法
5、注册方式的多样化
在这里插入图片描述
向UVM sequence library永久注册sequence
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何将sequence临时添加到UVM sequence library中
在这里插入图片描述

临时注册方法1:在这里插入图片描述
上图为临时添加,在不同test中控制添加对应的sequence。
临时注册方法2:
在这里插入图片描述
在这里插入图片描述
sequence library内置的变量,作用是控制sequence library的行为
在这里插入图片描述
sequence library相关变量
在这里插入图片描述
例:
在这里插入图片描述
执行仿真
在这里插入图片描述
在这里插入图片描述
本技术在项目中使用较少。

12.2、什么是Virtual sequence

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:
在这里插入图片描述
与普通sequencer基本没区别
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
与普通sequence基本没区别
在env实例化它们并进行连接
在这里插入图片描述
在这里插入图片描述

十三、UVM寄存器抽象级-RAL

在这里插入图片描述

13.1、寄存器抽象级概念

问题:
在这里插入图片描述
寄存器抽象层:
在这里插入图片描述
在这里插入图片描述
backdoor比较简单
在这里插入图片描述

在这里插入图片描述

13.2、frontdoor实现?

在这里插入图片描述
在这里插入图片描述

1、建模工作在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来开始封装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、Adapter实现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、在env中实例化
在这里插入图片描述
在这里插入图片描述

4、connect在这里插入图片描述
在这里插入图片描述
5、API访问寄存器
在这里插入图片描述

13.3、寄存器模型的基本数据结构

在这里插入图片描述

14.4、寄存器模型API

1、read&write
在这里插入图片描述
2、peak&poke
在这里插入图片描述
3、randomize&update&mirror
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
read&write默认一般使用前3个参数,其他使用默即可

14.5、寄存器测试sequence和内建coverage

在这里插入图片描述
driver单方面驱动DUT,只能从monitor查看DUT。代码实现如下
在这里插入图片描述
在这里插入图片描述
内建coverage

在这里插入图片描述
在这里插入图片描述

UVM入门与进阶学习笔记1——UVM概述、类库地图、工厂机制、覆盖方法 目录验证方法学概述UVM的优势类库地图UVM核心类库工厂机制覆盖方法 前言:个人学习UVM的在线笔记。学习的过程中借鉴一些大佬的笔记和路科验证学习资料,只做个人学习交流使用,感谢! 验证方法学概述 UVM的优势 UVM融合其他验证方法学的积极意义在于,打通了各个EDA公司和IC设计公司的验证技能通道,便于验证技术交流和人才流动,也方便IC设计公司的技术及工具选择。用户不再受限于使用何种仿真器、使用哪一家的验证IP,而只需要将主要精力着眼于设计的功能验证,由此也提升了验证效率。 SV核心特性包括面向对象 阅读详情

相关推荐

UVM_1:UVM介绍

UVM是IC验证方法学的一种,可以结合验证语言SystemVerilog使用。主要结合验证平台搭建和测试用例编写进行介绍。(最近在学UVM相关内容,整理笔记仅供参考)

weixin_45159924的博客 5059

UVM简介

UVM为硬件设计的验证提供了一个完整的框架和一组规范,旨在提高验证工程师的生产力,降低验证任务的复杂性,并促进团队间的协作。在 UVM(Universal Verification Methodology)中,Agent、Monitor、Driver 和 Sequencer 是用于硬件验证的重要组件,它们通常在环境(Environment)中被使用,协同工作以完成对设计(DUT)的验证任务。通过将测试过程分为不同的阶段,UVM 可以更好地控制测试台架的执行流程,确保每个组件在合适的时机执行相应的任务。

凳子花❀的博客 6057

uvm入门学习笔记(2)

UVM入门学习笔记

2301_81405032的博客 2174

UVM 一文全概括

针对MCDF中sv 代码转换成 UVM 代码的比对,理解UVM代码,方便调试。

zhy07321517526的博客 6383

UVM sequence 笔记

sequence sequence基础 剥离激励的原因 这样带来的一个最大的问题就是gen_pkt函数的重复定义,显然这样是不允许的。为了避免重复定义,有两种策略:第一种是 使用虚函数。将代码清单6-3中的gen_pkt定义为virtual类型,然后在建造CRC错误的测试用例时,从my_driver派生一个新的 crc_err_driver,并重载gen_pkt函数。但是这样新的问题又出现了,如何...

bikan7287的博客 787

uvm 形式验证_UVM入门学习笔记(一)

1.开坑宣言之前在学校做的一个项目需要搭验证环境。由于我们作为学生基本都没有接触正儿八经验证框架的经验,而我作为唯一略了解一点systemverilog的人,就根据学长的验证框架写了个简单的bfm。后来在秋招面试过程中被反复问及我们的验证框架如何确保验证覆盖率,每次都只能回答“增加多个测试序列。。。”。所以最近秋招基本结束后想着补充一下UVM验证相关的知识,即使不是验证工程师,也是数字IC前端该了...

weixin_35133182的博客 6161

UVM实战笔记简介

UVM实战笔记简介 【下载地址】UVM实战笔记简介 《UVM实战笔记》是一份专注于UVM(通用验证方法学)的实用指南,旨在帮助读者深入理解UVM的核心概念与实战技巧。笔记内容涵盖UVM源代码的截图分析、《UVM实战(卷1)》中的实例讲解,以及《uvm1.1应用指南及源代码分析》的详细解读。通过结合这些资源,读者可以更好地...

gitblog_06739的博客 407

uvm入门学习笔记(1)

UVM入门学习

2301_81405032的博客 1220

uvm 学习笔记(目录)

uvm 学习笔记

布拉奇的博客 137

《UVM实战》学习笔记1

验证平台的组成 激励模块:driver 计分板:scoreboard 收集DUT输出:monitor 预期参考模型:Reference model 其他概念:agent、sequence 1、driver模块 class my_driver extends uvm_driver; function new(string name = "my_driver", ...

weixin_39565666的博客 3483

【UVM学习笔记】UVM基础—一文告诉你UVM的组成部分

该专题用于记录学习UVM芯片验证的过程,主要学习书籍为经典的《UVM实战》,同时也会去进行一些UVM的项目联系。

Sn_Mn的博客 2021

【UVM学习笔记】UVM中的“类”

该专题用于记录学习UVM芯片验证的过程,主要学习书籍为经典的《UVM实战》,同时也会去进行一些UVM的项目联系。本次描述了在上一节定义的众多组件的详细介绍,能够让我们更加深刻的了解UVM各组件之间的协调运转。

Sn_Mn的博客 1087

simulink求解器选择的小tip

给出了simulink选择求解器的一种tip,与积分初值有关。

高能阿博特的博客 2055

UVM入门笔记学习(3)

组件连接时数据通信的机制就是TLM,换句话来说,TLM就是各种模块通道的模型。TLM:事务级建模。作用:为组件间的通行建立通道,确保数据流能够稳定运行,可以避免混乱。port端口:发送数据的端口// 三个关联方法 :put (), try_put() ,can_put().//支持put()//支持try_put() ,can_put()//支持get()

2301_81405032的博客 1153

星网宇达Newton-M2设备安装及配置

主要介绍了星网宇达Newton-M2设备的配置过程

weixin_49353445的博客 2677

AHB总线协议

1. 简介         AHB总线规范是AMBA总线规范的一部分,AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内

ivy_reny的专栏 8万+

UVM笔记1

主要是我在看《UVM实战 卷一》的一些笔记。 1.什么是 `uvm_component_utils 这是一个宏,而且是无参数的宏。作用是注册新类,目的是为了兼容各种仿真工具。类似的宏,还有`uvm_object_utils。 class A extends uvm_component; `uvm_component_utils(A); ... endclass 2.什么是A::type_id::create 首先A是自定义的一个类,这里相当于创建一个A类的对象。 A_...

Junluoyu的博客 460

点云结构面智能识别与裂隙网络分析系统

点云结构面智能识别系统摘要 本系统采用深度学习与传统几何算法融合的方法,实现岩石结构面的智能识别与分析。系统包含7个核心模块:点云预处理、结构面识别、分组分割、参数计算、粗糙度分析、裂隙网络生成和可视化。技术路线结合PointNet++深度学习架构与RANSAC、区域生长等传统算法,通过预处理→深度学习识别→几何精修→参数计算→网络构建的流程实现高精度分析。预处理模块实现点云降噪、下采样和法向量估计,深度学习模块基于改进的PointNet++架构进行特征提取和分类。系统支持多种点云格式输入,提供完整的结构面

huanghm88的专栏 346

UVM学习笔记记录Day3

function new、build_phase和main_phase、virtual、uvm_tset_top、宏的分号

weixin_44357763的博客 862

YOLO系列专栏(五):YOLO26 模型部署实战 | 从训练完成到落地应用(CPU/GPU/移动端)

训练好的YOLO26模型,本质上是一个权重文件(.pt格式),无法直接在实际场景中使用——不同应用场景需要不同格式的模型(如ONNX、TensorRT、TFLite),不同设备(CPU/GPU/移动端)的部署方式也截然不同。在保证模型精度基本不变的前提下,最大化提升推理速度,适配不同硬件设备。如果部署不当,会出现以下问题:❌ 推理速度慢:CPU部署单帧推理耗时超过100ms,无法满足实时检测需求(如监控、自动驾驶);❌ 模型格式不兼容:直接使用.pt权重文件,无法在移动端、嵌入式设备上运行;

qq_36130719的博客 632

快速入门必看!RT-DETR手把手训练自己的数据集去跑实验,基于 ultralytics 仓库源码改进,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。

本文介绍了使用Ultralytics框架训练RT-DETR模型的全流程。首先需要创建Python 3.10虚拟环境,安装指定版本的PyTorch和相关依赖包。然后准备数据集,修改配置文件,并详细介绍训练、验证和推理三个核心步骤的代码实现。训练阶段使用RTDETR类加载模型配置,设置训练参数;验证阶段评估模型性能;推理阶段可对图片、视频等进行预测。文中还提供了清华大学镜像源加速下载,以及详细的参数配置说明,帮助用户快速搭建RT-DETR目标检测模型。

Ai缝合怪、助力小伙伴高效发论文 5564

UVM学习笔记

UVM学习笔记 去发现同类优质开源项目:https://gitcode.com/ 这里是关于UVM(Universal Verification Methodology)的学习笔记,旨在帮助理解UVM的基本概念、组件以及在实际项目中如何应用UVM进行验证。 本笔记详细记录了UVM的学习过程,从基础环境搭建、关键类和组件的介绍,到实际的验证案例,全方位为您讲解UVM的要点和技巧。 内容涵盖:UVM...

gitblog_06762的博客 284

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

Google Play上架:谷歌2024年5月份审核政策改动,审核强度逐步提升

专业解决各种上架过包问题,专业团队专业处理 3188

UVM入门学习笔记(4)

UVM入门学习

2301_81405032的博客 2373

LSTM+Transformer混合模型时间序列预测实战教学

LSTM+Transformer混合模型时间序列预测实战教学 毕业设计

8220

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 数字成像系统笔记
dullhero
博客等级 码龄16年 45粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值