FPGA:vivado调试过程中ila使用和时钟域技巧

学习fpga,从Verilog学习,到程序编写,到行为仿真测试文件编写,随着FPGA学习的深入和程序不断编写,测试,最终需要进入到板级调试过程。
在这个过程中需要生成bit流文件,下载到fpga板卡中,通过查看通过ila标记的信号来验证程序在板卡中运行是否正确,才达到了最终的实验结果。这里面使用触发和抓取两个过程来进行数据的分析和观察。

技巧:此技巧,可以理解为调试技巧,也是编程技巧,就是所有的都在一个时钟域中,简单理解时钟域,就是在always@()中的时钟信号。


FPGA:vivado调试过程中ila使用和时钟域技巧_第1张图片
其中的clk_50m就是时钟域,在通过set up debug添加想要观察的信号的时候,就会选择时钟域,
FPGA:vivado调试过程中ila使用和时钟域技巧_第2张图片
在一个程序中,可能会利用到分频,比如需要用到clk_50k的信号进行时序的逻辑判断操作,这时候在程序中always@()最外层应该还是用clk_50m,然后在内部用if(clk_50k==1),相当于利用得到的分频时钟,
FPGA:vivado调试过程中ila使用和时钟域技巧_第3张图片

这样在最后的调试中,所有的信号可以在一个ila中显示,不同时钟域的信号无法在一个ila中进行调试。

总结:理解时钟域,对程序编写和调试都具有很大帮助。

你可能感兴趣的:(FPGA,fpga开发,硬件工程)