12 2021 档案

interface中clocking block输入偏差与输出偏差
摘要:资料来源 (1) 硅芯思见:【125】clocking block中的输入偏差和输出偏差 (qq.com) (2) sv绿皮书; 1.输入偏差与输出偏差 (1) system verilog的时钟块机制(clocking block)可以对指定信号进行基于特定时钟的同步处理,时钟块中的任何信号都将根 阅读全文

posted @ 2021-12-30 20:50 知北游。。 阅读(1863) 评论(0) 推荐(0) 编辑

sv通信-sv绿皮书7.5semphore
摘要:资料来源 (1)sv绿皮书; (2)硅芯思见:【127】semaphore原来还有这一面 (qq.com) 1.旗语semphore简介 (1)semaphore是SystemVerilog中的内建类,主要用于实现多进程对于共享资源的协同访问控制。 (2)semaphore的基本操作:new(),g 阅读全文

posted @ 2021-12-29 21:51 知北游。。 阅读(868) 评论(0) 推荐(1) 编辑

sv9.9覆盖选项(实例选项与类型选项)
摘要:1.实例选项 (1)用于特定的覆盖组实例; (2)per-instance只能放在覆盖组中,不能用于覆盖点或交叉点; (3)使用per_instance选项与comment选项可以为每个covergroup实例加入单独的注释; 1 class C1; 2 bit[7:0] x; 3 4 coverg 阅读全文

posted @ 2021-12-29 21:00 知北游。。 阅读(225) 评论(0) 推荐(0) 编辑

sv9.8通用的覆盖组(通过数值或者引用传递覆盖组参数)
摘要:1.通过数值传递覆盖组参数 2.通过引用传递覆盖组参数 1 covergroup cg (ref int ra, input int low, int high) @(posedge clk); 2 coverpoint ra //采样通过引用传递的变量 3 { 4 bins good={[low: 阅读全文

posted @ 2021-12-29 20:06 知北游。。 阅读(268) 评论(0) 推荐(0) 编辑

sv9.7.6交叉覆盖的替代方式
摘要:1.交叉覆盖的替代方式 (1)随着交叉覆盖的定义越来越精细,可能需要花费较多的时间来指定哪些仓应该使用或者被忽略掉; 可以通过给覆盖点上的仓命名,然后使用这些仓来收集交叉覆盖率数据; (2)示例 (2.1)使用仓名与binsof指定交叉覆盖的数值 (2.2)使用binsof与intersect指定交 阅读全文

posted @ 2021-12-29 17:44 知北游。。 阅读(193) 评论(0) 推荐(0) 编辑

sv9.7.3&9.7.4排除掉部分交叉覆盖仓,从总体覆盖率的度量中排除掉部分覆盖点
摘要:1.排除掉部分交叉覆盖仓 (1)ignore_bins+binsof+intersect可以排除掉许多交叉覆盖仓;其中,binsof用于指定覆盖点,intersect用于指定数值集; (2)示例 2.从总体覆盖率的度量中排除掉部分覆盖点 (1)一个覆盖阻的总体覆盖率是基于所有简单覆盖点和交叉覆盖率的 阅读全文

posted @ 2021-12-28 21:47 知北游。。 阅读(1243) 评论(0) 推荐(0) 编辑

sv9.7.1&9.7.2-交叉覆盖率及示例,对交叉覆盖仓进行标号
摘要:1.交叉覆盖率及示例 (1)覆盖点记录单个变量或表达式的观测值,交叉覆盖率则同时测量两个或两个以上覆盖点的值; (2)system verilog中的cross结构可以用来记录一个覆盖组内两个或两个以上覆盖点的组合值; cross语句只允许带覆盖点或者简单的变量名; (3)示例 2.对交叉覆盖仓进行 阅读全文

posted @ 2021-12-28 21:21 知北游。。 阅读(596) 评论(0) 推荐(0) 编辑

sv9.6.11&9.6.12 忽略数值或翻转,不合法的仓
摘要:1.忽略数值或翻转 (1)在某些覆盖点上,可能始终得不到全部可能值,对于该问题可以使用两种方法: 方法一:明确定义仓来涵盖所有的期望值; 方法二:让system verilog自动创建仓,然后使用ignore_bins排除掉那些不用来计算功能覆盖率的数值; (2)ignore_bins示例: 1 示 阅读全文

posted @ 2021-12-22 22:05 知北游。。 阅读(131) 评论(0) 推荐(0) 编辑

sv9.6.7&9.6.9&9.6.10条件覆盖率,翻转覆盖率,在状态和翻转中使用通配符
摘要:1.条件覆盖率 (1) 可以使用关键字iff给覆盖点添加条件,这种做法最常用于在复位期间关闭覆盖以忽略一些杂散的触发; 注:也可以使用covergroup_name.stop()与covergroup.start()进行covergroup的采样; (2) 可以使用start和stop函数控制覆盖组 阅读全文

posted @ 2021-12-22 21:54 知北游。。 阅读(820) 评论(0) 推荐(0) 编辑

sv9.6.4&9.6.5&9.6.6对表达式采样,用户自定义仓,命名覆盖点的仓
摘要:1.对表达式进行采样 注:覆盖点可以对变量或表达式采样; (1) 注意哑元变量的使用; (2) 由于值域不是2的幂,所以最好使用自定义的仓,如果使用自动生成的仓,可能需要添加ignore_bins; 2.用户自定义的仓 3.命名覆盖点的仓 阅读全文

posted @ 2021-12-22 21:34 知北游。。 阅读(74) 评论(0) 推荐(0) 编辑

sv9.6.2&9.6.3自动创建仓与限制自动创建仓的数目
摘要:注1:每一个覆盖点(coverage point)都包含一系列bins,用于采样值或者值的翻转; 采样值的bins称作state bins,采样值的翻转的bins称作transition bins; 1.自动创建仓 (1) system verilog会自动为覆盖点创建仓。 2.限制自动创建仓的数目 阅读全文

posted @ 2021-12-22 21:10 知北游。。 阅读(386) 评论(0) 推荐(0) 编辑

learning perl-4.9&4.14&4.10词法变量my,持久性私有变量state,use strict编译命令
摘要:1.词法变量my (1)词法变量可使用在任何块内,而不仅限于子程序的语句块,它可以再if,while或foreach的语句块中使用; (2)所有新变量的值一开始都是空的,标量被设为undef,数组被设为空列表; 2.持久性私有变量state (1)在子程序中使用my操作符创建私有变量,但每次调用这个 阅读全文

posted @ 2021-12-16 00:14 知北游。。 阅读(56) 评论(0) 推荐(0) 编辑

learning perl-4.5&4.7子程序中的私有变量以及更好的&max子程序
摘要:1.子程序中的私有变量 (1)默认情况下,perl中所有变量都是全局变量,但是可以通过my操作符创建私有的词法变量; 这些变量的作用范围被圈定在语句块中,它们是该语句块内的私有变量; (2)Perl允许省略语句块中最后一个分号,但是通常在程序代码简单到整个语句块只有一行时,才有必要省略分号; 2.更 阅读全文

posted @ 2021-12-15 23:59 知北游。。 阅读(38) 评论(0) 推荐(0) 编辑

learning perl-4.3&4.11&4.13&4.4&4.6子程序的返回值,return操作符,非标量返回值与参数及长度可变的参数列表
摘要:1.子程序的返回值与return操作符 (1)子程序被调用时,存在返回值,但返回值不一定会被使用; (2)所有的子程序都有一个返回值-子程序并没有"有返回值"和"没有返回值"之分. (3)子程序中如果没有使用return显式提供返回值,那么子程序中最后一次运算的结果,会被自动当成子程序的返回值; ( 阅读全文

posted @ 2021-12-15 23:43 知北游。。 阅读(71) 评论(0) 推荐(0) 编辑

learning perl-4.1&4.2定义子程序与调用子程序
摘要:1.定义子程序 (1)定义子程序,可使用关键字sub,子程序名以及经过缩进的代码块,如下图所示; (2)子程序可以在程序的任意位置定义,可以放在文件的开头,也可以放在文件的结尾。 (3)可以在子程序中使用任何全局变量. 2.调用子程序 (1) 可以再任意表达式中使用子程序名(前面加上&号)来调用它; 阅读全文

posted @ 2021-12-15 23:22 知北游。。 阅读(318) 评论(0) 推荐(0) 编辑

Intermediate perl-4.9散列的引用与解引用
摘要:1.使用反斜杠对散列取引用; 2.对哈希引用解引用; (1) 按照没有使用引用的方式编写读取散列中数据的语法,然后用一对大括号包围着的引用名称替换散列名称; 阅读全文

posted @ 2021-12-14 23:31 知北游。。 阅读(54) 评论(0) 推荐(0) 编辑

Intermediate perl-4.8用箭头简化嵌套元素的引用
摘要:1.下图中,数组@gilligan的引用可以通过${$all_with_names[2]}[1]获取; 数组@gilligan的第一个元素gilligan[0]则可以通过${${$all_with_names[2]}[1]}[0]来获取; 2.在编写${DUMMY}[$y]的任何地方,都可以使用DU 阅读全文

posted @ 2021-12-14 23:17 知北游。。 阅读(40) 评论(0) 推荐(0) 编辑

Intermediate perl-4.7嵌套的数据结构(数组与数组的嵌套,数组与哈希的嵌套,哈希与哈希的嵌套)
摘要:1.@all_with_names数组中有三个元素,其中的每一个元素都是数组引用,并且每个数组引用包含两个元素:人员名称和相应的初始供应列表. (1) 如果以@{$all_with_names[2]}的方式进行解引用操作,就将得到一个拥有两个元素的数组gilligan_with_name和另外一个数 阅读全文

posted @ 2021-12-14 23:05 知北游。。 阅读(96) 评论(0) 推荐(0) 编辑

Intermediate perl-4.6通过引用修改数组
摘要:1.通过数组引用可以解决过多复制的问题,通过数组引用也可以修改初始数组。 2.下图展示的子程序中,将扫描过程中找到的任何丢失的项放入到@missing数组中,然后对$items数组引用进行解引用操作,访问初始化数组,添加来自于@missing数组的元素. 如果没有按引用传递,就需要修改数据的本地副本 阅读全文

posted @ 2021-12-14 22:41 知北游。。 阅读(37) 评论(0) 推荐(0) 编辑

Intermediate perl-4.3&4.4对数组取引用以及对数组引用解引用
摘要:1.对数组取引用 (1)反斜杠(\)可以作为取引用操作符,将它放到数组名称之前时,如\@skipper,将得到该数组的引用; (2)数组的引用与指针类似,但是引用指向整个数组,而不是数组本身的第一个元素的地址; (3)引用适用于所有适合标量的场景,它能够作为数组或散列的元素,或者放入普通标量变量中, 阅读全文

posted @ 2021-12-08 23:47 知北游。。 阅读(198) 评论(0) 推荐(0) 编辑

Intermediate perl-4.1引用简介
摘要:1.引用(对比按值传递与按引用传递) (1) 引用是处理复杂数据结构、面向对象编程和精美子例程的基础。 (2) perl的标量变量保存单个值,数组保存一个有序的标量列表,散列保存一个无需的标量集合作为值,字符串作为键.但是这三种数据类型都不适合用于表示复杂的数据关系,而引用可以。 2.场景-在多个数 阅读全文

posted @ 2021-12-08 23:32 知北游。。 阅读(48) 评论(0) 推荐(0) 编辑

17-SVA中的多时钟定义,matched构造,expect构造
摘要:资料来源 (1) 硅芯思见:【94】SVA中的multi-clock (qq.com) (2) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) 1.SVA中的多时钟定义 (1) SVA允许序列或者属性使用多个时钟定义来采样独立的信号或者子序列; (2) SVA会自动地同步不同信号或者 阅读全文

posted @ 2021-12-07 16:02 知北游。。 阅读(672) 评论(0) 推荐(0) 编辑

3.1-I2C总线(该篇介绍不是很好,但参考资料中代码可以看看)
摘要:参考资料 (1) 详解I2C总线协议 (qq.com)--公众号IC大家谈 【已阅】 (2) 通信协议 IIC 与 SPI 最全对比 (qq.com) (3) uvm_agents/src/i2c at master · dovstamler/uvm_agents · GitHub (4) I2C 阅读全文

posted @ 2021-12-06 20:38 知北游。。 阅读(264) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示