Verilog_RTL 설계

[Verilog_RTL]_모듈 분할

juniha 2025. 6. 26. 19:21

목적

  • 입력 신호들(A, B, C)을 조합 논리로 처리한 결과를 클록 동기 방식으로 저장하고, 이를 조건부로 다음 단계에 전달하는 플립플롭 기반의 순차 논리 회로를 모듈화하여 설계하는 것.

모듈 분할의 목적

  • 복잡도 감소 (Reduce complexity)
    → 큰 회로를 작은 단위로 나눠 설계를 쉽게 만들기 위함
  • 재사용성 향상 (Enhance reusability)
    → 동일한 모듈을 여러 설계에 재사용 가능
  • 디버깅 및 유지보수 용이 (Improve maintainability & debugging)
    → 오류를 쉽게 찾고 수정하기 쉬움
  • 계층적 설계 적용 (Enable hierarchical design)
    → 상위 시스템을 하위 블록으로 나눠 체계적으로 구성
  • 협업 효율 향상 (Facilitate team-based development)
    → 여러 명이 동시에 각 모듈을 맡아 개발 가능

 

예제 문제

 

하위 모듈

  stage 1

module stage1 ( A, B, C, CLK, FF1);

	input A, B, C, CLK ;
	output reg FF1;

	always @(posedge CLK)
    	FF1 <= (A & B ) ^ C;
        
endmodule

 

  stage 2

module stage2 ( FF1, A, CLK, RST, FF2);

	input FF1, A, CLK, RST;
    output reg FF2;
    
    always @(posedge CLK or negedge RST) begin
    	if(!RST)FF2 <= 0;
        else if (A) FF2 <= FF1;
    end

endmodule

 

상위 top 모듈

module top ( A, B, C, CLK, RST, FF2);
    input A, B, C, CLK, RST;
    output FF2;
    
    wire go;
    
    stage1 U1(.A(A), .B(B), .C(C), .CLK(CLK), .FF1(go));
    stage2 U2(.FF1(go), .A(A), .CLK(CLK), .RST(RST), .FF2(FF2));
    
endmodule

Schematic

'Verilog_RTL 설계' 카테고리의 다른 글

[Basys 3_Vivado] Simulation 방법_and  (0) 2025.07.03
[Verilog_RTL]_Module Instantiation  (0) 2025.06.26
[Verilog_RTL]_FSM_mealy  (0) 2025.06.20
[Verilog_RTL]_FSM_moore  (0) 2025.06.20
[Verilog_RTL]_7-Seg_DECODER  (0) 2025.06.20