*FPGA* vivado 2017.4 ILA使用例程

                    版权声明:本文为博主原创文章,未经博主允许不得转载。                        https://blog.csdn.net/qq_26786109/article/details/88893268                    </div>
                                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css">
            <div class="htmledit_views" id="content_views">
                                        <p>ILA可以加在代码里使用,也可以加在网表里使用。在这里举例加在代码中使用,硬件平台:Xilinx AX7020</p>

1.打开vivado,新建项目(选择对应的芯片型号)

2.添加源文件,编写RTL代码


 
 
  1. `timescale 1ns / 1ps
  2. //
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 2019/03/29 14:03:40
  7. // Design Name:
  8. // Module Name: counter
  9. // Project Name:
  10. // Target Devices:
  11. // Tool Versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. module counter(
  22. input clk,
  23. output [3:0]led
  24. );
  25. wire clk;
  26. (* keep = "TURE" *)reg [ 3: 0] cnt = 4'd0;
  27. assign led = cnt;
  28. always@(posedge clk)
  29. begin
  30. cnt <= cnt + 4'd1;
  31. end
  32. endmodule

3.加入ILA核

   在vivado工程中打开IP Catalog选项,找到ILA核

配置ila核,主要配置4个地方:1.组件的名字,2. 需要抓取的信号的个数,3. 抓取的信号的深度,4.所抓取的信号的宽度,此例子的cnt是4bit。OK!

4.IP核配置完成,默认选择,Generate

5.在RTL源代码中添加例化ILA核,ILA核的clk信号需要连接到需要观察信号的相应时钟域,在一个RTL设计中是可以添加多个ILA核的,用于观察不同时钟域的信号。


 
 
  1. `timescale 1ns / 1 ps
  2. module counter (
  3. input clk,
  4. output [3:0]q
  5. );
  6. wire clk;
  7. (* keep = "TURE" *)reg [ 3: 0] cnt = 4'd0; //在RTL中的信号前加上(*keep = "TRUE"*)即表示抓取该信号
  8. assign q = cnt;
  9. always@(posedge clk)
  10. begin
  11. cnt <= cnt + 4'd1;
  12. end
  13. ila_1 u_ila(
  14. .clk(clk),
  15. .probe0(cnt)
  16. );
  17. endmodule

6.添加xdc约束文件,绑定引脚


 
 
  1. set_property PACKAGE_PIN U18 [get_ports clk]
  2. set_property IOSTANDARD LVCMOS33 [get_ports clk]
  3. set_property IOSTANDARD LVCMOS33 [get_ports {led[ 3]}]
  4. set_property IOSTANDARD LVCMOS33 [get_ports {led[ 2]}]
  5. set_property IOSTANDARD LVCMOS33 [get_ports {led[ 1]}]
  6. set_property IOSTANDARD LVCMOS33 [get_ports {led[ 0]}]
  7. set_property PACKAGE_PIN J16 [get_ports {led[ 3]}]
  8. set_property PACKAGE_PIN K16 [get_ports {led[ 2]}]
  9. set_property PACKAGE_PIN M15 [get_ports {led[ 1]}]
  10. set_property PACKAGE_PIN M14 [get_ports {led[ 0]}]

7.综合

8.生成bit文件,生成后选择Open Hadrware Manager

9.连接硬件

10.下载调试

11.下载成功后会自动弹出ILA波形界面,选择RUN触发,通过放大缩小可以清晰看到波形时序。

12.完美结束!

 

转载源:https://blog.csdn.net/qq_26786109/article/details/88893268
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值