当前位置:   article > 正文

windows下使用modelsim搭建uvm验证环境时遇到问题:can‘t locate a C/C++ compiler for ‘DPI Export Compilation ‘。_在windows中运行uvm

在windows中运行uvm

在modelsim搭建uvm验证环境时,出现以下错误:can't locate a C/C++ compiler for 'DPI Export Compilation '。


这是因为modelsim没有gcc编译环境导致的,解决方法如下:

(1)下载modelsim-gcc-4.5.0-mingw64.zip编译器,注意根据自己的情况选择32位还是64位的版本。

(2)解压后,将modelsim-gcc-4.5.0-mingw64文件夹中的所有子文件夹(bin、include、lib、lib64等)拷贝,放在modelsim安装路径下,如果有则覆盖。下图是将这些文件夹放在modelsim安装路径下的截图。

(4)配置环境变量。打开控制面板——>系统和安全——>系统——>高级系统设置——>环境变量——>用户变量。找到path,点击“新建”,将modelsim安装目录下bin文件夹路径添加进来。

(5)电脑重启。打开modelsim后,在命令行窗口输入:g++ --version。会显示g++的版本等信息。配置成功。

(6)下载并解压uvm-1.2的库文件,我将它放在F:/modelsim_workspace/uvm_learning

(7)准备好相应的tb和dut文件,开始运行uvm环境。相应的命令如下,将UVM_HOME、WORK_HOME替换为自己的路径即可,tb文件名、dut文件名替换成自己的即可。直接在modelsim的命令行窗口将下面的命令复制过去即可。

  1. cd F:/modelsim_workspace/uvm_learning/chapter346
  2. vlib work
  3. set UVM_HOME F:/modelsim_workspace/uvm_learning/uvm-1.1d/uvm-1.1d
  4. set WORK_HOME F:/modelsim_workspace/uvm_learning/chapter346
  5. vlog +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
  6. vsim -c -sv_lib F:/tools/Modelsim/setup/uvm-1.2/win64/uvm_dpi work.top_tb +UVM_TESTNAME=my_case0

        最后一条指令:vsim  -sv_lib F:/tools/Modelsim/setup/uvm-1.2/win64/uvm_dpi  work.top_tb  +UVM_TESTNAME=my_case0,如果在wave窗口未显示波形,则将
         +UVM_TESTNAME=my_case0 ,在top_tb替换为中run("my_case0")。

  1. `timescale 1ns/1ps
  2. `include "uvm_macros.svh"
  3. import uvm_pkg::*;
  4. `include "my_if.sv"
  5. `include "my_transaction.sv"
  6. `include "my_sequencer.sv"
  7. `include "my_driver.sv"
  8. `include "my_monitor.sv"
  9. `include "my_agent.sv"
  10. `include "my_model.sv"
  11. `include "my_scoreboard.sv"
  12. `include "my_env.sv"
  13. `include "base_test.sv"
  14. `include "my_case0.sv"
  15. module top_tb;
  16. reg clk;
  17. reg rst_n;
  18. reg[7:0] rxd;
  19. reg rx_dv;
  20. wire[7:0] txd;
  21. wire tx_en;
  22. my_if input_if(clk, rst_n);
  23. my_if output_if(clk, rst_n);
  24. dut my_dut(.clk(clk),
  25. .rst_n(rst_n),
  26. .rxd(input_if.data),
  27. .rx_dv(input_if.valid),
  28. .txd(output_if.data),
  29. .tx_en(output_if.valid));
  30. initial begin
  31. clk = 0;
  32. forever begin
  33. #100 clk = ~clk;
  34. end
  35. end
  36. initial begin
  37. rst_n = 1'b0;
  38. #1000;
  39. rst_n = 1'b1;
  40. end
  41. initial begin
  42. run_test("my_case0");
  43. end
  44. initial begin
  45. uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.drv", "vif", input_if);
  46. uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.mon", "vif", input_if);
  47. uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.o_agt.mon", "vif", output_if);
  48. end
  49. endmodule

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/597939
推荐阅读
相关标签
  

闽ICP备14008679号