Verilog_RTL 설계/SoC

[MicroBlaze] fnd_control

juniha 2025. 7. 28. 20:05

목적

  • MicroBlaze V RISC-V 프로세서를 이용하여 UART 통신을 통해 입력을 받고, 7세그먼트 디스플레이로 출력하는 임베디드 SoC 시스템을 구현

Diagram

 

사용 코드

`timescale 1 ps / 1 ps  // 시뮬레이션 시간 단위 및 정밀도 설정

//------------------------------------------------------------------------------
// Top-Level Wrapper Module for MicroBlaze V System
// 이 모듈은 Vivado IP Integrator로 생성된 MicroBlaze V 시스템(mblazeV_fnd)의
// 상위 래퍼로서 외부 핀과 내부 블록 디자인을 연결합니다.
//------------------------------------------------------------------------------
module mblazeV_fnd_wrapper
   (
    reset,                      // 외부 리셋 입력 (active-high)
    seven_seg_led_an_tri_o,    // 7세그먼트 애너드 제어 출력 (4비트)
    seven_seg_led_disp_tri_o,  // 7세그먼트 디스플레이 제어 출력 (8비트)
    sys_clock,                 // 외부 시스템 클록 입력
    usb_uart_rxd,              // UART 수신 데이터 (PC -> FPGA)
    usb_uart_txd               // UART 송신 데이터 (FPGA -> PC)
    );

  // 포트 선언
  input reset;
  output [3:0] seven_seg_led_an_tri_o;
  output [7:0] seven_seg_led_disp_tri_o;
  input sys_clock;
  input usb_uart_rxd;
  output usb_uart_txd;

  // 내부 배선 (포트와 동일 이름을 가진 wire로 연결됨)
  wire reset;
  wire [3:0] seven_seg_led_an_tri_o;
  wire [7:0] seven_seg_led_disp_tri_o;
  wire sys_clock;
  wire usb_uart_rxd;
  wire usb_uart_txd;

  //------------------------------------------------------------------------------
  // 인스턴스: mblazeV_fnd
  // Vivado Block Design으로 생성된 SoC 시스템 블록 인스턴스
  // MicroBlaze V 프로세서 및 AXI 기반 주변 장치(GPIO, UART 등)를 포함함
  //------------------------------------------------------------------------------
  mblazeV_fnd mblazeV_fnd_i (
        .reset(reset),
        .seven_seg_led_an_tri_o(seven_seg_led_an_tri_o),
        .seven_seg_led_disp_tri_o(seven_seg_led_disp_tri_o),
        .sys_clock(sys_clock),
        .usb_uart_rxd(usb_uart_rxd),
        .usb_uart_txd(usb_uart_txd)
  );

endmodule

동작 영상

결과

  • FPGA 보드의 MicroBlaze 시스템이 AXI GPIO를 통해 4자리 7세그먼트 FND를 제어하며, 초기값 7777에서 시작해 약 0.8초 간격으로 1씩 증가하는 것을 확인 할 수 있다.

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

[Project]Smart Mobility platform  (4) 2025.08.27
[Smart Mobility platform] Implemented Code  (4) 2025.08.07
[MicroBlaze] DHT11_iic  (3) 2025.07.29
[MicroBlaze] Button_control  (1) 2025.07.28
[MicroBlaze] Switch_Led  (2) 2025.07.25