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

个人做外贸网站平台网站更新提示怎末做

个人做外贸网站平台,网站更新提示怎末做,大数据查询个人信息,的建站公司uvm白皮书练习 ch221 dut.sv 这个DUT的功能非常简单#xff0c;通过rxd接收数据#xff0c;再通过txd发送出去。其中rx_dv是接收的数据有效指示#xff0c;tx_en是发送的数据有效指示。 module dut (clk,rst_n,rxd,rx_dv,txd,tx_en );input clk ; input rst_n ; in…uvm白皮书练习 ch221 dut.sv 这个DUT的功能非常简单通过rxd接收数据再通过txd发送出去。其中rx_dv是接收的数据有效指示tx_en是发送的数据有效指示。 module dut (clk,rst_n,rxd,rx_dv,txd,tx_en );input clk ; input rst_n ; input rxd ; input rx_dv ; output txd ; output tx_en ; reg [7:0] txd; reg tx_en; always (posedge clk) beginif(!rst_n)begintxd 8h00;tx_en 1b0;endelse begintxd rxd;tx_en rx_dv;end end endmodulemy_driver.sv 所有派生自uvm_driver的类的new函数有两个参数一个是string类型的name一个是uvm_component类型的parent。关于name参数比较好理解就是名字而已至于parent则比较难以理解读者可暂且放在一边下文会有介绍。事实上这两个参数是由uvm_component要求的每一个派生自uvm_component或其派生类的类在其new函数中要指明两个参数name和parent这是uvm_component类的一大特征。而uvm_driver是一个派生自uvm_component的类所以也会有这两个参数。 driver所做的事情几乎都在main_phase中完成。UVM由phase来管理验证平台的运行这些phase统一以xxxx_phase来命名且都有一个类型为uvm_phase、名字为phase的参数。main_phase是uvm_driver中预先定义好的一个任务。因此几乎可以简单地认为实现一个driver等于实现其main_phase。上述代码中还出现了uvm_info宏。这个宏的功能与Verilog中display语句的功能类似但是它比display语句更加强大。它有三个参数第一个参数是字符串用于把打印的信息归类第二个参数也是字符串是具体需要打印的信息第三个参数则是冗余级别。在验证平台中某些信息是非常关键的这样的信息可以设置为UVM_LOW而有些信息可有可无就可以设置为UVM_HIGH介于两者之间的就是UVM_MEDIUM。UVM默认只显示UVM_MEDIUM或者UVM_LOW的信息 uvm_info宏非常强大它包含了打印信息的物理文件来源、逻辑结点信息在UVM树中的路径索引、打印时间、对信息的分类组织及打印的信息。读者在搭建验证平台时应该尽量使用uvm_info宏取代display语句。 类的定义类似于在纸上写下一纸条文然后把这些条文通知给SystemVerilog的仿真器验证平台可能会用到这样的一个类请做好准备工作。而类的实例化在于通过new()来通知SystemVerilog的仿真器请创建一个A的实例。仿真器接到new的指令后就会在内存中划分一块空间在划分前会首先检查是否已经预先定义过这个类在已经定义过的情况下按照定义中所指定的“条文”分配空间并且把这块空间的指针返回给a_inst之后就可以通过a_inst来查看类中的各个成员变量调用成员函数/任务等。对大部分的类来说如果只定义而不实例化是没有任何意义的这里的例外是一些静态类其成员变量都是静态的不实例化也可以正常使用。而如果不定义就直接实例化仿真器将会报错。 第2行把uvm_macros.svh文件通过include语句包含进来。这是UVM中的一个文件里面包含了众多的宏定义只需要包含一次。 第4行通过import语句将整个uvm_pkg导入验证平台中。只有导入了这个库编译器在编译my_driver.sv文件时才会认识其中的uvm_driver等类名。 第24和25行定义一个my_driver的实例并将其实例化。注意这里调用new函数时其传入的名字参数为drv前文介绍uvm_info宏的打印信息时出现的代表路径索引的drv就是在这里传入的参数drv。另外传入的parent参数为null在真正的验证平台中这个参数一般不是null这里暂且使用null。 第26行显式地调用my_driver的main_phase。在main_phase的声明中有一个uvm_ phase类型的参数phase在真正的验证平台中这个参数是不需要用户理会的。本节的验证平台还算不上一个完整的UVM验证平台所以暂且传入null。 第27行调用finish函数结束整个仿真这是一个Verilog中提供的函数。 行数不一定一一对应需要自己判断 ifndef MY_DRIVER_SV define MY_DRIVER_SVclass my_driver extends uvm_driver;function new(string namemy_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);top_tb.rxd 8b0;//初始值复位top_tb.rx_dv 1b0;while (!top_tb.rst_n) (posedge top_tb.clk);//等个时钟for(int i 0;i25;i)begin(posedge top_tb.clk);//等个时钟top_tb.rxd i[7:0];// top_tb.rxd $urand_range(0.255);top_tb.rx_dv 1b1;uvm_info(my_driver,data is driver,UVM_LOW);end(posedge top_tb.clk);top_tb.rx_dv 1b0; endtask //my_driver::main_phase endiftop_tb.sv timescale 1ns/1ns include uvm_macros.svimport uvm_pkg::*; include my_driver.svmodule 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 beginmy_driver drv;drv new(drv,null);//传入数据drv.main_phase(null);$finish; end /*时钟模块*/ initial beginclk 0;forever begin#100ns clk ~clk;end end /*复位模块*/ initial beginrst_n 1b0;#1000;rst_n 1b1; end/*fsdb*/ initial begin$fsdbDumpfile(verilog.fsdb);$fsdbDumpvars(0);$display(fsdbDumpfilrs is start at %d,$time);// #1e7;// $finish; end endmodule仿真结果 激励本来是256次发送随机数这里为了方便直观改25次升序 fsdbDumpfilrs is start at 0 UVM_INFO my_driver.sv(22) 1000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 3000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 5000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 7000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 9000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 11000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 13000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 15000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 17000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 19000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 21000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 23000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 25000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 27000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 29000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 31000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 33000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 35000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 37000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 39000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 41000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 43000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 45000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 47000: drv [my_driver] data is driver UVM_INFO my_driver.sv(22) 49000: drv [my_driver] data is driver $finish called from file top_tb.sv, line 28. $finish at simulation time 51000
http://www.dnsts.com.cn/news/247935.html

相关文章:

  • 新网站为什么做的这么难wordpress点击创建配置文件没反应
  • 企业网站模板下载需谨慎建立wordpress显示数据库错误
  • 苏州市吴江太湖新城建设局网站it网站模板
  • 邢台建网站找谁网页设计与制作教程第二版张晓蕾课后答案
  • 用凡科做网站有自己的域名网站镜像 动态
  • 网站类型怎么分个人备案 网站名
  • 苏州市住房和城乡建设局网站网站设计 佛山
  • 网站建设服务市场企业网站建站系统
  • 彩票网站开发系统如何搭建网站设计规划教学设计
  • 铁岭网站seo安徽省建设工程质量与安全协会官网
  • 企业网站建设一般要素包括Wordpress xml 格式
  • 怎么做网站填内容扬州网站建设费用
  • 网站开发前后端分工电子政务 和网站建设总结
  • 禹城市网站建设怎样退订3d卫星街景会员费用
  • 购物网站的前台功能柯桥网站建设
  • 旅游网站模板html5wordpress主题分享博客
  • 网站建设维护学什么科目腾讯邮箱企业邮箱登录入口
  • 公司移动端的网站模板下载百度推广代理商查询
  • 山西建站推广做网站好的网站建设公司哪家好
  • 铜仁市建设招投标网站模版网站商城
  • 安徽网站备案广东省网站设计与开发
  • 网站图片添加alt标签河北集团网站建设
  • 商城网站有免费建设的吗asp网站打开
  • 郑州网站优化的微博_腾讯微博网站开发需要什么东西
  • 非织梦做的网站能仿吗南昌网站seo外包服务
  • 陕西中小企业网站建设推广定期做图书推荐的网站
  • 做网站go和php用哪个好eclipse可以做网站吗
  • 校园网站wordpress调用服务器文件
  • 邯郸市搞网站服务务的吗秦皇岛房产网
  • 做公司网站的办公室设计风格有哪些