value는 변수로, 소프트웨어적인 개념에서 값을 할당하는 부분이다. 그렇기에 직접적으로 값이 반영되며, 똑같은 시간, 즉시(instantaneosly) 값이 바뀐다.
signal은 물리적인 wire의 개념이다. 그렇기에 변수와는 다르게 신호가 들어가는 delay라는 과정이 들어간다. 내가 직접 delay를 넣어 주려면 [after delay-value]를 이용해서 넣어준다.
시그널은 영향을 받는 값이 있으며, 그 값을 Sensitivity List라고 부른다. 이는 Sensitivity List에 변화 갱길 때 마다 연산의 값이 시그널에 출력된다는 의미이다.

만약 after delay-value를 넣어주지 않는다면 기본적으로 delay가 들어간다. 이를 default delay(delta delay)라고 부른다.

wait on signal[,signal] : Sensitivity List에 변화가 생기 때 까지 기다린다
wait until boolean_expression : boolean_expression이 true가 될 때 까지 기다린다.
wait for time_expression : time_expression동안 기다린다.

다른 프로그래밍 언어의 if-else문과 동일한 형태를 취하고 있음.

다른 프로그래밍 언어의 case문과 동일한 형태를 취하고 있음.

다른 프로그래밍 언어의 for문과 비슷하나, range가 다름. Range는 downto와 to의 형태를 가질 수 있으며, index_variable에 range를 할당한 순서대로 들어감.


종료/실행문은 반복문과 함께 사용하며, 예외처리를 할 때 주로 사용한다.
when의 조건을 만족하면 지금 돌고있는 loop에서 탈출한다.

when의 조건을 만족하면 지금 돌고있는 iteration을 탈출하고 다음 iteration을 실행한다.
