Menu
CoddyTech

Bilangan Berukuran

Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 14 dari 90.

Ada cara untuk mendeklarasikan angka dengan ukuran tertentu di Verilog. Angka ini disebut angka berukuran tertentu. Cara ini berguna karena mencegah kebingungan tentang jumlah bit pada angka dan memastikan perangkat kerasmu berperilaku sesuai harapan.

Angka berukuran mengikuti format ini: [bits]'[format][value]

  • bits: jumlah bit (misalnya, 8)
  • ': tanda apostrof yang memisahkan ukuran dari format (wajib)
  • format: basis bilangan: b untuk biner, d untuk desimal, h untuk heksadesimal, atau o untuk oktal
  • value: bilangan sebenarnya (misalnya, 1010)

Contohnya:

  • 4'b1010: 4 bit, biner 1010 (desimal 10)
  • 8'd255: 8 bit, desimal 255 (biner 11111111)
  • 16'hFF: 16 bit, heksadesimal FF (biner 0000000011111111)
  • 3'b1: 3 bit, biner 001 (bit di sebelah kiri diisi dengan nol)

Contoh kode:

reg [7:0] data;

data = 8'b10101010;   // 8 bits, binary 10101010
data = 8'd170;        // 8 bit, desimal 170
data = 8'hAA;         // 8 bits, hex AA

Ketiga contoh menetapkan nilai yang sama ke data.

Mengapa Ukuran Penting

Tanpa ukuran:

reg [7:0] data;
data = 1;        // Apa artinya ini? 1 bit? 8 bit?

Verilog menganggap angka kecil memiliki ukuran 32 bit secara default, yang dapat menyebabkan masalah.

Dengan ukuran:

reg [7:0] data;
data = 8'b00000001;   // Clear: 8-bit value 1

Padding Nol

Saat kamu menetapkan nilai yang lebih kecil ke vektor yang lebih besar, Verilog mengisi bit di sebelah kiri dengan nol:

reg [7:0] data;
data = 4'b1010;    // Becomes 8'b00001010
challenge icon

Tantangan

Lengkapi kode dengan menuliskan angka berukuran tepat.

Yang harus dilakukan:

  1. Atur a ke angka biner 8-bit untuk desimal 170 (biner 10101010)
  2. Atur b ke angka biner 4-bit untuk desimal 12 (biner 1100)
  3. Atur c ke angka heksadesimal 16-bit untuk desimal 255 (heksadesimal FF)

Coba sendiri

module sized_challenge;
  reg [7:0] a;
  reg [3:0] b;
  reg [15:0] c;
  
  initial begin
    a = ______;   // biner 8 bit untuk 170 (10101010)
    b = ______;   // biner 4 bit untuk 12 (1100)
    c = ______;   // heksadesimal 16 bit untuk 255 (FF)
    
    $display("a = %b", a);
    $display("b = %b", b);
    $display("c = %h", c);
    $finish;
  end
endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online

Periksa konversi: Konverter Basis Bilangan