Scode에는 ~와 - operator가 있다. ~는 not operator이고, -는 negative expression을 만든다.
~는 bit not과 logical not 모두에 사용할 수 있다.
a <= b
a <= (b, ~(c==1), d)
두 번째 경우는 c!=1이라는 표현이 더 가독성이 좋으므로 ~는 주로 bit not에 이용한다.
Scode는 expression이 필요할 때 logic만 주어지면 active high로 간주하는 기능이 있다.
a <= (b, c, d)
위의 code는 c가 1인 경우 a에 b를 할당하고, 1이 아닌 경우 a에 d를 할당하는 내용이다. 만일 c가 0인 경우 a에 b를 할당하고, 0이 아닌 경우 a에 d를 할당하려면 아래와 같이 작성한다.
a <= (b, c==0, d)
이 경우 - operator를 사용하면 좀 더 간략하게 표현할 수 있다.
a <= (b, -c, d)
Scode에는 and, or 역할을 하는 &, | operator가 있는데, 이 operator의 연산 순위가 == 보다 높기 때문에 다음과 같은 경우에 괄호가 필요하다.
a <= (b, (c1==0) & (c2==0), d)
-를 사용하면 괄호가 - operator의 연산 순위가 &보다 높기 때문에 필요없다.
a <= (b, -c1 & -c2, d)
-를 사용하면 조건문을 훨씬 간략하게 표현함을 알 수 있다.