VHDL
이전 자습서에서 For-Loop를 사용하여 정수 범위를 반복하는 방법을 배웠습니다. 그러나 고정된 정수 범위보다 루프를 더 자세히 제어하려면 어떻게 해야 할까요? 이를 위해 While 루프를 사용할 수 있습니다.
While 루프는 테스트하는 표현식이 true
로 평가되는 한 계속해서 동봉된 코드를 반복합니다. . 따라서 While-Loop는 얼마나 많은 반복이 필요한지 미리 알 수 없는 상황에 적합합니다.
이 블로그 게시물은 기본 VHDL 자습서 시리즈의 일부입니다.
While 루프의 구문은 다음과 같습니다.
while <condition> loop
end loop;
<condition>
부울 true
입니다. 또는 false
. true
로 평가되는 표현식일 수도 있습니다. 또는 false
. 조건은 루프의 모든 반복 전에 평가되며 조건이 true
인 경우에만 루프가 계속됩니다. .
true
인 표현식의 예 i
인 경우 10 미만:
i < 10
true
인 표현식의 예 i
인 경우 10이 아닙니다:
i /= 10
true
인 표현식의 예 i
인 경우 0보다 크거나 같고 2보다 작음
8
=256:
i >= 0 and i < 2**8;
관계 연산자:
= | 같음 |
/= | 같지 않음 |
< | 미만 |
<= | 작거나 같음 |
> | 보다 큼 |
>= | 크거나 같음 |
논리 연산자:
아니요 아 | 참이면 a 거짓입니다 |
a 그리고 ㄴ | 참이면 a 그리고 b 사실입니다 |
a 또는 ㄴ | 참이면 a 또는 b 사실입니다 |
a 난 ㄴ | 참이면 a 또는 b 거짓입니다 |
a 아니요 ㄴ | 참이면 a 그리고 b 거짓입니다 |
a xor ㄴ | a 중 정확히 하나인 경우 true 또는 b 사실입니다 |
a xnor ㄴ | 참이면 a 그리고 b 평등하다 |
이 비디오 자습서에서는 변수를 사용하여 While 루프를 제어하는 방법을 배웁니다.
이 튜토리얼에서 만든 최종 코드:
entity T05_WhileLoopTb is end entity; architecture sim of T05_WhileLoopTb is begin process is variable i : integer := 0; begin while i < 10 loop report "i=" & integer'image(i); i := i + 2; end loop; wait; end process; end architecture;
ModelSim에서 실행 버튼을 눌렀을 때 시뮬레이터 콘솔에 대한 출력:
VSIM 2> run # ** Note: i=0 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=2 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=4 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=6 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb # ** Note: i=8 # Time: 0 ns Iteration: 0 Instance: /t05_whilelooptb
정수 변수 i
을 만들었습니다. 초기값 0을 주었습니다. i
만큼 참인 While-Loop 표현식을 사용했습니다. 10보다 작습니다. i
을 증가시켰기 때문입니다. 각 반복에서 2씩 출력된 마지막 숫자는 8이었습니다.
다음 반복에서 i < 10
false
로 평가됨 10은 10보다 작지 않기 때문입니다. 루프가 종료된 후 프로그램은 wait;
를 쳤습니다. 무한히 멈춘 곳입니다.
true
인 동안 계속됩니다.
기본 VHDL 퀴즈 – 1부 »
또는
다음 튜토리얼로 이동 »
VHDL
이전 자습서에서 loop을 사용하여 무한 루프를 만드는 방법을 배웠습니다. 성명. 또한 exit을 사용하여 루프에서 벗어나는 방법도 배웠습니다. 성명. 그러나 루프가 특정 횟수만큼 반복되도록 하려면 어떻게 해야 할까요? For-Loop는 이를 수행하는 가장 쉬운 방법입니다. For-Loop를 사용하면 고정된 범위의 정수 또는 열거된 항목을 반복할 수 있습니다. 현재 반복에 속하는 항목은 암시적으로 선언된 상수를 통해 루프 내에서 사용할 수 있습니다. 이 블로그 게시물은 기본 VHDL 자습서 시리즈의 일부입니다. For 루프
이전 튜토리얼에서 wait for를 사용하여 시간을 지연시키는 방법을 배웠습니다. 성명. 프로세스 루프에 대해서도 배웠습니다. 이제 허용하면 프로세스 스레드가 프로세스 내에서 영원히 반복된다는 것을 알고 있습니다. 그러나 프로세스의 시작 부분에서 한 번만 무언가를 하고 싶다면 어떻게 해야 할까요? 그런 다음 끝에 다른 코드를 반복합니까? VHDL에서 가장 단순한 종류의 루프는 loop을 사용하여 생성할 수 있습니다. 성명서. 이 블로그 게시물은 기본 VHDL 자습서 시리즈의 일부입니다. 단순 루프의 구문은 다음과 같습니다.