使用Vivado 2017.2进行后综合仿真的疑问:是否真的运行综合后设计?
我来帮你理清这个问题——毕竟后综合仿真和行为仿真的界面有时候太像,很容易让人搞混。你可以通过这几个简单的步骤来验证:
检查仿真源文件
打开Vivado的Sources窗口,切换到Simulation标签页。展开你的仿真集合,看看里面除了测试平台文件,是不是包含了综合阶段生成的网表文件(通常在synth_1目录下,文件名和顶层设计一致,后缀是.vhd或.v)。如果看到的是你自己写的原始VHDL设计文件,那说明还是在跑行为仿真;要是是综合生成的网表,那就没问题了。查看仿真运行日志
仿真启动后,盯着Tcl Console或者Run窗口的输出日志。找有没有类似Loading <你的项目路径>/synth_1/impl/verilog/<顶层名称>.v(VHDL路径类似)的加载记录。如果有这条,就证明加载的是综合后的网表;要是加载的是src文件夹里的原始设计文件,那就是重复跑了行为仿真。对比波形细节差异
后综合仿真会体现综合优化后的特性:比如一些没被使用的内部冗余信号,在行为仿真里能看到波形,但后综合仿真里会被综合工具优化掉,波形窗口里就找不到这些信号了。你可以特意在原设计里加一个无用的测试信号,跑两种仿真对比一下,就能直观区分。检查仿真配置设置
在Flow Navigator里右键点击Run Simulation,选择Settings。在Simulation设置里,确认Simulation Source Set选的是Post-Synthesis Functional Simulation,并且对应的Top选项是综合后的网表顶层,而不是你原始设计的顶层模块。
内容的提问来源于stack exchange,提问作者Liz

