본문 바로가기

원s/FPGA

[DE2-115] Lab.2-2: Counter

지난 실습에 이어서 Altera DE2-115 보드를 이용하여 외부 입력 (푸시버튼)을 추가한 카운터를 실습한다. 푸시버튼 외부 입력  exin 을  레지스터 din0din1 을 이용하여 입력 신호 push 를 생성한다.  

  

카운터 count_8 에 외부 입력 exin 을 추가하여 Verilog 를 기술하고, 이를 Quartus 에서 Symbol 을 수정한다.  

[count_8.v]

더보기
/////----------------------------------------/////
module count_8(
/////----------------------------------------/////
    input               clk,
    input               rst_n,
    input               en,
    input               exin, 
    output  reg [2:0]   count
);

            reg [1:0]   din; 
            reg         push; 
/////----------------------------------------/////
    always @(posedge clk, negedge rst_n) begin
        if (rst_n == 0) begin
            din	<= 2'd0; 
            push	<= 1'b0; 
        end
        else begin
            if(en == 1) begin
                din[0]	<= ~exin; 
                din[1]	<= din[0];
                if (din[0] == 1 && din[1] == 0) begin
                    push	<= 1'b1; 
                end	
                else begin
                    push	<= 1'b0; 
                end
            end
            else begin
                din	<= 2'b0; 
                push	<= 1'b0; 
            end
        end
    end
	
/////----------------------------------------/////
    always @(posedge clk, negedge rst_n) begin
        if (rst_n == 0) begin
            count <= 3'd7; 
        end
        else begin
            if(en == 1) begin
                if (push == 1) begin
                    count <= count + 1;	
                end
            end
            else begin
                count <= 3'd7; 
            end
        end
    end
endmodule

 

프로젝트에 Symbol count_8 를 업데이트하고  Schematic 창에서 회로를 수정한다.  

Pin Planner 에서 exin → push button 을 할당하고 이를 합성 후 LED 로 출력 결과를 확인한다. push button 을 누르면 count 값이 1 씩 증가하는 결과를 LED 가 출력됨을 알 수 있다.   

외부 입력 (푸쉬버튼) 에 따라 카운터가 증가 함을 알수 있다.  

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

[DE2-115] Lab.3-1: Look-up Table  (0) 2020.07.11
[DE2-115] Lab.2-3: Counter  (0) 2020.05.16
[DE2-115] Lab.2-1: Counter  (0) 2020.05.16
[DE2-115] Lab.1-2: Clock Divider  (0) 2020.04.19