sv基础:timescale、timeunit、timeprecision
1. 前言 Verilog/System verilog 仿真中的时间单位/时间精度设置是保证仿真设置正确的重要手段,但是很多场景下却常常被忽视。设置不合理会导致诸多问题,例如延时不准确,时钟周期不对,打印信息不准确,验证用例耗费的时间特别长,多模块配合无法发现隐藏的问题。 因此,本文件将描述timescale、timeunit、timeprecision等概念,并描述如何正确地使用timesca
关于「SystemVerilog」的技术文章、设计资料与工程师讨论,持续更新。
1. 前言 Verilog/System verilog 仿真中的时间单位/时间精度设置是保证仿真设置正确的重要手段,但是很多场景下却常常被忽视。设置不合理会导致诸多问题,例如延时不准确,时钟周期不对,打印信息不准确,验证用例耗费的时间特别长,多模块配合无法发现隐藏的问题。 因此,本文件将描述timescale、timeunit、timeprecision等概念,并描述如何正确地使用timesca
01 前言 记录个使用SystemVerilog disable语句时遇到的坑,这个坑有点反直觉,以至于我当时有点不信,觉得可能是EDA仿真工具的问题。后来查看了SystemVerilog手册和使用不同EDA工具进行验证,才慢慢接受了。结论是:SystemVerilog disable block_name或task时,会把hierarchy一致的block_name或task的线程都停掉。 02
在SystemVerilog中,可以通过关键字implements指定实现类关联的接口类,接口类中定义的方法都是pure virtual方法,不能直接创建对象,其中的方法需要在与其关联的对象类中实现,这里需要注意,接口类与其对应的实现类之间的关系不是继承和被继承的关系。下面是接口类使用方式的简单示例: // 接口类定义interfaceclassABC;...endclass// 实现类关联对应的
在SystemVerilog中,经常会用到casex和casez等多分支选择结构,用以忽略case_expression与case_item中x和z的比较,相关内容详见《硅芯思见:【80】casez和casex谁是谁》,但本文介绍SystemVerilog引入的“case inside”结构(推荐使用)与casex和casez还是有一定的区别的,这主要是因为casex和casez会将x或者z作为不
• 前言 • SV的优劣 • 最方便的信号类型(logic) • 定义复杂信号的优雅方式(struct) • 最省心的状态机利器(enum) • 提前发现多驱 • 让数据结构更清爽的秘诀(typedef) • 最常用的批量信号写法(packed array) • 模块通信的终极级懒人包(interface) • 最优雅的头文件(package) • 最懂工程师意图的过程块定义(always)