imtoken国际钱包下载|urg

作者: imtoken国际钱包下载
2024-03-07 21:42:22

VCS覆盖率使用详解(基础、合并、查看、分析)_如何打开覆盖率分析-CSDN博客

>

VCS覆盖率使用详解(基础、合并、查看、分析)_如何打开覆盖率分析-CSDN博客

VCS覆盖率使用详解(基础、合并、查看、分析)

最新推荐文章于 2024-03-06 16:28:06 发布

messi_cyc

最新推荐文章于 2024-03-06 16:28:06 发布

阅读量2.3k

收藏

50

点赞数

6

文章标签:

DC

fpga开发

原文链接:https://zhuanlan.zhihu.com/p/620471082

版权

覆盖率选项

通常我们对项目只编译一次,然后进行多次仿真,那么生成的回归结果目录下(也即编译目录),关于覆盖率主要包含两部分信息:

1、编译设计及环境信息(包含设计层次的hierarchy信息)

该信息包含在使用编译选项-cm_dir指定的xxx_compile_path路径下的xxx.vdb中,参考编译命令如下:

vcs -cm line+tgl \

-cm_dir xxx_compile_path/xxx.vdb \

-f xxx_path/xxx.fl \

-l xxx_compile_path/xxx_compile.log

简单解释如下:

-cm line+tgl :表示收集代码行覆盖率和翻转覆盖率,除此之外还有cond|fsm|branch|assert

-cm_dir xxx_compile_path/xxx.vdb:指定生成的编译设计及环境信息的路径和名称

-f xxx_path/xxx.fl:指定吃进去的设计和验证环境文件列表

-l xxx_compile_path/xxx_compile.log: 指定生成的编译日志的路径和名称

通常这里的xxx_compile_path也就是regression的回归路径。

2、仿真及覆盖率信息

会有多个测试用例所对应的目录(学习过python课程中最后一个项目的同学应该知道我在说啥),每个测试用例的结果目录里都有对应的覆盖率信息,并且这些覆盖率信息包含在xxx.vdb目录中。

参考仿真命令如下:

simv -cm line+tgl \

-cm_dir xxx_compile_path/xxx_testcase_path/xxx.vdb \

-cm_name xxx_test_name \

-cm_test xxx_compile_path/xxx_testcase_path/xxx_test_name \

-l xxx_compile_path/xxx_testcase_path/sim.log

简单解释如下:

-cm line+tgl :表示收集代码行覆盖率和反转覆盖率

-cm_dir xxx_compile_path/xxx_testcase_path/xxx.vdb:指定生成的仿真覆盖率信息的路径和名称

-cm_name xxx_test_name :用于指定覆盖率信息在simv.vdb文件中的所在目录名称

-cm_test xxx_compile_path/xxx_testcase_path/xxx_test_name :类似-cm_name,后面会解释

-l xxx_compile_path/xxx_testcase_path/sim.log: 指定生成的仿真日志的路径和名称

默认情况下VCS会在仿真目录./simv.vdb/snps/coverage/db/testdata下产生以下xml后缀文件来指示覆盖率信息:

line.verilog.data.xml 用于指示 line coverage

fsm.verilog.data.xml 用于指示 FSM coverage

cond.verilog.data.xml 用于指示 condition coverage

tgl.verilog.data.xml 用于指示 toggle coverage

branch.verilog.data.xml 用于指示 branch coverage

但是也可以通过-cm_name配合-cm_test来指定在./simv.vdb/snps/coverage/db/testdata/xxx_test_name下产生上述覆盖率xml文件,这样当在同一个用例下进行仿真时,就可以通过不同的目录名字来区别每次仿真带来的覆盖率信息的不同,这样就可以知道某个信号的覆盖率是该测试用例下哪次仿真产生的(通常不同seed来仿真同一个测试用例)。

简单说,就是如果要在同一个case跑不同seed且要区分每次不同seed仿真的覆盖率信息的话,需要使用到编译选项-cm_name和-cm_test。

合并覆盖率

接着上面,如果要合并一次回归仿真的覆盖率,需要使用如下命令进行合并:

urg -dir xxx_compile_path/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path1/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path2/xxx.vdb \

...

-dir xxx_compile_path/xxx_testcase_pathN/xxx.vdb \

-dbname simv_merge.vdb

可以看到这里将一次回归中的多个仿真用例下的xxx.vdb进行了合并,最终得到了合并后的覆盖率信息simv_merge.vdb。

如果不想产生urgReport的话,可以加上-noreport选项。

如果是合并两次回归之后的simv_merge.vdb,则可以使用如下命令进行:

urg -dir xxx_path1/xxx_simv_merge1.vdb \

-dir xxx_path2/xxx_simv_merge2.vdb \

-dbname simv_merge.vdb

如果vdb文件很多的话,也可以通过指定filelist来合并:

urg -f xxx_path/xxx_vdb.fl \

-dbname simv_merge.vdb

有时候我们需要把两个不同的仿真环境的覆盖率进行合并,而且只是将其中一个环境中的某个模块的覆盖率合并到另一个,比如常见的模块级IP验证的覆盖率合并到SOC环境的整体覆盖率中,如图:

把右边的md3模块的覆盖率合并到左边的在mod1中例化的md3a和md3b模块中,可以参考使用如下命令:

urg -dir top1.vdb tbblk.vdb -map md3

这样就把tbblk模块中例化的md3子模块的覆盖率合并到左边的top1模块下的覆盖率中去了。

查看覆盖率

合并完之后,可以使用如下命令打开图形界面进行查看:

dve -cov -dir simv_merge.vdb &

如果要打开某一次回归中的某个测试用例产生的覆盖率,则使用如下命令来打开:

dve -cov \

-dir xxx_compile_path/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path1/xxx.vdb

这里的第一个-dir是为了读取编译设计及环境信息(包含设计层次的hierarchy信息)。

但是我想知道是哪个测试用例对特定的信号覆盖率进行覆盖,怎么办?

或者说,我想知道该测试用例对于提升覆盖率有没有帮助,帮助提升在哪了,或者我想把对覆盖率提升没有帮助的测试用例删除,想实现上述目标需要确切的知道覆盖率信息是由哪个测试用例带来的。

可以使用如下命令:

urg -dir xxx_compile_path/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path1/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path2/xxx.vdb \

...

-dir xxx_compile_path/xxx_testcase_pathN/xxx.vdb \

-dbname simv_merge.vdb \

-show tests

然后使用命令:

urg -dir simv_merge.vdb -grade testfile

此时会在当前目录的urgReport下产生一个gradedtests.txt文件,来告诉你测试用例对提升覆盖率的贡献排名,这样你就可以更方便的管理你写的测试用例。

然后使用如下命令打开Verid来查看:

verdi -cov -covdir simv_merge.vd

然后选中你想看的覆盖率类型,包括line/toggle/FSM/Condition/Branch/Assert,然后选中想看的目标,比如某行代码或者某个信号,然后右键选择show associated tests,即可在左下角的Test List窗口查看到是哪个测试用例对其进行的覆盖。

小结

一般情况下,掌握以上内容就足够了,实际工作中遇到具体细节问题再查看使用手册解决就好。

 

优惠劵

messi_cyc

关注

关注

6

点赞

50

收藏

觉得还不错?

一键收藏

知道了

1

评论

VCS覆盖率使用详解(基础、合并、查看、分析)

但是也可以通过-cm_name配合-cm_test来指定在./simv.vdb/snps/coverage/db/testdata/xxx_test_name下产生上述覆盖率xml文件,这样当在同一个用例下进行仿真时,就可以通过不同的目录名字来区别每次仿真带来的覆盖率信息的不同,这样就可以知道某个信号的覆盖率是该测试用例下哪次仿真产生的(通常不同seed来仿真同一个测试用例)。可以看到这里将一次回归中的多个仿真用例下的xxx.vdb进行了合并,最终得到了合并后的覆盖率信息simv_merge.vdb。

复制链接

扫一扫

芯片验证自学-IC验证学习,覆盖率vdb文件怎么合并

小白蒋-材料转行芯片验证

01-14

2521

比如 A case的覆盖率文件为 a.vdb,B case的覆盖率文件为 b.vdb,那么可以用下面指令合并生成新的覆盖率文件 merge.vdb。在用vcs仿真完成后,每个case都保存了覆盖率,怎么把多个case的覆盖率vdb文件进行合并。

vcs工具,使用手册,编译仿真参数

01-12

vcs tool

1 条评论

您还未登录,请先

登录

后发表或查看评论

数字验证覆盖率收集用户手册

11-24

数字验证覆盖率收集用户手册

VCS仿真和多个test用urg工具生成coverage文件verdi查看--转载

铁憨憨的博客

12-29

7829

VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。我呢,因为运用都是简单的非mix language,所以经常用一步法,因为这样省劲,但是对于跑regression最好还是两步法。VCS对应的waveform工具有DVE和Verdi, DVE因为是原生的,所以VCS对DVE非常友好。但DVE已经过时了,其对uvm等新feature支持的不好。Verdi是Debussy公司的产品,现在已被Synopsys收购并着力发展,说以Verdi是未来的潮流。所以此文的dump fsdb波形

vcs/urg 进行覆盖率coverage merge及部分merge到整体

热门推荐

cy413026的博客

02-20

1万+

目录

1.vcs收coverage基本Option

2.相同代码的merge

3.部分merge到整体

3.1 mapfile

3.2 -map使用语法

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH

coverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf

还可以参考gsithxy的博文[VCS]Condition Coverage收不全的问题及解法该文给出了vcs收覆盖率的o...

Linux下gcov和lcov代码覆盖率分析(C/C++覆盖率在NGINX测试中的应用)

突破进取务实创新,自信源自实力

05-30

4558

Linux下gcov和lcov代码覆盖率分析方法

gcov是Linux下GCC自带的一个C/C++代码覆盖率分析工具

使用方法:在gcc或者g++后面添加参数 -fprofile-arcs -ftest-coverage

注意:-fprofile-arcs -ftest-coverage必须同时在编译器和链接器上设置,(makefile里面可以加在 CFLAGS 和 LDFLAG

Python脚本覆盖率分析方法介绍

weixin_34380296的博客

05-06

203

背景

Python凭借其面向对象的特点,清晰简洁的语法以及丰富而强大的类库,已经在越来越多的应用领域中获得了青睐。

测试工作中涉及的Python脚本也越来越多,这就产生了通过统计的覆盖率来衡量测试效果的需求,

二进制程序可以使用BullseyeCoverage进行覆盖率分析,Python脚本是否也有比较好的工具来进行覆盖率分析呢,这里介绍一个针对python脚本的覆...

VCS查看代码覆盖率(行、状态机、翻转、条件、分支覆盖率等)

毕淑敏曾说过:“我不相信命运,我只相信自己的手;我不相信手掌上的纹路,但我相信手指加上手掌的力量”。在这个快节奏的社会,只有自己能力不足才会被卷,踏踏实实沉下心来学一些技术,及时记录,方便以后复盘。

07-07

1万+

VCS在统计代码覆盖率的过程中,需要在编译和仿真命令上添加对应的开关命令,生成.vdb文件记录覆盖率情况,再使用dve打开该文件进行查看覆盖率。

代码覆盖率检查

Shu_0223的博客

05-15

1200

编译时加入命令:

-cm line+tgl+cond+branch+assert+fsm -cm_line contassign -cm_tgl mda

run时加入命令:

-cm line+tgl+cond+branch+assert+fsm -cm_name $(case)

-cm_name $(case) 在查看多个case的覆盖率时必须加,否则产生的新的覆盖率文件会被覆盖掉

最后执行

dve -cov-covdir simv.vdb &

...

VCS基本选项命令介绍

布拉奇的博客

02-28

2217

VCS 基本命令选项

coverage merge小技巧

weixin_44582960的博客

01-14

1581

一个coverage merge小技巧

分享一个coverage merge小技巧,在群里经常看到有小伙伴问改了代码之后coverage能不能merge。今天带大家来看看这个问题。

在下面代码里面有三个实例,分别是dut,cnt1,cnt2.

我们生成第一版coverage simv1.vdb

然后我们改动arb_module里面的内容,生成第二版的coverage simv2.vdb

现在我们merge 看看会发生什么事情。

使用urg -dir simv1.vdb simv2.vdb -dbnam

VCS使用中文教程,vcs怎么使用,LINUX

09-10

vcs中文使用教程,帮助你快速入门Linux下的VCS操作

使用工具查看RTL代码覆盖率.docx

07-03

现在大部分公司做数字芯片开发都需要用到Verilog,在RTL 代码即将完成时,有必要使用vcs + DVE去查看经过仿真后的CASE代码覆盖率,保证代码本身是没问题的。

使用vcs配合vivado进行仿真

05-11

使用vcs配合vivado进行仿真

SOC设计:关于reset的细节

最新发布

seuwilson的博客

03-06

316

SOC设计:关于reset的细节

FPGA-基于SPI接口的ADC芯片功能和接口时序介绍

weixin_46897065的博客

02-26

1218

像我们生活中常见的温度、湿度、电压、电流这些能够用连续变化的物理量所表达的信息,都属于模拟信号;而数字信号,则是在模拟信号的基础上,经过采样、量化和编码而形成的,也就是由许多个0和1组成的信号。围: ADC作为模拟转数字的器件,其能够进行转换的模拟信号的范围总是有限的,而且一般不高。比如ADC0809,其能够进行转换的模拟电压范围就是0~5V,超出这个范围的模拟电压, ADC0809就不能将其转换为准确的数字信号。例如, 8位分辨率,就是可以将模拟信号量化为一个8位的数据,数值范围就是0~255。

FPGA——三速自适应以太网设计(2)GMII与RGMII接口

Treasureljc的博客

03-06

321

只在时钟的上升沿通过RGMII接口处理低四位,下个时钟上升沿再处理高四位。所以在上升沿和下降沿都输入输出同一个数据就行。输入和输出的时候,GMII的8位数据,先在时钟上升沿通过RGMII接口处理低四位,再在时钟的下降沿继续处理高四位。RGMII:ETH_RXCTL线同时表示有效和错误,有效和错误位相异或得到。GMII:发送端时钟由MAC端提供。下降沿变化数据,上升沿采集数据。

基于状态机的按键消抖原理

hhh123987_的博客

03-01

800

以按键消抖为例,学习状态机分析

vcs覆盖率合并的命令

06-06

如果你是在使用VCS版本控制工具(如Git)的情况下进行覆盖率测试,并生成了多个覆盖率报告文件,可以使用VCS提供的命令来合并这些报告文件。

以Git为例,假设你已经在本地生成了多个覆盖率报告文件,可以按照以下步骤进行合并:

1. 运行以下命令将所有报告文件合并到一个新分支中:

```

git checkout -b coverage

git merge --no-commit --no-ff ...

```

其中,``、``等代表包含覆盖率报告文件的分支。

2. 运行以下命令将所有报告文件合并到一个文件中:

```

git diff --binary HEAD^ HEAD -- | git apply

```

其中,``代表覆盖率报告文件的路径。

3. 运行以下命令将合并后的报告文件提交到新分支:

```

git add

git commit -m "Merge coverage reports"

git push origin coverage

```

其中,``代表覆盖率报告文件的路径,`coverage`代表新分支的名称。

以上命令可以将多个覆盖率报告文件合并到一个文件中,并提交到一个新分支中,方便查看和分析测试覆盖率数据。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

messi_cyc

CSDN认证博客专家

CSDN认证企业博客

码龄13年

暂无认证

3

原创

17万+

周排名

38万+

总排名

28万+

访问

等级

2296

积分

99

粉丝

110

获赞

17

评论

1012

收藏

私信

关注

热门文章

verilog中for语句使用

24505

C语言assert()函数用法总结

19141

verilog实现乘法器

18841

关于AXI总线乱序传输的问题

10335

介绍几种常用的插值方法以及代码-双三次插值

10309

最新评论

VCS覆盖率使用详解(基础、合并、查看、分析)

云辰夜雨:

dve -cov \

-dir xxx_compile_path/xxx.vdb \

-dir xxx_compile_path/xxx_testcase_path1/xxx.vdb

一个case对应一个vdb的情况下,直接dve -cov -dir xxx.vdb即可吧?

跨时钟域处理方法总结--最终详尽版跨时钟域处理--最终详尽版

nihaoupf:

我的看法是,采样信号adat 在拉高到1(或下降到0)後保持經過三個bclk 的edge,這樣的話就是保持了3個半週期共1.5週期。

如果遇到你說的情況就是采样信号拉高到1(或下降到0)的瞬間剛好是遇到bclk的rise 就會是rise-fall-rise一個bclk 週期(如果兩個rise edge沒有滿足setup time有機率出錯?)

但如果是遇到fall-rise-fall就沒問題。

總之這個方法可以讓adat 保持至少1-1.5 bclk週期,從而讓bclk能夠正確采样。

跨时钟域处理方法总结--最终详尽版跨时钟域处理--最终详尽版

qq_40076353:

《一般要求在接收时钟域中采样信号要保持三个时钟边沿的时间("three edge" requirement),》。 疑问: 三个时钟边沿,一个上升沿一个下降沿再来一个上升沿,这是1个采样时钟的周期,并非1.5吧?

[PCIe] [电源管理] 面向硬件的ASPM链路状态和L1子状态

qq_43516521:

请问这篇文章的引用资料是哪本书,谢谢大神

关于后仿我知道得不多

写的详细的IC小白:

-sdf min|typ|max:instance_name:file.sdf

请问min|typ|max是什么意思啊?具体打出指令是什么样的

最新文章

Read Completion Boundary (RCB)切分规则

VESA DSC简单解析

sensor 感光原理和输出格式,sensor图像采集原理

2024年3篇

2023年7篇

2022年8篇

2021年8篇

2020年1篇

2018年12篇

2017年46篇

2014年1篇

目录

目录

最新文章

Read Completion Boundary (RCB)切分规则

VESA DSC简单解析

sensor 感光原理和输出格式,sensor图像采集原理

2024年3篇

2023年7篇

2022年8篇

2021年8篇

2020年1篇

2018年12篇

2017年46篇

2014年1篇

目录

评论 1

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义_ack phs-CSDN博客

>

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义_ack phs-CSDN博客

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义

最新推荐文章于 2022-07-07 09:55:47 发布

宛和

最新推荐文章于 2022-07-07 09:55:47 发布

阅读量6.7w

收藏

77

点赞数

21

分类专栏:

工作相关

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/wudiyi815/article/details/8505726

版权

工作相关

专栏收录该内容

18 篇文章

0 订阅

订阅专栏

TCP:SYN ACK FIN RST PSH URG简析

 

三次握手Three-way Handshake 

 

一个虚拟连接的建立是通过三次握手来实现的 

1. (B) --> [SYN] --> (A) 

 

假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接. 

 

注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有当A受到B发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不 能让外部任何主机主动建立连接。

2. (B) <-- [SYN/ACK] <--(A) 

 

接着,A收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作. 

 

注意: SYN/ACK包是仅SYN 和 ACK 标记为1的包.

3. (B) --> [ACK] --> (A) 

 

B收到SYN/ACK 包,B发一个确认包(ACK),通知A连接已建立。至此,三次握手完成,一个TCP连接完成 

 

Note: ACK包就是仅ACK 标记设为1的TCP包. 需要注意的是当三此握手完成、连接建立以后,TCP连接的每个包都会设置ACK位

这就是为何连接跟踪很重要的原因了. 没有连接跟踪,防火墙将无法判断收到的ACK包是否属于一个已经建立的连接.一般的包过滤(Ipchains)收到ACK包时,会让它通过(这绝对不是个 好主意). 而当状态型防火墙收到此种包时,它会先在连接表中查找是否属于哪个已建连接,否则丢弃该包 

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段。

它们的含义是:

URG:Urget pointer is valid (紧急指针字段值有效)

SYN: 表示建立连接

FIN: 表示关闭连接

ACK: 表示响应

PSH: 表示有 DATA数据传输

RST: 表示连接重置。

其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,如果只是单个的一个SYN,它表示的只是建立连接。TCP的几次握手就是通过这样的ACK表现出来的。但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。

优惠劵

宛和

关注

关注

21

点赞

77

收藏

觉得还不错?

一键收藏

知道了

4

评论

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义

TCP:SYN ACK FIN RST PSH URG简析 三次握手Three-way Handshake  一个虚拟连接的建立是通过三次握手来实现的 1. (B) --> [SYN] --> (A)  假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchronize) 标记的包,告诉A请求建立连接.  注意: 一个 SYN包就是

复制链接

扫一扫

专栏目录

TCP协议中SYN/ACK/FIN/PSH各有什么作用

m0_62909693的博客

10-26

3642

在进行抓包测试的时候,发现了很多类型的数据包,除了常见的三次握手外,还有一些PSH,FIN类型的类型。借此机会,常见数据包的类型给大家科普一下。

*SYN:同步标志

同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数

urg_stamped-release:发布https的存储库

04-12

urg_stamped(noetic)-0.0.10-1

在包urg_stamped仓库被释放到noetic运行发行版/usr/bin/bloom-release -y --no-web --ros-distro noetic --override-release-repository-push-url https://github.com/seqsense/urg_stamped-release.git urg_stamped于Thu, 08 Apr 2021 01:27:30 -0000

urg_stamped软件包已发布。

存储库urg_stamped的软件包版本:

上游存储库: :

发布存储库: :

rosdistro版本: 0.0.9-1

旧版本: 0.0.9-1

新版本: 0.0.10-1

使用的工具版本:

绽放版本: 0.10.6

catkin_pk

4 条评论

您还未登录,请先

登录

后发表或查看评论

TCP协议中报文详解

weixin_40964777的博客

05-04

9635

TCP协议中报文SYN、ACK、FIN、RST、PSH、URG详解

1、 SYN:同步连接序号,TCP SYN报文就是把这个标志设置为1,来请求建立连接;

2、 ACK:请求/应答状态。0为请求,1为应答;

3、 FIN:结束连线。如果FIN为0是结束连线请求,FIN为1表示结束连线;

4、 RST:...

urg_node.tar.gz

11-06

URG雷达驱动软件,通过ROS工程编译,通过运行roslaunch urg_node urg_lidar.launch,便可发布/scan消息

URG激光传感器

05-19

内置相关处理程序

TCP SYN ACK FIN RST PSH URG.doc

05-24

TCP SYN ACK FIN RST PSH URG.doc

urg-poker-leaderboard:URG扑克排行榜hugo网站

02-16

扑克服务器设置

安装扑克专家

去做

为扑克专家开放防火墙

去做

恢复配置数据

去做

C: \U sers \A dminsitrator \A ppData \R oaming \P oker Mavens

安装Chocolatey

# install

Set-ExecutionPolicy Bypass - Scope Process - Force; iex (( New-Object System.Net.WebClient).DownloadString( ' https://chocolatey.org/install.ps1 ' ))

# test

choco -- version

安装git

choco install - y git

安装雨果

choco install - y hugo

安装python

choco install - y python3

ICMP发现活动主机&TCP(SYN FIN ACK)扫描&UDP扫描

01-04

ICMP发现活动主机

TCP(SYN FIN ACK)端口扫描

UDP端口扫描

vs2008 Winpcap开发

TCP协议总论

qq_39592858的博客

07-07

6066

在网络传输中,从一个A主机发送数据到B主机可能会遇到如下问题:1.由于网络传输过程中的bit位错误,解析错误,路由表更新,线路故障等情况.B可能收不到数据包.或者收到有损的数据包.

2.A要发送的数据太多,一个以太帧的数据部分无法存储全部信息,只能进行ip分片,发送多个数据包到B,而网络延迟可能导致B收到数据包的顺序是错乱的.

4.A可能要发多个应用程序的不同数据包给B,B需要给这些数据包进行归类

3.当网络链路中的某些节点处理数据太多导致速度特别慢,需要控制流量TCP的出现就是为了解决以上问题.TCP的特

TCP的连接状态标识 (SYN, FIN, ACK, PSH, RST, URG)

m0_37989944的博客

09-03

1万+

TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG.

其中,对于我们日常的分析有用的就是前面的五个字段。它们的含义是:

(1)SYN表示建立连接,

(2)FIN表示关闭连接,

(3)ACK表示响应,

(4)PSH表示有 DATA数据传输,

(5)RST表示连接重置。

其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,

如果只是单个的一个SYN,它表示的只是建立连接。

TC

syn,fin,ack的意思,以及三次握手,四次释放示意图

七分熟的荷包蛋

12-06

8999

SYN表示建立连接,

FIN表示关闭连接,

ACK表示响应

三次握手

四次释放

带外数据(TCP-URG数据)的作用和发送方式.pdf

05-26

有关带外数据(TCP-URG数据)的作用和发送方式:

1. TCP的带外数据

2. 带外数据标志

3. OOB传输套接字例程

4. TCP带外数据特性

urg_library-1.2.0.zip

05-14

hokuyo urg_04lx_ug0激光雷达的驱动,不太容易找到,需要到外网下载,所以上传帮助有需要的。

TCP.rar_TCP rst_URG_fin_syn

09-24

随机生成160位01序列模拟TCP报文首部

16位源端口,16位目的端口,32位序号,32位确认序号,4位首部长度都转化成相应的十进制显示,6位保留位,URG,ACK,PSH,RST,SYN,FIN 均为1位二进制,

16位窗口,16位紧急指针,16位校验和均用二进制显示

TCP详解

02-24

先来看看它的报头我们来分析分析每部分的含义和作用源端口号/目的端口号:表示数据从哪个进程来,到哪个进程去.32位序号:4位首部长度:表示该tcp报头有多少个4字节(32个bit)6位保留:顾名思义,先保留着,以防万一6位标志...

urg_node:北洋urg_c库的ROS包装器

05-13

urg_node Hokuyo urg_c库的ROS包装器。

Office 2010 安装程序包的语言不受系统支持

热门推荐

翼紫珊

10-18

2万+

最近在官方下载了Office 2010来安装,由于文件很大,感觉每次直接双击运行安装太费时间,所以尝试单击右键,发现可以使用winrar解压,于是便将其解压到与文件同名的文件夹下,但是当我进入此文件夹双击setup.exe进行安装的时候,却提示“安装程序包的语言不受系统支持”,这下我可就纳闷啦,为什么直接运行就可以安装,而解压后却不可以安装了呢。

为了找到问题的答案,我直接运行安装程序,但是

PHP Curl 417 Expectation Failed解决办法

翼紫珊

03-08

5944

php curl post data 的时候, server 回传status 417 错误

lighttpd服务器总是返回:

HTTP/1.1 417 Expectation Failed

Connection: close

Content-Length: 0

Date: Fri, 12 Oct 2007 09:11:02 GMT

Server: lighttpd/1.4.18

分析标志位SYN、FIN、ACK标志位的作用以及在什么情况下置1

最新发布

06-01

TCP (Transmission Control Protocol) 是一种面向连接的可靠的传输协议,其中的标志位主要有 SYN、FIN、ACK 等。下面分别介绍这些标志位的作用和置 1 的情况:

1. SYN (Synchronize Sequence Number) 标志位:用于建立 TCP 连接时的同步序列号。当发送方想要建立一个 TCP 连接时,它会向接收方发送一个带有 SYN 标志位的数据包,接收方收到该数据包后会回复一个带有 SYN 和 ACK 标志位的数据包,表示可以建立连接。在建立连接时,SYN 标志位被置为 1。

2. FIN (Finish) 标志位:用于关闭 TCP 连接。当一方想要关闭 TCP 连接时,它会向对方发送一个带有 FIN 标志位的数据包,表示该方已经没有数据要发送了。接收方收到该数据包后,会发送一个带有 ACK 标志位的数据包,表示已经收到了这个 FIN 数据包。当接收方也没有数据需要发送时,会发送一个带有 FIN 标志位的数据包,表示它也要关闭连接。在关闭连接时,FIN 标志位被置为 1。

3. ACK (Acknowledgement) 标志位:用于确认收到数据。当一方收到数据后,需要向另一方发送一个带有 ACK 标志位的数据包,表示已经收到了数据。在 TCP 连接建立后的数据传输中,每一个数据包都需要带有 ACK 标志位,用于确认收到数据。在确认收到数据时,ACK 标志位被置为 1。

需要注意的是,在实际的 TCP 数据传输中,这些标志位可能会被组合使用,如 SYN+ACK、FIN+ACK 等。此外,在 TCP 中还有一些其他的标志位,如 RST (Reset)、URG (Urgent)、PSH (Push) 等,它们各自有不同的作用。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

宛和

CSDN认证博客专家

CSDN认证企业博客

码龄15年

暂无认证

162

原创

12万+

周排名

153万+

总排名

151万+

访问

等级

8855

积分

168

粉丝

214

获赞

193

评论

287

收藏

私信

关注

热门文章

Linux查看端口使用状态、关闭端口方法

282880

查找列表中某个值的位置(python)

277825

Linux下用于查看系统当前登录用户信息的4种方法

130101

python 等待一定时间后继续执行其后的程序

75257

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义

67135

分类专栏

小工具

6篇

性能测试

11篇

Loadrunner

12篇

敏捷开发&敏捷测试

1篇

测试杂想

6篇

国外相关

1篇

电脑基础知识

5篇

随想

24篇

缺陷管理

1篇

工作相关

18篇

Linux

42篇

Linux之小命令

49篇

C语言

2篇

Python

20篇

Selenium

2篇

性能测试指标

常见测试模型

1篇

数据库

1篇

最新评论

查找列表中某个值的位置(python)

CryingT:

笨办法,每次出现后把这个元素更改一下 再 index

python 等待一定时间后继续执行其后的程序

哦-是我:

除了sleep没有别的办法吗

Linux查看端口使用状态、关闭端口方法

idzhangfan:

我感觉写的挺好

TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义

akakghost:

因为建立连接,第二次握手的时候要发ACK + SYN。A端能发SYN, B端SYN被防火墙直接滤了,因为B端的SYN出不去,所以A端不会回ACK,B端收不到ACK,超时后会重传SYN,然后还是发不出去,所以对应A端的SOCKET一直处在B端SYN-Q的半连接队列,所以连接无法建立。

软件性能测试方法论

m0_58305186:

找企业微信开发工程师

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

写给大侄女

python list转换字符串报错TypeError: sequence item 0: expected str instance, int found

[转载]一次 JMeter 脚本请求错误 HTTP Status 415 的解决笔记

2022年1篇

2019年5篇

2015年1篇

2014年73篇

2013年16篇

2012年75篇

2011年39篇

目录

目录

分类专栏

小工具

6篇

性能测试

11篇

Loadrunner

12篇

敏捷开发&敏捷测试

1篇

测试杂想

6篇

国外相关

1篇

电脑基础知识

5篇

随想

24篇

缺陷管理

1篇

工作相关

18篇

Linux

42篇

Linux之小命令

49篇

C语言

2篇

Python

20篇

Selenium

2篇

性能测试指标

常见测试模型

1篇

数据库

1篇

目录

评论 4

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

vcs之urg脚本详解_vcs urg-CSDN博客

>

vcs之urg脚本详解_vcs urg-CSDN博客

vcs之urg脚本详解

最新推荐文章于 2023-06-02 16:06:07 发布

kevindas

最新推荐文章于 2023-06-02 16:06:07 发布

阅读量1.1w

收藏

33

点赞数

3

分类专栏:

芯片验证

文章标签:

vcs

merge

urg

urg1

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/kevindas/article/details/81462217

版权

芯片验证

专栏收录该内容

37 篇文章

161 订阅

订阅专栏

vcs中,可以使用urg命令生成覆盖率报告,其实urg命令本身是一个sh脚本,本文对该脚本进行分析。 vcs版本:2016.06

###############################################

# env check & setting about VCS_HOME

###############################################

#set mode flag linux -> 32, mode64 -> 64; filter "-mode64"

URG_MODE_FLAG=32

URG_MODE_STR=""

if [ `${ECHO} ${URG_ARGS} | ${EGREP} -c '(^| )\-mode64'` = 1 ]; then

URG_MODE_FLAG=64;

URG_MODE_STR="-mode64"

elif [ `${ECHO} ${URG_ARGS} | ${EGREP} -c '(^| )\-full64'` = 1 ]; then

URG_MODE_FLAG=64;

URG_MODE_STR="-full64"

fi

分析:选择32位还是64位程序运行,默认32位。

# check whether the given vdb directories contain .mode64 file

isAutoAppendFull64=0;

if [ "${URG_MODE_STR}"x = "x" ]; then

isDir=0;

for arg in ${URG_ARGS_ARRAY}; do

if [ `${ECHO} $arg | ${EGREP} -c '^-dir$'` = 1 ]; then

isDir=1;

elif [ `${ECHO} $arg | ${EGREP} -c '^-'` = 1 ]; then

isDir=0;

else

if [ $isDir = 1 ]; then

if [ -f $arg"/.mode64" ]; then

# if any vdb directory contains .mode64 file

if [ `${VCS_HOME}/bin/vcs -location -full64 | ${EGREP} -c '^Error-\[CF_SIM_KRNL64\]'` = 0 ]; then

# if vcs version is 64bit, add -full64 by default

URG_MODE_FLAG=64;

URG_MODE_STR="-full64"

isAutoAppendFull64=1;

if [ ` env | ${EGREP} -c '^VCS_RUNNING_REGRESSION'` = 0 ]; then

${ECHO}

${ECHO} "INFO : The directory '$arg' passed to the URG command line is generated from a 64-bit simulation kernel. Hence, '-full64' is automatically added to the URG command line and URG would generate the reports with Full64 VCS installation."

${ECHO}

fi

else

if [ ` env | ${EGREP} -c '^VCS_RUNNING_REGRESSION'` = 0 ]; then

${ECHO}

${ECHO} "INFO : The directory '$arg' passed to the URG command line is generated from a 64-bit simulation kernel. Hence, it is advised to install Full64 VCS, pass '-full64' to the URG command line and generate the reports. Currently, URG would generate the reports with 32-bit VCS installation."

${ECHO}

fi

fi

break;

fi

fi

fi

done

fi

分析:vcs会读取你的-dir参数,然后判断vdb目录下是否存在.mode64文件。如果存在且你的vcs支持64bit,它会自己给你加上-full64参数,并将标记isAutoAppendFull64置1,如果你的vcs不支持64bit,那么它就会提醒你安装64bit的版本。

# set correct home(BASE_STRING), reuse vcs script, do not re-check in urg script

if [ "X$VCS_HOME" != "X" ]; then

BASE_STRING=`${VCS_HOME}/bin/vcs -location ${URG_MODE_STR}`

elif [ "X$PIONEER_HOME" != "X" ]; then

VCS_HOME=${PIONEER_HOME}

export VCS_HOME

BASE_STRING=`${PIONEER_HOME}/bin/vcs -location ${URG_MODE_STR}`

else

${ECHO} " Please make sure VCS_HOME is set correctly and continue.. ";

exit 1;

fi

if [ `${ECHO} ${BASE_STRING} | ${EGREP} -c '(^| )Error\-'` = 1 ]; then #VCSMSG_EXCLUDE

${ECHO} "$BASE_STRING"

${ECHO} " Please make sure VCS_HOME is set correctly and continue.. ";

exit 1;

fi

分析:没啥好说的,重新设置vcs命令路径(可以将32bit的vcs改成64bit的)。

# use vcs error message report

if [ -f ${BASE_STRING}/bin/vcsMsgReport ]; then #VCSMSG_EXCLUDE

ERR_MSG_REPORT=${BASE_STRING}/bin/vcsMsgReport; #VCSMSG_EXCLUDE

else

${ECHO} " ERROR : Cannot find 'vcsMsgReport' script in $BASE_STRING/bin " ; #VCSMSG_EXCLUDE

${ECHO} " Please make sure VCS_HOME is set correctly and continue.. ";

exit 1;

fi

分析:该脚本会调用vcsMsgReport脚本,所以要确认下vcsMsgReport是否存在。

# no longer support 64_32 mode

if [ "$URG_MODE_FLAG"x = "64_32x" ]; then

$ERR_MSG_REPORT "URG-S-MNS"

exit 1;

fi

分析:不再支持64_32x模式,这TM是个什么模式。

###############################################

# env check & setting about URG

###############################################

# check for bin directory

binpath="${BASE_STRING}/${BIN}";

if [ ! -d ${BASE_STRING}/${BIN} ]; then

$ERR_MSG_REPORT "URG-S-DE" "$binpath"

exit 1

fi

# check for urg1

CMD="${binpath}";

if [ ! -f ${BASE_STRING}/${BIN}/urg1 ]; then

$ERR_MSG_REPORT "URG-NF" "urg1" "VCS installation"

exit 1;

elif [ ! -x ${BASE_STRING}/${BIN}/urg1 ]; then

$ERR_MSG_REPORT "URG-PERM" "urg1" "$CMD"

fi

分析:检查bin目录和urg1(实际使用到的urg)是否存在。

PrintID()

{

m=`uname -n`;

if [ "$URG_ARCH" = "AIX" ]; then

o=`uname -s -v`.$URG_RNAME;

else

o=`uname -s -r`;

fi

echo "machine name = $m "

echo "machine os = $o "

exec ${binpath}/urg1 -ID

exit 0;

}

分析:打印主机的信息。

Run()

{

# if it contains -parallel , swtich to hierarchicalMerge

if [ `${ECHO} ${URG_ARGS} | ${EGREP} -c -i '(^| )\-parallel($| )'` = 1 ]; then

PARALLEL_MODE=1;

else

if [ `${ECHO} ${URG_ARGS} | ${EGREP} -c -i '(^| )\-readucis($| )'` = 1 ]; then

$ERR_MSG_REPORT URG-CVOP -readucis

else

exec $URG_DIAGTOOL $CMD/urg1 $URG_ARGS

fi

fi

}

分析:如果urg参数含有-parallel(并行merge覆盖率)时,将标志PARALLEL_MODE置位。如果出现-readucis参数,报错。猜测这是urg早期的一个参数,现在不再支持。如果不进行并行merge,那么直接调用urg1命令,urg1的参数和urg是一样的,但是urg1不是脚本,而是一个可执行文件。

EXEC()

{

#Invoking actual executable .. with all the options supplied.

#set LD_LIBRARY_PATH

if [ -x ${BASE_STRING}/lib ]; then

# ${ECHO} "$BASE_STRING/lib"

case $URG_ARCH in

HP-UX)

SHLIB_PATH=$BASE_STRING/lib:$SHLIB_PATH

export SHLIB_PATH

;;

AIX)

LIBPATH=$BASE_STRING/lib:$LIBPATH

export LIBPATH

;;

*)

LD_LIBRARY_PATH=$BASE_STRING/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

;;

esac

fi

#Run urg -id, then exit

if [ `${ECHO} ${URG_ARGS} | ${EGREP} -c -i '(^| )\-id'` = 1 ]; then

URG_ARGS=`echo ${URG_ARGS} | sed -e 's/\-[Ii][Dd]//g'`;

PrintID;

exit 1;

fi

#Run normal case

Run

}

分析:设置LD_LIBRARY_PATH。如果命令中含有-id,执行PrintID子程序。

EXEC

分析:主程序

if [ $PARALLEL_MODE = 1 ]; then

#

# Note we get hierarchicalMerge from the same directory as the urg script,

# NOT from the '$CMD' directory

#

hierMergeDir=`dirname ${0}`

hierMergeCMD="$hierMergeDir/hierarchicalMerge"

if [ -x $hierMergeCMD ]; then

perlVersion=`perl -v | sed -n '/[p|P]erl\ 4/'p | wc -l`

if [ $perlVersion = 1 ]; then

$ERR_MSG_REPORT "URG-S-PVE"

exit 1;

else

if [ $isAutoAppendFull64 = 1 ]; then

exec $hierMergeCMD "$@" "-full64"

else

exec $hierMergeCMD "$@"

fi

fi

else

if [ -f $hierMergeCMD ]; then

$ERR_MSG_REPORT "URG-PERM" "hierarchicalMerge" "$hierMergeCMD"

else

$ERR_MSG_REPORT "URG-NF" "hierarchicalMerge" "$hierMergeCMD"

fi

exit 1;

fi

fi

分析:按照这种写法风格,很明显-parallel参数在vcs早期的版本是不支持的,是后来才加上去的。主要还是调用hierarchicalMerge脚本来进行覆盖率并行merge。而且,还要求perl的版本不能是perl 4。并行merge的脚本参数和urg参数是一致的。

# Normal exit

exit 0;

分析:正常退出。

优惠劵

kevindas

关注

关注

3

点赞

33

收藏

觉得还不错?

一键收藏

知道了

0

评论

vcs之urg脚本详解

vcs中,可以使用urg命令生成覆盖率报告,其实urg命令本身是一个sh脚本,本文对该脚本进行分析。vcs版本:2016.06################################################ env check &amp; setting about VCS_HOME############################################...

复制链接

扫一扫

专栏目录

vcs和verdi联合仿真(初学者可以用来熟悉脚本写法).pdf

05-30

vcs和verdi联合仿真(初学者可以用来熟悉脚本写法),有一些脚本教程

VCS 覆盖率merge

XiaoChengxs的博客

10-29

3931

VCS URG使用方法

urg生成report中的option:

  -dir,指定需要拿到的db的hier,

  -dbname,指定输出的merge db的hier

  -elfile,指定exclusive的file,这样更好计算coverage。

  -elfilelist 忽略中每一个.el文件。(Specifies a file containing a list of exclude files)

  -noreport,不输出最终的report,只是merge db

  -format te

参与评论

您还未登录,请先

登录

后发表或查看评论

vcs/urg 进行覆盖率coverage merge及部分merge到整体

热门推荐

cy413026的博客

02-20

1万+

目录

1.vcs收coverage基本Option

2.相同代码的merge

3.部分merge到整体

3.1 mapfile

3.2 -map使用语法

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH

coverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf

还可以参考gsithxy的博文[VCS]Condition Coverage收不全的问题及解法该文给出了vcs收覆盖率的o...

VCS常用命令详解

04-07

VCS常用命令

Veritas的log缺省目录为/var/VRTSvcs/log;

Veritas的相关配置(资源等配置文件,对应与java图形终端上做的配置文件格式)目录为:/etc/VRTSvcs/conf/config;

安装VCS的License(root用户下执行),两种方法:

halic

VCS仿真和多个test用urg工具生成coverage文件verdi查看--转载

铁憨憨的博客

12-29

7829

VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。我呢,因为运用都是简单的非mix language,所以经常用一步法,因为这样省劲,但是对于跑regression最好还是两步法。VCS对应的waveform工具有DVE和Verdi, DVE因为是原生的,所以VCS对DVE非常友好。但DVE已经过时了,其对uvm等新feature支持的不好。Verdi是Debussy公司的产品,现在已被Synopsys收购并着力发展,说以Verdi是未来的潮流。所以此文的dump fsdb波形

覆盖率COV的命令设置及收集

Grady

07-26

1万+

一、命令设置

在仿真脚本中设置:

-cm cond+fsm+tgl+branch+line 指定覆盖率收集类型

-cm_hier +tree tb_top 0 指定统计范围,一般将其放置在另一个list文件中,便于更改

-cm_dir 指定存放路径,默认simv.vdb在work目录下

二、命令行打开文件

b verdi -cov -covdir simv.vdb 使用verdi打开单个覆盖率文件

b verdi -cov -covdir *.vdb 使用verdi打开多个覆盖率文件

同时导入多个文件可以合

芯片验证自学-IC验证学习,覆盖率vdb文件怎么合并

小白蒋-材料转行芯片验证

01-14

2521

比如 A case的覆盖率文件为 a.vdb,B case的覆盖率文件为 b.vdb,那么可以用下面指令合并生成新的覆盖率文件 merge.vdb。在用vcs仿真完成后,每个case都保存了覆盖率,怎么把多个case的覆盖率vdb文件进行合并。

coverage merge小技巧

weixin_44582960的博客

01-14

1581

一个coverage merge小技巧

分享一个coverage merge小技巧,在群里经常看到有小伙伴问改了代码之后coverage能不能merge。今天带大家来看看这个问题。

在下面代码里面有三个实例,分别是dut,cnt1,cnt2.

我们生成第一版coverage simv1.vdb

然后我们改动arb_module里面的内容,生成第二版的coverage simv2.vdb

现在我们merge 看看会发生什么事情。

使用urg -dir simv1.vdb simv2.vdb -dbnam

Shell+VCS学习3---VCS命令

u012678323的专栏

05-04

7052

VCS的功能可以大致分为两个大类:编译和仿真。VCS编译的过程,就是经过一系列的操作,将verilog代码转换为可执行文件(.svim),接下来就是用dve进行仿真过程生成.vpd波形文件。VCS是编译型verilog仿真器,处理verilog的源码过程如下:VCS先将verilog/systemverilog文件转化为C文件,在linux下编译链接生成可执行文件,在linux下运行simv即可得到仿真结果。

使用vcs配合vivado进行仿真

05-11

使用vcs配合vivado进行仿真

flutter中关于动态配置多环境之--dart-define

zjy_hll的专栏

06-21

3116

1.配置--dart-define,如下:

--dart-define=APP_CHANNEL=www.baidu.com --dart-define=OTHER_VAR=这是测试环境

xian

flutter android 多渠道打包 --dart-define

唐僧的专栏

06-02

1095

flutter android 多渠道打包 --dart-define

vcs覆盖率选项小结

ONCE的博客

09-22

2231

vcs覆盖率选项用于指定覆盖率收集层次。

begin line+cond+tgl -tree tb_top 0 end

begin tgl +tree tb_top.DUT 1 end

begin line+cond +tree tb_top.DUT 0 end+”代表查看,“-”代表不查看(tree的基本用法如下:+/-tree xxx.xxx level_number其中level_number为0,表示当前层次及其所属的层次都会收集;1表示仅收集当前层次;2表示收集当前层次及其下面一层; 还可以

uvm覆盖率收集常用工具

qq_38620826的博客

04-05

2723

简介

可通过 -cm_hier 配置文件来控制覆盖率收集范围

Coverage Metrics覆盖指标:

-cm

vcs使用编译选项 -cm (line+cond+tgl)生成simv.vdb文件夹,仿真选项中使用-cm (line+cond+tgl),会在simv.vdb/snps/coverage/db/testdata/your_cm_name下产生覆盖率xml文件;

-cm_name

编译选项or仿真选项 -cm_name your_cm_name 将会生成覆盖率文件:simv.

URL参数

yanyuan2017的博客

04-22

3695

URL参数

%s

String(字符串),代表要搜索的关键词。必选参数。比如:

https://www.google.com/search?q=%s

&q

Query(查询),意为进行搜索,必选参数。比如:

https://www.google.com/search**?q**=shuxue

&hl

Interface Language(界面语言),意为限制搜索的界面语言。en为英...

[VCS] merge coverage

lbt_dvshare的博客

06-08

1336

部分merge到整体

采用 mapfile option

VCS相关命令

qingchun0556的专栏

03-07

1245

1.  Command for stop VCS' CFS:

# /opt/VRTSvcs/bin/hastop

# /etc/init.d/vxglm stop

# /etc/init.d/vxodm stop

# /etc/init.d/vxgms stop

# /etc/init.d/vxfen stop

# /etc/init.d/gab sto

Verilog中的关于文件操作的函数和任务

weixin_34007886的博客

09-03

417

$fopen(“filename”) 打开文件

$fdisplay(handle1,p1,p2, …pn) 写文件

$fclose(handle1) 关闭文件

1、打开文件

任务$fopen(“filename”)返回值为一个被称为多通道描述符的32位值,多通道描述符只有一位被设置成1。标准输出通道符其最低位设置成1,其余位为0,即000000000000000000...

vcs urg合并覆盖率

最新发布

09-07

vcs urg命令用于合并覆盖率。它的功能是将指定目录下的vdb文件进行合并,并输出一个合并后的vdb文件和一个包含HTML格式覆盖率报告的urgReport文件。合并的命令如下:urg -full64 -dir *.vdb -dbname merged -...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

kevindas

CSDN认证博客专家

CSDN认证企业博客

码龄13年

企业员工

59

原创

3万+

周排名

45万+

总排名

34万+

访问

等级

3106

积分

552

粉丝

411

获赞

79

评论

2610

收藏

私信

关注

热门文章

加深对Verilog中x态和z态的认知

23931

ucli命令记录

21450

怎么利用VCS产生fsdb文件

19872

verilog中仿真延迟的添加

15435

Verdi到底是哪个公司的?

13775

分类专栏

芯片设计

10篇

芯片后端

9篇

芯片验证

37篇

业务知识

1篇

技术杂谈

2篇

最新评论

加深对Verilog中x态和z态的认知

张文然:

请问这是什么spec

vcs仿真器在0时刻的行为

泡茶不用开水:

有没有可能是0时刻信号rst为x态 所以无论initial 中赋值1还是0都认为是 跳变

PrimeTime中的DMSA

Table Z:

感谢博主!非常有用

二进制多项式乘法和除法的电路实现

kevindas:

延迟单元,一般是寄存器

二进制多项式乘法和除法的电路实现

喵喵大王030:

z^(-1)是什么?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

UVM-1.1学习(三)——`uvm_object_utils的本质

UVM-1.1学习(二)——uvm_cmdline_processor

UVM-1.1学习(一)——uvm代码的分类

2022年12篇

2021年18篇

2020年11篇

2019年9篇

2018年9篇

目录

目录

分类专栏

芯片设计

10篇

芯片后端

9篇

芯片验证

37篇

业务知识

1篇

技术杂谈

2篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

vcs/urg 进行覆盖率coverage merge及部分merge到整体_urg -map-CSDN博客

>

vcs/urg 进行覆盖率coverage merge及部分merge到整体_urg -map-CSDN博客

vcs/urg 进行覆盖率coverage merge及部分merge到整体

最新推荐文章于 2023-06-20 10:37:26 发布

cy413026

最新推荐文章于 2023-06-20 10:37:26 发布

阅读量1.9w

收藏

215

点赞数

15

分类专栏:

soc验证 (UVM)

soc Tools

文章标签:

shell

vcs

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/cy413026/article/details/113879302

版权

soc Tools

同时被 2 个专栏收录

30 篇文章

47 订阅

订阅专栏

soc验证 (UVM)

13 篇文章

25 订阅

订阅专栏

目录

1.vcs收coverage基本Option

2.相同代码的merge

3.部分merge到整体

3.1 mapfile

3.2 -map使用语法

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH

coverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf

还可以参考gsithxy的博文 [VCS]Condition Coverage收不全的问题及解法 该文给出了vcs收覆盖率的option、merge常见问题、merge常见option

1.vcs收coverage基本Option

Option description -cm line+cond+fsm+tgl+branch+assert line : Enable collecting line or statement coverage cond : Enable collecting condition coverage fsm : Enable collecting FSM coverage tgl : Enable collecting toggle coverage branch : Enable collecting branch coverage assert :  Enable collecting SystemVerilog assertion coverage -cm_libs yv yv :Enable collecting coverage source code from Verilog libraries Default doesn't collect coverage of the library files.  -cm_dir $directory_path_name Specify an name and location for simv.vdb Default is simv.vdb -cm_log $filename Specify a log file for monitoring coverage. Default is cm.log. To suppress the log file, you could re-direct the log file to empty path. (ex, -cm_log /dev/null) -cm_name $testname Specify a different location for different simulation, used in dsim flow -cm_hier $filename Collect particular instances' coverage $filename contents ------------------------------ +/-tree $instance_name [$level] //level number of 0 (or no level number) specifies the entire sub-hierarchy +/-module $module_name -cm_assert_hier $filename Collect particular assertion' coverage $filename contents ------------------------------ +/-assert my_assert +/-assert A* +/-assert $instance_name -cm_line contassign Specifies enabling line coverage for Verilog continuous assignments. -cm_tgl portsonly Only monitor port of toggle coverage, remove net and variables monitor in modules.

2.相同代码的merge

export path := cov_r20111

db_file=$(shell find ${path} -maxdepth 2 -depth -name "simv*")

.PHONY:merge

merge:

@echo ${db_file}

urg -full64 -dir ${db_file} -dbname ${path}/merged.vdb #urg -full64 -dir a.vdb b.vdb c.vdb -dbname xxx.vdb

cov:

bsub -I verdi -cov -covdir ${path}/merged.vdb

上述命令将path目录下多个simv*.vdb下面的多个覆盖率文件merge成一个叫merge.vdb的文件

3.部分merge到整体

主要参考Coverage Technology User Guide.pdf中mapping coverage一节

项目中经常出现UT覆盖率merge到BT/SST及整芯片的情况。此时需要使用urg的-map命令

3.1 mapfile

-map命令需要mapfile以表明map关系,下图给出的mapfile意思是将module name为My_Ip的在B模块中的两个例化My_Ip1,My_Ip2的覆盖率映射到

A.B.My_Ip1上去。

3.2 -map使用语法

urg -dir base.vdb -dir input.vdb -mapfile file_name

Where, file_name is the mapping configuration file  

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH

       When merge vdb files of local simulation to whole chip,  you might get the error as following:

“Warning-[UCAPI-MAP-SHAPEMISMATCH] Shape mismatch in mapping”

     导致shape mismatch可能有以下几个原因:

1. Coverage option mismatch;

Make sure the coverage-related options are the same for both vdbs.

For example:if one vdb is compiled with –cm_line contassign and the other isn’t, it will cause shape mismatch;

$vcs_cov_opts .= " -cm_line contassign ";

2. RTL mismatch;

3. Version  mismatch;

4. Tool bug;

关注博主即可阅读全文

优惠劵

cy413026

关注

关注

15

点赞

215

收藏

觉得还不错?

一键收藏

知道了

14

评论

vcs/urg 进行覆盖率coverage merge及部分merge到整体

目录1.vcs收coverage基本Option2.相同代码的merge3.部分merge到整体3.1 mapfile3.2 -map使用语法3.3合并的常见问题3.3.1 UCAPI-MAP-SHAPEMISMATCHcoverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf还可以参考gsithxy的博文[VCS]Condition Coverage收不全的问题及解法该文给出了vcs收覆盖率的o...

复制链接

扫一扫

专栏目录

github-actions-coverage-merge

04-18

github-actions-coverage-merge

VCS 覆盖率merge

XiaoChengxs的博客

10-29

3931

VCS URG使用方法

urg生成report中的option:

  -dir,指定需要拿到的db的hier,

  -dbname,指定输出的merge db的hier

  -elfile,指定exclusive的file,这样更好计算coverage。

  -elfilelist 忽略中每一个.el文件。(Specifies a file containing a list of exclude files)

  -noreport,不输出最终的report,只是merge db

  -format te

14 条评论

您还未登录,请先

登录

后发表或查看评论

coverage merge小技巧

weixin_44582960的博客

01-14

1581

一个coverage merge小技巧

分享一个coverage merge小技巧,在群里经常看到有小伙伴问改了代码之后coverage能不能merge。今天带大家来看看这个问题。

在下面代码里面有三个实例,分别是dut,cnt1,cnt2.

我们生成第一版coverage simv1.vdb

然后我们改动arb_module里面的内容,生成第二版的coverage simv2.vdb

现在我们merge 看看会发生什么事情。

使用urg -dir simv1.vdb simv2.vdb -dbnam

vcs之urg脚本详解

kevindas的博客

08-07

1万+

vcs中,可以使用urg命令生成覆盖率报告,其实urg命令本身是一个sh脚本,本文对该脚本进行分析。

vcs版本:2016.06

###############################################

# env check & setting about VCS_HOME

############################################...

vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率

qq_42135020的博客

03-20

8345

覆盖率收集的选项和urg选项

VCS 覆盖率合并命令

qq_29362849的博客

01-01

1379

合并不同 case的覆盖率

覆盖率COV的命令设置及收集

热门推荐

Grady

07-26

1万+

一、命令设置

在仿真脚本中设置:

-cm cond+fsm+tgl+branch+line 指定覆盖率收集类型

-cm_hier +tree tb_top 0 指定统计范围,一般将其放置在另一个list文件中,便于更改

-cm_dir 指定存放路径,默认simv.vdb在work目录下

二、命令行打开文件

b verdi -cov -covdir simv.vdb 使用verdi打开单个覆盖率文件

b verdi -cov -covdir *.vdb 使用verdi打开多个覆盖率文件

同时导入多个文件可以合

Verdi 覆盖率文件的打开、merge、存储

Bunny9__的博客

10-20

8295

1、 打开Verdi,在图形化界面选中,打开数据库文件,选中要merge的.vdb文件,choose后可以在test name框中看到所有提交的用例,全选点开始OK,就开始merge,无尽的等待。2、在终端,进入regress_xxx目录下输入命令merge。当一次回归任务结束,会看到【xxx.vdb】文件夹的生成,之后,弹出verdi界面,也是无尽的等待。覆盖率合并中出现下面的,永远选wait。

VCS中的覆盖率分析

weixin_34216036的博客

05-05

4701

VCS在仿真过程中,也可以收集Coverage Metric。其中覆盖率类型有:

1)Code Coverage:包括control_flow和value两部分的coverage,line_coverage, branch_coverage, toggle_coverage, 

                              FSM_coverage。

2)Functional ...

Coverage 相关技巧

分享记录一下工作中遇到的相关知识

05-06

500

把原始vdb copy一份就行,注意第一个-dir后面的vdb是base,这样就能把三份IP(IP0/1/2)的coverage merge成一份(IP0).2. DVE 打开vdb文件。

VCS覆盖率使用详解(基础、合并、查看、分析)

messi_cyc的专栏

06-20

2335

但是也可以通过-cm_name配合-cm_test来指定在./simv.vdb/snps/coverage/db/testdata/xxx_test_name下产生上述覆盖率xml文件,这样当在同一个用例下进行仿真时,就可以通过不同的目录名字来区别每次仿真带来的覆盖率信息的不同,这样就可以知道某个信号的覆盖率是该测试用例下哪次仿真产生的(通常不同seed来仿真同一个测试用例)。可以看到这里将一次回归中的多个仿真用例下的xxx.vdb进行了合并,最终得到了合并后的覆盖率信息simv_merge.vdb。

使用工具查看RTL代码覆盖率.docx

07-03

现在大部分公司做数字芯片开发都需要用到Verilog,在RTL 代码即将完成时,有必要使用vcs + DVE去查看经过仿真后的CASE代码覆盖率,保证代码本身是没问题的。

UVM/VCS SNPS官网最新资料

07-06

VCS:registered:是一个高性能、高容量的Verilog:registered:模拟器,它将高级抽象验证技术集成到一个开放的本地平台中。 VCS是一个编译后的代码模拟器。 它使您能够分析、编译和模拟Verilog、SystemVerilog、...

PL/SQL VCS插件安装包+PL/SQL

04-19

PL/SQL VCS插件安装包+PL/SQL 实现功能:结合VSS+VCS ,使用PL/SQL工具进行oracle脚本的版本管理

使用vcs配合vivado进行仿真

05-11

使用vcs配合vivado进行仿真

基于覆盖率驱动的高频RFID芯片验证平台设计

10-16

该技术的核心思想是在验证过程中,通过分析功能覆盖率和代码覆盖率,得出未覆盖的边界条件,进而修改激励产生的约束条件,产生测试激励,验证边界条件,以有效地提高验证覆盖率。现该验证平台所验证的芯片已经成功流...

RISC_risc-v源码_makefile/VCS_verilog_源码

10-04

RISC全部源码,包含仿真文件,使用makefile脚本编写,能通过vcs编译

vcs:通过Go中的通用接口进行VCS Repo管理

02-03

Go的VCS储存库管理 通过通用界面轻松管理各种版本控制系统中的仓库。 快速使用 快速使用: remote := "https://github.com/Masterminds/vcs" local, _ := ioutil.TempDir("", "go-vcs") repo, err := NewRepo...

银牌:自动创建合并建议以进行可脚本化的更改

02-13

Silver-Platter使得在版本控制系统中对源代码进行自动更改成为可能。 它会自动创建远程存储库的本地签出,进行用户指定的更改,将这些更改发布在远程托管站点上,然后创建拉取请求。 除此之外,它还可以对已建议...

vcs urg合并覆盖率

最新发布

09-07

vcs urg命令用于合并覆盖率。它的功能是将指定目录下的vdb文件进行合并,并输出一个合并后的vdb文件和一个包含HTML格式覆盖率报告的urgReport文件。合并的命令如下:urg -full64 -dir *.vdb -dbname merged -parallel -report urgReport。其中,-dir参数指定了要合并的vdb文件所在的目录,-dbname参数指定了合并后的vdb文件的名称,-parallel参数表示采用并行merge方式,-report参数表示输出覆盖率报告。使用这个命令可以将多个vdb文件合并成一个,并生成相应的覆盖率报告。1234

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

cy413026

CSDN认证博客专家

CSDN认证企业博客

码龄15年

暂无认证

238

原创

6444

周排名

1394

总排名

161万+

访问

等级

1万+

积分

5261

粉丝

1029

获赞

163

评论

9112

收藏

私信

关注

热门文章

DFT中scan shift/launch/capture过程,launch off shfit/launch from capture & OCC

33573

OCC(On-Chip-Clock)含义及功能和结构

30614

芯片测试缺陷分类和DFT常用方法

27527

ddr频率及带宽

27002

verdi方法fsdbreport将fsdb的某个信号值抽出为可读文件 及波形转换,合并,修改工具,Verdi培训整理笔记

23066

分类专栏

CPU及处理器

13篇

PLL/DLL及CDR

7篇

芯片制造

10篇

高速接口

5篇

USB

1篇

SATA

2篇

PCIE专题

16篇

serdes基础

4篇

高速接口基本概念

8篇

高速接口与大内存

4篇

chiplet与片间互联

5篇

soc低速串口和音视频接口

23篇

人工智能 产品

7篇

智能汽车

4篇

功能安全

3篇

编程语言和脚本

19篇

python脚本

23篇

shell脚本

13篇

systemVerilog

7篇

soc验证 (UVM)

13篇

Linux/win/vim工具

26篇

soc

77篇

芯片后端

21篇

时序相关

18篇

开拓视野 相关科技

28篇

vim/gvim配置及操作&linux命令

27篇

图像视频_随笔

32篇

CV与opencv

10篇

网络与python

1篇

存储及内存

11篇

soc Tools

30篇

DFT

10篇

神奇的office办公软件

10篇

总线及总线互联

15篇

最新评论

AMBA-CHI协议和一致性维护

zhynsb:

请问一下,最后的例子中,图上ddrc里addr0=data1,但是文中写的是data2写回到ddrc,哪一种是正确的呢?

嚼烂I2C之 I2C为啥要这样设计?

kobetriumph:

hi,我理解在读操作的时候,第二次发送device的目的不是为了转变方向吗(由写方向转变为读方向),因为第一次发送device的时候的读写bit是低电平,表明写操作。这个时候他想读数据,必须转变读写方向吧~

systemVerilog的$system系统命令可以调用linux的命令

uvm_info:

可以试试$system({"cmp ", output_sim_yuv, " ", output_refc_yuv, " > ", cmpjpgdec}); 这样是可以的。

systemVerilog的$system系统命令可以调用linux的命令

uvm_info:

我进行了测试,为什么在system中是可以使用sv中定义的变量的?

HDL抽象等级 仿真模型 网表 delay speicfy与sdf

ShareWow丶:

请问,针对第二点,如果SDF反标参数为(1::1),类型选TYP,即在SDF中没有对应的参数(因为TYP的参数为空);

这种情况下,后仿会用specify中的延迟参数嘛?还是不加延迟了?

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

AMBA-CHI协议和一致性维护

ArmV8架构

操作系统和内核有什么区别?

2024年21篇

2023年118篇

2022年67篇

2021年28篇

2020年44篇

2019年151篇

2018年24篇

目录

目录

分类专栏

CPU及处理器

13篇

PLL/DLL及CDR

7篇

芯片制造

10篇

高速接口

5篇

USB

1篇

SATA

2篇

PCIE专题

16篇

serdes基础

4篇

高速接口基本概念

8篇

高速接口与大内存

4篇

chiplet与片间互联

5篇

soc低速串口和音视频接口

23篇

人工智能 产品

7篇

智能汽车

4篇

功能安全

3篇

编程语言和脚本

19篇

python脚本

23篇

shell脚本

13篇

systemVerilog

7篇

soc验证 (UVM)

13篇

Linux/win/vim工具

26篇

soc

77篇

芯片后端

21篇

时序相关

18篇

开拓视野 相关科技

28篇

vim/gvim配置及操作&linux命令

27篇

图像视频_随笔

32篇

CV与opencv

10篇

网络与python

1篇

存储及内存

11篇

soc Tools

30篇

DFT

10篇

神奇的office办公软件

10篇

总线及总线互联

15篇

目录

评论 14

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

URG_百度百科

百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10URG播报讨论上传视频TCP标志中的URG位本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!URG(紧急位): 急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的)中文名紧急位外文名URG适用领域网络工程所属学科计算机网络目录1定义2性质3应用定义播报编辑急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的)性质播报编辑一种对数据的处理方式应用播报编辑TCP中的URG URG 紧急位,设置为1时,首部中的紧急指针有效;为0时,紧急指针没有意义 紧急指针 URG标志设置为1时,紧急指针才有效,紧急方式是向对方发送紧急数据的一种方式,表示数据需要优先处理。它是一个正的偏移,与TCP首部中序号字段的值相加表示紧急数据后面的字节,即紧急指针是指向紧急数据最后一个字节的下一字节。这是协议编写上的一个错误,RFC1122中对此给出了更正说明,紧急指针是数据最后一个字节,不是最后字节的下一位置。TCP首部中只有紧急指针指出紧急数据的位置,它所指的字节为紧急数据,但没有办法指定紧急数据的长度。 新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

TCP协议中URG和PSH位 - 请叫我小小兽 - 博客园

TCP协议中URG和PSH位 - 请叫我小小兽 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

请叫我小小兽

博客园

首页

新随笔

联系

订阅

管理

TCP协议中URG和PSH位

  URG(紧急位):设置为1时,首部中的紧急指针有效;为0时,紧急指针没有意义。

  PSH(推位):当设置为1时,要求把数据尽快的交给应用层,不做处理

  通常的数据中都会带有PSH但URG只在紧急数据的时设置,也称“带外数据”,解释如下:

  紧急数据:URG标志设置为1时,紧急指针才有效,紧急方式是向对方发送紧急数据的一种方式,表示数据要优先处理。他是一个正的偏移量,与TCP收不中序号字段的值相加表示紧急数据后面的字节,即紧急指针是指向紧急数据最后一个字节的下一个字节。这是协议编写上的错误,RFC1122中对此给出了更正说明,紧急指针是数据最后一个字节,不是最后字节的下一位置,TCP首部中只有紧急指针指出紧急数据的位置,他所指的字节为紧急数据,但没有办法指定紧急数据的长度。

  URG=1,表示紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指向字节就是紧急数据)不进入缓冲区(一般不都是待发送的数据要先进入发送缓存吗?就直接交个上层进程,余下的数据都是要进入接收缓冲的;一般来说TCP是要等到整个缓存都填满了后在向上交付,但是如果PSH=1的话,就不用等到整个缓存都填满,直接交付,但是这里的交付仍然是从缓冲区交付的,URG是不要经过缓冲区的

posted @

2017-03-05 17:54 

请叫我小小兽 

阅读(9521) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 请叫我小小兽

Powered by .NET 8.0 on Kubernetes

关于我们_URG跑者装备

关于我们_URG跑者装备

首    页

自有品牌

合作品牌

产品销售

装备定制

合作案例

市场活动

关于我们

中国历史最悠久最为专业的跑步装备供应商之一

隶属于中国领先的跑步服务公司知行合逸!我们致力于为跑友提供最为优质的专业跑步装备选择,

合作销售超过100个跑步品牌,并且推出了专注于性价比的的自有跑步品牌URG!同时我们还为全球一百多个跑步比赛与机构服务,定制推出各类赛事和衍生品!

高性价比自有装备品牌

装备团队定制服务

100+在售品牌

微店、京东、淘宝

等销售渠道

独家代理品牌

零售品牌

自有品牌产品展示

京ICP备19025509号-1

自有品牌

合作品牌

产品销售

装备定制

合作案例

市场活动

关于我们

联系我们:(010)82083990

URG和PSH_urg data pointer-CSDN博客

>

URG和PSH_urg data pointer-CSDN博客

URG和PSH

最新推荐文章于 2020-10-20 10:32:50 发布

run_bear

最新推荐文章于 2020-10-20 10:32:50 发布

阅读量231

收藏

点赞数

分类专栏:

网络

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/run_bear/article/details/73742106

版权

网络

专栏收录该内容

7 篇文章

0 订阅

订阅专栏

TCP首部的字段URG和PSH

URG:Urget pointer is valid (紧急指针字段值有效)

PSH: 表示有 DATA数据传输

    urg=1,紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲)     psh=1就是把接收缓冲中排好序的那一段数据交给上层

优惠劵

run_bear

关注

关注

0

点赞

0

收藏

觉得还不错?

一键收藏

知道了

0

评论

URG和PSH

TCP首部的字段URG和PSHURG:Urget pointer is valid (紧急指针字段值有效)PSH: 表示有 DATA数据传输    urg=1,紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲)    psh=1就是把接收缓冲中排好序的那一段数据交给上层

复制链接

扫一扫

专栏目录

网络攻击总结

majunjie2017的博客

06-27

1163

SYN攻击TCP/IP常用报文字段:

序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据是对此进行标记。

确认序号:ack序号,占32位,只有在ACK标志位为1时,确认序号段才有效,ack=seq+1。

标志位:

URG : 紧急指针(urgent pointer)有效。

ACK:确认序号有效。

PSH:接收方应该尽快将这个报文交给应用层。

RST:重置连接

TCP的URG标志和内核实现之一:协议

phenix_lord的专栏

12-18

3079

定义urgent数据的目的:

urgent机制,是用于通知应用层需要接收urgent data,在urgent data接收完成后,通知应用层urgent data数据接收完毕。相关协议文本RFC793 RFC1122 RFC6093

哪些数据是urgent data?

协议规定

在TCP抱头的URG位有效的时候,通过TCP报头中的urgent pointer来标识urgent dat

参与评论

您还未登录,请先

登录

后发表或查看评论

TCP 简介

踩风火轮的乌龟

08-11

7273

什么是 TCP 的三次“握手”?相信大部分人都知道这个面试中常问的面试题,在这篇文章中,我会详细地解释它的细节,到时候你会发现,这是个非常简单的问题。

TCP:三次握手:URG、ACK、PSH、RST、SYN、FIN 分别代表什么

热门推荐

feikudai8460的博客

10-20

1万+

建立连接:

关闭连接:

一、三次握手Three-way Handshake

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence ..

带外数据OOB与紧急模式URG

xiaofei0859的专栏

10-25

1441

A,TCP支持带外数据OOB吗?与紧急模式URG有什么关系?

     TCP支持带外数据,但是只有一个OOB字节,TCP的带外数据是通过紧急模式URG实现的.

B,我们知道send(sendfd,"ABC",3,MSG_OOB),将发送3个字节的带外数据OOB数据.但是这里TCP又只支持一个字节的OOB,难道丢掉2个字节?

     TCP将把紧急模式URG 置位,紧急指针定位第三个字节(

URG激光传感器

05-19

内置相关处理程序

TCP SYN ACK FIN RST PSH URG.doc

05-24

TCP SYN ACK FIN RST PSH URG.doc

带外数据(TCP-URG数据)的作用和发送方式.pdf

05-26

有关带外数据(TCP-URG数据)的作用和发送方式: 1. TCP的带外数据 2. 带外数据标志 3. OOB传输套接字例程 4. TCP带外数据特性

urg_node.tar.gz

11-06

URG雷达驱动软件,通过ROS工程编译,通过运行roslaunch urg_node urg_lidar.launch,便可发布/scan消息

URG Network-开源

05-30

本项目介绍了URG库的示例程序。 这里还介绍了使用 URG 和 URG 库的应用程序。 URG 是 Hokuyo Automatic Co. 的扫描激光测距仪,用于机器人、自主系统和安全系统。

TCP报文段中URG和PSH的区别

菜鸟成长记

05-23

6405

TCP报文段首部最小长度是20个字节TCP报文段的首部格式

紧急URG(URGent):

当URG = 1时表明紧急指针字段有效,他告诉系统此报文段中有紧急数据,应尽快传送,而不要按原来的排队顺序来传送,发送方的TCP就把紧急数据放到本报文段数据的最前面。URG标志位要与首部中的紧急指针字段配合使用,紧急指针指向数据段中的某个字节,(数据从第一个字节到指针所指的字节就是紧急数据)。值得注意的是

TCP 控制字段之 URG 和 PSH

单打乔的Log

07-15

500

URGURG(Urgent) : 紧急位 ,用来指示紧急指针有效。紧急指针是一个正的偏移量,从第一个字节到指针的位置为

紧急数据,这些数据不进入缓冲区,直接交付给上层进程。

URG标志位为1时为有效,例如一个正在执行的程序却出现问题,使用键盘的中断信号,这就属于紧急数据。当接收方发现紧急数据时,其的TCP就通知与其相关的应用进入紧急模式,等到紧急数据消耗完毕才返回正常模式,它是基于端到端的。PS

【移动机器人技术】Cartographer离线建图与定位

weixin_43259286的博客

04-29

1947

1 turtule_bot仿真环境采集数据

启动仿真

加载场景

roslaunch turtlebot3_gazebo turtlebot3_house.launch

启动可视化仿真

export TURTLEBOT3_MODEL=waffle

roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch

启动键盘控制

roslaunch ...

URG(紧急位)与PSH(急迫位)

xy的博客

06-20

1628

URG(紧急位): 紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的),设置为1时,首部中的紧急指针有效;为0时,紧急指针没有意义。PSH(急迫位): 在一个交互程序中,当客户

NETSTAT里的SYN,ACK,RST和FIN都是什么的缩写

北京的开始

08-08

4615

连接进程是通过一系列状态表示的,这些状态有:LISTEN,SYN-SENT,SYN-RECEIVED,ESTABLISHED,FIN-WAIT-1,FIN-WAIT-2,CLOSE-WAIT,CLOSING,LAST-ACK,TIME-WAIT和 CLOSED。CLOSED表示没有连接,各个状态的意义如下: LISTEN - 侦听来自远方TCP端口的连接请求; SYN-SENT - 在发送连接请求

TCP的URG标志和内核实现之三:接收的实现

phenix_lord的专栏

12-21

1756

大致的处理过程

TCP的接收流程:在tcp_v4_do_rcv中的相关处理(网卡收到报文触发)中,会首先通过tcp_check_urg设置tcp_sock的urg_data为TCP_URG_NOTYET(urgent point指向的可能不是本报文,而是后续报文或者前面收到的乱序报文),并保存最新的urgent data的sequence和对于的1 BYTE urgent data到tcp_

TCP首部的URG和PSH

MaHua的博客

06-19

335

1、URG推送位紧急数据的起始点=序号;

紧急数据的终止点=序号+紧急指针;(综上,(URG)紧急指针就是记录紧急数据的字节数,紧急指针永远为正数)1)在紧急数据后面的数据为普通数据,需要按序缓存

2)窗口为0也可以发送紧急数据

3)紧急数据都处理完成后,tcp就告诉进程恢复到正常操作

例如,已经发送了很长的一个程序要在远地的主机上运行。但后来发现了一些问题,需要取消程序的运行。因此用户从键

端口的分类/URG&PSH

Aberlj的博客

06-19

469

问题:1. 一共又多少有效端口? 

   2. 端口是如何分类的? 

   3. 网络服务中常用那些端口,各自的端口号是多少?

简述端口:

端口号是用来标识目的主机当中的唯一网络进程,因此IP地址+端口号=》套接字;套接字可以确定唯一的一个进程。

Tcp/Ip协议中引入一种叫做“套接字”的应用程序软件,有了这样一种技术,一台电脑就可以与任意一台具有套接字的电脑通信。

端口的分类

端口号及分类

run_bear的博客

06-26

1208

端口号:

    在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如集线器、交换机、路由器上用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。 逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口

tcp urg和psh的区别

最新发布

08-19

TCP协议中的URG(Urgent)和PSH(Push)是两个不同的标志位(Flag),用于指示TCP段的特殊处理和传输要求。

1. URG标志位(URGENT):

- URG标志位用于指示TCP段中存在紧急数据。

- 当URG标志位被设置时,TCP段中的紧急数据被标记为优先处理,接收方应尽快处理这部分数据。

- 紧急数据通常与紧急指针字段一起使用,紧急指针字段指示了紧急数据的位置。

- URG标志位的设置通常与紧急指针字段一起使用,以提供紧急数据传输的支持。

2. PSH标志位(PUSH):

- PSH标志位用于指示接收方在接收到该TCP段后应立即将数据推送给应用层,而不是等待缓冲区填满或是等待一定的时间间隔。

- PSH标志位的设置可以用于实时或交互式应用程序,以减少数据传输的延迟,并尽快将数据交付给应用程序处理。

- PSH标志位的设置告诉接收方不需要等待更多的数据,可以尽快处理已经接收到的数据。

总结:

- URG标志位用于指示TCP段中存在紧急数据,而PSH标志位用于指示接收方应该立即将数据推送给应用层。

- URG标志位与紧急指针字段一起使用,用于紧急数据传输的支持。

- PSH标志位用于减少数据传输的延迟,尽快将数据交付给应用程序处理。

希望以上解答对您有所帮助。如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

run_bear

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

42

原创

38万+

周排名

-

总排名

19万+

访问

等级

1620

积分

103

粉丝

286

获赞

54

评论

805

收藏

私信

关注

热门文章

解决ubuntu16.04终端打不开

20507

shadow-root中的元素定位方法

14207

Xshell 设置常用的快捷键

11062

用JavaScript实现一个简单的网页版计算器

8943

C# 创建一个简单的单元测试实例(MSTest框架)

6108

分类专栏

数据库

1篇

JavaScript

3篇

C#

1篇

单元测试

1篇

linux

10篇

C/C++

20篇

操作系统

6篇

数据结构

14篇

网络

7篇

shell

2篇

脚本编程

2篇

信息论与编码

1篇

python

1篇

xshell

1篇

java

自动化测试

3篇

最新评论

Xshell 设置常用的快捷键

江池俊:

博主文章写的十分细致,结构严谨。感谢博主分享,期待博主持续输出好文,同时也希望可以来我博客指导我一番!

shadow-root中的元素定位方法

m0_57104211:

driver.find_element(By.CSS_SELECTOR,'kat-input').shadow_root.find_element(By.CSS_SELECTOR,'input') 总是说我返回了一个字典 而不是节点 为什么啊 求求博主点播

生日快乐网页

HiBlackCheng:

这个怎么部署使用外网可以访问呀,除了内网穿透还有其他方式吗?

浮点数可以用==来比较是否相等吗?

m0_72847028:

f和EPS比较用fabs函数效果更好哦

生日快乐网页

m0_71027583:

提取不了了

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

mysql忘记root密码后怎么重置

http-server安装使用

chatai简单使用

2024年1篇

2023年2篇

2022年2篇

2021年2篇

2019年5篇

2017年31篇

2016年3篇

目录

目录

分类专栏

数据库

1篇

JavaScript

3篇

C#

1篇

单元测试

1篇

linux

10篇

C/C++

20篇

操作系统

6篇

数据结构

14篇

网络

7篇

shell

2篇

脚本编程

2篇

信息论与编码

1篇

python

1篇

xshell

1篇

java

自动化测试

3篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

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

余额充值

Ur-能源(URG)股票股价_股价行情_财报_数据报告 - 雪球

源(URG)股票股价_股价行情_财报_数据报告 - 雪球首页行情行情中心筛选器新股上市买什么交易A股交易基金交易私募中心下载App扫一扫,下载登录/注册公司概况公司简介公司高管内部持股所属指数股票交易盘前交易盘后交易历史价格期权交易空仓数据内部交易市场预期财报公告SEC文件财报公告(中)财报公告(英)电话会议实录财务数据主要指标分红派息利润表资产负债表现金流量表雪球选股器研究分析收益预估评级变化研究报告APP专享大盘异动股价提醒购买指数相关ETF扫码下载雪球App查看详情Ur-能源(AMEX:URG)可融资可卖空$1.58+0.02 +1.28% 520 球友关注盘前交易 03-06 16:10:00 美东时间盘前交易1.60+0.02+1.27%最高:1.62今开:1.55成交量:334.30万股换手:1.19%最低:1.55昨收:1.56成交额:532.24万振幅:4.49%52周最高:2.01量比:1.06市盈率(TTM):亏损市净率:5.9452周最低:0.82委比:-47.83%市盈率(静):亏损市销率:23.77每股收益:-0.11股息(TTM):--每手股数:1总市值:4.45亿每股净资产:0.28股息率(TTM):--最小价差:0.01总股本:2.82亿机构持股:--Beta:--空头回补天数:--货币单位:USD分时五日日K周K月K季K年K120分60分30分15分5分1分区间统计全屏显示股票对比前复权前复权后复权不复权MABOLL成交量MACDKDJPEPSPCF总市值WRRSIBIASCCIPSY近1月近3月近6月近1年近3年近5年今年以来上市以来-简介Ur-Energy Inc.是一家致力于加拿大和美国地区铀矿鉴定、收购、评估、勘探和开发的处于探索阶段的初级矿业公司。该公司的注册办公室在安大略省的渥太华,其总部在科罗拉多的立托顿。Ur-Energy在怀俄明州的卡斯珀也有办公室。该公司目前的土地投资组合包括:美国地区的13个项目和加拿大的3个勘探项目。美国地区的其中10个项目都在怀俄明州的大分水岭盆地,这也是该公司的旗舰项目,罗斯特克里克正在通过一个最初生产日期预计为2013年下半年的建筑项目逐渐前进。罗斯特克里克的5个项目包含了National Instrument 43-101兼容的矿产资源:罗斯特克里克、LC东、LC南和LC 北。Ur-Energy的Lost Soldier项目也位于怀俄明州,也包含了NI 43-101兼容矿产资源。该公司成立于2004年3月22日。公司网站:http://www.ur-energy.com公司地址:10758 W. Centennial Road

Suite 200

Littleton

Colorado 80127公司电话:1-720-9814588,1-866-9814588收起Ur-Energy Inc.是一家致力于加拿大和美国地区铀矿鉴定、收购、评估、勘探和开发的处于探索阶段的初级矿业公司。该公司的注册...展开

自有品牌_URG跑者装备

自有品牌_URG跑者装备

首    页

自有品牌

合作品牌

产品销售

装备定制

合作案例

市场活动

关于我们

URG SUPERRUNNER 高弹压缩衣

URG3.0空顶帽

URG马拉松专业路 跑五指袜

URG 越野手套

URG 2.0压缩腿套

URG2.0专业跑步袜

URG 运动腰包

URG跑步空顶帽

京ICP备19025509号-1

自有品牌

合作品牌

产品销售

装备定制

合作案例

市场活动

关于我们

联系我们:(010)82083990