Vivado硬件调试工具的使用
仿真工具的高效使用,能够大大缩短产品研发周期。
ILA
传统的fpga板子调试需要用到一个外部的逻辑分析仪,但现在fpga芯片内部就集成了逻辑分析仪,直接通过官方提供的IP核ILA和VIO,JTAG接口和PC连接就能够在PC端观察FPGA内部信号,实现调试功能。
ILA探针将FPGA内部的信号接出来,传到PC端去观察;VIO则相反,在PC端可以通过VIO的核给FPGA提供高电平的输入,达到驱动逻辑内部信号的作用。
添加ILA核的方法
- 通过HDL语言写探针的一个IP核;
- 在原理图中添加一个debug,作为一个探针信号引出;
- 在网络报表中添加ILA核,最终生成类似探针的一个功能;
例化ILA IP核
ILA的使用
打开工程led_twinkle,点击左侧IP Catalog,在搜索框中搜索ila,双击debug下的匹配项ILA集成逻辑分析仪。
在IP核的配置页面,对IP核进行配置。
设置探针数,采样深度,探针数根据想要观察的信号来设置,采样深度越深,所需要的存储资源越多,可根据实际需求及资源情况来设置。其他保持默认
设置添加信号的位宽,我们添加的复位信号、led灯、计数器,它们的位宽分别是1位,2位和26位,对它们的位宽进行修改。接着点击OK
接着弹出一个页面,选项中有Global和OOC两种模式,这是设置综合的一个选项,选择第一个选项的话,每次生成比特流都会对IP核进行编译,第二个只会编译一次,后面再重新编译时就不会再编译已经编译好的IP核,这样可以节省时间,一般就选第二个。
下面cpu的核心数可以选择最大。点击generate生成IP核所输出的文件
等待编译完成,可以通过下角的Design Runs选项来判断是否编译完成。
编译完成后,可以在代码中对IP核进行一个例化。
例化时可以调用ip核所提供的例化模板,点击IP Sources,展开IP核中的例化模板,进行拷贝,放到led_twinkle.v中。
把相应的信号线连上。
接下来就可以生成比特流,点击左下角的generate bitstream,点击YES,选择OK。等待软件编译完成,生成比特流。生成比特流成功
接下来连接好开发板,点击左下角open target自动连接,点击program device下载程序。
点击Program,比特流被下载到板子上,同时,显示如图所示的调式窗口。
调试窗口中的图标从左往右依次是,添加信号,移除信号,连续触发、开始触发、立即触发、停止触发。点击开始触发,并对显示波形进行放大,此时,将采集到的信号实时回传到软件中,并以波形的形式显示。如果选中连续触发,再选中开始触发,那么每隔一段时间就会触发一次。
调试完成,不需要debug时,要将其移除(直接删除或者注释掉),这样就不会占用内存资源了。注释后ila就不在工程里面了,但它仍然显示,可以右击将其移除。