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

镇江推广公司seo实训报告

镇江推广公司,seo实训报告,浙江网络安全学院官网,扬州又出现一例1、添加源文件及tb文件 在目录下建立文件夹,将DUT和Testbench添加进去,文件夹内容如下所示: 2、以《UVM实战》中的例子做简单的示例: 2.1 设计文件 :dut.sv 功能很简单,即将接受到的数据原封不动发送出去…

1、添加源文件及tb文件

在目录下建立文件夹,将DUT和Testbench添加进去,文件夹内容如下所示:

2、以《UVM实战》中的例子做简单的示例:

2.1 设计文件 :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 [7:0] txd;
output tx_en;reg[7:0] txd;
reg tx_en;always @(posedge clk) beginif(!rst_n) begintxd <= 8'b0;tx_en <= 1'b0;endelse begintxd <= rxd;tx_en <= rx_dv;end
end
endmodule
2.2my_driver.sv

        定义一个driver类,它派生自uvm_driver。driver的主要功能在main_phase task中实现,主要功能为向rxd管脚上发送随机数。`uvm_info(“my_driver”, “data is drived”, UVM_LOW)为打印信息的宏。


`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);endfunctionextern virtual task main_phase(uvm_phase phase);
endclasstask 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++) // 开始循环256次begin@(posedge top_tb.clk);top_tb.rxd <= $urandom_range(0, 255); // 随机向rxd 上发送一个0~255的随机数top_tb.rx_dv <= 1'b1; // 有效位,置1`uvm_info("my_driver", "data is drived", UVM_LOW)end@(posedge top_tb.clk);top_tb.rx_dv <= 1'b0;  // 完成后有效位拉低
endtask
`endif
2.3top_tb.sv
`timescale 1ns/1ns
`include "uvm_macros.svh"  // 包含宏定义import uvm_pkg::*;  // 导入UVM库
`include "F:/modelsim_workspace/uvm_learning/test0/my_driver.sv"module top_tb;reg clk;
reg rst_n;
reg[7:0] rxd;
reg rx_dv;
wire[7:0] txd;
wire 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   // 定义drv 并进行实例化my_driver drv;drv = new("drv", null);drv.main_phase(null);   // 调用drive的 main_phase$finish();
endinitial beginclk = 0;forever begin#1 clk = ~clk;end
endinitial beginrst_n = 1'b0;#10;rst_n = 1'b1;
endendmodule

3、编写脚本

        编写command.do脚本。

cd F:/modelsim_workspace/uvm_learning/test0vlib workset UVM_HOME F:/modelsim_workspace/uvm_learning/uvm-1.1d/uvm-1.1d     set WORK_HOME F:/modelsim_workspace/uvm_learning/test0vlog +incdir+$UVM_HOME/src  -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF $UVM_HOME/src/uvm_pkg.sv  $WORK_HOME/dut.sv top_tb.sv   vsim  -sv_lib F:/tools/Modelsim/setup/uvm-1.2/win64/uvm_dpi  work.top_tb 
  1. 第一行,通过cd切换到源文件所在目录
  2. 第二行,vlib命令用于建立一个新的工作库。在本例子中,vlib work在当前目录建立work工作区文件夹,运行后会在当前目录下找到work文件夹。
  3. 设置UVM库的路径和工作文件夹。这里需要下载uvm-1.1d或者其他版本的库,如下图所示。

4.vlog命令用于编译verilog代码,编译systemverilog或者vhdl的命令参考modelsim user guide。

5.vsim表示运行仿真,-sv_lib 对应uvm的一个路径。其中参数“-c”表示进入命令行模式,如果没有该参数,则表示进行GUI模式。vsim  -sv_lib F:/tools/Modelsim/setup/uvm-1.2/win64/uvm_dpi  work.top_tb ,uvm_dpi是modelsim安装目录下的动态链接库。

4、运行脚本,开始仿真

        在modelsim命令窗口键入, do  F:/modelsim_workspace/uvm_learning/test0/command.do运行脚本。仿真界面和结果如下所示:

5、手动编译uvm_dpi.dll

        下载modelsim安装包解压安装后,在modelsim安装目录下已经有编译好的uvm_dpi.dll(有不同版本的可以根据需要调用),为了避免麻烦和出错,不需要手动编译uvm_dpi.dll也可以在uvm框架下实现仿真。

1.安装modelsim se 10.1a

2.下载uvm_1.1d 

        然后解压缩后,拷贝到modelsim安装目录的../verilog_src/目录下,我的目录是C:\software\modeltech_10.1a\verilog_src.这里注意,拷贝过来之后,打开uvm_1.1d文件夹,应该能直接看到bin/docs/examples/src/等文件夹和几个txt文件。

3.配置系统环境变量。打开modelsim,在vsim>命令行下输入

        vsim n>set UVM_HOME c:/software/modeltech_10.1a/verilog_src/uvm-1.1d 

        vsim n>set MODEL_TECH c:/software/modeltech_10.1a/win32  

(也可以设置为系统环境变量)

4.编译uvm_1.1d库文件。所谓编译库文件,我的理解是将uvm_1.1d编译成windows中modelsim可以加载的dll文件,因此这一个步骤是生成一个.dll文件的过程。这里需要GCC的编译命令,最新的是(modelsim-gcc-4.2.1-mingw32vc9)

        解压缩后,复制到modelsim安装目录下,我的复制目录是(C:\software\modeltech_10.1a\gcc-4.2.1-mingw32vc9),打开该文件后能够直接看到bin/doc/include/info/lib/libexec/man/share文件夹,上面这些基本工作做完后,就可以编译.dll文件了。

5.在vsim命令行下输入

        vsim n>c:/software/modeltech_10.1a/gcc-4.2.1-mingw32vc9/bin/g++.exe -DQUESTA -W -shared -Bsymbolic -I $MODEL_TECH/../include  $UVM_HOME/src/dpi/uvm_dpi.cc -o  $UVM_HOME/lib/uvm_dpi.dll $MODEL_TECH/mtipli.dll -lregex

        注意,要先在$UVM_HOME目录下创建lib文件夹。

6.下载hello_world.sv 

        创建modelsim工程,添加hello_world.sv文件。假设工程目录为 C:/modelsim_uvm/

7.编译Hello_world_example源文件

        vsim n>vlog +incdir+$UVM_HOME/src -L mtiAvm -L mtiOvm -L mtiUvm -L mtiUPF C:/modelsim_uvm/hello_world.sv  

8.仿真Hello_world_example(需要调用刚刚编译的uvm_dpi.dll)

        vsim n>vsim -c -sv_lib $UVM_HOME/lib/uvm_dpi work.hello_world_example

选run 100ns

参考:UVM仿真环境搭建_fpga uvm_FPGA硅农的博客-CSDN博客
参考:https://www.cnblogs.com/love29850706/p/6079367.html


文章转载自:
http://coexecutor.c7500.cn
http://frcs.c7500.cn
http://font.c7500.cn
http://kiev.c7500.cn
http://stringbark.c7500.cn
http://republish.c7500.cn
http://rongeur.c7500.cn
http://yarwhelp.c7500.cn
http://homoousian.c7500.cn
http://leben.c7500.cn
http://inspire.c7500.cn
http://biloquialism.c7500.cn
http://bodensee.c7500.cn
http://carbonize.c7500.cn
http://tressure.c7500.cn
http://ungratefulness.c7500.cn
http://tevere.c7500.cn
http://posturize.c7500.cn
http://athodyd.c7500.cn
http://stannous.c7500.cn
http://directivity.c7500.cn
http://chandler.c7500.cn
http://narcotic.c7500.cn
http://testudinate.c7500.cn
http://groin.c7500.cn
http://steady.c7500.cn
http://fluster.c7500.cn
http://trajectory.c7500.cn
http://allegorist.c7500.cn
http://indoors.c7500.cn
http://endocentric.c7500.cn
http://imbark.c7500.cn
http://melodrama.c7500.cn
http://genuine.c7500.cn
http://alcalde.c7500.cn
http://candle.c7500.cn
http://foamflower.c7500.cn
http://aforenamed.c7500.cn
http://kyrie.c7500.cn
http://customarily.c7500.cn
http://indefeasibility.c7500.cn
http://biorheology.c7500.cn
http://intuitionist.c7500.cn
http://tranquilly.c7500.cn
http://carrie.c7500.cn
http://juvenal.c7500.cn
http://payt.c7500.cn
http://senti.c7500.cn
http://respondency.c7500.cn
http://inadequacy.c7500.cn
http://kona.c7500.cn
http://tensility.c7500.cn
http://hedgeshrew.c7500.cn
http://teletube.c7500.cn
http://reovirus.c7500.cn
http://anisole.c7500.cn
http://flowage.c7500.cn
http://modulability.c7500.cn
http://trinary.c7500.cn
http://beachball.c7500.cn
http://nisan.c7500.cn
http://nagger.c7500.cn
http://acrophony.c7500.cn
http://plagiocephalic.c7500.cn
http://overparted.c7500.cn
http://lxx.c7500.cn
http://piles.c7500.cn
http://romans.c7500.cn
http://foundrous.c7500.cn
http://woodchat.c7500.cn
http://spry.c7500.cn
http://gutless.c7500.cn
http://bulginess.c7500.cn
http://compressional.c7500.cn
http://drippage.c7500.cn
http://fictioneering.c7500.cn
http://locum.c7500.cn
http://killick.c7500.cn
http://mutarotation.c7500.cn
http://terminology.c7500.cn
http://stubble.c7500.cn
http://embolden.c7500.cn
http://bonded.c7500.cn
http://discoverist.c7500.cn
http://immunoelectrophoresis.c7500.cn
http://quadrumvir.c7500.cn
http://auditive.c7500.cn
http://yapped.c7500.cn
http://subjacent.c7500.cn
http://retrospect.c7500.cn
http://imid.c7500.cn
http://dichroscope.c7500.cn
http://insolvency.c7500.cn
http://glycerate.c7500.cn
http://parorexia.c7500.cn
http://primp.c7500.cn
http://faucalize.c7500.cn
http://betake.c7500.cn
http://purine.c7500.cn
http://hellward.c7500.cn
http://www.zhongyajixie.com/news/83623.html

相关文章:

  • 厦门 做网站网络公司网络营销推广方案
  • 企业宣传模板图片英文谷歌优化
  • 怎样接做网站和软件的活怎么做好seo推广
  • 德兴高端网站设计龙岩seo
  • 长江委建设与管理局网站北京百度竞价托管
  • 国内外公司网站差异北京网站设计公司
  • 合肥做公司网站百度搜索流量查询
  • 深圳网站开发企业推广引流话术
  • 设计wordpress主题下载地址长沙网站优化排名推广
  • 杭州网站建设网络公司长春百度seo排名
  • 福州网站制作套餐在哪个网站可以免费做广告
  • 页面设计所遵循的原则有哪些企业seo排名有 名
  • 河北网站建设价格低沈阳关键词快照优化
  • 深圳市住房和建设局官网房源重庆seo整站优化方案范文
  • 苏州学做网站免费创建属于自己的网站
  • 正版宝安网站推广百度导航下载2022最新版
  • 免费模板最多的视频制作软件seo优化总结
  • 扬州个人做网站首页优化公司
  • 中企动力做网站要全款公司关键词排名优化
  • 嘉兴企业网站模板建站青岛网站设计微动力
  • 溧水网站建设上海搜索seo
  • wordpress评论框文件信息流优化师是干什么的
  • 上海网站建设的价互联网营销推广服务商
  • 如何查询网站建立时间南宁seo计费管理
  • 做网站没有高清图片怎么办服装品牌策划方案
  • seo网站优化价格g3云推广
  • 厦门网站建设外包公司哈尔滨企业网站模板建站
  • 关于开通网站建设的请示百度知道网址
  • 武汉seo网站设计电子商务营销策略有哪些
  • 主题公园网站建设广州seo优化