版本:1.0
(本流程是基于设计代码已完成)
电路设计的各个阶段都与仿真紧密联系在一起的,可以分为以下几个阶段的仿真:
1.行为级:用于验证电路框架及算法的正确性;
2.RTL级(寄存器传输级):可以验证功能正确性,一般称为前仿真;
3.门级:综合出门级网表之后,网表中加入了门的延时信息,仿真结果更接近于真实情况;
4.后仿真:布局布线后,可以将连线延时加入到网表中,此时可以验证电路的时序是否正确;
实际上我们在编写设计代码时,一般从是RTL级开始。RTL级仿真通过,然后直接进入后仿真。只要后仿真通过了,我们就认为设计代码通过验证,可以下载到FPGA里。所以我们需要仿真的只有RTL级和后仿真就行了!
一.RTL级仿真步骤:
1.打开ModelSim,新建一个project,如图1.1
图1.1
得到 Creata Project 的弹出窗口,如图 1.2 所示。在 Project Name 栏中填写你的项目名字。Project Location 是你的工作目录,你可通过 Brose 按钮来选择或改变。Ddfault Library Name 可以采用工具默认的 work库。(推存,此库包括一个特殊的文件_info)
图1.2
2.给工程加入文件:ModelSim会自动弹出 Add Items to the project 窗口,如图 1.3 所示。选择 Add Exsiting File 后,根据相应提示将文件加到该 Project 中。
图1.3
出现图1.4
图1.4
点击Browse,出现
添加你所要的.v文件,出现。
当然也可以这样添加你所要的.v文件,
3.编译:编译(包括源代码和库文件的编译)。编译可点击 ComlileComlile All 来完成。
也可以这样编译文件
编译成功后,所有的文件后会打勾。
5.装载文件:如图 2.5所示,
出现,选中你的test文件,点击OK
6.开始仿真,添加波形图
点击run all
出现波形
二.后仿真步骤:
1.启动ISE的Project Navigator,然后新建一个project。点击File->New Project,出现
然后选择器件和综合工具,注意选择适当的Generated Simulation Language
点击下一步,直到完成
2.添加文件
3.开始综合
4.综合通过后,准备生成布局布线后的SDF文件
6.再运行ModelSim之前,首先把glbl.v文件(网表文件)复制到的ISE工程所在文件夹里,和你的代码放在一起。glbl.v文件所在路径为:
复制到
7.运行ModelSim,加入相应的后仿真库,有以下3个:
Unisim:仅仅用来做功能仿真,在这个库中包括了Xilinx公司全部的标准元件,可以被绝大多数综合工具推论。
XilinxCoreLib:仅仅用来做功能仿真,在这个库中包括了使用Xilinx Core Generator工具产生的IP仿真模型。
Simprims:用来做时序仿真或门级功能仿真。
仿真 | Unisim | XilinxCoreLib | Simprims |
RTL级 | Y | Y | |
综合后功能 | Y | Y | |
映射后时序 | Y | ||
布局布线后时序 | Y |
在File->Chang Directory
路径为/Modeltech_6.0/verilog_src
新建一个Libary
输入Library Name
选中Unisim,然后Compile
找到\\Xilinx\\verilog\\src\ms,Compile 所有unisims库里的文件。文件太多,建议分几次编译
同样的方法编译XilinxCoreLib和Simprim
9.新建一个Project,和ISE的工程存放在一起
10.添加glbl.v(网表文件),*_timesim.v(sdf时序约束文件)和你的test.v(测试文件)文件
11.编译后,启动Simulate.
在Libaries下,添加Simprim库
在SDF下,添加SDF文件
注意Apply to Region, 为你的test文件包含你的功能文件的路径
接下来在Design->work下,同时选中glbl和test文件,点击OK
10.于RTL级仿真一样,开始仿真,添加波形图