디지털시스템 5

[Verilog] reg vs wire - reg와 wire의 차이점

Verilog 언어의 reg와 wire 자료형에 대해 알아보자. 1. reg " Data를 저장하기 위한 변수 " Reg는 data를 저장하기 위한 변수로 다음 값이 할당되기 전까지 현재 값을 유지하므로 procedural assignment를 구현할 때 사용된다. Initial/always block 구문 내에서 출력으로는 반드시 reg를 사용해야 한다. Combinational logic과 sequential logic을 구현할 때 모두 사용 가능하다. 하지만 reg를 사용하여 combinational logic을 구현하면 현재 값을 유지할 필요가 없기 때문에 wire처럼 합성된다. ※ reg과 register는 같은 말이다? reg와 register의 개념이 동일한 것은 아니다. reg라는 자료형을..

[Verilog] Blocking Assignment vs Non-Blocking Assignment - 베릴로그 절차형 할당문의 종류

Procedural assignment의 종류에는 blocking assignment와 non-blocking assignment가 있다. 각 할당문과 그 차이에 대해 알아보자. 1. Blocking Assignment " 기술된 순서대로 동작하는 할당문 " Blocking assignment는 그 이름에서도 알 수 있듯, 현재 statement가 수행되는 동안 block 처리가 되어 다음 statement가 수행되지 않는다. 따라서, 다음 statement에서는 업데이트된 값을 사용하며, 기본적으로 zero-delay를 갖는다. 할당 연산자 = 을 사용한다. 2. Non-Blocking Assignment " 기술 순서와 무관하게 동시에 수행되는 할당문 " Non-Blocking assignment는 ..

[Verilog] Continuous Assignment vs Procedural Assignment - 베릴로그 연속 할당 vs 절차형 할당

Verilog에서 값을 할당하는 구문은 Continuous Assignment와 Procedural Assignment 두 가지가 있다. 각 할당문과 그 차이에 대해서 알아보자. 1. Continuous Assignment - 연속 할당 " Net형 객체에 값을 할당하는 구문 " Continuous assignment 연속 할당문은 assign문을 통해 net형 객체에 값을 할당한다. =의 우변에 값의 변화가 생기면, 즉 이벤트가 발생하면 좌변의 객체에 그 값을 할당하게 된다. 모든 continuous assignment는 우선순위가 없이 우변의 이벤트에 따라 수행되기 때문에, 할당문의 기술순서가 시뮬레이션 결과에 영향을 끼치치 않는다. 연속 할당문을 사용하여 조합논리회로인 combinational lo..

ASIC vs FPGA - ASIC과 FPGA의 차이점

반도체의 대표적인 두 종류인 ASIC과 FPGA에 대해 알아보자. 이는 디지털 IC를 만드는 가장 대표적인 제조방법 두 가지이다. 1. ASIC " Application Specific Integrated Circuit " 주문형(맞춤형) 반도체로 트랜지스터와 연결선이 놓여질 위치에 제한을 두지 않은 반도체 설계 방식이다. FPGA보다 저렴하고 빠르며 전력 효율이 좋다. 하지만 칩이 한 번 완성되면 수정이 어렵기 때문에 초기 비용이 많이 들어 충분한 검증의 과정이 필요하다. 이러한 특징에 따라 대량 생산에 적합하다. 일반적으로 ASIC으로 칩을 생산하기 전에 FPGA를 사용하여 회로를 검증하게 된다. 2. FPGA " Field Programmable Gate Array " 트랜지스터와 연결선이 놓여질 ..

조합 논리회로 vs 순차 논리회로 - Combinational vs Sequential Logic Circuit

논리회로는 조합 논리회로와 순차 논리회로 크게 두 가지로 분류된다. 1. 조합 논리회로 - Combinational Logic Circuit " 출력값이 입력값에만 영향을 받는 논리회로 " Logic gate, 즉 기본게이트로 구성된 네트워크로 입/출력을 가지는 회로이다. 출력은 입력값에만 의존하며 cycle과 클럭이 없다. Logic을 최적화하기 위해 카르노맵, boolean algebra, Quine-Mcclusky, Espresso 등을 사용한다. 조합 논리회로는 가산기, 인코더, 멀티플렉서, BCD 및 7 세그먼트 변환기 회로 등에 사용된다. 2. 순차 논리회로 - Sequential Logic Circuit " 출력값이 입력값과 이전 입력들의 영향을 받는 논리회로 " 출력이 입력값과 더불어 이전..