
设计和建模方法
路科验证
个人公众号【路科验证】,《芯片验证漫游指南》作者,芯片验证独立咨询,前Intel公司芯片验证专家,西安电子科技大学客座讲师,浙江大学VLSI设计博士。
展开
-
是模拟器在我的SystemVerilog代码下的行为出错了吗?
摘要:有时,System Verilog的使用者花费大量时间来调试意料之外的仿真结果。最后才发现是SystemVerilog语言参考手册(LRM,Language Reference Manual)所定义的规范与使用者所想的不同。在本文将探讨SystemVerilog使用者经常提出的一些问题。这些问题的回答将帮助SystemVerilog的使用者正确、准确地理解语言规范,从而可能节省设计人员因意外的模拟结果所花费的大量调试时间。 序言 2005年,SystemVerilog被...转载 2020-12-10 10:57:16 · 761 阅读 · 0 评论 -
设计验证项目中的强大功能
对于任何设计验证 (DV) 项目,遵循最佳编程规范可让团队成员的日子过得更轻松。另一方面,当代码被重用时,或者当代码从一个所有者移交给另一个所有者以完成将来的任何改进时,不良的代码风格会导致很多问题。有时,它会导致代码中的大量返工和修补程序,使代码很难在项目的后期阶段或将来需要重用的项目中得以维护。很多时候,在做设计验证项目时,需要将较大的代码段分成较小的块,以使代码更易于阅读和调试(也用于可重用的目的)。这种较小的代码片段可用于 DV 环境中的不同位置,用于多个组件/模块等。...转载 2020-12-10 10:55:11 · 595 阅读 · 0 评论 -
导入SystemVerilog程序包意味着什么?
在上次网络研讨会中,我解释了在SystemVerilog中导入程序包时会发生什么情况。不过,仍然有很多问题,所以这里给出了书面版本。请在你自己的系统或EDA工具上尝试这些示例。将代码剪切并粘贴到SystemVerilog文件中,进行编译和调试。犯些错误,搞得一团乱,然后从中学习(即不断试错,入坑又出坑)。如果你只是听或读了这篇,但从未运行过代码,那么这些概念将从你的脑中消失的速度比Neowise彗星更快。另一盒糖想象你正在做晚餐,需要一些糖。你会怎么做?把手伸到冰箱旁...转载 2020-12-10 10:51:17 · 461 阅读 · 0 评论 -
UVM和C-完美结合
摘要:SystemVerilog [1]和 UVM [2]为验证团队提供结构和规则。它使得在许多测试中能获得一致的结果,并可以在团队之间共享验证。许多验证团队都在使用由C代码编写的验证套件。本文将讨论将基于C的测试和验证套件集成到常规UVM测试平台的各种方法。 引言 本文将演示把DPI-C与标准UVM Testbench一起使用的技术和方法。 C代码将应用于底层事务生成器,高级事务生成器,记分板和监视器等模块中。 UVM测试台将同步运行-例如,UVM测试可能正在总线上传输后台流...转载 2020-12-10 10:49:28 · 6097 阅读 · 0 评论 -
浅谈可移植激励规范(PSS)复用策略
译者按 :当今硬件设计变得愈加复杂,如何创建出足够的测试来保证设计的正确性是每个硬件工程师需要面对的问题。Accellera的可移植激励测试规范(PSS、又称便携激励标准)[1]旨在希望能够提供一个独立的测试来源,从而实现跨层级的验证复用,即无论是IP级别、子系统、还是SoC级都使用同样的测试来源,他们也希望提供一系列功能来解决不同级别对于验证测试的不同要求,从而达到真正意义上的复用。然而,即使是像Java和C++这样拥有强大的面向对象特性的编程语言,都不能直接保证我们能得到高质量的可复用的代码,...翻译 2020-09-25 09:37:25 · 2435 阅读 · 0 评论 -
为什么超链接如此重要
为什么超链接对于HDL调试至关重要在万维网上冲浪是工程师每天最容易做的事情之一;调试他们的设计和测试平台却是最难的事情之一。EDA多年来一直在努力构建使调试易于处理的工具。最近的进展借用了流行的计算机应用程序(如Web浏览器)的易用性,并将其应用于一些最复杂的设计和验证问题。超链接是这里的一项关键技术。文本编辑器的局限性自从上世纪90年代早期逻辑综合被广泛采用以来,设计人员就开始使用硬件描述语言(HDL),如Verilog和VHDL。HDL还包含用于验证的构造,这些特性随着时间...翻译 2020-09-02 19:03:53 · 638 阅读 · 1 评论 -
收藏 | 电子通信协议之CAN总线协议篇
CAN总线在硬件系统中占有一席之地,是国际上应用最广泛的现场总线之一,与我们收藏过的SPI、UART不同,属于“高端高效”系列。什么是CAN总线?嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,像机器人、工业、自动控制系统中,都有广泛的应用。随着国家对海防的越来越重视,对CAN的需求也会越来越大。概述CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。想到CAN...原创 2020-07-30 16:32:03 · 1679 阅读 · 0 评论 -
IP验证的端到端形式化验证策略
摘要:IP验证传统上包括某种形式的受约束的随机验证方法,例如UVM,也可能包括对设计的一部分进行形式化验证。但是,在运行第一个随机测试之前,通常都有一个将所有验证基础架构汇总的提前期,并且覆盖率闭合也很耗时。对设计的一部分进行形式化验证有助于减少UVM测试平台的覆盖空间,但仍需要完整的UVM测试平台基础结构,并且还需要用于形式化验证的其他资源。在本文中,我们将端到端(E2E)形式化方法作为仅使用形式化工具来验证IP的可行选择。我们使用交叉开关(XBar)和中断控制器(INTC)这两个IP来呈现关于...原创 2020-07-16 11:53:35 · 1285 阅读 · 0 评论 -
听说SPI访问寄存器的功能覆盖率很难?UVM助力实现方案来啦!
摘要虽然UVM寄存器抽象层支持功能覆盖率的收集,但是,对于复杂的寄存器访问场景,现有的元素显得并不充分。利用串行外设接口(SPI)访问寄存器带来了一种全新的挑战,这是由于比特分辨率访问级别和低级别通信参数已成为功能覆盖率的必要部分。外部功能覆盖率订阅器加速了这些单元的处理,与此同时也提供了将影响寄存器访问的其他因素(例如,功耗管理)纳入覆盖率度量指标的选项。一、引言寄存器空间的验证是验证过程中的关键任务之一。寄存器实现当中的任何bug将意味着一个错误的设备操作。如果SPI被用来访...原创 2020-07-07 16:56:15 · 2796 阅读 · 0 评论 -
你知道用于AMBA协议的“Checker IP”是如何构建的吗
译者小注:本文主要阐述了verification IP中的一个子集:checker IP。这一术语由本文的作者提出,用于区别传统的VIP。在文中,作者分享了自己的搭建经验和指导。同时,本文路桑已在路科公众号发布过一篇小结性的文章:《我敢说能做好验证IP的verifier是验证顾问的不二人选》。摘要:检查器是设计验证流程的关键部分。随着随机约束技术的出现,各种语言,方法和工具都支持了许多的激励生成功能。使用各种形式的检查器可以确保设计符合规范。术语"checker"对不同的使用者意味着不同的事物。...原创 2020-07-07 16:47:59 · 1057 阅读 · 0 评论 -
收藏 | 电子通信协议之I2C通信协议篇
到目前为止,我们已经讨论了SPI通信和UART通信的基础知识,因此现在让我们进入本系列的最后一个协议,即集成电路总线或I2C。如果你在项目里使用OLED显示器,气压传感器或陀螺仪/加速度计模块,那你很可能会发现自己正在使用I2C通信协议。I2C通信简介I2C结合了SPI和UART中最好的功能。使用I2C,您可以将多个从设备连接到单个主设备(像SPI那样),也可以由多个主设备控制一个或多个从设备。当你希望有多个微控制器将数据记录到单个存储卡或将文本显示到单个LCD...原创 2020-07-07 16:42:14 · 1600 阅读 · 1 评论 -
收藏 | 电子通信协议之UART通信协议篇
还记得以前打印机、鼠标和调制解调器都会带有那些笨拙的连接器的粗电缆的时代吗?从字面上来解读,就是必须拧入您的计算机的那些?这些设备可能正在使用UART协议与您的计算机进行通信。尽管USB几乎完全取代了那些旧的电缆和连接器,但是UART绝不会是一个过时的东西。您会发现许多DIY电子项目中仍然使用UART将GPS模块、蓝牙模块和RFID读卡器模块连接到Raspberry Pi、Arduino或者其他微控制器。UART代表通用异步接收器/发送器。它不是...原创 2020-07-07 16:39:39 · 946 阅读 · 0 评论 -
收藏 | 电子通信协议之SPI通信协议篇
当你将微控制器连接到传感器,显示器或其他模块时,你是否考虑过这两种设备如何相互通信?他们到底在说什么?他们如何理解对方?电子设备之间的通信就像人类之间的通信。双方都需要说同样的语言。在电子产品中,这些语言称为通信协议。对我们来说幸运的是,在构建大多数DIY电子产品项目时,我们只需要知道几个通信协议即可。在本系列文章中,我们将讨论三种最常见协议的基础:串行外设接口(Serial Peripheral Interface, SPI),集成电路总线(Inter-Int...原创 2020-07-07 16:37:20 · 1541 阅读 · 0 评论 -
如何提高验证组件的垂直复用、水平复用和平台复用?
摘要:本文提出了实用的方案,以增强基于AMBA的SoC设计验证的验证组件的复用。AMBA统一验证系统(AUVS,AMBA Unified Verification System)可以通过为每个配置预先定义AMBA agent块来减少构建测试平台的时间,并且还可以通过提供AMBA VIP的抽象层来提高验证组件的平台复用。固件类的序列(FLS,Firmware-Like Sequence)是一种仅使用硬件抽象层(HAL,Hardware Abstraction Layer)提供的任务描述测试序列的...原创 2020-07-07 16:31:58 · 1730 阅读 · 0 评论 -
分层协议验证还需创建新的环境组件?不!引入UVM序列项才是Easy Way
一. 引言分层协议架构可将复杂协议分解为更为简单的任务,因此通常被应用于各个不同领域。在模块级和芯片级设计中,分层协议的应用也很普遍。分层协议的一些示例,如PCIe、串行Rapid IO和MIPI等,均具有上层逻辑层,且该逻辑层的数据包会转换为协议规定的信号来传输互连,被传递到下层物理层。对于集成电路IP设计,模块级通信通常使...原创 2020-07-07 16:26:57 · 425 阅读 · 0 评论