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

文章讲述了在使用ModelSim搭建UVM验证环境时遇到的DPIExportCompilation错误,解决方法包括下载并配置modelsim-gcc编译器,设置环境变量,以及正确导入UVM库和测试文件。
摘要由CSDN通过智能技术生成

在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的命令行窗口将下面的命令复制过去即可。

cd F:/modelsim_workspace/uvm_learning/chapter346
 
vlib work
 
 
 
set UVM_HOME F:/modelsim_workspace/uvm_learning/uvm-1.1d/uvm-1.1d     
 
set WORK_HOME F:/modelsim_workspace/uvm_learning/chapter346
 
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   
 
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")。

`timescale 1ns/1ps
`include "uvm_macros.svh"

import uvm_pkg::*;
`include "my_if.sv"
`include "my_transaction.sv"
`include "my_sequencer.sv"
`include "my_driver.sv"
`include "my_monitor.sv"
`include "my_agent.sv"
`include "my_model.sv"
`include "my_scoreboard.sv"
`include "my_env.sv"
`include "base_test.sv"
`include "my_case0.sv"

module top_tb;

reg clk;
reg rst_n;
reg[7:0] rxd;
reg rx_dv;
wire[7:0] txd;
wire tx_en;

my_if input_if(clk, rst_n);
my_if output_if(clk, rst_n);

dut my_dut(.clk(clk),
           .rst_n(rst_n),
           .rxd(input_if.data),
           .rx_dv(input_if.valid),
           .txd(output_if.data),
           .tx_en(output_if.valid));

initial begin
   clk = 0;
   forever begin
      #100 clk = ~clk;
   end
end

initial begin
   rst_n = 1'b0;
   #1000;
   rst_n = 1'b1;
end

initial begin
   run_test("my_case0");
end

initial begin
   uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.drv", "vif", input_if);
   uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.mon", "vif", input_if);
   uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.o_agt.mon", "vif", output_if);
end

endmodule

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值