MiZ702学习笔记11——如何使用vivado isim仿真
说到vivado的仿真确实是很有意思,不管是ISE还是Quartus都可以自己自动生成测试平台的完整构架,但是vivado不行,所有的测试代码自己写!(我反正是查了好久,都没发现vivado如何自动生成测试平台的完整构架)。
而且vivado与众不同的地方是,他的测试文件和设计文件的类型是一模一样的。不像Quartus或者ISE那样测试文件是单独的类型。
比如Quartus中测试文件都是以.vt类型的。
这也正是vivado胜人一筹的地方,他的测试文件和设计文件的类型是一模一样,这意味着vivado将不会区分测试文件和设计文件,设计的一致性得到统一。
不知道读者发现没有,设计文件新建完成后,在Design Sources和Simulation Sources中都会出现我们添加的设计文件,所以vivado
的这种设计模式,道出了一个真谛——编写测试文件(及编写TestBench),和编写设计文件别无二致,都是建模!
我们要编写的测试文件,不过是基于我们的设计文件的最顶层再次建模而已。测试文件的目的就是“给些激励”、“看些反应”如此而已。
添加仿真文件:
将仿真文件设置为顶层文件:
添加代码如下:
module sim( ); reg CLK,RSTn; initial begin RSTn = 0; #10; RSTn = 1; CLK = 0; forever #5 CLK = ~CLK; end // 输出信号 wire lcd_hs; wire lcd_vs; wire [3:0]lcd_red; wire [3:0]lcd_green; wire [3:0]lcd_blue; // 例化vga_demo模块 vga_demo vga_demo( .CLK(CLK), .RSTn(RSTn), //硬件接口 .lcd_hs(lcd_hs), //lcd horizontal sync .lcd_vs(lcd_vs), //lcd vertical sync //output lcd_blank, //lcd blank(L:blank) .lcd_red(lcd_red), //lcd red data .lcd_green(lcd_green), //lcd green data .lcd_blue(lcd_blue) //lcd blue data ); endmodule
sim作为最顶层的文件,不需要任何输入或者输出引脚,应为他的任务只是给激励,刺激它所仿真的模块。一般情况真正需要自己写的代码其实没有多少。
文件添加完了就可以开始仿真了:
出现如下画面:
面板1显示的是工程的层次结构,当在面板1选择了一个模块后,面板2会对应变化,显示当前模块的的所以信号,这些信号都可以添加到波形显示框里观察。
一开始波形显示框里,只会显示你在顶层仿真文件中声明的信号,如果想观察其他模块内部寄存器或者引脚的值,可以通过如下方法:
第一个为复位,仿真会重新开始,一般在添加了新的观察信号后使用。
第二个是run all 单击后ISIM会一直仿真知道按下暂停。根据笔者经验这个按键不要轻易按下,
一般电脑承受不起,容易卡住。所以一般会有第三个。
第三个是仿真一段时间,图中表示一次仿真20000us。相对于run all不容易卡。
作者:宋桓公
出处:http://www.cnblogs.com/douzi2/
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!