目录
前言
Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,他它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件(以上介绍来自百度百科),基于此FPGA领域仿真器主流的选择便是modelsim。xilinxUG973建议了每一个版本的vivado都会有一个对应的modelsim版本。这里使用的是vivado2020.2与modelsim10.6c之对应。
1.vivado调用modelSim方法
1.打开vivado2020.2软件,不要打开工程,如图选择。库路径可自定义一个文件夹。注意路径不带空格和中文。按照如下所示,告诉vivado modelsim的安装路径,生成的库保存的路径。
2.编译modelsim需要使用的vivado的库,如下所示。
3.按照如下配置,器件选择越多时间也就越长,我选的K7和A7用时在20分钟以上。路径中第一个第二个与上面描述路径一致。
4.等待编译结束。
5.编译完成之后,打开一个vivado工程,作如下配置。此处Simrom_ip是该工程中的仿真文件名称。每打开一个新的工程,都要设置一遍此步骤。
6.以上设置完成之后,点击vivado中Run Simulation—>Run behavioral Simulation就会自动弹出modelsim软件和仿真结果。
2.modelsim仿真步骤
第一节描述的是在vivado中调用modelsim这个第三方的仿真器进行代码仿真,modelsim作为一个独立的仿真工具,它也有创建工程->编写代码->编译->仿真的流程,本节介绍modelsim工具的使用,指示从无到有跑完一个仿真。
1.打开Modelsim,选择File--New--Library,在弹出的界面中为一个新建的库选择路径和名字。默认叫work。
2. 再次File--New---Project为新建的工程起一个工程名。之后选择Create New File为文件输入名字sim_top。
3.上一步创建一个功能模块,输入以下代码并保存。
module clk_div(
input clk_in,
input rst_n,
output reg clk_out
);
always @(posedge clk_in or negedge rst_n)
begin
if(!rst_n)
clk_out <= 0;
else
clk_out <= clk_out;
end
endmodule
4.用同样的方法为该文件添加testbench文件,使用vs code 的verilog testbench插件执行代码创建的过程,它可以帮助创建一些格式化的代码,功能定义还是要自己书写,具体该插件的使用方法见上一篇文章,链接在文末。添加的仿真代码如下:
`timescale 1ns / 1ps
module tb_clk_div;
// clk_div Parameters
parameter PERIOD = 10;
// clk_div Inputs
reg clk = 0 ;
reg rst_n = 0 ;
// clk_div Outputs
wire clk_out ;
initial
begin
forever #(PERIOD/2) clk=~clk;
end
initial
begin
#(PERIOD*2) rst_n = 1;
end
clk_div u_clk_div (
.clk_in ( clk ),
.rst_n ( rst_n ),
.clk_out ( clk_out )
);
endmodule
5.添加代码完毕之后, 保存并编译,注意这里的编译与vivado中的编译不同,这里仅是把代码变成modelsim方便处理的格式。
编译完成之后,状态由“?”变成了“√”
6.在库里选择testbench文件,右键选择simulate,开始仿真。
7.添加信号到波形图, 单击快捷按钮开始,完成仿真示例演示。
3.modelsim仿真xilinx器件
本文第一节配置了vivado调用modelsim的环境, modelsim独立工作的时候也可以仿真xilinx的器件,前提就是把第一节编译生成的库添加到modelsim中即可。第一节设置的vivado器件库路径vivado_lib在编译库动作结束之后会生成一个modelsim.ini的文件,在modelsim的安装路径下面有一个同名文件,把新生成的modelsim文件中,“secureip=D:/Softwares/ModelSim/vivado_lib/secureip”字段及其以下,直到[vcom]字段以上的部分复制到modelsim安装路径下同名文件的“vital2000 = $MODEL_TECH/../vital2000”字段以下,具体操作如下图所示,需要注意,modelsim路径下的文件是只读文件需要先调整属性在修改。
添加完成后重新打卡modelsim可以看到xilinx的仿真器件库被添加进来如下图所示:
4.传送门
我的主页https://blog.csdn.net/weixin_40615338?type=blog
上一篇:FPGA开发技能(3)Vivado关联VS Code文本编辑器
下一篇:FPGA开发技能(5)Vivado添加列表中不存在的FLash器件
END
💎文章原创,首发于CSDN论坛。
💎欢迎点赞💖收藏✨打赏💷!
💎欢迎评论区🎤或私信指出错误🎤,🗣️提出宝贵意见或疑问。