摘要:在图3-4所示的UVM树中,driver的路径为uvm_test_top.env.i_agt.drv。在uvm_test_top,env或者i_agt中,对driver中的某些变量 通过config_db机制进行设置,称为直线的设置。但是若在其他component,如scoreboard中,对dri
阅读全文
摘要:set函数与get函数的参数 config_db机制用于在UVM验证平台间传递参数。他们通常是成对出现的。set函数时寄信,get函数是收信。 如在某个测试用例的build_phase中可以使用如下方式寄信: uvm_config_db#(int)::set(this, "env.i_agt.drv
阅读全文
摘要:在UVM中使用get_full_name()可以得到一个component的完整路径,同样的,此函数也可以在一个sequence中被调用,尝试在一个sequence的body中调用此函数,并打印出返回值,其结果大体如下: uvm_test_top.env.i_agt.sqr.case0_sequen
阅读全文
摘要:config机制 在使用uvm_config_db API set/get时,实际发生了如下的后台操作: uvm_config_dbset通过层次和变量名,将这些信息放置到uvm_pkg唯一的全局变量uvm_pkguvm_resources。 全局变量uvm_resources用来存储和释放配置资源
阅读全文
摘要:在验证环境的创建过程build phase中,除了组件的实例化过程,配置阶段也是必不可少的。为了验证环境的复用性,通过外部的参数配置,使得环境在创建的时候可以根据参数的不同来选择创建的组件、组件的实例个数、组件之间的连接以及组件的运行模式等等。在更细致的环境调节(environment tuning
阅读全文
摘要:uvm_object set_name 设置此对象的实例名,覆盖先前给出的任何名称。 get_name 返回对象的名称,由new构造函数中的name参数或set_name方法提供。 get_full_name 返回此对象的完整层次名字。 get_type 返回此对象的类型代理(包装器)。 get_t
阅读全文
摘要:1.Sequence Classes/uvm_sequence_item get_sequencer 返回sequence使用的默认sequencer的引用。 get_sequencer function uvm_sequencer_base get_sequencer() 返回sequence使用
阅读全文
摘要:动态仿真是芯片前端验证最常见的手段,通过给DUT施加激励,然后检查输出结果或者内部行为,确保DUT功能和性能的正确性。 验证新手经常犯的一个错误是,看到所有case都PASS就觉得万事大吉。 事实上,这个case是真的PASS了吗? 有没有可能是出错了没及时报告? 或者测试激励根本就没有成功注入,D
阅读全文
摘要:uvm_report_server. Uvm_report_server是一个全局服务器,它处理由uvm_report_handler生成的所有报告。 uvm_report_server是一个抽象类,它将其许多方法声明为纯虚方法。UVM使用uvm_default_report_server类作为其默
阅读全文
摘要:做动态仿真验证通常会遇到要等待仿真结果的情况,特别是在调试某个测试用例的时候。很多时候,工程师们会自然地认为仿真速度大部分依赖于跑仿真任务的服务器本身的性能,以及EDA仿真工具的能力。而实际上,高效的验证环境以及代码质量也是影响仿真速度的关键因素。 另一方面,提高仿真速度这回事,对于芯片工程师来说本
阅读全文
摘要:uvm_report_enabled function int uvm_report_enabled( int verbosity, uvm_severity severity = UVM_INFO, string id = "" ) 如果对此严重度/id配置的冗余度大于或等于此冗余度,则返回1,否
阅读全文
摘要:软件在CPU上执行,采用一定的流水线执行指令,通常有取指(Instruction Fetch)、译码(Instruction Decode)、执行(Execute)、访存(Memory)、写回(Write Back)这几步操作。如下图所示,为5个阶段的顺序执行的处理器指令流,即CPU执行指令按照流水
阅读全文
摘要:今天和大家分享一个小技巧,你在debug问题的时候,是不是也曾经想过将波形中的某些信号转化成txt,然后用txt的值复现某些波形或者与理论值对比。今天这篇文章就教大家怎么用verdi将fsdb格式的波形转化成txt。 这里用到的工具是verdi的fsdbreport指令。 以下面的波形为例,我想将c
阅读全文
摘要:SOC验证环境一千家公司有一千家公司的做法。那么一个优秀的SOC验证环境应该具备哪些功能呢? 首先是SOC验证环境支持C和SV两种下激励的方式。 通过C code启动SOC环境是怎么启动的呢?这里涉及到CPU如何boot,对此很多转行的同学可能很难理解,在这里和大家做个简单的介绍。 我们知道CPU执
阅读全文
摘要:写地址通道信号 |AXI3(10/36)|AXI4(13/44)|Description| | | | | |AWID[user]|AWID[user]|| |AWADDR|AWADDR|| |AWLEN[3:0]|AWLEN[7:0]|Note: incr3: 1-16, incr4: 1-256
阅读全文
摘要:偶校验: 数据和校验位中1的总数为偶数,则认为数据无误,否则标识数据有误; 奇校验: 数据和校验位中1的总数为奇数,则认为数据无误,否则标识数据有误; 奇偶校验位的计算方法: module parity_check( input clk, input rst_n, input [7:0] data_
阅读全文
摘要:(
display)自动地在输出后进行换行。(write)则在输出后不换行。如果想在一行里输出多个信息,可以使用(
write)。在(display)和($write)中,其输出格式控制是用双引号括起来的字符串,包括以下信息: 格式说明,有(%)和格式字符组成。它的作用是将输出的数据转换成指
阅读全文
摘要:4.8 Integers, reals, times, and realtimes 除了建模硬件之外,变量在HDL模型中还有其他用途。虽然reg变量可以用于一般目的,例如计算特定net变化值的次数,但提供integer和time变量数据类型是为了方便和使描述更文档化。 声明integer、time、
阅读全文
摘要:命令行提示符就是在命令行中预先显示的内容,通常显示一些提示信息,如当前目录、登录的用户名、机器名等。csh/tcsh 中设置命令行提示符的方法和其他Shell中类似,就是设置变量prompt的值。 set prompt="%h:%n@%m:%c >> " csh命令行提示符中用到了一些预定义的变量,
阅读全文
摘要:https://www.veripool.org/wiki/verilog-mode/Verilog-mode_veritedium Verilog-Mode: Reducing the Veri-Tedium Wilson Snyder wsnyder AT wsnyder.org SNUG Sa
阅读全文
摘要:verilog-mode是什么 官网的介绍(https://www.veripool.org/wiki/verilog-mode): Verilog-mode.el is the extremely popular free Verilog mode for Emacs which provides
阅读全文
摘要:shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性。shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项。 语法 shopt(选项)(参数) 选项 -s:激活指定的shell行为选项; -u:关闭指定的shell行为选项。 参数 shell
阅读全文
摘要:tags文件(标签文件)是由ctags程序产生的一个索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 并且比它功能强大, 是大多数Linux发行版上默认的ctags程序. 那么tags文件是做什么用的呢? 如果你在读程序时看了一个函数调用,
阅读全文
摘要:A4第A4章 事务属性 本章描述了决定一个事务应该如何被系统组件,如缓存、缓冲区和内存控制器处理的属性。它包括以下部分: 在A4-62页的事务类型和属性 在A4-63页的AXI3内存属性信号 在A4-64页的对AXI4内存属性信号的更改 在A4-69页的内存类型 在A4-73页的内存不匹配属性 在A
阅读全文
摘要:linux的exec命令其实是bash的一个内建命令,可以通过man builtin页面来查看所有bash内建命令的帮助文档,并且exec还可以用在文件描述符当中。 shell中的exec两种用法: 1.exec命令;命令代替shell程序,命令退出,shell 退出;比如 exec ls 2.ex
阅读全文
摘要:xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。 xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多
阅读全文
摘要:Linux time命令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。 例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,以致于 time 指令无法取得
阅读全文
摘要:一、 Linux下删除文件和文件夹常用命令如下: 删除文件: rm file_name 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除空文件夹。 二、删除指定文件(夹)之外的所有文件呢? 方法1,复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移回来。
阅读全文
摘要:1.xargs命令的使用方法 将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs默认的命令是echo, 空格是默认的定界符; 将多行输入转换为单行; 注意:处理特殊文件名需要采用-0来避免特殊字符(xargs -0) [root@osker /]# find /root/ -type
阅读全文