System verilog 利用分析端口发送总线信号
我正在使用UVM测试非常简单的界面,现在面临“角落案例”问题。 所以我需要将逻辑[0:7]信号从输出监视器发送到记分板。 这是代码的一部分:System verilog 利用分析端口发送总线信号,system-verilog,uvm,System Verilog,Uvm,我正在使用UVM测试非常简单的界面,现在面临“角落案例”问题。 所以我需要将逻辑[0:7]信号从输出监视器发送到记分板。 这是代码的一部分: class outputMonitor extends uvm_monitor; .. logic [7:0] lcdCmd; uvm_analysis_port #(logic) sendPrt; task run_phase (uvm_phase phase); forever begin sendPr
class outputMonitor extends uvm_monitor;
..
logic [7:0] lcdCmd;
uvm_analysis_port #(logic) sendPrt;
task run_phase (uvm_phase phase);
forever
begin
sendPrt.write(lcdCmd) ;
end
endtask
endclass
class scoreboard extends uvm_subscriber #(logic);
`uvm_component_utils(scoreboard)
function void write (logic t);
$display("%t: scoreboard: ########### calling write function-- data=%b", $time, t);
endfunction
endclass
在模拟过程中,我看到只有lcdCmd的最后一位被传输到scorebaord。是否有一种使用端口传输整个总线数据的方法
当然,我可以创建结构或事务,将lcdCmd放在那里,然后发送结构。但是为什么我不能直接送车
谢谢
Hayk在代码中,您犯了一个简单的错误。例如
- 分析fifo的Pass类型参数作为逻辑[7:0]向量中的唯一逻辑
- 同样的情况也适用于subscriber类参数和write实现函数参数
- 查看需要更改的代码李>
在你的代码中,你犯了一个简单的错误,比如
- 分析fifo的Pass类型参数作为逻辑[7:0]向量中的唯一逻辑
- 同样的情况也适用于subscriber类参数和write实现函数参数
- 查看需要更改的代码李>
class outputMonitor extends uvm_monitor;
`uvm_component_utils(outputMonitor)
logic [7:0] lcdCmd;
uvm_analysis_port #(logic[7:0]) sendPrt;
task run_phase (uvm_phase phase);
forever
begin
sendPrt.write(lcdCmd);
end
endtask
endclass
class scoreboard extends uvm_subscriber #(logic[7:0]);
`uvm_component_utils(scoreboard)
function void write (logic [7:0] t);
$display("%t: scoreboard: ########### calling write function-- data=%b", $time, t);
endfunction
endclass