xilinx基础篇Ⅱ(9)Prj5 ILA的使用

本例使用PLL产生多个时钟,通过ila观察所产生的各时钟频率是否符合设计;

仿真是理想化的模型,将程序加载到IC中通过ila监测实际状况会更贴切实际应用。

这里使用时钟信号完成ila监测试验,除了“懒”,还有常犯的错——飚车虽然嗨,超速总被拍...

1.设置PLL输出的多时钟

Vivado的官方IP查找操作一致,此处忽略,

通过PLL生成多个不同频率时钟,各时钟概况如下:

2.ILA配置

 

 

 

3.ILA接入电路

//
// clk_gen.v
//


module clk_gen
    (
    input sys_clk,
    input sys_rstn,
    
    output clk_20m, //20MHz,50ns
    output clk_25m, //25MHz,40ns
    output clk_100m, //100MHz,10ns
    output clk_100m_p  //100MHz,10ns ,反相
    );
    wire   clk_200m,
            clk_50m,
            clk_50ns,
            clk_40ns,
            clk_20ns,
            clk_10ns,
            clk_10ns_p;
  
  //时钟生成
  clk_wiz_0 inst0
   (
   // Clock in ports
    .clk_in1(sys_clk),      // input clk_in1
   // Control signals
    .resetn(sys_rstn), // input resetn
    // Clock out ports
    .clk_out1(clk_20m),     // output clk_out1
    .clk_out2(clk_25m),     // output clk_out2
    .clk_out3(clk_50m),     // output clk_out3
    .clk_out4(clk_100m),     // output clk_out4
    .clk_out5(clk_100m_p),     // output clk_out5
    .clk_out6(clk_200m),     // output clk_out6 //这里是摄像头的抓拍速度
    // Status signals

    .locked());       // output locked

    //ila监测
    ila_0 inst1_clk_watch 
    (
        .clk(clk_200m), // input wire clk //这里的摄像头反应速度需要足够快===生死线===

        //下面的司机,开车的速度不要超过死亡速度
        .probe0(sys_rstn), // input wire [0:0]  probe0  
        .probe1(clk_50ns), // input wire [0:0]  probe1 
        .probe2(clk_40ns), // input wire [0:0]  probe2 
        .probe3(clk_20ns), // input wire [0:0]  probe3 
        .probe4(clk_10ns), // input wire [0:0]  probe4 
        .probe5(clk_10ns_p) // input wire [0:0]  probe5
    );
    
    
    assign clk_50ns = clk_20m;  //对外输出
    assign clk_40ns = clk_25m;  //对外输出
    assign clk_20ns = clk_50m;  //内部消化
    assign clk_10ns = clk_100m;  //对外输出
    assign clk_10ns_p = clk_100m_p;  //对外输出
    
endmodule

4.电路应用

set_property -dict {PACKAGE_PIN U18 IOSTANDARD LVCMOS33} [get_ports sys_clk] 
set_property -dict {PACKAGE_PIN J15 IOSTANDARD LVCMOS33} [get_ports sys_rstn] 
set_property -dict {PACKAGE_PIN B19 IOSTANDARD LVCMOS33} [get_ports clk_20m] 
set_property -dict {PACKAGE_PIN C20 IOSTANDARD LVCMOS33} [get_ports clk_25m] 
set_property -dict {PACKAGE_PIN P19 IOSTANDARD LVCMOS33} [get_ports clk_100m] 
set_property -dict {PACKAGE_PIN N18 IOSTANDARD LVCMOS33} [get_ports clk_100m_p]

5.使用方法

ila采样时钟是200MHz,即每个刻度代表5ns,由以下ila抓取图可得clk_10ns_p和clk_10ns是反相关系,clk_10ns与clk_20ns、clk_40ns、clk_50ns波形周期分别有2倍、4倍、5倍关系,且周期越大,波形变化越快。

综上,该试验没问题。

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值