본문 바로가기

원s/FPGA

[DE2-115] Lab.1-2: Clock Divider

지난 실습에 이어서 DE2-115 보드를 이용하여 클럭 분주기를 실습한다.  

 

[Clock Divider]

 

[clk_gen.v]

clk_gen.v 에서 clk_1k 1kHz 로 분주하는 코드로 수정하고, Symbol clk_gen 을 업데이트한다. 

더보기
/////----------------------------------------/////
module clk_gen(
/////----------------------------------------/////
    input           clk,
    input           rst_n,
    input           en,
    output  reg     clk_2,
    output  reg     clk_4,
    output  reg     clk_1k
);

/////----------------------------------------/////
    always @(posedge clk, negedge rst_n) begin
        if (rst_n == 0) begin
            clk_2   <= 1'b1; 
        end
        else begin
            if (en == 1) begin
                clk_2   <= ~clk_2; 
            end
            else begin
                clk_2   <= 1'b1; 
            end
        end
    end

/////----------------------------------------/////
    always @(posedge clk_2, negedge rst_n) begin
        if (rst_n == 0) begin
            clk_4   <= 1'b1; 
        end
        else begin
            if (en == 1) begin
                clk_4   <= ~clk_4; 
            end
            else begin
                clk_4   <= 1'b1; 
            end
        end
    end

	
///// clock gen 1kHz 
    reg [16:0]  cnt_1k; 
/////----------------------------------------/////
    always @(posedge clk, negedge rst_n) begin
        if (rst_n == 0) begin
            cnt_1k	<= 17'd0; 
            clk_1k	<= 1'b1; 
        end
        else begin
            if (en == 1) begin
                if (cnt_1k == 17'd0) begin
                    cnt_1k	<= 17'd24999; 
                    clk_1k	<= ~clk_1k; 
                end
                else begin
                    cnt_1k	<= cnt_1k - 1'b1; 
                end
            end
            else begin
                cnt_1k	<= 17'd0; 
                clk_1k	<= 1'b1; 
            end
        end
    end
endmodule

DE2-115 보드의 System Clock 은 50 MHz 이므로 50,000,000 / 1,000 = 50,000 (50MHz / 1kHz = 50,000) 이다. cnt_1k = 25,000 마다 clk_1k ~clk_1k 반전하여 clk_1k 1kHz 를 출력한다.    

 

[Block Diagram]

Block Diagram 과 Pin Planner을 수정한다. 

더보기
0

 

[Pin Assign]

 

[Test Result]

이를 합성 후 출력결과 clk_1k 를 오실로스코프로 측정하면 1kHz 가 출력됨을 알 수 있다. 



DE2-115 보드에서 제공하는 클럭 소스를 이용하여 원하는 주파수를 가지는 신호를 생성하고 측정하였다.

'원s > FPGA' 카테고리의 다른 글

[DE2-115] Lab.2-2: Counter  (0) 2020.05.16
[DE2-115] Lab.2-1: Counter  (0) 2020.05.16
[DE2-115] Lab.1-1: Clock Divider  (0) 2020.04.18
[Quartus] Quartus II 10.0 Quick Start  (0) 2020.04.11