当前位置: 首页 > news >正文

随州网站设计开发服务网站建设服务公司

随州网站设计开发服务,网站建设服务公司,工作服款式图片大全,html制作企业宣传网站UVM中通过objection机制来控制验证平台的关闭。 在每个phase中,UVM会检查是否有objection被提起(raise_ objection),如果有,那么等待这个objection被撤销(drop_objection)后停止仿真&#xff1b…

UVM中通过objection机制来控制验证平台的关闭。
在每个phase中,UVM会检查是否有objection被提起(raise_ objection),如果有,那么等待这个objection被撤销(drop_objection)后停止仿真;如果没有,则马上结束当前phase。

目前将drop_objection语句当成是finish函数的替代者,只是在drop_objection语句之前必须先调用raise_objection语句,raise_objection和drop_ objection总是成对出现。

raise_objection语句必须在main_phase中第一个消耗仿真时间(所谓仿真时间,是指$time函数打印出的时间。与之相对的还有实际仿真中所消耗的CPU时间,通常说一个测试用例的运行时间即指CPU时间

如$display语句是不消耗仿真时间的,这些语句可以放在raise_objection之前,但是类似@(posedge top.clk)等语句是要消耗仿真时间的。

dut.sv

module dut (clk,rst_n,rxd,rx_dv,txd,tx_en
);input clk    ;   input rst_n  ;   input [7:0]rxd    ; input rx_dv  ;   output txd   ;  output tx_en ; reg [7:0]   txd;
reg         tx_en;  always @(posedge clk) beginif(!rst_n)begintxd     <=  8'h00;tx_en   <=  1'b0;endelse begintxd     <=  rxd;tx_en   <=  rx_dv;end
end
endmodule

TB

my_driver.sv

`ifndef MY_DRIVER_SV
`define MY_DRIVER_SVclass my_driver  extends uvm_driver;`uvm_component_utils(my_driver)  //加入factory机制function new(string name="my_driver",uvm_component parent =null);super.new(name,parent);endfunction //new()extern  virtual task main_phase(uvm_phase phase);//调用附近的代码
endclass //my_driver  extends uvm_drivertask my_driver::main_phase(uvm_phase phase);phase.raise_objection(this);//ch223加入objection机制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<25;i++)begin@(posedge top_tb.clk);//等个时钟top_tb.rxd <= i[7:0];// top_tb.rxd <= $urand_range(0.255);top_tb.rx_dv    <= 1'b1;`uvm_info("my_driver","data is driver",UVM_LOW);end@(posedge top_tb.clk);top_tb.rx_dv    <=  1'b0;phase.drop_objection(this);//ch223加入objection机制endtask //my_driver::main_phase
`endif

top_tb.sv

`timescale 1ns/1ns
`include "uvm_macros.svh"import uvm_pkg::*;
`include "my_driver.sv"module top_tb ;
reg         clk     ;    //时钟
reg         rst_n   ;   //复位
reg [7:0]   rxd     ;   //接受数据
reg         rx_dv   ;   //接受数据
reg [7:0]   txd     ;   //发送数据
reg         tx_en   ;   //发送数据dut my_dut(
.clk   (clk  ),
.rst_n (rst_n),
.rxd   (rxd  ),
.rx_dv (rx_dv),
.txd   (txd  ),
.tx_en (tx_en)
);// initial begin
//     my_driver drv;
//     drv = new("drv",null);//传入数据
//     drv.main_phase(null);
//     $finish;
// end
initial beginrun_test("my_driver");
end
/*时钟模块*/
initial beginclk = 0;forever begin#100ns clk = ~clk;end
end
/*复位模块*/
initial beginrst_n = 1'b0;#1000;rst_n = 1'b1;
end/*fsdb*/
//initial begin
//    $fsdbDumpfile("verilog.fsdb");
//    $fsdbDumpvars(0);
//    $display("fsdbDumpfilrs is start at %d",$time);
//    // #1e7;
//    // $finish;
//end
endmodule

仿真结果

将发送激励改成了25次

fsdbDumpfilrs is start at                    0
UVM_INFO my_driver.sv(24) @ 13000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 15000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 17000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 19000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 21000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 23000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 25000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 27000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 29000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 31000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 33000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 35000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 37000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 39000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 41000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 43000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 45000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 47000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 49000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 51000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 53000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 55000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 57000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 59000: uvm_test_top [my_driver] data is driver
UVM_INFO my_driver.sv(24) @ 61000: uvm_test_top [my_driver] data is driver--- UVM Report Summary ---** Report counts by severity
UVM_INFO :   26
UVM_WARNING :    0
UVM_ERROR :    0
UVM_FATAL :    0
** Report counts by id
[RNTST]     1
[my_driver]    25
http://www.hrbkazy.com/news/13107.html

相关文章:

  • 网站建设期末试题推广链接
  • 深圳网站建设制作设计公司新东方烹饪学校学费价目表
  • 翠竹林 wordpress搜索引擎优化seo是什么
  • 实名域名购买seo怎么赚钱
  • 网站能获取访问者武汉seo首页优化技巧
  • 做网站的账务处理百度推广公司哪家比较靠谱
  • 学做粤菜的网站全网营销代理加盟
  • 做暧暖爱视频每一刻网站seo课程培训中心
  • 广州化妆品网站制作宁波网站排名优化seo
  • 做ps找图的网站免费网站推广网站破解版
  • 海拉尔网站建设sjteam怎样进行关键词推广
  • 做服装搭配图的网站能够免费换友链的平台
  • 阿里云虚拟主机做2个网站seo常用工具网站
  • 网站建设标语百度网盘下载速度慢破解方法
  • 政府机构的网站怎么做的那么差电脑版百度入口
  • 做赌博网站代理违法吗今日小说搜索风云榜
  • 罗永浩做的网站优化大师手机版
  • 厦门网站建设屈兴东营销方案范文100例
  • 在线音乐网站怎么做google官网登录入口
  • 网站即时在线客服关键词制作软件
  • 网站建设做什么好上海网络推广招聘
  • 叫别人做网站需要注意什么问题正规网络推广服务
  • 企业建网站服务重庆网站外包
  • 贵阳做网站建设最好的是哪家网站搜索引擎优化工具
  • 做妇产科网站国外b站浏览器
  • 荆州哪里做网站精准营销的成功案例
  • wordpress 分页url百度seo详解
  • 网站建设先进个人事迹seo顾问服务
  • 网站建设上的新闻品牌宣传策略有哪些
  • 合肥生态建设职业培训学校网站网络营销岗位