| 분류 |
연산자 |
설명 |
예제 |
결과 |
| 산술 | + | 덧셈 | assign sum = 3 + 2; | sum = 5 |
| 산술 | - | 뺄셈 | assign diff = 7 - 4; | diff = 3 |
| 산술 | * | 곱셈 | assign mul = 3 * 4; | mul = 12 |
| 산술 | / | 나눗셈 | assign div = 8 / 2; | div = 4 |
| 산술 | % | 나머지 | assign mod = 9 % 4; | mod = 1 |
| 산술 | ** | 거듭제곱 | assign pow = 2 ** 3; | pow = 8 |
| 비트 | & | 비트 AND | assign and_out = 4'b1100 & 4'b1010; | 1000 |
| 비트 | | | 비트 OR | assign or_out = 4'b1100 | 4'b1010; | 1110 |
| 비트 | ^ | 비트 XOR | assign xor_out = 4'b1100 ^ 4'b1010; | 0110 |
| 비트 | ~ | 비트 NOT | assign not_out = ~4'b1100; | 0011 |
| 비트 | ~^ 또는 ^~ | 비트 XNOR | assign xnor_out = 4'b1100 ~^ 4'b1010; | 1001 |
| 논리 | && | 논리 AND | assign logic_and = (1 && 0); | 0 |
| 논리 | || | 논리 OR | assign logic_or = (1 || 0); | 1 |
| 논리 | ! | 논리 NOT | assign logic_not = !1; | 0 |
| 관계 | == | 같음 비교 | assign eq = (3 == 3); | 1 |
| 관계 | != | 다름 비교 | assign neq = (3 != 4); | 1 |
| 관계 | === | X/Z 포함 동일 비교 | assign eqx = (1'bx === 1'bx); | 1 |
| 관계 | !== | X/Z 포함 다름 비교 | assign neqx = (1'bx !== 1'bz); | 1 |
| 관계 | < | 작음 | assign lt = (2 < 5); | 1 |
| 관계 | <= | 작거나 같음 | assign le = (5 <= 5); | 1 |
| 관계 | > | 큼 | assign gt = (7 > 3); | 1 |
| 관계 | >= | 크거나 같음 | assign ge = (7 >= 7); | 1 |
| 시프트 | << | 왼쪽 시프트 | assign shl = 4'b0011 << 1; | 0110 |
| 시프트 | >> | 오른쪽 시프트 | assign shr = 4'b1000 >> 2; | 0010 |
| 시프트 | <<< | 산술 왼쪽 시프트 | assign asl = $signed(4'b0011) <<< 1; | 0110 |
| 시프트 | >>> | 산술 오른쪽 시프트 | assign asr = $signed(4'b1000) >>> 2; | 0010 |
| 조건 | ?: | 삼항 조건 | assign out = (sel) ? a : b; | sel=1 → a, sel=0 → b |
| 결합 | {} | 비트열 결합 | assign concat = {2'b10, 2'b01}; | 1001 |
| 결합 | {{}} | 반복 결합 | assign repeat = {3{2'b01}}; | 010101 |
| 할당 |
= |
블로킹 할당 |
always @(posedge clk) begin a = b; end |
순차적으로 즉시 a ← b |
| 할당 |
<= |
논블로킹 할당 |
always @(posedge clk) begin a <= b; end |
병렬적으로 a ← b (동시에 업데이트) |