Tingkat Abstraksi Desain
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 5 dari 90.
Dalam desain digital, kita dapat menjelaskan sirkuit yang sama dengan tingkat perincian yang berbeda. Verilog adalah bahasa yang dapat menjelaskan sirkuit pada tingkat abstraksi mana pun. Itulah yang membuatnya sangat bermanfaat!
Berikut adalah level-levelnya:
Level 1: Perilaku
Level ini menjelaskan apa yang dilakukan sirkuit, bukan bagaimana sirkuit melakukannya. Level ini berfokus pada fungsi atau perilakunya, seperti "menghitung naik" atau "menjumlahkan dua angka."
Detail internal tentang cara penghitungan atau penjumlahan berlangsung tidak ditampilkan. Tingkat ini paling dekat dengan cara berpikir manusia dan lebih mudah ditulis.
Level 2: RTL
Level ini menunjukkan bagaimana data berpindah antarregister dan operasi apa yang dilakukan pada data tersebut. Kamu bisa melihat jalur data: data berpindah dari sebuah register ke penjumlah, lalu kembali ke register.
Inilah tingkat yang paling sering digunakan oleh desainer digital karena memberikan keseimbangan yang baik antara mudah dipahami dan cukup terperinci untuk membuat perangkat keras.
Tingkat 3: Tingkat Gerbang
Tingkat ini menjelaskan rangkaian menggunakan gerbang logika dasar seperti AND, OR, dan XOR. Setiap koneksi ditampilkan secara eksplisit.
Level ini sangat terperinci dan sulit ditulis dengan tangan. Biasanya, level ini dihasilkan oleh alat dari deskripsi tingkat lebih tinggi, bukan ditulis secara manual.
Mengapa Ini Penting
- **Level lebih tinggi** = Lebih mudah ditulis, kontrol lebih sedikit
- **Level lebih rendah** = Lebih sulit ditulis, kontrol lebih besar
- **RTL** adalah pilihan yang paling pas untuk sebagian besar pekerjaan desain
Tantangan
Yang harus dilakukan:
- Jalankan kode ini dan lihat bagaimana operasi yang sama dijelaskan pada tiga tingkat yang berbeda:
Coba sendiri
module abstraction_demo;
initial begin
$display("=== Design Abstraction Levels ===");
$display("");
$display("Level 1 (Behavioral):");
$display(" 'Add a and b' - no details how");
$display("");
$display("Level 2 (RTL):");
$display(" 'On clock edge, result <= a + b' - shows data flow");
$display("");
$display("Level 3 (Gate Level):");
$display(" 'XOR gates for sum, AND gates for carry' - actual gates");
$display("");
$finish;
end
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online