uvm学习笔记

1、运行helloworld.sv时,报错如下:

原因是work文件夹已经存在,解决方式:手动删除work文件夹,或者在do脚本中添加如下代码,通过脚本删除work文件夹:

if [file exists work] {
    vdel -all
}

2、参照《UVM实战》的代码尝试通过modelsim仿真,发现仿真数据从复位之前就开始了

对应的driver代码为:

`ifndef MY_DRIVER__SV
`define MY_DRIVER__SV
class my_driver extends uvm_driver;

   function new(string name = "my_driver", uvm_component parent = null);
      super.new(name, parent);
   endfunction
   extern virtual task main_phase(uvm_phase phase);
endclass

task my_driver::main_phase(uvm_phase phase);
   top_tb.rxd <= 8'b0;
   top_tb.rx_dv <= 1'b0;
   while(!top_tb.rst_n)
      @(posedge top_tb.clk);  
   for(int i = 0; i < 256; i++)begin
      @(posedge top_tb.clk);
      //top_tb.rxd <= $urandom_range(0, 255);
      top_tb.rxd <= i;
      top_tb.rx_dv <= 1'b1;
      `uvm_info("my_driver", "data is drived", UVM_LOW)
   end
   @(posedge top_tb.clk);
   top_tb.rx_dv <= 1'b0;
endtask
`endif

还没弄明白,rx计数不应该从top_tb.rst_n拉高之后,跳出while,之后才开始rxd计数吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值