1. | ![]() |
Verilog HDL 소개 | Verilog HDL 소개 | ![]() |
![]() |
디지털논리회로 개발 흐름 소개 | 디지털논리회로 개발 흐름 소개 | ![]() |
|
![]() |
Verilog HDL 맛보기 코딩(무작정 따라하기) | Simulation tool 을 이용한 Verilog HDL 맛보기 코딩을 무작정 따라해 봅시다. HDL 을 이용한 회로 설계의 흐름을 이해하는데 도움이 될 것 입니다. | ![]() |
|
2. | ![]() |
Verilog Modeling 시작하기(module) | Verilog HDL 로 논리회로를 만드는 일을 modeling 한다고 합니다. Model 의 첫번째 작업은 module 을 만드는 것입니다. module 에 대하여 알아 봅시다. | ![]() |
![]() |
Verilog HDL의 Port | 큰 회로를 HDL 로 표현할 때, 작은 부분(module)으로 나누어 표현하고 이들을 연결하는 방법을 사용합니다. Module 연결은 port 를 통해서 이루어집니다. | ![]() |
|
![]() |
Verilog Data types and values | 회로를 설계할 때 실제 물리적으로 발생하는 현상에 집중하는 것이 좋기만 한 것은 아닙니다. 때로는 사람의 머리 속에 있는 논리적인 내용을, 물리적인 구현은 배제하고, 표현하고 싶을 때가 있습니다. 이를 도와 주는 도구 중 하나가 자료형입니다 | ![]() |
|
3. | ![]() |
Vector and Array | Multi-bit 를 가지는 net 혹은 reg 를 vector로, multi-element를 가지는 net 혹은 variable 을 array로 구분합니다. 이에 대하여 알아봅시다. | ![]() |
![]() |
Nets and Variables | 회로의 구성 요소들의 연결은 net 으로, 회로에 저장된 값은 variable 로 표현합니다. 이에 대하여 알아 봅시다 | ![]() |
|
![]() |
Parameters and Numbers | Verilog 에서 상수를 표현할 때 Parameter 를 사용합니다. 또한 디지털하드웨어에서 숫자 등을 표현할 때 사용하는 2진수를 진법, 자릿수 제한, 그리고 부호가 주어졌을 때 읽어 내는 방법을 알아봅니다. | ![]() |
|
4. | ![]() |
Expression(표현식, 피연산자, 표현식에서 상수) | Expression(표현식)에서 피연산자로 무엇을 사용할 수 있는지 알아봅니다 | ![]() |
![]() |
String, Bit/Part-select | String 그리고 vector에서 일부분을 선택하는 Bit-select, Part-select 에 대하여 알아봅니다 | ![]() |
|
![]() |
Operators(연산자) | Verilog HDL 에서 사용할 수 있는 Operators(연산자) 전반에 대하여 알아봅니다 | ![]() |
|
![]() |
산술 연산자, 관계 연산자 | 산술 연산자, 관계 연산자 | ![]() |
|
5. | ![]() |
비트 연산자, 축약 연산자 | 비트 연산자, 축약 연산자 | ![]() |
![]() |
논리 연산자 | 논리 연산자 | ![]() |
|
![]() |
이동 연산자, 조건 연산자 | 이동 연산자, 조건 연산자 | ![]() |
|
![]() |
결합 연산자, 복제 연산자 | 결합 연산자, 복제 연산자 | ![]() |
|
![]() |
표현식에서 비트 길이와 자료형 해석 | 표현식에서 비트 길이와 자료형 해석하는 방법을 알아봅니다 | ![]() |
|
6. | ![]() |
Verilog modeling methods | Verilog HDL을 사용하여 디지털논리회로를 modeling 하는 3가지 방법들을 알아봅니다 | ![]() |
![]() |
Gate-Level Modeling | Gate-Level Modeling 할 때는 구조적 표현 방식을 많이 사용합니다. 이에 대해 알아봅시다 | ![]() |
|
![]() |
RTL Modeling(연속 할당) | 레지스터 전송 수준(RTL)에서 Modeling 하는 경우, 연속 할당문을 사용하여 표현할 수 있습니다. | ![]() |
|
7. | ![]() |
Behavior-Level Modeling(절차형 할당 등) | 디지털논리회로를 행위 수준 (Behavior-Level)에서 Modeling 할 수 있습니다. 이 경우 절차형 할당이 사용됩니다. 이러한 절차형 할당은 initial, always, task, function 문에서 사용 가능합니다 | ![]() |
![]() |
Verilog timing control | Verilog HDL에서는 하드웨어의 동작, 특히 시간 지연을 표현하는 방법을 제공합니다. 각 표현 방식마다 시간 지연을 표시하는 방법이 다릅니다 | ![]() |
|
![]() |
Behavioral modeling(개요, 절차형 blocking 할당) | 행위/동작 (Behavioral) modeling에 대하여 알아봅시다. 특히 절차형 blocking 할당이 중요합니다. | ![]() |
|
![]() |
Behavioral modeling(절차형 nonblocking 할당, 절차형 연속 할당) | 행위/동작 (Behaviora)l modeling에서 하드웨어의 특성을 표현할 수 있는 절차형 nonblocking 할당(동시동작), 절차형 연속 할당(driver)에 대해 알아봅시다 | ![]() |
|
9. | ![]() |
실행 흐름 제어(flow control) : if | 행위/동작 modeling 을 위한 실행 흐름 제어(flow control) : if 에 대하여 알아봅시다 | ![]() |
![]() |
실행 흐름 제어(flow control) : case | 행위/동작 modeling 을 위한 실행 흐름 제어(flow control) : case 에 대하여 알아봅시다 | ![]() |
|
![]() |
실행 흐름 제어(flow control) : looping | 행위/동작 modeling 을 위한 실행 흐름 제어(flow control) : looping 에 대하여 알아봅시다 | ![]() |
|
![]() |
절차문의 시간 제어 (regular timing control) | 행위/동작 modeling 을 위한 절차문에서 시간과 관련된 동작을 표현하는 방법 (regular timing control)에 대하여 알아봅시다 | ![]() |
|
![]() |
절차문의 시간 제어(절차형 할당문의 intra 시간 제어) | 행위/동작 modeling 을 위한 절차문에서 시간과 관련된 동작을 표현하는 방법(절차형 할당문의 intra 시간 제어)에 대하여 알아봅시다 | ![]() |
|
10. | ![]() |
절차문의 실행 환경: block | 행위/동작 modeling 에 사용되는 절차문에는 block 이라는 묶음이 존재합니다. 그리고 block 은 이에 속한 절차문들의 시간속성을 결정 짓습니다. | ![]() |
![]() |
Procedures | 행위/동작 modeling 을 위한 절차문은 Procedures 라는 것에서만 사용할 수 있습니다. Procedure 에 대하여 알아봅시다. | ![]() |
|
![]() |
Compiler directive | Verilog HDL은 디지털 하드웨어를 문자로 표현하는 것이어서 compiler 가 존재합니다. 이 compliler 에 명령을 내릴 수 있는 Compiler directive 에 대하여 몇 가지 알아봅시다. | ![]() |
|
![]() |
시스템 태스크와 함수 | Verilog HDL에서는 시뮬레이션의 편의를 제공하기 위한 시스템 태스크와 함수가 있습니다. 이에 대하여 알아봅시다. | ![]() |
|
11. | ![]() |
Generate 문 | Verilog HDL에서 여러 Verilog 구성요소를 반복(혹은 조건부) 생성하는 기능이 있습니다. Generate 문에 대하여 알아봅시다. | ![]() |
![]() |
계층적 경로 이름(Hierarchical path name) | Verilog HDL에서는 문자로 표현된 디지털하드웨어의 구성 요소를 참조할 때 계층적 경로 이름(Hierarchical path name)을 사용할 수 있습니다. 계층적 경로 이름에 대하여 알아봅시다. | ![]() |
|
![]() |
상향 이름 참조 | Verilog HDL에서 구성 요소의 이름을 완전한 계층적 경로 이름으로 표시하지 않은 경우, 상향 이름 참조를 합니다. 상향 이름 참조에 대하여 알아봅시다. | ![]() |
|
12. | ![]() |
다양한 회로 표현 | Verilog HDL을 사용하여 3 가지 방식의 modeling 이 가능합니다. 다양한 보기를 통하여 modeling 방식을 익혀 봅시다 | ![]() |
![]() |
진리표가 주어진 회로의 모델링 | 진리표가 주어진 회로를 모델링할 수 있습니다 | ![]() |
|
![]() |
Encoder/Decoder | Encoder/Decoder 를 모델링해보고 주의사항을 확인해 봅시다 | ![]() |
|
![]() |
SR Latch | 디지털 논리회로 수업에서 배운 SR Latch 를 Verilog HDL 로 모델링해 봅시다 | ![]() |
|
![]() |
D-Latches with enable | D-Latches with enable 를 모델링해 봅시다. 그리고 주의사항을 확인해 봅시다 | ![]() |
|
13. | ![]() |
FIFO 모델링 | 조금 복잡한 FIFO (First-In First-Out)회로를 모델링해 봅시다. | ![]() |
![]() |
Bus Driver 모델링 | 다양한 종류의 Bus Driver를 모델링해 봅시다. 이에 걸맞는 testbench로 설계해 봅시다. | ![]() |
|
![]() |
양방향 Bus Driver 모델링 | 양방향 Bus Driver 는 모델링 뿐만 아니라 검증 역시 중요합니다. 효과적인 검증을 위한 testbench 를 설계해 봅시다. | ![]() |
|
![]() |
FSM(Finite State Machine) 모델링 | FSM(Finite State Machine) 을 모델링해 봅시다 | ![]() |
|
14. | ![]() |
Multiplier(4x4) | 여러 구성 요소가 복합된 Multiplier(4x4) 를 모델링해 봅시다 | ![]() |
![]() |
UART transmitter | 간단한 UART transmitter 를 설계하고 구현(모델링)해 봅시다 | ![]() |
|
![]() |
UART receiver | 간단한 UART receiver를 설계하고 구현(모델링)해 봅시다 | ![]() |