电子表设计与验证(时钟频率选择模块验证)

电子表设计与验证(时钟频率选择模块验证)

利用UVM搭建简单验证平台

package div_pkg;
import uvm_pkg::*;
`include "uvm_macros.svh"
 
class div_trans extends uvm_sequence_item;

rand int  div_n;
rand int  clk_out;
constraint divc{
   
                div_n inside {
   [10:50]};
               };

 `uvm_object_utils_begin(div_trans)
  `uvm_field_int(div_n,UVM_ALL_ON)
  `uvm_field_int(clk_out,UVM_ALL_ON)
 `uvm_object_utils_end
 
 function new(string name = "div_trans");
   super.new(name);
 endfunction
endclass

class div_driver extends uvm_driver #(div_trans);
  virtual div_inter intf;
 `uvm_component_utils(div_driver)

  function new(string name = "div_driver", uvm_component parent);
   super.new(name,parent);
  endfunction

  function void set_interface(virtual div_inter intf);
    this.intf = intf;
  endfunction

  task run_phase (uvm_phase phase);
    super.run_phase(phase);
    fork    
     this.do_driver();
     this.do_reset();
    join
  endtask

  task do_driver();
    div_trans req,rsp;
    forever begin
       repeat (100) @(posedge intf.clk)
       seq_item_port.get_next_item(req);
       this.write(req);
       void'($cast(rsp,req.clone()));
       rsp.set_sequence_id(req.get_sequence_id(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值