Modelsim软件的使用之手动仿真

手动仿真只需要Modelsim软件,而不需要quartus软件
打开之前建立的流水灯文件夹,打开里面的sim文件夹
在这里插入图片描述
右击新建文件夹,命名为tb
将上之前生成的激励文件复制到此处
在这里插入图片描述
将其重命名为flow_led_tb.v,后缀也改为.v。(不修改激励文件也是可以的)
在这里插入图片描述

功能仿真

打开modelsim软件,下图是modelsim手动打开的界面
在这里插入图片描述
在modelsim下创建一个工程

File -->New -->Projiect
在这里插入图片描述
设置好工程名和保存路径后,点击ok
在这里插入图片描述
因为我们已经 有存在的文件,所以点击第二个Add Existing File
在这里插入图片描述
找到存在的tb文件,点击ok
在这里插入图片描述
然后添加流水灯代码,同样点击Add Existing File,找到对应的代码文件,双击
在这里插入图片描述
点击ok
在这里插入图片描述
两个文件的Status都是?状态,因为不知道这两个文件是否有错误,我们来编译一下
Comple --> Comple All
或右击上面两个文件中的一个,右击 Comple -->Comple All

在这里插入图片描述
若需要修改代码,右击文件 Edit。
在这里插入图片描述
修改模块名,使之与文件名一致
在这里插入图片描述
手动仿真和联合仿真的一个区别是,联合仿真会自动执行,需要加停止条件,二手动仿真不会主动执行,所以可以将停止条件去掉。
在这里插入图片描述
保存改动代码,重新编译。右击该文件,Comple–>Comple Selected

接下来对代码进行仿真,Simulate -->Start Simulation
在这里插入图片描述
只需要选中work下面的flow_led_tb文件,并且取消左下角的使能优化(Enable optimization),点击ok
在这里插入图片描述
添加一些待观察的信号
右击左边的i1 Add Wave
在这里插入图片描述
打开生成的波形界面,Format–>Toggle Leaf Names,隐层信号路径,更改运行时间为2us,点击run图标来运行

在这里插入图片描述
点击Zoom Full显示所有波形
在这里插入图片描述
系统时钟50兆赫兹,一个周期20ns,1us就是50个时钟周期
修改源代码,可以用notepad++编辑器打开代码文件更改。
在这里插入图片描述
在modelsim中重新编译此代码
在这里插入图片描述
重新进行仿真,另一种方法,在左下角输入restart -f,敲回车
在这里插入图片描述
重复以上操作,时间间隔与预算时间一样
在这里插入图片描述

restart -f 方法,适用于不增加和减少代码变量
也可以如下图左下角所示,输入运时间,运行。(与在波形图界面修改运行时间在运行一样)
在这里插入图片描述

时序仿真

将在quartus下生成的两个文件,放到建立的sim文件中,如下图所示
在这里插入图片描述
还需要复制仿真库,仿真库位于下图位置
在这里插入图片描述
将其复制到sim文件夹下
在这里插入图片描述
拷贝完网表文件。延时文件和库文件后,返回到Modelsim,右击下图文件
在这里插入图片描述
Add to Project -->Existing File,将网表文件添加(.vo文件)
在这里插入图片描述
编译添加的网表文件
在这里插入图片描述
编译后
在这里插入图片描述
开始进行仿真
Simulate -->Start Simulation,选中work下面的tb文件
在这里插入图片描述
然后添加上面所述的两个库文件
在这里插入图片描述
点击ok
同样右击i1 -->Add Wave
在这里插入图片描述
出现波形图界面
在这里插入图片描述
可以看到,信号特别多,我们将波形图界面关掉,选择我们需要看到的信号,右击 Add–>Wave
在这里插入图片描述
也把计数器添加到波形
在这里插入图片描述
在左下角输入 run 5us ,敲回车
在这里插入图片描述
可以看到出现了时间延迟
在这里插入图片描述

发布了8 篇原创文章 · 获赞 7 · 访问量 2887

猜你喜欢

转载自blog.csdn.net/yijiancmy/article/details/104162490
今日推荐