Menu
CoddyTech

Bilangan Tanpa Ukuran

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

Angka tanpa ukuran adalah angka yang ditulis tanpa menentukan jumlah bitnya. Saat kamu menulis angka tanpa awalan ukuran, Verilog menganggap ukurannya 32 bit secara default.

a = 'b1010;        // Unsized: Verilog treats this as 32 bits
a = 32'b1010;    // Sama seperti di atas, tetapi dinyatakan secara eksplisit

Bilangan tanpa ukuran hanya menggunakan format dan nilai: [format][value]

  • format: basis bilangan: b untuk biner, d untuk desimal, h untuk heksadesimal, atau o untuk oktal
  • value: bilangan sebenarnya (misalnya, 1010)

Apostrof ' tetap diperlukan di antara format dan nilai, tetapi tidak ada jumlah bit sebelum apostrof.

  • 'b1010: bilangan biner 1010 berukuran 32 bit
  • 'd255: bilangan desimal 255 berukuran 32 bit
  • 'hFF: bilangan heksadesimal FF berukuran 32 bit
  • 'b1: bilangan biner 1 berukuran 32 bit (dengan 31 nol di depan)

Contoh kode:

reg [7:0] data;

initial begin
  data = 1010;      // Tanpa ukuran: nilai 32-bit (dapat memicu peringatan)
  data = 'd255;     // Unsized: 32-bit decimal 255
  data = 'hFF;      // Tanpa ukuran: heksadesimal 32-bit FF
end

Tanpa Ukuran vs Berukuran

 Tanpa ukuranBerukuran
Contoh1010 atau 'd2558'b1010 atau 8'd255
Lebar bit32 bit (default)Eksplisit (sesuai yang ditentukan)
ApostrofWajib dengan formatWajib
Kapan digunakanKode testbench sederhanaPenetapan hardware

Potensi Masalah

Angka tanpa ukuran dapat menyebabkan perilaku yang tidak terduga saat ditetapkan ke register yang lebih kecil:

reg [3:0] small;
small = 'b1111;      // 32-bit value, but fits in 4 bits (fine)
small = 'b10000;     // Nilai 32-bit, tetapi terlalu besar! (peringatan)

Contoh kedua menetapkan nilai 32-bit 10000 ke register 4-bit. Hanya 4 bit terbawah yang dipertahankan (0000), hasilnya mungkin tidak sesuai dengan yang kamu harapkan.

Kapan Menggunakan Bilangan Tanpa Ukuran

Bilangan tanpa ukuran praktis digunakan untuk:

  • Bilangan sederhana dalam testbench
  • Penghitung perulangan
  • Pernyataan $display

Untuk penugasan perangkat keras yang sebenarnya, gunakan angka dengan ukuran yang ditentukan agar jelas dan hindari peringatan.

challenge icon

Tantangan

Pada kode di bawah ini, beberapa angka tidak memiliki ukuran. Ubah menjadi angka berukuran 8 bit untuk menghindari peringatan.

Yang harus dilakukan:

  1. Ubah a menjadi angka biner 8 bit untuk 1010
  2. Ubah b menjadi angka desimal 8 bit untuk 255
  3. Ubah c menjadi angka heksadesimal 8 bit untuk FF

Coba sendiri

module unsized_challenge;
  reg [7:0] a, b, c;
  
  initial begin
    a = 'b1010;      // Change to sized (8-bit binary)
    b = 'd255;     // Ubah menjadi format dengan ukuran tertentu (desimal 8-bit)
    c = 'hFF;      // Change to sized (8-bit hex)
    
    $display("a = %b", a);
    $display("b = %b", b);
    $display("c = %b", 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