精华内容
下载资源
问答
  • modelsim仿真vivado ip核方法遇到的问题 1. 说明 本文用于记录操作流程以及遇到的问题解决方法。使用的vivado版本2019.2。modelsim版本19.2。 2. 首先是生成仿真库 参考芯王国的文章 vivado2018.3 与modelsim...

    modelsim仿真vivado ip核方法和遇到的问题

    1. 说明
    本文用于记录操作流程以及遇到的问题和解决方法。使用的vivado版本2019.2。modelsim版本19.2。

    2. 首先是生成仿真库
    参考芯王国的文章
    vivado2018.3 与modelsim联合仿真
    编译仿真库
    编译选项

    在这个过程中出现了error,生成的文件夹非常小,还不到100M。tcl shell表示有一个cxl_error.log文件记录了error的情况。使用everything搜索发现该文档在c:\user\你的用户名\appdata\roaming\xilinx目录下。文档中出现error [vlog-12110]。

    以下两篇文章给出了这个问题的解决办法
    Modelsim编译Vivado仿真库报错(vlog-12110)
    vlog 12110错误及解决

    再次通过everything搜索,发现modelsim安装路径下和c:\user\你的用户名\appdata\roaming\xilinx路径下都有modelsim.ini文件(其他路径不用管),先修改了modelsim文件路径下的voptflow,生成库,还是error。再把c盘下的modelsim.ini修改,不再出现error了。

    3. 把库添加到modelsim
    这时候modelsim里面还是只有原本的库。
    modelsim原本的库
    我本想手动把库添加进去,但实在是太多了。想着应该有简便的方法。

    再次参考芯王国的文章
    modelsim 自动化 独立仿真vivado ip核工程
    仿真选项
    这里要先将红色箭头处选为modelsim,才会出现绿色箭头的框,不然是不会出现的。这是在选择vivado中使用哪个仿真器。以后想使用vivado默认仿真器,再切换回来即可。
    选择第三方库
    这里是要指定第三方仿真工具的可执行文件地址和库的地址。

    到这一步还没有把库添加到modelsim中,还要进行一次仿真,就像平常在vivado里面启动仿真一样操作。
    启动完仿真之后,modelsim的界面就自动打开了,vivado的库就自动添加到了modelsim中。
    加入vivado库的modelsim库界面
    这之后只要从vivado中仿真,就可以直接跳出modelsim界面得到结果。

    4.直接在modelsim中仿真
    脱离了vivado想在modelsim中仿真,还需要几步,需要把vivado生成的modelsim.ini文件中secureip之后和vivado库有关的内容拷贝到modelsim安装路径下modelsim.ini中。然后举例说明接下来的操作:
    这里是仿真一个rom ip核。需要在modelsim里新建一个工程,把tb和ip核代码添加进去。ip核的添加参考
    modelsim仿真调用xilinx IP的一种方法
    modelsim 独立仿真 Xilinx IP核

    在windows目录下就是把vivado工程目录下如:
    D:\*\ *\**.srcs\sources_1\ip\blk_mem_gen_0\路径下simulation和sim文件夹中的.v文件都添加进modelsim工程。然后rom文件还需要初始化的数据,刚刚这个路径下还有一个mif文件,这个文件拷贝到新建的modelsim工程work目录下。

    mif文件说明参考
    vivado中coe与mif的区别与联系
    然后就可以像普通modelsim工程进行仿真了(目前只是rom ip核经过了验证,其他ip核还需要再验证看看)

    5. 使用do文件自动化仿真
    好几篇文章都像用Modelsim独立仿真带Vivado IP核的仿真工程中描述的,在vivado仿真之后,使用工程目录…\project.sim\sim_1\behav\modelsim下的三个do文件,分别是tb_compile.do、tb_simulate.do、tb_wave.do。基本上都是直接使用这三个do文件中的代码,就能完成仿真。但我在使用中出现了很多问题。tb_compile.do中的代码完全不能用

    D:\\modeltech64_2019.2\\win64\\vlib modelsim_lib/work
    D:\\modeltech64_2019.2\\win64\\vlib modelsim_lib/msim
    
    D:\\modeltech64_2019.2\\win64\\vlib modelsim_lib/msim/xil_defaultlib
    
    D:\\modeltech64_2019.2\\win64\\vmap xil_defaultlib modelsim_lib/msim/xil_defaultlib
    
    D:\\modeltech64_2019.2\\win64\\vlog -64 -incr -work xil_defaultlib  \
    "../../../../project_1.srcs/sources_1/ip/blk_mem_gen_0/sim/blk_mem_gen_0.v" \
    "../../../../project_1.srcs/sim_1/new/tb.v" \
    
    
    # compile glbl module
    D:\\modeltech64_2019.2\\win64\\vlog -work xil_defaultlib "glbl.v"
    
    quit -force
    

    问题之一是不能带有路径,一含路径就报错。并且这个代码映射了多个库,结合本文第4节的原理,令人疑惑到底是vlog blk_mem_gen_0 还是vlog blk_mem_gen_v8_4_4,而且不管填哪个还都会报错。tb_simulate.do中的代码

    vsim -voptargs="+acc" -L blk_mem_gen_v8_4_4 -L xil_defaultlib -L unisims_ver -L unimacro_ver -L secureip -L xpm -lib xil_defaultlib xil_defaultlib.tb xil_defaultlib.glbl
    
    set NumericStdNoWarnings 1
    set StdArithNoWarnings 1
    
    do {tb_wave.do}
    
    view wave
    view structure
    view signals
    
    do {tb.udo}
    
    run 1000ns
    

    由于映射了多个库,所以需要把多个库关联起来,vsim后面跟了一堆就是干这个事儿的。
    在modelsim中运行这两个do文件之后,会提示“error:no design loaded”通过删改无论怎样都不能运行正确。
    之后就放弃了直接使用vivado路径下的do文件代码,转去学习以下几篇文章

    ModelSim之TCL仿真
    modelsim仿真出现** Error: No Design Loaded! 求解决,急急急急急!!!有追加

    从中明白了do文件的基本流程,首先是要用vlib建立一个逻辑库,从前使用modelsim的习惯是建立一个名为work的库,所以如下面的代码段所示。

    vlib之前有切换路径、退出前面的仿真、清空tcl shell框信息的代码。切换路径不是必须的,只要do文件和bat文件以及所有源文件都在同一路径就不用切换。如果已经有打开的仿真,那可必须关掉前面的仿真。

    建立逻辑库之后,要在windows中也生成一个文件夹并且让这个文件夹和逻辑库关联起来,即物理库和逻辑库的关联,这里使用vmap语句。关联好了之后就开始加入仿真文件了,本工程中包含tb.v和rom ip核的文件,和第4节的思路一样,两个.v文件都包含了。-incr 表示只编译有变化的代码,-work语句指定一个逻辑名称或者一个库的路径来映射到逻辑库work,一行写不下时使用了换行符\,顶层文件也要放在最后面的位置。

    不知道glbl.v是不是必须的,但是加上好像也没什么问题。到这一步发现,project框下并没有出现添加的.v文件,不能像手动操作那样进行编译。这是使用do文件的特点,不会对结果造成影响。

    #更换路径
    #cd D:\\fpga\\project_1
    
    # 退出之前仿真
    quit -sim
    
    # 清空信息
    .main clear
    
    #新建一个库
    vlib work
    
    #映射逻辑库到物理库
    vmap work work
    
    #编译仿真文件
    vlog -incr -work work  \
    "project_1.srcs/sources_1/ip/blk_mem_gen_0/sim/blk_mem_gen_0.v"  \
    "project_1.srcs/sources_1/ip/blk_mem_gen_0/simulation/blk_mem_gen_v8_4.v"  \
    "project_1.srcs/sim_1/new/tb.v"
    
    # compile glbl module
    vlog -work work "glbl.v"
    
    do tb_simulate.do
    

    这些都完成后,还需要进行仿真。参考以下两篇文档,发现vsim后面不需要跟那么多描述符。并且第四节中手动操作时,tcl shell框中会出现对应的命令语句。于是我直接拿来使用。
    参考文档:
    Modelsim TCL仿真
    基于脚本的modelsim自动化仿真

    第一句中-voptargs="+acc" 是必须的,没有这句软件也报错。work.tb表示仿真work库中的tb文件。调用的tb_wave.do文件中对界面显示、添加波形做出了设置。之后就是运行1000ns,运行结束后将屏幕进行缩放。

    vsim -voptargs="+acc" work.tb
    
    set NumericStdNoWarnings 1
    set StdArithNoWarnings 1
    
    do {tb_wave.do}
    run 1000ns
    WaveRestoreZoom {0 us} {1000 ns}
    
    

    有了上面这两个do文件,仿真界面就差最后一步了,如果信号比较少、逻辑比较简单,这时候也可以自己添加波形。但有时候需要修改波形的进制、信号放置的顺序,进行多次仿真,最好还是能按照自己的需要来进行设置。于是有了tb_wave.do中的代码。

    第1、2行就是添加信号到波形界面,当然也可以用第4行的代码代替,*表示该路径下的所有信号,或者像第5行单独对每个信号进行编辑,比如颜色、模拟还是数字、可显示的最大最小值、进制以及必须放在最后的信号名称。

    第7行代码则是在已经显示某波形后想对其进制修改。后面根据注释所示,使用不同的标尺单位,方便进行换算等。上面两篇参考文章也都写了一些内容。最详细的内容在modelsim软件自带的手册中。
    还有一条property wave代码,手册中说是可以改变信号的颜色、模式等。有时候也确实需要在信号已经显示出来之后来回切换模拟和数字模式,但测试了几遍都在最后一个描述符pattren上出了问题,系统提示error: no item found。

    最后一部分是用字符串代替数字显示,这在状态机中特别好用。fsm_a是给这个状态机起的名字,add wave之后在波形显示界面就会出现这个名字。

    virtual function 的功能是给/tb/addra信号起了个新名字叫state。然后add wave将state显示出来。相同的定义也可以起不同的fsm名。但不能起相同的fsm名,必须先把这个被占用的名字删除,为了方便不如干脆新起个名字。

    if { [catch {[add wave *]}] } {}
    add wave /glbl/GSR
    
    #add wave sim:/signal_generate_tb/*
    #add wave -noupdate -color pink -format Analog-Step -height 30 -max 100 -min -100 -radix unsigned /tb/addra
    #更换某个信号的进制
    radix signal /tb/addra unsigned
    #信号名框的宽度
    configure wave -namecolwidth 150
    
    #信号值框的宽度
    configure wave -valuecolwidth 92
    
    #信号值右对齐
    configure wave -justifyvalue right
    
    #单个信号框宽度(只有框变化,信号高度未变,且放大后无法恢复)
    configure wave -rowmargin 4
    
    #标尺单位
    configure wave -timelineunits us
    
    #只显示leaf name
    config wave -signalnamewidth 1
    
    #显示full name
    #config wave -signalnamewidth 0
    
    configure wave -timeline 0
    update
    
    #添加分割线来分开不同的组
    #add wave -divider {clk}
    
    #显示活动 cursor的时间
    #getactivecursortime
    
    #用状态机名代替数字
    virtual type {
    {6'h0  IDLE}
    {6'h1  S1}
    {6'h2  S2}
    {6'h3  S3}
    {6'h4  S4}
    {6'h5  S5}
    {6'h6  S6}
    } fsm_a;
    
    virtual function {(fsm_a)/tb/addra} state
    add wave /tb/state
    

    最后,仅使用do文件还不够方便,因为要先打开modelsim,再输入do sim.do语句。在windows新建一个.bat文件,加入一句modelsim -do sim.do(你的do文件名称),完成后只要单击这个.bat文件,就可以自动打开modelsim并完成一系列动作。

    21-2-8更新
    使用vivado自动生成的do文件,原先的错误出在两个地方,一个是前面的路径,把vlog等之前的路径删掉,按前面写的代码切换路径和编写路径。第二个就是文件夹,像vlib modelsim_lib/work,其实是在windows下有个叫modelsim_lib的文件夹,文件夹下面有个库叫work,单用vlib语句是不能在windows下新建文件夹的,所以报错。如果想实现,需手动在windows下建好对应的文件夹(也许脚本语言有新建文件夹的语句,目前还没找到),然后再使用这个语句。或者直接vlib work 再vlib msim这样子把库都放在一起。vivado自动生成的tb_simulation.do文件就可以不经修改直接使用了。

    以后需要掌握的内容:
    使用ModelSim自动生成状态机FSM的状态转换图

    展开全文
  • 本文以仿真fifo ip核clk_wiz ip核为例,介绍如何使用modelsim仿真。 会使用生成的unisims_versimprims_ver库文件 生成ip核 使用vivado生成相应的ip核。Ip核中会使用相应的*_sim_netlist.v文件。 ...

     

    对应modelsim工程案例:

    https://download.csdn.net/download/cigarliang1/15988588

    其他类似参考:

    https://blog.csdn.net/weixin_43265132/article/details/104436412

     

    生成仿真库

    首先,使用vivado生成仿真库文件

     

    本文以仿真fifo ip核和clk_wiz ip核为例,介绍如何使用modelsim仿真。

    会使用生成的unisims_versimprims_ver库文件

     

    生成ip核

    使用vivado生成相应的ip核。Ip核中会使用相应的*_sim_netlist.v文件。

     

    Testbench文件

    写出相应的tb文件,另存为tb_fifo.v文件,如下:

     

    ///

    `timescale 1ns/1ps

     

     

    module  tb_fifo();

     

    reg CLK;

     

    parameter PERIOD = 10;

     

       always begin

          CLK = 1'b0;

          #(PERIOD/2) CLK = 1'b1;

          #(PERIOD/2);

       end

     

    glbl glbl();

     

    reg srst;

    reg [7 : 0] din = 'h0;

    reg wr_en = 1'b0;

    reg rd_en = 1'b0;

     

    wire [7 : 0] dout;

    wire full;

    wire empty;

    wire valid;

     

    initial begin

    srst = 1'b1;

    #40;

    srst = 1'b0;

     

    #10;

    wr_en = 1'b1;

    din = 8'ha5;

    #10;

    rd_en = 1'b1;

     

    #100;

    rd_en = 1'b0;

     

     

    end

     

      clk_wiz_0 instance_name

       (

        // Clock out ports

        .clk_out1(clk_out1),     // output clk_out1

        .clk_out2(clk_out2),     // output clk_out2

        .clk_out3(clk_out3),     // output clk_out3

        // Status and control signals

        .reset(srst), // input reset

        .locked(locked),       // output locked

       // Clock in ports

        .clk_in1(CLK));      // input clk_in1

     

    fifo_generator_0 fifo_generator_0_inst (

      .clk(CLK),      // input wire clk

      .srst(srst),    // input wire srst

      .din(din),      // input wire [7 : 0] din

      .wr_en(wr_en),  // input wire wr_en

      .rd_en(rd_en),  // input wire rd_en

      .dout(dout),    // output wire [7 : 0] dout

      .full(full),    // output wire full

      .empty(empty),  // output wire empty

      .valid(valid)  // output wire valid

    );    

     

    endmodule

     

    do脚本

    写出相应的仿真do脚本,另存为run.do文件,如下:

     

    quit -sim

    #退出上一次的仿真

     

    .main clear

     

    vlib work

    #在lib中,创建work

     

    vlog ./*.v

    vlog ./scrs/*.v

    #vcom ./scrs/*.vhd

    #增加当前目录下(./当前目录,./../上一级目录,./../../上上一级目录,以此类推)的所有v文件

     

    #vsim -voptargs=+acc work.tb_fifo

    #vsim -novopt work.tb_fifo

    #仿真当前work下的clk_div_tb文件

     

    #加入仿真库进行仿真,仿真库的路径更具实际填写

    vsim -L E:/learning/FPGA/xiinx_sim_lib/unisims_ver \

    -L E:/learning/FPGA/xiinx_sim_lib/simprims_ver -novopt work.tb_fifo

     

    add wave tb_fifo/*

    #增加clk_div_tb层级中的所有信号

     

    run 1us

    #运行1us时间

     

    拷贝Glbl文件和sim_netlist文件

    拷贝D:\Xilinx\Vivado\2017.4\data\verilog\src目录下的glbl.v文件(注意是按照目录的,本机是装在D盘),到仿真文件夹的scrs文件夹。

    拷贝对应ip核的sim_netlist.v文件到仿真文件夹的scrs文件夹。

     

    新建仿真工程

    打开modelsim,新建仿真工程。工程路径为仿真文件夹。

     

    输入 do run.do执行脚本。

     

    仿真波形:

     

    展开全文
  • module《模块名》参数定义端口类型说明数据类型定义assignalways initial任务函数endmodule//8位加法计数器 module counter8(out,cout,data,load,cin ,clk)output【7:0】out;output cout;input load,cin...

    module《模块名》

    参数定义

    端口类型说明

    数据类型定义

    assign

    always initial

    任务和函数

    endmodule

    //8位加法计数器 module counter8(out,cout,data,load,cin ,clk)

    output【7:0】out;

    output cout;

    input load,cin,clk; // load初始位,cin是进位 input【7:0】data;

    reg 【7:0】out; // reg寄存器类型 always@(posedge clk) //总是检测, @有when 的意思。 begin

    if(load)

    out=data //置数 else

    out= out+cin ;//计数或保持 end

    assign cout =&out&cin //&out = out【7】&out【6】。。。。&out【1】所有位endmodule

    bufif1 bufif0 notif1 notif0 三态门

    nand xnor 同或门

    module gateinst (a,b,c,d,y)

    input a,b,c,d

    output y

    wire x

    and andgate(x,a,b,c)

    //加法器

    module counter8(out,cout,data,load,cin,clk);

    output【7:0】 out;

    output cout;

    input load, cin,clk;

    input【7:0】data;

    reg【7:0】 out;

    always @(posedge上升沿 clk) negedge 下降沿

    begin

    if(load) out =data ;

    else

    out =out+cin;

    end

    assign &cin&out ; 连续赋值, 常用对wire变量赋值,随时变化随时赋值

    end module

    过程赋值 :

    1。非阻塞赋值, 块结束时才赋值,

    2。阻塞赋值, 该语句结束时赋值。

    常量:

    位宽‘ 进制 数字

    8是二进制八位 例如 8‘o305 011000101

    变量:网络型 wire 常用来表示assign语句赋值的组合逻辑信号,缺省自动定义为wire型

    寄存器型 reg integer real time

    reg a,b; reg 【7:0】 mymem【1023:0】 1k字节 8bits的存储器

    == 相等和 === 全等的区别是什么?

    A== 1’bx 不会为真 ,而=== 对于x不定态和高阻态z会判断为真

    《=赋值 时序,非阻塞赋值。 =阻塞赋值,组合逻辑电路。

    reg【3:0】a; &a 就是a 每一位互相与

    MUX out =sel?in1:in0;

    优先级

    !~ 运算符

    & , |

    * / %

    initial 主要面向功能模拟,通常不具有可综合性,

    begin

    初始化变量

    初始化存储器

    end

    always@

    begin

    end

    always 不能嵌套

    一般assign是组合逻辑电路 ,直接赋值

    过程赋值 需要reg F ;

    parameter MODULUS = 8’h59 //改变模的大小

    7。7。2

    case = C语言中的switch casez 高阻位不考虑。 casex高阻位和不定值都不考虑。只关心其他位。 ? 也可以

    case(敏感语句式)

    4’d0:

    4’d1:

    4’b1zzx: b=2’b11

    4’b001?: b=2’b01

    endcase

    条件语句:

    条件不满足时,会保持原值。组合电路要列出所有分支。否则会产生隐含触发器。

    repeat (size) 循环size次, begin if() a < 1 b>1 end end

    7。9 task 和function语句

    task 《任务》

    endtask

    function 《返回值位宽或类型》 《函数名》; 手写的时候别忘了;

    endfunction

    7。11 语句的顺序执行 和并行执行

    7。12 Verilog HDL 模型级别

    行为描述级: 系统级,算法, 寄存器级

    门级

    开关级

    7。12。1 行为级描述

    Q &A

    Q:为什么综合后点了debug没有出现原理图呢?

    A: 因为测试文件置为顶层。重新设置顶层

    Q:可不可以就一部分simulation? 比如只simulate comp ?

    A:右击相应测试文件,设为顶层文件

    出现的错误:

    1. 调用mux的模块名字错了。解决方法:Mux模块名字改成对应的。 成功仿真。

    2.仿真MUX结果,没有输出。 因为寄存器没有设置位宽 只写了reg out ;解决方法:改成 reg【N-1:0】 out

    3. 信号只有in,out。无法调试。因为之前将测试文件置为顶层。解决方法:重新设置顶层。出现了各个模块的信号。

    4. 端口不对应 in0输入有问题。解决方法: 修改in0(in0)为in0(a) 括号里 a为线,in0为模块中的端口。

    5. 波形出错, 没有加入MUX 解决方法: 加入MUX

    心得:

    1.控制器一般采用二段式或三段式。

    2.Verilog 不能用reg 作为调用模块的输出, 得用wire。

    3.Modelsim 第三个可以zoom fit 直接窗口一样大小。

    4.{}用作位拼接,所以 verilog中用begin end 来替代{}

    5.zoom in active curve 可以以光标为中心放大。

    6. always@(*) //always模块中的任何一个输入信号或电平发生变化时,该语句下方的模块将被执行。

    7. 改掉一个错误之后可以直接再次编译,因为一个错误有连环错误。

    8. 控制器clear变量, always 里就是reg型, always外是wire型.

    出现错误:

    1.调用按键处理的模块名字错了。解决方法:按键处理模块名字改成对应的。 成功仿真。

    2.仿真结果,没有输出。 因为寄存器没有设置位宽 只写了reg out ;解决方法:改成 reg【N-1:0】 out

    3. 信号只有in,out。无法调试。因为之前vivado将测试文件置为顶层。解决方法:重新设置顶层。出现了各个模块的信号。

    4. 端口不对应 in0输入有问题。解决方法: 修改in0(in0)为in0(a) 括号里 a为线,in0为模块中的端口。

    5. 波形出错, 没有加入MUX 解决方法: 加入MUX

    6.下载后显示出错 解决方法: 52位没必要用变量传递,

    7. 一开始的时候parameter sim是0,tb测试时才传入1

    8. Q:为什么综合后点了debug没有出现原理图呢?

    A: 因为把测试文件置为顶层。重新设置顶层

    9. Q:可不可以就一部分simulation? 比如只simulate comp ?

    A:右击相应测试文件,设为顶层文件

    10. 还有一个错误,是输入变量不能直接定义为reg。

    展开全文
  • Vivado联合ModelSim

    2020-05-08 16:41:50
    首先,在modelsim安装路径中新建一个名为vivado2017_4lib(根据自己的需要安装的modelsim和vivado版本自己确定)的文件夹 然后在Vivado 2017.4(小编在使用2017版本)的Tool中选择Compile Simulation Libraries,弹出...

    欲观原文,请君移步微信
    ##1.器件库编译
    首先,在modelsim安装路径中新建一个名为vivado2017_4lib(根据自己的需要安装的modelsim和vivado版本自己确定)的文件夹

    然后在Vivado 2017.4(小编在使用2017版本)的Tool中选择Compile Simulation Libraries,弹出对话框在设置器件库编译参数,仿真工具“Simulator”选为ModelSim Simulator,语言“Language”、库“Library”、器件家族“Family”都为默认设置All(当然也可以根据自己的需求进行设置),然后在“Compiled library location”栏设置编译器件库的路径,这里选前面新建的vivado2017_4lib文件夹,此外在“Simulator executable path”栏设置modelsim执行文件的路径,其他参数默认。

    然后就开始漫长的等待过程(具体看电脑配置),这个过程中会将产生Xilinx的IP的仿真库文件在上面仿真路径(vivado2017_4lib)下

    设置好参数后点击“Compile”按钮开始器件库的编译。图5所示为正在编译器件库的过程中。器件库编译结束后给出编译报告,从报告中看出0个警告和0个错误。
    ##2.vivado调用modelsim
    在vivado中关联了modelsim软件和编译器件库之后,就可以在vivado中调用modelsim软件对设计进行仿真了。不过,在对每一个新建的工程设计进行仿真时需要进行一些设置。选择vivado菜单“Project Settings”——>“Simulation Settings”命令Target simulator选择ModelSim Simulator,编译库选择刚才编译的库路径,然后选择Apply。

    设置好仿真参数后,如果设计文件和仿真文件也准备好,那么就可以开始对设计的功能进行仿真了。选择菜单“Flow”——>“Run Simulation”——>选相应的仿真类型或点击流程向导中的“Run Simulation”——>选相应的仿真类型进行仿真。

    小编写了一个100M的时钟来测试,可以在ModelSim中看到该时钟的仿真结果

    `timescale 1ns / 1ps
    module test();
    	
    	reg clk;
    	initial
    	begin
    	clk=0;
    	end
    	
    	always #5 clk=!clk;
    endmodule
    


    ##3.仿真Xilinx IP核
    在modelsim安装路径下有一个modelsim.ini文件,需要取消其只读属性然后用notepad++打开modelsim.ini

    在刚才IP的编译库中的ini文件找到“modelsim_lib = $MODEL_TECH/…/modelsim_lib”处准备添加ip库路径。复制IP地址到modelsim.ini文件

    打开ModelSim可以看到IP的仿真库已经在了。

    展开全文
  • 有两种方法可以使用 ModelsimVivado 工程进行仿真,即级联仿真独立仿真。 级联仿真就是通过设置使 Vivado 调出 Modelsim 仿真界面并启动仿真,这种方法的好处是当使用 IP时不用自己添加 Xilinx 的 IP库;...
  • 说明:本文是在参考《在Modelsim中添加Xilinx仿真库》的基础上,经过反复试验才取得成功的!...按下图所示,在Simulator中选择Modelsim,在Advanced下选择用于存放仿真库的地址和Modelsim的执行地址,然后单击Com..
  • 所以装了个Mdoelsim,和Vivado进行联合仿真。 所用软件版本: Vivado 2018.3 Modelsim SE-64 10.7 首先在Modelsim的安装路径下,新建文件夹vivado2018_3_lib,作为vivado的库文件。 打开Vivado,在Tools -> ...
  • vivado2017.1和modelsim版本 vivado可在xilinx官网查询匹配的modelsim最低版本,下载modelsim前记得选用合适的版本号,如图 查询地址:https://www.xilinx.com/support/answers/68324.html modelsim10.5...
  • 由于同时将ise 14.7的库和vivado 2016.4的库加入modelsim可能会有问题,这里给出我试出来的成功版的ini。使用介绍:https://blog.csdn.net/ciscomonkey/article/details/90375540
  • Vivado和ISE共用modelsim 起因是这样的,最近新买了块硬盘,在跟老硬盘对拷的时候,不小心把目标磁盘和源磁盘调转了,导致环境全无了。。为此趁着环境还干净,解决一下这个问题. 文章目录让Vivado和ISE共用...
  • vivado和modelsim联合调试仿真 0赞 发表于 2017/5/10 19:10:59阅读(881)评论(0) 使用vivado和modelsim联合调试仿真时,在破解完modelsim后,不必修改modelsim.ini文件,在vivado中进行如下设置,即可调用...
  • 1)打开一个vivado工程, 2)
  • vivado调用modelsim

    2020-08-19 14:19:49
    一:vivado中设计文件测试文件修改后,如何重新加载波形,使得之前观测的信号不被删除? 答: 第一步:代码未被修改之前,在modelsim中,选择“file->save format”,文件名、位置可以选择默认,或者可以自行...
  • 背景 这个问题是因为我都想加入减少编译时间,然而我按照操作都加入后,ISE却仿真失败,不能映射到modelsim了。这个问题很简单,因为有的名字是相同的,一个...目前使用两个vivado和 ise都能成功调用modelsim,而且...
  • Vivado和modelsim联合仿真出现问题

    千次阅读 2020-05-19 14:22:18
    User Exception: The file specified with the MODELSIM environment variable does not exist! Please set this variable to an existing modelsim.ini file location. 原因:环境变量没有设置 解决: 1.添加用户...
  • Vivado联合Modelsim软件安装仿真库编译 Vivado hls工具与Vitis统一软件平台的出现发展,突破了以往使用FPGA进行设计时,使用语言HDL语言进行设计实现的瓶颈,在xilinx FPGA上构建数字系统时,首先使用c/c++/...
  • modelsim仿真时调用xilinx vivado IP

    千次阅读 2018-12-12 14:03:59
    modelsim se-64 10.5 和vivado 2017.4为例说明这个配置过程。 1、首先生成可以被modelsim 调用的库 Windows à所有程序àxilinx design toolsàISE Design Toolsà64-bit ToolsàSimulation Library Com… ...
  • 最近在做Zynq的项目,曾经尝试使用ISE+PlanAhead+XPS+SDK组合和Vivado+SDK来搭建工程,使用中发现前者及其不方便后者有诸多不稳定。近期得闻Xilinx退出Vivado2013.4,就迫不及待的想试用一把,看之前的bug是否有修....
  • 首先确认modelsim的型号是否在modelsim10.6c及以上,没有需要重新安装 ...我用modelsim10.1c进行编译 (Vivado下进行Compile Simulation Libraries )时报错,后来我想了一下,之前好像配置了modelsim和IS.
  • vivado软件中也自带仿真...为了将vivado和modelsim关联,需要进行一些设置,下面一一介绍。 一、在vivado中设置modelsim(即第三方仿真工具)的安装路径。在vivado菜单中选择“Tools”——&gt;“Options...”,...
  • 但是后来转到xilinx,好像没有办法独立仿真,只能和vivado联合仿真,这效率太低,特别是仿真复杂的图像算法时,人都要都疯了。不过。我细致研究下了,可以实现自动化仿真,还是独立仿,真香! 2.准备 下面只是参考...
  • 代码来自以下视频并做了适当修改,老师讲得好像有点问题,有空再研究 添加了复位模块 两个计数器都是计数到4翻转,是五分频,一个是上升沿一个是下降沿 ... endmodule div0div1相差半个周期,div0div1相加得到div5
  • end endmodule FPGA分频器的设计 编写testbench代码并把仿真器设置为modelsim,仿真时间设置为1us,具体步骤可以看上一篇博文 vivado和modelsim联合仿真实现分频器——2的n次方分频 module testbench( );...
  • vivadomodelsim的联合仿真

    万次阅读 多人点赞 2018-09-23 19:58:11
    目的:在学习Xilinx的FPGA的时候,我花了很大功夫才搞定了vivado和modelsim的破解以及他们的联合仿真。为了不使大家花太多时间,我写了这篇文章。 一、vivado的破解 首先安装好Xilinx_Vivado_SDK_2018.1_0405_1,...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 134
精华内容 53
关键字:

modelsim和vivado