当前位置:   article > 正文

vivado的RTL设计与联合modelsim仿真_vivado可以生成rtl

vivado可以生成rtl

以信号发生器为例,读取ROM中数据,并输出形成波形
一.RTL设计
(1)新建工程。Quit Start下选择Creat Project,选择文件位置,如果勾选“Creat project subdirectory ”会生成子目录;
选择RTL Project,IP文件和约束文件直接跳过即可;
选芯片型号;
(2)加入.v文件。在Sources下找到Design Sources,右键Add sources添加或者新建.v文件。注意顶层的File Name与Project Name保持一致.
Vivado可以在新建.v文件时就指定输入输出口,比Quartus更加方便。
(3)调用ROM的IP核。在界面左端选择IP Catalog,找到Block Memory Genetator,配置为8*1024的单口ROM并写入.coe数据文件(可以用Matlab等软件生成).
(4)例化ROM。可以直接在IP的示例文件里复制。
整体代码如下:

module signal(
    input         	clk,
    input         	rst,
    output 	[7:0]  	signal
    );
    reg		[9:0]	addr;
    
    always@(posedge clk)
    begin
        if (!rst)begin
            addr<=10'b0;
        end else begin
            addr=addr+10'b1;
        end
    end
    
    rom_8x1024 rom_instan (
      .clka(clk),    // input wire clka
      .addra(addr),  // input wire [9 : 0] addra
      .douta(signal)
      );
endmodule

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

二.联合Modelsim仿真
(1)仿真Modelsim的lib库。主面板选择Tools-Compile Simulation Libraries.打开后Simulator选择Modelsim Simulator,选择自己的型号和仿真库位置,点Compile即可
在这里插入图片描述
(2)设置调用Modelsim仿真。PROJECT MANAGER里选择Settings,选择Modelsim以及刚才编译好的库,如下图在这里插入图片描述
(3)SIMULATION中选择Run Simulation,跑行为级仿真,即可以完成编译-仿真-dump波形的过程。
在这里插入图片描述
可以看到,在没有设置其他参数时,信号只跑了一部分,下面实现

三.脚本控制Modelsim
(1)打开工程所在文件,找到.sim/.sim1/behave/modelsim,可以通过更改里面的.do文件编辑控制脚本
在这里插入图片描述
每次修改testbench后都要重新compile一下,在Modelsim的控制台输入do tb_signal_compile.do即可。
simulate和wave也是一样的命令
(2)修改脚本。每次compile后Modelsim会退出,编辑tb_signal_compile.do 把quit force注释掉即可。波形仿真时间不够,可以改tb的$finish时间,然后编辑tb_signal_simulation.do把run 100ns改成适合的时间。
修改完脚本后重新仿真,可得到下图:
在这里插入图片描述
已经得到完整的周期波形。
更多的Modelsim控制脚本参考https://www.cnblogs.com/IClearner/p/7273441.html

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号