전체 글 129

[Basys_3]_Alarm / Timer

목표타이머 시작/정지 토글정지 상태에서 초 증가정지 상태에서 분 증가알람 끄고, 마지막 설정 시간 복구타이머 종료 시 알람 출력 / LED 점등타이머 작동 중 led 점등7세그먼트로 출사용 코드module timer_top( input clk, reset_p, // 시스템 클록과 비동기 리셋 입력 (reset_p: active-high) input [3:0] btn, // 버튼 입력: [0] 시작/정지, [1] 초 증가, [2] 분 증가, [3] 알람 끄기 output [7:0] seg_7, // 7세그먼트 제어 신호 (a~g, dp) output [3:0] com, // 7세그먼트 공통 ..

[Basys_3] Implementation of a 7-Segment Counter Circuit with Debouncing and Edge Detection

목적 비동기 리셋, 버튼 디바운싱, 에지 검출, 카운터, 7세그먼트 디코더를 조합하여 FPGA에서 정확한 사용자 입력 기반의 디지털 카운터 시스템을 구현 사용 코드 _ top_modulemodule counter_top( input clk, // 시스템 클럭 input reset_p, // 비동기 리셋 입력 (양의 엣지에서 작동) input btn, // 버튼 입력 (사용자가 누름) output [7:0] seg_7, // 7세그먼트 LED 출력 (a~g + dp) output [3:0] com // FND의 자릿수 선택 (common)); reg [3:0] count; ..

[Sequential Circuit] Ring_Counter

목적Ring_counter는 1개의 0 또는 1이 고정된 위치를 따라 순환하며 이동하는 형태의 회로이며 초기값 0111이 한 비트씩 왼쪽으로 이동하며 순환하는 것을 확인사용 코드module ring_counter( input clk, // 클럭 입력 input reset_p, // 비동기 리셋 입력 (posedge에서 작동) output reg [3:0] q // 4비트 링 카운터 출력); always @(posedge clk, posedge reset_p) begin if (reset_p) q = 4'b0111; // 리셋 시 초기값 설정 (링 순환의 시작점) else be..

[Sequential Circuit] Down_Counter

목적클럭의 상승엣지에 맞춰 동작하는 카운터로, 카운트 값이 매번 1씩 중러드는 것을 확인 사용 코드_Down_counter_asycmodule down_counter_asyc ( input clk, // 기본 클럭 입력 (LSB 비트의 클럭으로 사용) input reset_p, // 비동기 리셋 입력 (posedge일 때 FF 초기화) output [3:0] count // 4비트 카운터 출력); // LSB 비트 (count[0])를 위한 T 플립플롭 T_flip_flop_p T0( .clk(clk), // 외부 클럭 입력 .reset_p(reset_p), // 비동기 리셋 .t(1), ..

[Sequential Circuit] Up_Counter

목적디지털 시스템 설계에서 다운 카운터의 동작을 구현하고 테스트기본 구성4개의 .T_FF : 4비트 값을 기억clk : 값이 변하는 시점 지성( 상승엣지 기준)reset : 상태를 0000으로 초기화enable : 카운팅을 제어하는 신호 (1일 때만 카운트)사용 코드_ T_FFmodule T_flip_flop_p( input clk, reset_p, input t, output reg q); always @(posedge clk, posedge reset_p)begin if(reset_p) q = 0; else if(t) q = ~q; else q = q; end endmodule 사용 코드_1module up_count..

[Sequential Circuit] D_FF

목적데이터를 조건에 따라 저장하고, 필요할 때 언제든지 초기화할 수 있는 플립플롭을 만드는 것이 목적기능 설명 d : 저장하고자 하는 데이터clk : 클럭 신호, 상승 엣지에서 작동reset_p : 비동기 최기회 신호 (양의 엣지에서 q를 0으로 초기화)enable : 데이터 저장 허용 여부를 제어하는 신호q : 편재 저장된 데이터 출력사용 코드module D_flip_flop_p ( input d, // D 입력: 저장하고 싶은 데이터 (1비트) input clk, // clk 입력: 클럭 신호 (상승엣지에서 동작) input reset_p, // reset 입력: 비동기 양의 엣지 리셋 (클럭과 무관하게 즉시 초기화) input ..

[Basys 3_Vivado] Simulation 방법_and

사용 코드_and// and_gate 모듈 정의: 입력 a와 b의 논리 AND 결과를 출력 q에 저장module and_gate( input a, // 입력 신호 a input b, // 입력 신호 b output reg q // 출력 신호 q (레지스터 타입));// 항상 블록: a 또는 b의 값이 변경될 때마다 실행됨always @({a, b}) begin // 입력 a와 b의 조합에 따라 q를 결정 case({a, b}) 2'b00: q = 0; // a=0, b=0일 때 q=0 2'b01: q = 0; // a=0, b=1일 때 q=0 2'b10: q = 0; // a=1, b=0일 때 q=0..

Verilog_RTL 설계 2025.07.03

[Verilog_RTL]_Module Instantiation

Module Instantiation 방법 포트 순서에 의한 포트 매핑(ordered port) - 모듈의포트목록에나열된포트순서와1:1로대응되어연결 - 포트에연결되는신호가없는경우에는해당위치를빈칸으로남겨둔다 주로Test bench에서 사용 포트 이름에 의한 포트 매핑(named port)- 포트이름과그포트에연결되는신호이름을명시적으로지정 - 포트의비트선택, 부분선택, 결합등을사용할수없음 주로DUT에서사용예시 1module mode(wa, wb, c, d); input wa, wb; output c, d; wire c, d; assign c = wa & wb; assign d = wa ^ wb; endmoduleOredered Portmodule topmod; ..

Verilog_RTL 설계 2025.06.26