- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码块,其中触发了语法错误:
virtual task body();
forever begin
my_transaction m_req;
// Blocking wait for a transaction request:
p_sequencer.m_request_fifo.get(m_req);
// Generate response based on "req_kind" value:
if ( m_req.req_kind == REQ ) begin
`uvm_do_with(req, {req_kind == REQ;} )
end
else begin
`uvm_do_with(req, {req_kind == NO_REQ;} )
end
end
endtask
我收到以下错误消息:
Error-[SE] Syntax error
Following verilog source has syntax error :
"./src/my_transaction.sv", 77: token is ')'
if ( m_req.req_kind == REQ ) begin
^
如果我如下注释 if 和 else 行,则此代码块可以正常编译:
virtual task body();
forever begin
my_transaction m_req;
// Blocking wait for a transaction request:
p_sequencer.m_request_fifo.get(m_req);
// Generate response based on "req_kind" value:
//if ( m_req.req_kind == REQ ) begin
`uvm_do_with(req, {req_kind == REQ;} )
//end
//else begin
`uvm_do_with(req, {req_kind == NO_REQ;} )
//end
end
endtask
我尝试评论这一行:
my_transaction m_req;
并且预计由于未定义
m_req
会引发错误标识符。但是代码实际上可以编译!
class my_transaction extends uvm_sequence_item;
typedef enum {REQ, NO_REQ} req_kind_e;
rand req_kind_e req_kind;
...
...
...
和类(class)
my_transaction
是在存在编译错误的文件中转发的类型:
typedef class my_transaction ;
有问题的代码块是序列库中的一个序列,其中
m_request_fifo
是从定序器中用于检索序列的端口。
最佳答案
uvm_sequence
的声明源代码类是:
virtual class uvm_sequence #(
type REQ = uvm_sequence_item,
type RSP = REQ
) extends uvm_sequence_base
REQ
是一个类型参数。您将其用于其他用途是错误的/混淆了您的编译器。
关于syntax-error - UVM 序列体任务给出未知的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63502244/
在我的 Testbench 中,我有一个需要驱动的接口(interface)。该接口(interface)可以在 2 种不同的模式下驱动,每种模式都有自己的驱动程序协议(protocol)和事务类型。
您能否帮助理解以下功能和之间的明显区别: uvm_analysis_export uvm_analysis_port uvm_analysis_imp 我在网上查了一下,有一些解释,比如: https
我对UVM有疑问。假设我有一个带有两个接口(interface)的 DUT,每个接口(interface)都有它的代理,用相同的时钟生成事务。这些事务由记分板上的分析导入(和写入函数)处理。我的问题是
我的芯片中有一个小块的 UVM 测试台。其中有一个带有驱动程序的代理,该驱动程序在虚拟接口(interface)上驱动数据,如下所示: interface my_if (input bit clk);
我对 SystemVerilog 中的竞争条件有疑问,尤其是在 UVM 中。在标准情况下,我们拥有多个驱动程序,它们在时钟的同一前端驱动我们的任务,在记分板中生成一些函数调用。这些调用是同时发生的,它
我有以下代码块,其中触发了语法错误: virtual task body(); forever begin my_transaction m_req; // Blockin
是否有一种简单的方法可以在不操作 UVM 库的情况下将自定义函数搭载到 UVM_ERROR 宏中?(即,每当在环境中的任何位置调用 UVM 错误时,我希望我的函数一起被调用与它。) 最佳答案 我自己还
我在 uvm_agent 中实现了一个从模型。 “奴隶”是指它不能自己发起交易。事务始终由另一方(主 DUT)发起。所以它是一种被动代理(尽管它仍然能够传输回复数据包)。 当从设备检测到来自 DUT
对于使用 `uvm_field_queue_int 实用程序宏的 UVM 对象,调用 my_object.print() 时,UVM 不会打印出整个队列 # ---------------------
对于使用 `uvm_field_queue_int 实用程序宏的 UVM 对象,调用 my_object.print() 时,UVM 不会打印出整个队列 # ---------------------
我在 uvm-systemc-1.0-alpha1 库的 objdir 中的 make check 中遇到以下错误。 ../configure make make install 命令工作正常。另外,
我需要调用哪些函数才能在 Systemverilog/UVM 中使用正则表达式? 注意:我不是问如何使用正则表达式,只是问方法名。 最佳答案 首先,如果您想使用正则表达式,您需要确保您使用的是与其 D
我正在阅读以下指南: https://colorlesscube.com/uvm-guide-for-beginners/chapter-3-top-block/ 代码 3.2 第 24 行- run
我正在阅读以下指南: https://colorlesscube.com/uvm-guide-for-beginners/chapter-3-top-block/ 代码 3.2 第 24 行- run
我有一个用 RAL 建模的大寄存器映射,我想随机化一些寄存器。如果我想单独限制寄存器,那么这很简单: reg_model.register_a.randomize() with {value > 5;
我对 UVM 中的虚拟音序器有疑问。假设我有 N 个由 N 个相等的驱动程序驱动的接口(interface),每个接口(interface)都连接到自己的音序器。我想要做的是进行如下交易: c
我在 DUT 中有 5 个 SRAM 实例(== 5 个不同的二维数组)(全部在 verilog 中)。我想从 UVM 测试平台对这些阵列进行后门加载。 SRAM 阵列上有多个驱动程序,来自 DUT
我正在为 e 使用 vr_ad 包。我在 vr_ad_reg_file my_reg_file 中定义了一个寄存器 my_reg: reg_def MY_REG MY_REG_FILE 20'h000
我正在寻找方法来禁用 side uvm 组件中的断言以进行某些测试。下面的简单代码代表我的环境,并附有要求注释。我以为我可以使用 $assertoff。如果需要额外的仪器来实现这一点,我可以修改 uv
我从 Intel 下载了 Modelsim,免费版(Modelsim-Intel FPGA 版)。免费版本是 Ubuntu 64 位 LTS 上的 32 位 Modelsim 版本。我通过安装 apt
我是一名优秀的程序员,十分优秀!