Sized Numbers
Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 14번째.
Verilog에서 특정 크기의 숫자를 선언하는 방법이 있습니다. 이를 크기가 지정된 숫자라고 합니다. 이는 숫자가 몇 비트인지에 대한 혼동을 방지하고 하드웨어가 예상한 대로 정확히 동작하도록 보장하므로 유용합니다.
크기가 지정된 숫자는 다음 형식을 따릅니다: [bits]'[format][value]
<strong>bits</strong>: 비트 수(예:8)<strong>'</strong>: 크기와 형식을 구분하는 아포스트로피(필수)
<strong>format</strong>: 숫자의 진법: 2진수는b, 10진수는d, 16진수는h, 8진수는o<strong>value</strong>: 실제 숫자(예:1010)
예:
4'b1010: 4비트, binary 1010 (decimal 10)8'd255: 8비트, decimal 255 (binary 11111111)16'hFF: 16비트, hex FF (binary 0000000011111111)3'b1: 3비트, binary 001 (왼쪽 비트는 0으로 채워집니다)
코드 예제:
reg [7:0] data;
data = 8'b10101010; // 8 bits, binary 10101010
data = 8'd170; // 8비트, 십진수 170
data = 8'hAA; // 8 bits, hex AA세 예제 모두 data에 동일한 값을 할당합니다.
크기가 중요한 이유
크기가 없으면:
reg [7:0] data;
data = 1; // 이게 무슨 뜻인가요? 1비트? 8비트?Verilog는 기본적으로 작은 수를 32비트로 가정하므로 문제가 발생할 수 있습니다.
크기 지정:
reg [7:0] data;
data = 8'b00000001; // Clear: 8-bit value 1제로 패딩
더 큰 벡터에 더 작은 값을 할당하면 Verilog는 왼쪽 비트를 0으로 채웁니다.
reg [7:0] data;
data = 4'b1010; // Becomes 8'b00001010챌린지
크기가 올바르게 지정된 숫자를 작성하여 코드를 완성하세요.
What을 수행할 작업:
a를 decimal 170에 해당하는 8비트 binary 숫자(binary 10101010)로 설정하세요b를 decimal 12에 해당하는 4비트 binary 숫자(binary 1100)로 설정하세요c를 decimal 255에 해당하는 16비트 hex 숫자(hex FF)로 설정하세요
직접 해보기
module sized_challenge;
reg [7:0] a;
reg [3:0] b;
reg [15:0] c;
initial begin
a = ______; // 170의 8비트 이진수 (10101010)
b = ______; // 12의 4비트 이진수 (1100)
c = ______; // 255의 16비트 16진수 (FF)
$display("a = %b", a);
$display("b = %b", b);
$display("c = %h", c);
$finish;
end
endmodule이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine Logic직접 연습해 보세요: 온라인 Verilog 컴파일러