经过和学长的交流,为了更早进入项目,就没有再跟着小梅哥教程继续学习,而是先学习vivado在线调试工具ILA的使用。话不多说,开始吧!
ILA的功能
为了验证源码的逻辑功能正确,一般会采取使用仿真的方法进行验证,但使用仿真进行逻辑验证具有诸多局限性,例如:
1.初学者对testbench设计很难有准确的把握,同时testbench代码的编写其本身也增加了验证工作门槛和排除错误的工作量;
2.当某些驱动模块的模型无法获取时,设计的驱动模块很难模拟真实外部器件的数据交互环境,仿真很难完成;
3.仿真多以时间为标尺,对条件变化有清晰的预设的时间刻度,这导致工程的验证很难形成FPGA芯片、计算机和人的三者互动。
为了避免以上问题的发生,FPGA生产设计公司推出了在线调试工具,ILA就是Xilinx公司VIVADO自带的开发工具。
接下来将以下图所示的工程为范例学习ILA的使用
①clk_wiz_0 :pll锁相环,设计该环节可以通过调整输出验证ILA再不同频率下的工作状况;
②key_fillter:按键消抖
③bin_counter:计数器控制led翻转
创建ILA调试环境的三种方法
使用IP核创建ILA调试环境
流程稍显复杂,但通用性强,初学者推荐
首先在左侧列表中选择IP Catalog,搜索ILA,选择Debug文件下ILA选项
Number of Probes:探针数量,这里我们将探针连接key_state和cnt,选择数量为2;
Sample Data Depth:数据样本深度,指的是ILA采样点数,点数越多图像细节越丰富,越准确,但过高会造成资源的浪费,需要结合实际工程来选择,这里选择4096;
其他配置按照图中选择即可
选择到该界面,根据数据探针所连接的变量位宽来选择探针的位宽,这里key_state为1位,cnt为25位;
完成上述步骤后就完成了使用IP核创建ILA的工作,现在要在顶层模块中对ILA进行例化;
这样就大功告成啦!
写到这懒得写了,因为这部分都是按部就班的东西,不涉及知识点的学习,就先略过吧
使用Debug标记创建ILA调试环境
1.首先在源码设计界面找到需要抓线调试的信号,在前面输入“*mark_debug='true'*”
2.左侧列表中选择“Run Synthesis”
完成后点击Open Synthesisized Design
在下方可以看到标记了但未关联的ILA信号
3.创建ILA并对其信号关联
创建后可以选择采样深度,接下来可以看到界面如下
实际我们需要三个信号,而上面只有两个ila探针,需要添加一个
再逐一关联即可
使用路径标记和Set up debug 菜单创建ILA调试环境
上述两种方法网上可以查阅众多资料,
后续进行上板调试,在继续更新调试中各个部分的功能以及遇到的问题