2021年11月28日

篇9-verilog例化与sv OOP例化的区别,new函数介绍,对象的解除分配

摘要: 资料来源 (1) sv绿皮书; (2) Verilog系列:【59】new的初始化顺序 (qq.com) 1.verilog例化与sv OOP例化的区别 (1).verilog模块是在代码被编译时例化的,而system verilog类是在运行中测试平台需要的时候才被创建; (2).verilog的 阅读全文

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

2021年11月27日

【LSF】如何批量结束计算集群中的任务

摘要: 资料来源 (1) 公众号-icsoc; 如何批量结束计算集群中的任务 (1) 问题 目前许多 IC 公司的计算集群都是 LSF 管理的。如何结束批量运行的 EDA 任务?例如运行 PT DMSA 时,会同时提交大量的进程,当运行有错误想中止任务时,在 Terminal 按 ctrl-c 会立即中断 阅读全文

posted @ 2021-11-27 23:03 知北游。。 阅读(521) 评论(0) 推荐(0) 编辑

【linux】如何删除类似.nfs000xxxx的文件

摘要: 资料来源 (1) 公众号-icsoc; 如何删除类似.nfs000xxxx的文件 (1) IC 设计一般来说都是在 Linux 服务器上完成的,频繁的启动、结束 EDA 工具,生成、删除临时数据,难免会出现类似 .nfs000xxx 的文件。 (2) 当尝试使用 rm 去删除它时,会有下面的提示: 阅读全文

posted @ 2021-11-27 22:58 知北游。。 阅读(2664) 评论(0) 推荐(0) 编辑

2021年11月25日

16-在属性中使用形参,在属性中使用局部变量,以及在序列匹配时调用子程序

摘要: 资料来源 (1) sv assertion; (2) 硅芯思见:【84】SVA中的形式参数 (qq.com) (3) 硅芯思见:【93】SVA中的局部变量和子程序 (qq.com) 1.在属性中使用形参 (1) 可以用定义形参的方式来重用一些常用的属性. (2) SVA允许使用属性的形参来定义时钟. 阅读全文

posted @ 2021-11-25 16:28 知北游。。 阅读(208) 评论(0) 推荐(0) 编辑

篇15-内建系统函数与disable iff构造

摘要: 1.内建系统函数 $onehot(expression)—检验表达式满足“one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高。 $onehot0(expression)—检验表达式满足“zero one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高或者没有任何一 阅读全文

posted @ 2021-11-25 16:26 知北游。。 阅读(1036) 评论(0) 推荐(0) 编辑

14-first_match构造/throughout构造/within构造

摘要: 资料来源 (1) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) (例子很好) 1.first_match构造 (1) 使用了逻辑运算符(如“and”和“or”)的序列中指定了时间窗,有可能出现同一检验具有多个匹配的情况。“first_match”构造可以确保只用第一次序列匹配,而丢 阅读全文

posted @ 2021-11-25 14:00 知北游。。 阅读(1074) 评论(0) 推荐(0) 编辑

2021年11月24日

13-and构造/intersect构造/or构造

摘要: 资料来源 (1) SVA中的与或非(and_or_not) (qq.com) (2) system verilog assertions应用指南 (3) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) 1.and构造 (1) 二进制运算符“and”可以用来逻辑地组合两个序列。当两个序 阅读全文

posted @ 2021-11-24 22:35 知北游。。 阅读(630) 评论(0) 推荐(0) 编辑

12-重复运算符(连续重复,跟随重复,非连续重复)

摘要: 资料来源 (1) 硅芯思见:【87】SVA中的重复运算操作 (qq.com) 1.连续重复(可用于表达式和序列) (1) 信号或者序列将在指定数量的时钟周期内都连续地匹配。信号的每次匹配之间都有一个时钟周期的隐藏延迟。 (2) 连续重复运算符的基本语法:signal or sequence [*n] 阅读全文

posted @ 2021-11-24 22:22 知北游。。 阅读(1083) 评论(0) 推荐(0) 编辑

篇11-$past构造与带时钟门控的$past构造

摘要: 1.$past构造 (1) SVA内嵌系统函数“$past”可以得到信号在几个时钟周期之前的值。在默认情况下,它提供信号在前一个时钟周期的值。 (2) 结构的基本语法:$past(signal_name, number of clock cycles) 2.$past构造实例 属性p19检验的是在给 阅读全文

posted @ 2021-11-24 19:29 知北游。。 阅读(667) 评论(0) 推荐(0) 编辑

2021年11月23日

篇9-ended结构

摘要: 1.序列的连接机制 (1) 使用序列起始点作为同步点的连接机制; (2) 使用序列结束点作为同步点的连接机制; 这种机制通过给序列名字追加关键词“ended”来表示。例如,s.ended表示序列的结束点。关键词“ended”保存了一个布尔值,值的真假取决于序列是否在特定的时钟边沿匹配检验。 2.示例 阅读全文

posted @ 2021-11-23 22:27 知北游。。 阅读(223) 评论(0) 推荐(0) 编辑

10-使用参数/选择运算符(?:)/true表达式的sva/system verilog assertion检验器

摘要: 资料来源 (1) 硅芯思见:【88】SVA中的条件选择 (qq.com) 1.使用参数的SVA检验器 下图中,实例i1将延迟参数改写为2个时钟周期,而实例i2使用默认的1个时钟周期; 2.使用选择运算符/选择运算符的SVA检验器 注1:条件运算符?:可以在序列sequence和属性property的 阅读全文

posted @ 2021-11-23 17:21 知北游。。 阅读(313) 评论(0) 推荐(0) 编辑

?-sva/system verilog assertion与功能覆盖

摘要: 参考资料 (1) 请教一下用assert property和cover property搜集覆盖率有什么不同? - IC验证讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - (2) sv绿皮书; (3) IEEE system verilog standard; (4) 硅芯思见:【8 阅读全文

posted @ 2021-11-23 16:35 知北游。。 阅读(2396) 评论(0) 推荐(0) 编辑

篇?-将sva/system verilog assertion与设计连接

摘要: 1.在模块(module)定义中内建或内联检验器 2.将检验器与模块/模块的实例/一个模块的多个实例绑定 优点:sva检验器与设计代码分离; 2.1检验器模块 2.2bind语法 2.3顶层模块 2.4bind实现 阅读全文

posted @ 2021-11-23 16:16 知北游。。 阅读(168) 评论(0) 推荐(0) 编辑

篇8-sva/system verilog assertion检验器的时序窗口(重叠的时序窗口和无限的时序窗口)

摘要: 资料来源 (1) 硅芯思见:【86】SVA中的延迟 (qq.com) 例子: 属性p12检查布尔表达式“a&&b”在任何给定的时钟上升沿为真。如果表达式为真,那么在接下来的1~3个中周期内,信号“c”应该至少在一个时钟周期内为高。 p12实际上以下面三个线程展开。 1.重叠的时序窗口 属性p13与属 阅读全文

posted @ 2021-11-23 16:03 知北游。。 阅读(286) 评论(0) 推荐(0) 编辑

篇7-断言中的执行块(action block)

摘要: 1.执行块 (1) SystemVerilog语言被定义成每当一个断言检查失败,模拟器在默认情况下都会打印出一条错误信息。模拟器不需要对成功的断言打印任何东西,可以使用断言陈述中的“执行块”(action block)来打印自定义的成功或失败信息。 (2) 执行块的基本语法如下所示。 (3) 执行块 阅读全文

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

6-禁止属性not,蕴含操作符(交叠蕴含与非交叠蕴含)(包含在蕴含中使用if...else结构)

摘要: 资料来源 (1)硅芯思见:【95】SVA中的基本元素sequence和蕴含操作 (qq.com) (2)SVA中的与或非(and_or_not) (qq.com) 1.禁止属性 当期望属性为假时,可以采用关键词not,用来表示属性永远不为真. 2.蕴含/implication (1) 蕴含等效于if 阅读全文

posted @ 2021-11-23 13:34 知北游。。 阅读(870) 评论(0) 推荐(0) 编辑

篇5-sva/system verilog assertion中序列/sequence的构建(2)

摘要: 1.带形参的序列 通过在序列中定义形参,相同的序列能被重用到设计中具有相似行为的信号上; 2.序列独立于时钟的coding style 2.1序列中指定时钟 2.2属性中指定时钟,序列独立于时钟(可提高基本序列定义的可重用性) 阅读全文

posted @ 2021-11-23 13:25 知北游。。 阅读(142) 评论(0) 推荐(0) 编辑

4-sva/system verilog assertion中序列/sequence的构建(1)(包含$rose,$fell,$stable,$changed等函数)

摘要: 资料来源 (1)硅芯思见:【81】SVA中的$rose和$fell (qq.com) (2)硅芯思见:【92】SVA中的内嵌函数 (qq.com) 1.简单序列 序列s1检查信号“a”在每个时钟上升沿都为高电平。如果信号“a”在任何一个时钟上升沿不为高电平,断言将失败。 2.边沿定义的序列以及使用其 阅读全文

posted @ 2021-11-23 12:06 知北游。。 阅读(1349) 评论(0) 推荐(0) 编辑

篇3-【IMP】建立SVA块 (system verilog assertion)

摘要: 1.建立SVA块的步骤如下图所示: 注:序列/属性必须被断言,才能发挥作用; 2.序列/sequence的基本语法 篇4-sva中序列的构建(1) - 蚕食鲸吞 - 博客园 (cnblogs.com) 篇5-sva中序列的构建(2) - 蚕食鲸吞 - 博客园 (cnblogs.com) 3.属性/p 阅读全文

posted @ 2021-11-23 11:07 知北游。。 阅读(121) 评论(0) 推荐(0) 编辑

2021年11月22日

2-【IMP】assertion的作用,特点与分类

摘要: 资料来源 (1) 硅芯思见:【82】SVA概述 (qq.com) 1.什么是断言? 断言是设计的属性的描述; 如果一个在模拟中被检查的属性不像我们期望的那样表现,那么这个断言失败; 如果一个被禁止在设计中出现的属性在模拟过程中发生,那么这个断言失败; 2.为什么使用断言? (1) verilog是一 阅读全文

posted @ 2021-11-22 17:02 知北游。。 阅读(282) 评论(0) 推荐(0) 编辑

1-【IMP】sv assertion示例

摘要: 1.sv assertion使用 sv assertion的使用涉及以下内容: (1) sv assertion的构建(参考《SystemVerilog Assertions应用指南》一书); (2) sv assertion的放置位置; assertion除了可以放置在module内,也可以放在i 阅读全文

posted @ 2021-11-22 16:20 知北游。。 阅读(797) 评论(0) 推荐(0) 编辑

2021年11月20日

vcs-编译+仿真+dump波形【IMP】

摘要: 资料来源 (1) 公众号-全栈芯片工程师; (2) 公众号-ICer消食片; 注1:VCS仿真分为两步式(编译/compilation+仿真/simulation)和三步式(分析/analysis+细化/elaboration+simulation/仿真); 注2:analysis/分析是三步式fl 阅读全文

posted @ 2021-11-20 15:06 知北游。。 阅读(6236) 评论(0) 推荐(0) 编辑

2021年11月18日

7-字符串与$sformatf,$sformat,$psprintf

摘要: 资料来源: (1)公众号-杰瑞IC验证; (2)硅芯思见:【97】$sformat()与$psprintf() (qq.com) 1.$sformat & $sformatf 1 //示例1-jerry IC验证; 2 string jerry_string; 3 string jerry_stri 阅读全文

posted @ 2021-11-18 19:09 知北游。。 阅读(5940) 评论(0) 推荐(0) 编辑

篇3-bind(优点,语法及使用示例)

摘要: 资料来源 (1) system verilog standard; (2) system verilog-钟文枫; (3) 硅芯思见:【83】断言如何与设计bind (qq.com) (该篇文章有内容错误) 1.bind优点 实现验证和设计的分离,将module或program或interface绑 阅读全文

posted @ 2021-11-18 18:36 知北游。。 阅读(4060) 评论(0) 推荐(0) 编辑

4.3-类:继承的规则(含local/protected概念),对象空间分配,虚方法和多态

摘要: 资料来源: (1) system verilog与功能验证-钟文枫(注:关于虚方法和多态的讲解,该本资料最佳); (2) 硅芯思见:【107】SystemVerilog中的多态和虚方法 (qq.com) (3) Verilog系列:【62】local和protected保护类成员 (qq.com) 阅读全文

posted @ 2021-11-18 16:40 知北游。。 阅读(215) 评论(0) 推荐(0) 编辑

篇7-UVM ERROR达到一定数量时结束仿真

摘要: 1.UVM_ERROR达到一定数量结束仿真 1.1相关函数 (1) set_report_max_quit_count (2) set_max_quit_count (3) get_max_quit_count 1.2命令行设置 其中,上面的”NO”表示UVM_MAX_QUIT_COUNT的设置值6 阅读全文

posted @ 2021-11-18 14:49 知北游。。 阅读(868) 评论(0) 推荐(0) 编辑

uvm report机制-uvm report info冗余度(设置与重载)与uvm_report_catcher(使用了callback机制)

摘要: 资料来源 (1) 《Practical UVM Step by Step with IEEE》 注1: 在打印信息之前,UVM会比较要显示信息的冗余度级别与默认的冗余度阈值。如果小于等于阈值,就会显示,否则不会显示. 1.冗余度阈值(概念与设置) 1.1冗余度阈值相关函数 tb里面可以调用下面函数动 阅读全文

posted @ 2021-11-18 11:16 知北游。。 阅读(1954) 评论(0) 推荐(0) 编辑

2021年11月17日

[CU]时钟1-可变时钟

摘要: 资料来源: (1) 《UVM实战》 1.不同测试用例时钟频率不同,同一测试用例时钟频率保持不变; 1 //my_case0.sv 2 function void my_case0::build_phase(uvm_phase phase); 3 ... 4 uvm_config_db#(real): 阅读全文

posted @ 2021-11-17 20:49 知北游。。 阅读(260) 评论(0) 推荐(0) 编辑

篇5-testcase pass的判断

摘要: 资料来源: (1) 公众号-杰瑞IC验证 1.统计UVM_FATAL与UVM_ERROR数目 (1) 在uvm_test或env的final_phase里面,检查UVM_ERROR和UVM_FATAL的个数,如果不为0,打印CASE FAIL;否则,打印CASE PASS; (2) 示例中,之所以采 阅读全文

posted @ 2021-11-17 11:30 知北游。。 阅读(289) 评论(0) 推荐(0) 编辑

2021年11月16日

uvm通信-TLM源码分析(uvm_sqr_if_base,uvm_tlm_if_base,uvm_port_base)

摘要: 1.常见两类TLM端口 1.1用于driver和sequencer之间 1.2用于其他component之间 2.uvm_sqr_if_base (1) 这个类没有派生自任何类; (2) 类里面定义了如下几个task/function: get_next_item, try_next_item, i 阅读全文

posted @ 2021-11-16 20:59 知北游。。 阅读(336) 评论(0) 推荐(0) 编辑

导航