2026年8月3日

摘要: covergroupe可以定在接口、模块、程序、包、类、检查器中 覆盖率是用来检查设计和验证的完备性的,设计的完备性角代码覆盖率,验证的完备性叫功能覆盖率和断言覆盖率,也用于衡量测试的进行程度。 三分层次ip验证(新人) 子系统验证(一定资历) 系统验证(资深) 代码覆盖率是rtl设计工程师写的,验 阅读全文
posted @ 2026-08-03 17:31 tuck0603 阅读(40) 评论(0) 推荐(0)

2026年8月2日

摘要: 简介 断言是你想要看某个过程是否符合要求,例如带有约束的随机化,如果不符合就为假,并报警。且断言是根据设计需要来的,不一定要30% 1.立即断言(assert等) 注意:必须放在过程块always或者initial,注意断言要写完整,条件满足执行什么,不满足也要写else,防止出现错误,else下的 阅读全文
posted @ 2026-08-02 14:36 tuck0603 阅读(27) 评论(0) 推荐(0)

2026年8月1日

摘要: 1.约束数组的size()函数 用来统计动态数组或者队列的元素个数,此时就不用new()来锁定元素个数 2.约束数组的sum()函数 用来计算动态数组或者队列的所有元素的和 3.约束数组的常见错误例子 错误1:对于元素长度一定要是无符号随机值,要固定位宽或者将元素范围写在约束中(第二张图)。 错误2 阅读全文
posted @ 2026-08-01 15:25 tuck0603 阅读(15) 评论(0) 推荐(0)

2026年7月31日

摘要: 1.没有约束的类(有效解无效解等概出现) 2.关系操作(具有依赖关系,可以理解成条件判断语句,如果满足第一个变量约束才约束后面的变量,不满足第一个变量约束则后面的变量就没有约束,非等概) randc在前面也说到了,必须保证每个数值都出现一次(周期性),定义哪个就先考虑哪,个跟你的条件x无关,只跟你最 阅读全文
posted @ 2026-07-31 13:19 tuck0603 阅读(12) 评论(0) 推荐(0)

2026年7月24日

摘要: 1.外部约束 外部约束的外部是相对于类的,外部约束的约束名依然要定义在类内,在外部需要通过 :: 锚定回 Packet。 当在类外写了 constraint Packet::c_external {length == 1;} 后,求解器会把类内的 c_valid 和类外的 c_external 合并 阅读全文
posted @ 2026-07-24 19:16 tuck0603 阅读(23) 评论(0) 推荐(0)

2026年7月23日

摘要: 1.为什么引入随机化? SUV中90%是镜像测试,10%是随机测试。 2.随机约束的核心价值? 1)发现难以预见的缺陷:定向测试只能覆盖设计者认为可能存在的缺陷,而随机测试能够生成大量非预期的场景,从而发现连设计者和验证者都未曾想到的隐蔽 Bug。随着芯片复杂度提升,仅靠定向测试已无法满足验证需求, 阅读全文
posted @ 2026-07-23 15:15 tuck0603 阅读(12) 评论(0) 推荐(0)

2026年7月22日

摘要: 1.线程间通信的方式 事件event,旗语semaphore,信箱mailbox 2.学习目标 了解三种线程通信方法的用法,以及线程的使用和通信需求 3.线程的使用 verilog中的语句分组使用begin end和fork join,在SV中引入了fork join_any和fork join_n 阅读全文
posted @ 2026-07-22 18:14 tuck0603 阅读(20) 评论(0) 推荐(0)
摘要: 1.编译;2.import,否则不会被识别 包是一种共享的机制,也就是说将多需要共享的静态变量(常量)/静态方法function和task/类型typedef/类class等打包,共享给多个module/interface/program。 一般是将不同类的的定义规整到不同的packeage,能将相 阅读全文
posted @ 2026-07-22 13:13 tuck0603 阅读(16) 评论(0) 推荐(0)
摘要: interface 封装了module的端口(ports)、方向(modports)、同步关系( clocking block)、以及function和task。 1.virtual interface作用是什么? interface是一种静态的硬件结构,简化了模块之间的连接,无法在program 阅读全文
posted @ 2026-07-22 12:21 tuck0603 阅读(23) 评论(0) 推荐(0)

2026年7月21日

摘要: systemverilog中浅复制和深复制的区别 https://www.cnblogs.com/Alfred-HOO/articles/17764629.html 我理解错误是因为我以为是对对象本身进行复制呢,其实不是,是对象中存在子对象的句柄pkt,这个浅复制不会为子对象创建新的内存空间 对于对 阅读全文
posted @ 2026-07-21 17:42 tuck0603 阅读(8) 评论(0) 推荐(0)

导航