- 중첩된 블록
블록은 중첩될 수 있다. 순차 처리 블록과 병렬 처리 블록을 중첩시키는 것 또한 가능하다.
initial
begin
x = 1'b0;
fork
#5 y = 1'b1;
#10 z = {x, y};
join
#20 w = {y, x};
end
- 명명된 블록
블록에 이름을 붙일 수 있다.
명명된 블록의 지역 변수는 계층적 이름 참조를 사용하여 접근할 수 있으며, disable 키워드를 통해 블록의 수행을 무효화시킬 수 있다.
initial
begin: block1 //block1이라는 순차 처리 블록
integer i; //지역변수, block1.i와 같이 접근할 수 있다.
end
- disable, 명명된 블록의 무효화
disable 키워드는 명명된 블록의 수행을 종결시킬 수 있다. 즉, 설계에서 명명된 블록 자체를 빠져나올 수 있다.
initial
begin
flag = 16'b 0010_0000_0000_0000;
i = 0;
begin: block1
while(i < 16)
begin
if(flag[i])
begin
$display("Encountered a TRUE bit at element number %d", i);
disable block1; //block1을 무효화
end
i = i + 1;
end
end
end
'EE > Verilog' 카테고리의 다른 글
비바도 공부 자료 추천 (0) | 2023.02.02 |
---|---|
[Verilog] 베릴로그에서의 엔디안 (0) | 2023.02.01 |
[Verilog] 순차 처리 블록과 병렬 처리 블록 / fork, join (0) | 2023.01.17 |
[Verilog] 루프문 - while, for, repeat, forever (0) | 2023.01.17 |
[Verilog] case, casex, casez문 (0) | 2023.01.17 |