笔记6-vivado中clock 的IP -差分晶振输入使用

发布时间 2023-09-09 00:07:10作者: MyBooks
  1 `timescale 1ns / 1ps
  2 //////////////////////////////////////////////////////////////////////////////////
  3 // Company: 
  4 // Engineer: 
  5 // 
  6 // Create Date: 2023/09/08 22:19:01
  7 // Design Name: 
  8 // Module Name: led_2
  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 
 22 
 23 module led_2(
 24                 sys_clk_p                       ,
 25                 sys_clk_n                       ,
 26                 rst_n                           ,
 27                 clk_out_25m                     ,
 28                 clk_out_50m                     ,
 29                 clk_out_100m                    ,
 30                 clk_out_200m                    ,
 31                 clk_out_300m                    ,
 32                 led_out     
 33     );
 34 parameter               T_40ms  = 24'd10_000_000;
 35    
 36 input                   sys_clk_p               ;
 37 input                   sys_clk_n               ;   
 38 input                   rst_n                   ;    
 39 output                  clk_out_25m             ;
 40 output                  clk_out_50m             ;
 41 output                  clk_out_100m            ;
 42 output                  clk_out_200m            ;
 43 output                  clk_out_300m            ;
 44 output  [3-1 :0]        led_out                 ;
 45 
 46 reg     [3-1 :0]        led_out                 ;
 47 reg     [24-1:0]        cnt0                    ;
 48 
 49 wire                    clk_50m                 ;
 50 wire                    add_cnt0                ;
 51 wire                    end_cnt0                ;
 52 wire                    locked                  ;
 53 
 54 assign clk_50m =        clk_out_50m             ;
 55 
 56 
 57 clk_wiz_0 instance_name
 58    (
 59     // Clock out ports
 60     .clk_out1_300m(clk_out_300m),     // output clk_out1_300m
 61     .clk_out2_200m(clk_out_200m),     // output clk_out2_200m
 62     .clk_out3_100m(clk_out_100m),     // output clk_out3_100m
 63     .clk_out4_50m(clk_out_50m),     // output clk_out4_50m
 64     .clk_out5_25m(clk_out_25m),     // output clk_out5_25m
 65     // Status and control signals
 66     .resetn(rst_n), // input resetn
 67     .locked(locked),       // output locked
 68    // Clock in ports
 69     .clk_in1_p(sys_clk_p),    // input clk_in1_p
 70     .clk_in1_n(sys_clk_n));    // input clk_in1_n
 71 
 72 `ifdef  ILA_LED_2
 73     ila_0   u_ila_led_2(
 74                     .clk        (clk_out_300m       ),
 75                     .probe0     (clk_out_200m       ),
 76                     .probe1     (clk_out_100m       ),
 77                     .probe2     (clk_out_50m        ),
 78                     .probe3     (clk_out_25m        ),
 79                     .probe4     (locked             )
 80     );
 81 `endif
 82    
 83 always@(posedge clk_50m or negedge rst_n)begin
 84     if(!rst_n)begin
 85         cnt0 <= 0;
 86     end
 87     else if(add_cnt0)begin
 88         if(end_cnt0)begin
 89             cnt0 <= 0;
 90         end
 91         else begin
 92             cnt0 <= cnt0 + 1'b1;
 93         end
 94     end
 95 end
 96 
 97 assign add_cnt0 = 1;
 98 assign end_cnt0 = add_cnt0 && cnt0 == T_40ms - 1;
 99 
100 always@(posedge clk_50m or negedge rst_n)begin
101     if(!rst_n)begin
102         led_out <= 3'b001;
103     end
104     else if(end_cnt0)begin
105         led_out <= {led_out[1:0],led_out[2]};
106     end
107 end
108 
109 
110 
111 
112 endmodule

建立clock IP

其他保持默认,summary后点OK

 点布局布线,然后分配管脚

 

引脚分配只写了AA10这一个

 

 

 保存,点生成bit文件后,下载打开ILA 在线调试工具查看波形:

波形是有了,但100M和200M的占空比不是50%,还有x轴的单位是啥?