仿真系统架构与操作流程解析

一、前言

       目前网上较多的是使用ISE如vivado配合vivado进行仿真操作,本文将演示直接使用modelsim进行仿真,需要提供的是工程源文件和测试文件

二、仿真分类

       根据使用不同仿真阶段的源文件进行仿真,可划分为RTL仿真,综合后仿真,时序仿真。

RTL是根据.v源文件中verilog描述的功能进行仿真,是寄存器传送级的描述进行测试,验证功能的正确性,综合后仿真为对RTL级描述工程综合后的网表进行仿真,时序仿真是指布局布线后的仿真,并且考虑了布线后的线路时延。

三、RTL级仿真

以一个计数到10后重新计数的计数器工程为例,工程文件为counter1.

3.1创建库

打开modelsim,进入"file->new->library"

仿真系统架构图 仿真系统操作_仿真系统架构图

Library Name输入库名,Library Physical Name名称默认相同即可

仿真系统架构图 仿真系统操作_modelsim仿真_02

创建后可在“Library”中查看到创建的library

仿真系统架构图 仿真系统操作_仿真系统架构图_03

3.2 创建project

进入“File->New->Project” ,弹出如下设计弹框,Project Name自定义名称,Project Location设置创建的工程位置,Default Library Name默认为work,将其修改为上一步设置的library名称,此处为counter_lib,然后点“OK”

仿真系统架构图 仿真系统操作_fpga开发_04

设置完project后会弹出源文件添加的弹框,本例因为事项写好了源文件和测试文件,故选择“Add Existing File”直接添加文件,也可选择“Create New File”进行创建文件后再编写

仿真系统架构图 仿真系统操作_仿真系统架构图_05

同时选择源文件和测试文件进行添加

仿真系统架构图 仿真系统操作_verilog_06

添加成功后如下图所示

仿真系统架构图 仿真系统操作_modelsim仿真_07

选中任一文件,鼠标点击右键,选择“compile->compile All”,对添加的文件进行编译,编译成功后status由“?”变为“√”

仿真系统架构图 仿真系统操作_verilog_08

3.2 仿真配置设置

任选一个编译后的文件,点击鼠标右键,进入“Add to Project->Simulation Configuration”

仿真系统架构图 仿真系统操作_modelsim仿真_09

"Simulation Configuration Name"设置配置名称,库文件中如图第一步选择测试文件“counter_tb”,然后点击右下角的“Optimization Options”


仿真系统架构图 仿真系统操作_fpga开发_10

进入"Options","Optimization Level"选择第二个,点击"OK"。

仿真系统架构图 仿真系统操作_仿真系统架构图_11

回到仿真配置界面,再点击“save”


仿真系统架构图 仿真系统操作_仿真系统架构图_12

3.3 运行仿真

在project中可看到工程文件下多了一个“simulation_test”的配置文件,可双击该配置文件或点击鼠标右键后选择“Execute”

仿真系统架构图 仿真系统操作_仿真系统架构图_13

如果没有弹出"Objects"和“wave”窗口,则按下图操作勾选“wave” 和“Objects”

仿真系统架构图 仿真系统操作_verilog_14

在“Objects”窗口中 ,选择需要查看的波形,点击鼠标右键,选择“Add to->Wave->Selected Signals”即将需要查看到的波形添加到Wave窗口

仿真系统架构图 仿真系统操作_verilog_15

在Wave窗口中,按下图顺序,先点击1执行restart,再点击2执行Run -All运行仿真,此时仿真开始,需要停止仿真点击3,执行stop即停止仿真

仿真系统架构图 仿真系统操作_fpga开发_16

仿真结果波形如下图

仿真系统架构图 仿真系统操作_fpga开发_17

如果想运行指定时长的波形,则可在命令窗口设置,先执行restart,再执行run 100000,此处因测试文件的时间为'timescale 1ns/1ps,因此100000为100000ps

仿真系统架构图 仿真系统操作_verilog_18

结果如下图,仿真在100000ps处停止

仿真系统架构图 仿真系统操作_verilog_19

四、常见问题

4.1 # Error loading design

一般报此错误都是仿真文件设计问题,具体原因较多,可以查看具体的信息,此处的错误比较简单。

仿真系统架构图 仿真系统操作_modelsim仿真_20

解决办法 :按照错误提示“ Port 'ce' not found in module 'FF' (4th connection)”可知端口ce不存在,检查设计的源文件修改即可

4.2 运行仿真时报错“can't read "Startup(-L)": no such element in array”

源文件和测试文件编译成功后,运行仿真报错

仿真系统架构图 仿真系统操作_仿真系统架构图_21

解决办法 :进入到library下,选择测试文件divider_tb

仿真系统架构图 仿真系统操作_modelsim仿真_22

4.3运行仿真时无任何报错,但object窗口为空,可正常运行仿真,如执行命令run -all 但没有波形

运行打印如下

仿真系统架构图 仿真系统操作_verilog_23

object为空

仿真系统架构图 仿真系统操作_verilog_24

解决办法:

运行仿真时进入“Optimization Options”,选择“Apply full visibility to all modules”即可

仿真系统架构图 仿真系统操作_verilog_25

仿真系统架构图 仿真系统操作_verilog_26

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空