当前位置: 首页 > news >正文

WordPress国产企业主题m网站推广优化服务

WordPress国产企业主题m,网站推广优化服务,我想做跑腿网站怎么做,公司网站开源源码书接上回: sv标准研读第十八章-随机化和约束 第19章 功能覆盖率 19.1 总览 -定义cover group -定义cover point -定义cross cover -cover选项 -cover系统函数和系统方法 -cover计算 19.2 概述 覆盖率广义上分为两种:功能覆盖率和工具可以自动…

书接上回:

sv标准研读第十八章-随机化和约束

第19章 功能覆盖率

19.1 总览

-定义cover group

-定义cover point

-定义cross cover

-cover选项

-cover系统函数和系统方法

-cover计算

19.2 概述

覆盖率广义上分为两种:功能覆盖率和工具可以自动收集的代码覆盖率,后者包含行覆盖率、条件覆盖率等,工具自动收集,无需用户写代码。前者是基于ds文档由用户写出来的,因此不同设计功能覆盖率模型不一样。

19.3 定义covergroup

语法:

一个covergroup里可以包含的内容:

-clock event;

-一个或多个coverpoint;

-cross cover;

-可选的形式参数

-cover options

声明covergroup的地方可以是:module、interface、program、class、package、checker。

和class一样,例化covergroup 还是需要new关键字。举例:

形式参数不能是inout/output,ref形式参数等同于const ref,因为covergroup里的代码并不会修改参数。

如果没有指明clock event,那么就需要使用sv提供的专门用于采用的函数sample()。

Strobe选项可以用于帮助规定采样的region,当使用clock event在一个timestep里采样了多次,此时就可以利用该选项让其只在postponed region进行采样。

Coverpont的内容可以是变量或者表达式,cross cover的内容可以是变量或者coverpoint,如下:

19.4 在class里使用covergroup

在class里使用covergroup是,covergroup里可以直接使用在class里定义的变量,如下:

一个class里可以定义多个covergroup

19.5 定义cover point

一个cg里可以有一个或多个cp,语法:

Cp的名字没写且只有一个变量时,工具会自动生成一个名字,该名字就是这个变量的名字;当cp的名字没写单变量有多个时,工具也会自动生成一个名字,但是这个名字不可用。

Cp里的数据类型必须是整型。

Cp的名字只可以在下面这些地方引用:

-cross语句里;

-通过cg变量以hierarchical的形式引用;

-通过cp以::的形式引用

Covergroup_expression可以调用函数,但是函数有一定的限制:

-函数不能有output/inout/非const ref参数

-函数必须是automatic

Cp的采样:当clock block的input skew不是#0时,在preponed region采样;否则,在observed region采样。

Cp里可以使用iff关键字来有条件的采样

Cp的bins仓没有指定时工具会自动建仓,自动建仓的数量可以由auto_bin_max选项指定。

Default bin可以用来收集一些不在该cg里的任何cp表达式收集的仓,可以用来收集一些不在计划内或者无效的值。

19.5.1 定义bins

Cp名字后面加一个[]就可以指定建仓的数量,不加[]表示所有值只建一个仓。[]里面可以为空(为每一个值建仓),可以是一个具体的数字。当cp_name[num]={exp};左边num的数值小于右边表达式列举的值数量时,会将exp里列举的所有值均匀分割到num个仓里,如下:

左边明确指定了只建4个仓,右边却有13个值,那么最终:<1,2,3>对应第一个仓,<4,5,6>对应第二个仓,<7,8,9>对应第三个仓,<10,1,4,7>对应第四个仓。

如果左边仓的数量大于右边值的数量,那么有些仓将始终是空的。

还可以加上iff关键字用来只收集一些条件下的值。

19.5.1.1 cp里加上with表达式

With表达式的作用是对建仓的值进行筛选,举例:

上面的表达式就只会建在[0:255]之间能被3整除的数的仓。

19.5.2 定义transition的仓

语法:

举例:单值转换:

意思是会对值从value1转变到value2的仓。

举例:多值转换:

还可以使用重复操作符:

另外还有一种goto符号:->,和=>不同的是,后者表示值在两个指定的跳变值之间不允许出现其他任何值的跳变,而前者允许。举例:

其实就相当于:

…表示中间可以有其他跳变值的出现。

另外还有一个非连续重复操作符:=也可以使用。举例:

等同于:

19.5.3 自动建仓

如果cp没有写bin,sv会自动建仓。

建仓的数量是2^M和auto_bin_max之间的最小值,M是变量的位宽。

自动建仓不会给x/z值建仓。

19.5.4使用通配符建仓

手动建仓时可以给x/z值建仓,因此sv仓数统计采用的是===进行比较。而通配符wildcard会将x/z/?当做0或1处理。

举例:

会为12-15之间的值建一个仓

举例:

X代表0或1

19.5.5建仓排除一些值

使用ignore_bins可以在建仓时排除一些值,举例:

会排除7,8这两个值进行收集

19.5.6 给一些非法值建仓

当出现一些非法值时,也可以建仓,此时会报错。举例:

当值出现1,2,3时,会报run-time error。

19.6 定义cross coverage

顾名思义,cross coverage指的就是交叉覆盖。语法:

Cross表达式里可以出现变量、cp

19.6.1 定义cross coverage的仓

Cross coverage和cp一样,也可以手动建仓,如下:

上面binsof和intersect结合使用表示只收集i=0的仓。

Cross建仓还可以加上一些表达式:

Apple表示:对a+b<257的值建仓,且元组里满足条件的值的最小数量是127;最终,apple包含3个元组:

Cherry表示:前面用binsof和intersect筛选之后,另外再附加一个with条件,条件就是a必须等于b。

19.6.1.2 设置cross bin的值组合

不仅可以给cross cover手动建仓,还可以指定仓的值组合。举例:

表示aXb只会收集a=1,b=2/a=3,b=4/a=5,b=6这三种组合的覆盖率。

更复杂的,组合的设置还可以通过函数来实现:

19.6.2 cross cover里排除一些值组合的收集

利用ingore_bins来排除对一些值组合的收集:

19.6.3 cross cover里设置一些值组合为非法组合

利用illegal_bins来将一些值组合设置为非法组合:

当出现这些车时,会报run-time error。

19.7 设置coverage选项

下表列举出了所有可以控制cg行为的选项:

在定义cp的时候都可以使用上面表中的option,使用格式如下:

对上面的选项进行中文注释:

http://www.mmbaike.com/news/110664.html

相关文章:

  • wordpress的图片代码是什么宁波seo网站
  • 网站服务器空间大小网络营销渠道可分为哪些
  • 江苏省建设信息网站管理平台北京关键词排名推广
  • 新疆建设学院校校园网站网站搜索排名靠前
  • dede地方门户网站模板网页广告
  • 怎么样关闭网站网页设计与制作考试试题及答案
  • 网站的平面设计图用ps做最近新闻热点国家大事
  • 网站如何重新备案网站优化软件费用
  • 网上做赌博网站潍坊seo招聘
  • 知名企业网站搭建老铁seo外链工具
  • 一般纳税人5%征收率厦门seo外包
  • 做网站站主需要什么条件一键生成网站
  • 网站建设所采用的技术大数据营销
  • 如何制作二维码的内容祁阳seo
  • ps切图做网站搜易网服务内容
  • 建网站需要那些步骤石家庄今天最新新闻头条
  • 站长工具综合查询站长工具seo关键词使用
  • php网站连接数据库教程济南百度竞价开户
  • 备案 网站 漏接 电话网址检测
  • 儿童 网站 设计seo双标题软件
  • 网页.网站.主页.网址.域名有什么联系关键词挖掘工具爱站网
  • 长春火车站疫情防控最新政策营销推广公司
  • wordpress主题 四亩地宁德seo公司
  • 北京市住房城乡建设官方网站自己开一个培训机构流程
  • 网站底部加备案号刷推广链接人数的软件
  • 网站窗口代码搜索引擎营销sem
  • 做网站租服务器需要多少钱长沙正规seo优化价格
  • 怎么做音乐网站制作网页用什么软件
  • 如何让百度收录网址seo服务外包价格
  • 国建设委员会网站大数据精准获客软件