Assignment

2016. 11. 23. 09:06 from Language/verilog HDL

할당문은 객체에 값을 주는 기본적인 방법이며, Verilog에는 다음과 같은 두 가지 형태의 할당이 있다.

- net형 객체에 값을 할당하는 연속 할당(continuous assignment)

- variable 자료형의 객체에 값을 할당하는 절차형 할당(procedural assignment)


* net은 실제로 전선이라고 생각하기. 이는 무조건 continuous 일수 밖에 없다. 약간 analog 느낌.



Continuous assignment


연속할당문은 assign 문을 이용하여 net 형 객체에 스칼라 또는 벡터 형태의 값을 할당하며, 우변 수식의 값에 변화(event)가 발생했을 때 좌변의 객체에 값의 할당이 일어남. 연속할당문은 논리식으로 표현된 조합회로의 모델링에 이용될 수 있다. 


게이트가 net 객체를 구동하는 것과 동일한 방식으로 net 객체를 구동하며, 우변의 수식은 net 객체를 연속적으로 구동하는 조합논리회로라고 생각할 수 있다.



Procedural assignment


절차형 할당문은 always, initial, task, function과 같은 procedure(절차)내부에서 사용되며, 시뮬레이션의 실행 흐름이 procedure 내의 할당문에 도달했을 때 할당을 위한 트리거가 발생된다. 연속 할당문은 문장의 실행에 의해서가 아니라 우변 수식의 값 변화(event)에 의해 좌변의 net 객체에 값이 할당되는 하드웨어적인 특성을 갖는다. 반면에 절차형 할당문은 우변 수식의 event 발생과는 무관하게 해당 문장의 실행에 의해 좌변 variable에 값이 할당되는 소프트웨어적인 특성을 갖는다.

절차형 할당문의 실행은 event 제어, 지연 제어, if 문, case 문, 반복문 등에 의해 제어될 수 있다. 절차형 할당문은 다시 blocking 할당문과 nonblocking 할당문으로 구분된다.




Verilog 소스코드 내에서 연속 할당문들의 순서는 시뮬레이션 결과에 영향을 미치지 않으나, always, initial 구문 내에서 절차혀여 할다움ㄴ들의 순서는 시뮬레이션 결과에 영향을 미칠 수 있다.

'Language > verilog HDL' 카테고리의 다른 글

blocking과 nonblocking 연산자 의미  (0) 2016.11.27
Gate delay, net delay  (0) 2016.11.23
Gate-level, Dataflow, Behavoral modeling  (0) 2016.11.22
Behavioral, RTL, Gate level  (0) 2016.11.22
Little endian, Big endian  (0) 2016.11.16
Posted by 나무길 :