정수와 실수
Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 8번째.
wire와 reg 외에도, Verilog에는 다양한 목적의 숫자를 위한 다른 데이터 타입들이 있습니다.
Integer
integer는 카운팅 및 계산을 위한 범용 변수입니다.
- 기본 크기는 32비트입니다
- 부호 있음 (음수를 저장할 수 있음)
- 주로 테스트벤치와 for 루프에서 사용됩니다
정수 선언:
integer i; // 32비트 부호 있는 변수
integer count; // 음수를 저장할 수 있음integer 사용하기:
integer i;
initial begin
i = 0; // 0에서 시작
i = i + 1; // 카운트 업
i = -5; // 음수 저장 가능
$display("i = %d", i); // 출력: i = -5
endReal
real은 부동 소수점 숫자(소수점이 있는 숫자)를 위한 것입니다.
- 소수점 값을 저장합니다
- 계산을 위해 테스트벤치에서 사용됩니다
- 하드웨어로 합성될 수 없습니다
실수(real) 선언:
real pi; // 부동 소수점 변수
real voltage;real 사용하기:
real pi;
initial begin
pi = 3.14159; // 십진수 값
pi = 22.0 / 7.0; // 나눗셈 결과
$display("pi = %f", pi); // 출력: pi = 3.142857
end사용처
테스트벤치에서: 정수(Integer)와 실수(Real)는 루프 카운터, 계산 및 기대값 확인에 흔히 사용됩니다. 이들은 테스트 코드를 작성하고 이해하기 쉽게 만들어 줍니다.
하드웨어에서: 이러한 타입들은 보통 합성 가능하지 않습니다. 즉, 실제 회로로 변환될 수 없음을 의미합니다. FPGA나 칩에 들어갈 하드웨어의 경우, 대신 reg와 wire를 사용하세요.
챌린지
테스트벤치가 작동하도록 코드를 완성하세요.
수행할 작업:
- i라는 이름의 integer를 선언하세요 (루프 카운터용)
- value라는 이름의 real을 선언하세요 (계산용)
치트 시트
integer – 카운팅/계산(테스트벤치, 루프)을 위한 32비트 부호 있는 변수:
integer i;
integer count;
initial begin
i = 0;
i = i + 1;
i = -5; // can store negatives
endreal – 소수점 값을 위한 부동 소수점 변수(테스트벤치 전용, 합성 불가):
real pi;
initial begin
pi = 3.14159;
pi = 22.0 / 7.0;
$display("pi = %f", pi);
endinteger와 real은 모두 테스트벤치에서만 사용됩니다. 합성 가능한 하드웨어의 경우 reg와 wire를 사용하세요.
직접 해보기
module test;
// i라는 이름의 정수 선언
// value라는 이름의 실수 선언
initial begin
i = 7;
value = i * 0.5;
$display("i = %0d, value = %f", i, value);
$finish;
end
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.