한양대 Verilog HDL 3
- 최초 등록일
- 2023.03.21
- 최종 저작일
- 2022.03
- 7페이지/ 어도비 PDF
- 가격 2,000원
소개글
"한양대 Verilog HDL 3"에 대한 내용입니다.
목차
1. Chapter 1. 실험 목적
2. Chapter 2. 관련 이론
3. Chapter 3. 실험 결과
본문내용
Chapter 1. 실험 목적
Verilog 문법 중 Blocking, Non Blocking의 개념에 대해 이해한다. 7-segment decoder 을 이용해 60초 기준으로 1초마다 FPGA starter Kit가 바뀌는 Verilog를 설계하고 실행해본다.
Chapter 2. 관련 이론
Verilog에 사용되는 Blocking과 Non-blocking 구문을 헷갈리기 쉬워서 제대로 개념 숙지를 해야 한다.
Blocking (=)은 순차적 block에 열거된 순서대로 수행되고, Non-blocking (<=)은 순차적 block에서 앞선 문장이 끝나지 않아도 작동할 수 있게 해주는 문법이다.
Blocking은 value = (일어나는 동작)을 뜻하고, 괄호의 동작이 끝날 때까지 block 하는 역할이고, Non-blocking은 value <= (일어나는 동작)을 뜻하고 괄호 속 동작의 여부를 고려하지 않고 문장을 실행한다.
조합회로 (combinational logic)의 assign, function문에는 blocking을 사용하고, 순차회로 (sequential logic)의 always문와 latch design에서 Non-blocking을 사용한다.
만약, 조합회로를 always문으로 구현할 때는 Non-blocking을 사용한다. 또한, 같은 always문에 blocking과 Non-blocking을 혼용할시 오류가 나므로 유의해야 한다.
이번 실험에서는 always문을 사용하므로 Non-blocking을 사용한다. Non-blocking은 두 개의 절차로 진행되는데, RHS(right hand side) -> LHS(left hand side) 순서이다.
Blocking 구문들이 다 처리된 뒤, Non-blocking 구문들의 값을 확인할 수 있기에 Non-blocking 구문의 값을 확인하기 위해서는 $monitor, $strobe 등의 task를 사용해야 한다.
참고 자료
없음