한양대 Verilog HDL 3
본 내용은
"
한양대 Verilog HDL 3
"
의 원문 자료에서 일부 인용된 것입니다.
2023.03.24
문서 내 토픽
  • 1. Verilog HDL
    이 프레젠테이션은 Verilog HDL의 Blocking과 Non-Blocking 구문에 대해 설명하고 있습니다. Blocking 구문은 순차적으로 실행되는 반면, Non-Blocking 구문은 동시에 실행됩니다. 이번 실험에서는 Non-Blocking 구문을 사용하여 60초 기준으로 1초마다 FPGA Starter Kit가 변하는 Verilog 코드를 설계하고 실행해보았습니다. 7-segment decoder, Multiple digit 7-segments, 60second clock 모듈을 구현하고 이를 Top module에서 통합하여 최종 결과를 확인하였습니다.
  • 2. Blocking vs Non-Blocking
    Verilog에서 Blocking (=)과 Non-Blocking (<=) 구문의 차이를 설명하고 있습니다. Blocking 구문은 순차적으로 실행되어 이전 문장이 끝나야 다음 문장이 실행되지만, Non-Blocking 구문은 이전 문장이 끝나지 않아도 다음 문장이 실행됩니다. 조합회로에는 Blocking을, 순차회로에는 Non-Blocking을 사용하는 것이 일반적입니다. 이번 실험에서는 always 문을 사용하므로 Non-Blocking 구문을 사용하였습니다.
  • 3. 7-segment display
    7-segment display는 7개의 획으로 숫자나 문자를 나타낼 수 있는 표시 장치입니다. 각 획은 하나의 핀을 담당하고 있어 신호에 맞게 켜지거나 꺼지면서 아라비아 숫자 0~9를 표시할 수 있습니다. 이번 실험에서는 7-segment decoder와 Multiple digit 7-segments 모듈을 구현하여 60초마다 0으로 초기화되는 시계를 구현하였습니다.
  • 4. 60초 시계 구현
    60second clock 모듈을 구현하여 1초마다 1씩 증가하는 clock 신호와 1의 자리수, 10의 자리수 출력 신호를 생성하였습니다. 9초 다음 10초가 되었을 때 십의 자리수와 일의 자리수가 모두 바뀌도록 하였고, 60초가 되었을 때 59 -> 00으로 초기화되도록 하였습니다. 이를 Top module에서 7-segment display와 연결하여 최종 결과를 확인하였습니다.
Easy AI와 토픽 톺아보기
  • 1. Verilog HDL
    Verilog HDL은 하드웨어 설계를 위한 강력한 언어로, 디지털 회로 설계에 널리 사용되고 있습니다. Verilog는 모듈 기반의 계층적 설계 방식을 지원하여 복잡한 시스템을 효과적으로 구현할 수 있습니다. 또한 시뮬레이션, 합성, 검증 등 다양한 설계 단계에서 활용될 수 있어 설계 생산성을 높일 수 있습니다. Verilog는 C 언어와 유사한 문법을 가지고 있어 익히기 쉽고, 다양한 IP 코어와의 연동이 용이합니다. 이러한 장점으로 인해 Verilog는 FPGA, ASIC 등 하드웨어 설계 분야에서 널리 사용되고 있습니다.
  • 2. Blocking vs Non-Blocking
    Verilog에서 Blocking 할당과 Non-Blocking 할당은 중요한 개념입니다. Blocking 할당은 즉시 변수 값을 변경하고 다음 문장을 실행하는 반면, Non-Blocking 할당은 변수 값을 나중에 변경하고 즉시 다음 문장을 실행합니다. 이로 인해 Blocking 할당은 순차적인 동작을, Non-Blocking 할당은 병렬적인 동작을 모델링할 수 있습니다. 적절한 사용이 중요한데, Blocking 할당은 조합 회로 모델링에, Non-Blocking 할당은 순차 회로 모델링에 주로 사용됩니다. 이해와 활용도가 높은 개발자일수록 Verilog 설계 능력이 뛰어나다고 볼 수 있습니다.
  • 3. 7-segment display
    7-segment 디스플레이는 숫자와 문자를 표현할 수 있는 간단하면서도 효과적인 디스플레이 방식입니다. 7개의 세그먼트로 구성되어 있어 0부터 9까지의 숫자와 일부 문자를 표현할 수 있습니다. 7-segment 디스플레이는 간단한 회로 구성과 구동 방식으로 인해 마이크로컨트롤러, 디지털 시계, 계측기 등 다양한 전자 기기에 널리 사용되고 있습니다. 또한 Verilog를 이용하여 7-segment 디스플레이를 제어하는 회로를 설계하는 것은 하드웨어 설계 실습에 자주 활용되는 주제입니다. 이를 통해 조합 논리 회로 설계, 상태 머신 설계 등 다양한 하드웨어 설계 기법을 익힐 수 있습니다.
  • 4. 60초 시계 구현
    60초 시계 구현은 순차 회로 설계의 대표적인 예제입니다. 이를 통해 상태 머신 설계, 타이밍 제어, 7-segment 디스플레이 구동 등 다양한 하드웨어 설계 기법을 익힐 수 있습니다. 60초 시계는 1초마다 시간이 증가하는 단순한 동작이지만, 이를 Verilog로 구현하기 위해서는 클록 신호 생성, 카운터 설계, 상태 천이 로직 구현 등 복잡한 회로 설계 기술이 필요합니다. 이 과정에서 Verilog의 Blocking 및 Non-Blocking 할당, 타이밍 분석, 테스트 및 디버깅 기법 등을 익힐 수 있습니다. 60초 시계 구현은 Verilog 설계 능력을 향상시키는 데 매우 유용한 실습 과제라고 볼 수 있습니다.