1

2016. 11. 22. 22:53 from 카테고리 없음

Verilog datatype : variable, net

두 구룹은 값을 할당받고 유지하는 방식에 있어서 다르다. 또한 서로 다른 하드웨어 구조를 나타낸다.



net datatype


논리게이트나 모듈 등 하드웨어 요소들 사이의 물리적 연결을 나타내기 위해 사용됨. net은 값을 저장하지 않으며(단, trireg net는 예외), continuous assignment, gate primitive 등과 같은 driver의 값에 의해 net의 값이 연속적으로 유지된다. 만약 net에 구동자가 연결되어 있지 않으면, default 값은 high0impedance(z)가 된다.



variable datatype


reg, integer, real, time, realtime 등의 자료형 집합을 variable datatype이라고 한다. variable 자료형을 갖는 개체는 절차적 할당문 (procedural assignment)의 실행에 의해 그 값이 바뀌며, 할당에서부터 다음 할당까지 값을 저장하므로 프로그래밍 언어의 variable과 유사한 개념이라고 볼 수 있다.


- reg

 reg 자료형은 always나 initial 구문 내부의 절차적 할당문으로 값을 받는 객체의 자료형이다. always 내부에서 값을 할당받을 때 반드시 reg 자료형으로 선언되어야 하는 이유는 아래 글 참조.



처음 Verilog HDL 언어를 접하면서 가장 힘들었던 부분은 역시 wire와 reg의 구분을 하는것

wire = '선'

reg = '레지스터' 라고 우선 생각을 한다.

wire는 실제 wire 처럼 단지 어떤 모듈과 모듈을 이어주는 선에 불과하고 reg은 실제로 레지스터처럼 어떤 신호에 영향을 받아 바뀌는 값이라고 생각. 따라서 always문 안에서만 reg값의 변경이 가능하고 wire 값은 그 자체로 변경이 불가능하다. 단지 선을 연결하거나 and나 or등의 모듈로 나온 선을 잇는 것만 가능할 뿐.



* 합성용 셀 라이브러리 * 스위치 수준의 모델링

Posted by 나무길 :