前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我眼中的UVM |08.virtual_sequece和virtual_sequencer

我眼中的UVM |08.virtual_sequece和virtual_sequencer

作者头像
用户10108023
发布于 2022-10-28 08:35:00
发布于 2022-10-28 08:35:00
47700
代码可运行
举报
运行总次数:0
代码可运行

08

我眼中的UVM

写在前面的话

嗨,屏幕前的你还好吗?我是不二鱼,一个不喜欢写技术博客的IC验证工程师,写这个系列,是需要很大的勇气的,因为,写得人很多,但写得好的不多,我也是如此。我一个菜鸡,敢写UVM(应该也不止UVM,我尽量把其他知识杂糅进去),我是疯了吗?至今能有比张强老师写得好的估计也没有,我之所以写,是为了促进自己进步,换了一个新的环境,使用UVM也是日常必备,所以,以写促学,写一写我眼中的UVM,我希望将自己在工作当中遇到的困惑和思考,和大家分享。也希望能和大家一起学习,相互成就,如有错误,欢迎私信我批评指正

在《UVM实战》这本书中,一直说virtual_sequence/sequencer都不是真正的sequence和sequencer,都是起到一个调度的作用。virtual_sequence的出现,是为了调度各种各样的sequence,而作为配套设施出现的virtual_seqencer同样也是为了处理由virtual_sequence发送过来的各类sequence,并且发送到真正的sequencer去。

那么多的sequence,到底是怎么通过virtual_sequence发送到virtual_sequencer,再发送到验证环境当中去的,是不是所有的sequence都要发给virtual sequencer中的某个具体的sequencer,不知道你是否有这样的疑问。

在virtual_sequence中,会看到例化很多的seq,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class fish_virtual_sequence extends uvm_sequence;
  fish_clock_sequence  fish_clk_seq;
  fish_reset_sequence  fish_rst_seq;
  fish_data_sequence   fish_data_seq;
  ......
endclass

同样,在virtual_sequencer中会例化很多sqr,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class fish_virtual_sequencer extends uvm_sequencer;  fish_clock_sequencer  fish_clk_sqr;  fish_reset_sequencer  fish_rst_sqr;  fish_data_sequencer   fish_data_sqr;  ......endclass

问题来了,seq是怎么发送到对应的sqr的?这时候就要用到一个很重要的宏定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`uvm_declare_p_sequencer(fish_virtual_sequencer)
//这相当于实例化了一个fish_virtual_sequencer
fish_virtual_sequencer p_sequencer

之后再通过`uvm_do_on或者`uvm_do_with将seq发送给相对应的sqr,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`uvm_do_on(fish_clk_seq,p_sequencer.fish_clk_sqr);
`uvm_do_on(fish_rst_seq,p_sequencer.fish_rst_sqr);
`uvm_do_on(fish_data_seq,p_sequencer.fish_data_sqr);

以上都是很常规的用法,中规中矩。现在回到上面的问题,是不是所有的sequence都要发给virtual sequencer中的某个具体的sequencer,一一对应呢?比如上面的fish_clk_seq,发给fish_clk_sqr。

答案是否定的。

在UVM的环境中,可能存在下面这种情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`uvm_do_on(fish_config_seq, p_sequencer)

可以看到,并没有指定具体的sequencer接收fish_config_seq,virtual_sequencer中也没有对应的config_sequencer。这是因为,对于一些配置类的seq,或者是某些特殊的seq,并不需要具体的sqr接收,也不需要发送到dut,只是为了进行配置,或者生成某些文件。比如生成.hex、.txt类型的数据文件,进行后门访问,通过其他路径发送激励,它的生命周期,到p_sequencer就停止了。

好了,今天的分享就到这里了,个人愚见,希望对你的学习有一点帮助。持续更新,欢迎关注。觉得有帮助的朋友,希望能够点个赞鼓励一下!!你的每个鼓励都是我持续创作的动力!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不二鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一篇新鲜出炉IF10+Q1的空间转录组数据挖掘文章
Note:这个地方文章中其实还缺少一块,没有提到数据是否进行了整合分析以及是否去批次。文章提供的代码是没有合并在一起分析的,但是文章的空转的图又都是使用同一个cluster编号表示聚类结果(先不管了)
生信技能树
2025/04/07
1730
一篇新鲜出炉IF10+Q1的空间转录组数据挖掘文章
绝大部分单细胞空间转录组数据都缺胳膊断腿
比如2021-GSE158328-肠道发育的,自己下载 GSM4797916_A1.tar.gz ,然后解压可以看到它每个样品其实有两个文件夹 :
生信技能树
2024/02/27
3760
绝大部分单细胞空间转录组数据都缺胳膊断腿
10x的空间单细胞文件格式详解
值得注意的是10x的空间单细胞使用的是Space Ranger,软件下载以及数据库文件压缩包下载:
生信技能树
2024/01/04
6060
10x的空间单细胞文件格式详解
单细胞空间转录组分析流程学习(一)
常用于存储基因表达矩阵的位置信息或细胞/位置的元数据。 例如,tissue_positions_list.csv 文件包含每个条形码的位置坐标、在组织切片上的位置、组织的像素坐标等信息,用于在空间图像上定位每个点。
凑齐六个字吧
2024/10/17
2000
单细胞空间转录组分析流程学习(一)
STUtility || 空间转录组多样本分析框架(一)
空间转录组学是一种通过结合基因表达数据和显微图像数据来可视化和定量分析组织切片中转录组定量的方法。在前几期的文章中,我们主要讲述的是单个空间转录组样本的分析,今天要讲的是如何分析多张切片。处理过单细胞转录组的同学不会忘记,多样本分析和单样本是多么的不同。在空间这里关键的一点是多个图像的处理(对齐)。STUtility的开发者Ludvig Larsson和Joseph Bergenstrahle是Joakim Lundebergs教授团队的博士生,该团队是空间转录组技术(ST)的最初发明者,后来被10X Genomics收购。团队工作室位于瑞典斯德哥尔摩的生命科学实验室(SciLifeLab)。为了给大家一个宏观的视角,来看看人家的实验室是怎样的:
生信技能树jimmy
2021/02/08
1.4K0
Seurat新版教程:分析空间转录组数据(上)
随着转录组技术的发展,空间转录组已经正式走向商业化时代,作为单细胞数据分析的工具箱的Seurat与时俱进,也相应地开发了空间转录组分析的一套函数,让我们跟随卑微小王看看Seurat官网教程吧。
生信技能树jimmy
2020/03/27
5.5K0
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
在空间转录组|数据读入,标准数据形式外,还有哪些"天残地缺"可以读取提到了多种形式的数据读取,在原函数Load10X_Spatial的基础上进行了 “简陋”的修改,添加一些判断使之可以读取上文提到的多种数据形式。
生信补给站
2023/08/25
1.6K10
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
Seurat新版教程:分析空间转录组数据(上)
随着转录组技术的发展,空间转录组已经正式走向商业化时代,作为单细胞数据分析的工具箱的Seurat与时俱进,也相应地开发了空间转录组分析的一套函数,让我们跟随卑微小王看看Seurat官网教程吧。
生信技能树
2021/10/21
5.4K0
Seurat新版教程:分析空间转录组数据(上)
python读取空间转录组数据
上一期我们学习了使用python读取不同的单细胞数据:python版读取不同的单细胞数据格式(单样本与多样本),今天来看看使用python读取空间转录组的数据。
生信技能树
2025/03/06
1180
python读取空间转录组数据
空间转录组|数据读入,标准数据形式外,还有哪些"天残地缺"可以读取
空间转录组测序可以同时获得细胞的空间位置信息和基因表达数据,虽然囿于当前单个spot的精度问题,但是在组织细胞功能,肿瘤生物学、发育过程等需要空间位置的研究领域仍然可以提供很多非常有价值的东西。
生信补给站
2023/08/25
1.5K0
空间转录组|数据读入,标准数据形式外,还有哪些"天残地缺"可以读取
单细胞空间转录组分析流程学习(二)
本次使用GSE217414数据,包含4个结直肠癌肝转移患者样本数据,这个数据集的数据整理的挺好的,都做了归类。
凑齐六个字吧
2024/10/18
1561
单细胞空间转录组分析流程学习(二)
各种单细胞表达量矩阵和空间信息的导入
老实说,过去的三年虽然说我一直在朋友圈刷到有空间单细胞的cns文章,但我实际上是瞧不起这个技术的。首先它仅仅是给大红大紫的单细胞转录组续命而已,其次它根本就不是真正的单细胞水平,所以绝大部分数据分析哦度非常粗糙,仅仅是蹭热点。。。。
生信技能树
2024/01/17
6340
各种单细胞表达量矩阵和空间信息的导入
Github代码文献复现之卵巢和子宫内膜癌(五)|| 数据合并, 标准化、特征选择以及聚类
今天继续来学习他的代码wiki上的:https://github.com/RegnerM2015/scENDO_scOVAR_2020/wiki
生信技能树
2025/03/03
950
Github代码文献复现之卵巢和子宫内膜癌(五)|| 数据合并, 标准化、特征选择以及聚类
画出像烟花一样的单细胞umap图,原因竟然是?
GSE125527数据:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE125527。
生信技能树
2025/02/05
1710
画出像烟花一样的单细胞umap图,原因竟然是?
scanpy读取空转Visum HD数据&基础分析
上一期我们学习了使用python读取单细胞和空转数据(10X visum低分辨率):
生信技能树
2025/03/06
4560
scanpy读取空转Visum HD数据&基础分析
一篇单细胞文献复现及代码部分更新
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE151177
生信菜鸟团
2023/12/14
1.7K0
一篇单细胞文献复现及代码部分更新
空间转录组实战01: SpaceRanger定量
https://support.10xgenomics.com/spatial-gene-expression/software/downloads/latest
生信探索
2023/03/05
1.3K0
空转第三节课多样本整合的补充2(python版本)
Visium slide serial number. Refer to the Slide Parameters for information on supported slide versions. Required unless --unknown-slide is passed.
追风少年i
2023/10/03
8722
空转第三节课多样本整合的补充2(python版本)
scanpy教程:空间转录组数据分析
我们知道没有一个细胞是孤立的,而细胞之间的交流又不能打电话,所以相对位置对细胞的分化发育起着极其重要的作用。在生命的早期,单个细胞的命运是由其位置决定的。长期以来,由于技术的限制我们很难高通量地同时获得组织中的位置信息及其状态。2019年以来,这种情况借助高通量技术得到了商业化的解决。正如我们之前介绍过的:
生信技能树jimmy
2021/01/12
6.5K0
scanpy教程:空间转录组数据分析
鼻咽癌患者肿瘤部位和外周血的单细胞组成差异
在单细胞大行其道的近两年,我也安排了学徒们做了几百个有表达量矩阵可以下载的单细胞转录组文献图表复现,挑选其中100个成功的案例,提供代码给大家,希望对大家有帮助!
生信技能树
2021/04/29
1.1K0
鼻咽癌患者肿瘤部位和外周血的单细胞组成差异
推荐阅读
相关推荐
一篇新鲜出炉IF10+Q1的空间转录组数据挖掘文章
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验