P8后半段介绍另外一种调试的方法,没看。
关于这张图做一些讲解,也就是关于FPGA仿真的一些知识: RTL行为级仿真只关注逻辑功能,只评估所设计的功能是否能实现,不关注电路门延迟和线延迟,验证电路与理想情况是否一致,检测会不会出现语法错误之类的,所以会说仿真是设计输入后的第一个环节,另一个方面又会说仿真是实现后的最后一个步骤,RTL仿真之后会进行设计综合,生成网络报表(意识是生成了门级的源语,也就是与或非门,又这些逻辑门搭建成一个电路实现我们刚刚设计的功能,然后映射到我们FPGA中进行后续的布局布线),而后续的时序仿真又称为布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,这时候的仿真最接近芯片的运行环境,验证电路能否在一定时序条件下满足设计构想的过程,能够较好的反应芯片的实际工作情况。
关于Vivado Simulator的使用:需要与ILA的使用区分开,ILA的使用需要与实际的硬件相结合,然后将探针接到你想观测的引脚处,而Simulator可以在你没有硬件的情况下看输出信号。
点击加号然后添加
接下来就要对仿真模块添加激励,也就是需要添加时钟和复位,因为这时候没有硬件,所以这两者都需要认为提供,
差不多这个Simulator的使用就大致掌握了,这个功能确实和ILA的使用很类似,不过一个是IP核,另一个是仿真功能,虽然最后都是通过分析信号波形来检查自己的逻辑功能是否正确,Simulator的使用最重要的就是编写tb文件,一般来说,需要定义之前.v文件里的输入输出端口,比如clk和rst_n需要reg型,因为需要手动模拟时钟,并且拉高复位,这个只是存在于initial语句中,只执行一次,另外always语句中,需要根据固定的格式进行例化待测设计,将相对应的引脚连接起来,而ILA是将生成的ILA模版复制到.v文件中连接相应的引脚使用的。
关于ILA和Simulator的使用就先说到这。