지난 실습에 이어서 Altera DE2-115 보드를 이용하여 외부 입력 (푸시버튼)을 추가한 카운터를 실습한다. 푸시버튼 외부 입력 exin 을 레지스터 din0, din1 을 이용하여 입력 신호 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 |