PS端時鍾供給PL使用的問題


   ZYNQ PS端最多可以分配四個時鍾供給PL端使用,通過PS端供給PL使用的時鍾,在最后添加約束文件時,只需要對功能I/O進行約束,

不需要再關注時鍾約束的問題。

 一個簡單的例子:PS產生一個100MHz的時鍾,供給PL使用。利用該時鍾,使PL端兩顆led閃爍

 

 

module led_tst(
        led_o

    );
    output [1:0] led_o;
    
    reg       [25:0] clk_cnt = 26'd0; 
    reg       [1:0]  led_o_r = 2'd0;
    wire          clk;
    
    always @(posedge clk)begin 
        if(clk_cnt == 26'd49999999) begin 
            clk_cnt <= 'd0;
            led_o_r <= ~led_o_r;
        end 
        else begin 
            clk_cnt <= clk_cnt + 1'b1;
            led_o_r <= led_o_r;
        end 
    end
     
    system_wrapper    led_wrapper
    (
       .FCLK_CLK0_0(clk)
    );
        
        
        
    assign     led_o = led_o_r;
        
endmodule

  需要注意的是,時鍾是由PS端產生的,PS端的ARM必須運行,才能供給PL時鍾信號。直接將bit流文件下載到ZYNQ中,PS端不會工作。

因此,需要將bit流文件導入到SDK端。在SDK中新建一個empty prj 。最后將文件下載到ZYNQ中即可正常運行

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM