- 1 1. Apa Itu Verilog? Gambaran Keseluruhan dan Kes Penggunaan
- 2 2. Sintaks Asas dan Konsep Verilog
- 3 3. Ciri-ciri Utama Verilog
- 4 4. Contoh Reka Bentuk Praktikal Menggunakan Verilog
- 5 5. Sumber dan Alat untuk Pembelajaran Verilog
- 6 6. Soalan Lazim Mengenai Pembelajaran Verilog
- 7 7. Bergerak ke Langkah Seterusnya dengan Verilog
1. Apa Itu Verilog? Gambaran Keseluruhan dan Kes Penggunaan
Definisi Asas Verilog
Verilog adalah salah satu bahasa penerangan perkakasan (HDL) yang digunakan untuk mereka bentuk litar digital. Manakala bahasa pengaturcaraan perisian menerangkan program komputer, Verilog digunakan untuk menerangkan kelakuan litar dan sistem digital. Dengan menggunakan bahasa ini, anda dapat mempermudah reka bentuk litar yang kompleks dan melaksanakan simulasi serta sintesis dengan cekap (penukaran kepada litar yang boleh dihasilkan). Verilog dibangunkan pada tahun 1984 dan diseragamkan oleh IEEE (Institute of Electrical and Electronics Engineers) pada tahun 1995. Sejak itu, ia terus berkembang dan kini banyak digunakan untuk reka bentuk FPGA (Field-Programmable Gate Array) dan ASIC (Application-Specific Integrated Circuit).
Peranan Verilog dalam Reka Bentuk Litar Digital
Reka bentuk litar digital ialah proses membina sistem yang memproses maklumat menggunakan isyarat elektrik. Contohnya termasuk pemproses dan memori dalam telefon pintar serta komputer. Verilog berfungsi sebagai alat yang cekap untuk mereka bentuk sistem digital tersebut. Secara khusus, ia digunakan dalam senario seperti:
- Reka bentuk FPGA : FPGA adalah peranti yang sangat fleksibel. Verilog membolehkan jurutera menentukan fungsi FPGA secara bebas dan memprogram semula peranti mengikut keperluan.
- Reka bentuk ASIC : ASIC ialah litar bersepadu khusus untuk aplikasi tertentu. Verilog membolehkan reka bentuk IC tersuai.
- Simulasi : Litar yang diterangkan dalam Verilog boleh disimulasikan dalam perisian untuk mengesahkan kelakuan terlebih dahulu, membolehkan pengesanan awal dan pembetulan ralat reka bentuk.
Apa Yang Akan Anda Pelajari dalam Artikel Ini
Artikel ini menyediakan penjelasan langkah demi langkah untuk pemula yang belajar Verilog buat pertama kali atau mereka yang mengulang kaji asas-asasnya. Topik termasuk:
- Sintaks asas dan konsep asas Verilog
- Contoh reka bentuk praktikal dan teknik penyahpepijatan
- Sumber berguna serta cadangan alat
Pembaca sasaran termasuk:
- Pemula yang ingin belajar Verilog atau HDL
- Jurutera yang memulakan reka bentuk FPGA atau ASIC
- Pereka atau pelajar yang mengulang kaji pengetahuan asas

2. Sintaks Asas dan Konsep Verilog
Sintaks dan Struktur Verilog
Mendefinisikan dan Menggunakan Modul
Dalam Verilog, unit paling asas ialah “module”. Modul mewakili komponen litar dan menyimpan penerangan input, output, serta struktur dalaman. Berikut ialah contoh modul ringkas:
module AND_gate (
input wire a, // input a
input wire b, // input b
output wire y // output y
);
assign y = a & b; // AND operation
endmodule
Kod ini melakukan operasi AND pada dua input (a dan b) dan mengeluarkan hasil ke y. Modul didefinasikan menggunakan kata kunci module dan diakhiri dengan endmodule.
Memilih Jenis Data (wire vs. reg)
Verilog menggunakan dua jenis data utama:
- wire : Mewakili wayar fizikal. Digunakan untuk menyambungkan isyarat.
- reg : Mewakili pendaftar. Digunakan untuk menyimpan nilai berdasarkan peristiwa jam.
Contoh:
module Example (
input wire clk, // clock input
input wire rst, // reset input
input wire a, // input a
output reg y // output y
);
always @(posedge clk or posedge rst) begin
if (rst)
y <= 0; // output = 0 on reset
else
y <= a; // assign input a to output y on clock edge
end
endmodule
Di sini, y perlu menyimpan nilai, jadi jenis reg digunakan dalam blok always.
Struktur Kawalan (if, case) dan Nota Simulasi
Menggunakan Penyataan if
Verilog menggunakan if untuk percabangan bersyarat:
always @(posedge clk) begin
if (a == 1'b1)
y <= 1'b0; // set y = 0 when a is 1
else
y <= 1'b1; // otherwise set y = 1
end
Menggunakan Penyataan case
(Nota: bahagian seterusnya belum disediakan.)
always @(state) begin
case (state)
2'b00: y = 1'b0;
2'b01: y = 1'b1;
2'b10: y = 1'b0;
2'b11: y = 1'b1;
default: y = 1'bx; // unknown state
endcase
end
Konsep Asas untuk Pemula
Penetapan Blocking vs. Non-Blocking
Verilog menawarkan dua jenis penetapan:
- Blocking (
=) : Dilaksanakan secara berurutan. - Non-blocking (
<=) : Dilaksanakan secara serentak.
Contoh:
always @(posedge clk) begin
a = b; // blocking
c <= d; // non-blocking
end
Berfikir secara Selari
Verilog menyokong pelaksanaan selari:
always @(posedge clk) begin
a <= b + 1;
end
always @(posedge clk) begin
c <= d - 1;
end
Perbezaan Antara Simulasi dan Sintesis
- Simulasi : Mengesahkan kelakuan dalam perisian.
- Sintesis : Menukar reka bentuk menjadi perkakasan.
Sesetengah konstruk seperti initial hanya untuk simulasi.
3. Ciri-ciri Utama Verilog
Kekuatan dan Perbandingan dengan HDL Lain
Kekuatan Verilog
- Sintaks mudah
- Verilog menyerupai C, memudahkan pengaturcara untuk mempelajarinya.
- Elemen asasnya—modul, jenis data, operator—adalah intuitif.
- Sokongan meluas
- Standard dalam alat FPGA/ASIC seperti Vivado dan ModelSim.
- Komuniti pembelajaran yang besar dan sumber-sumber.
- Metodologi reka bentuk yang fleksibel
- Menyokong reka bentuk RTL dan lain-lain.
Membandingkan Verilog, VHDL, dan SystemVerilog
| Language | Features | Use Cases |
|---|---|---|
| Verilog | Simplified syntax, low learning cost. Widely used for FPGA/ASIC. | Rapid prototyping, FPGA design |
| VHDL | Strict grammar, supports robust and precise designs. | Mission-critical systems |
| SystemVerilog | Enhanced version of Verilog. Supports advanced testbenches and class-based design. | Advanced verification and system design |
- Perbezaan dengan VHDL : VHDL menekankan sintaks yang ketat, manakala Verilog memberi keutamaan kepada ekspresi yang ringkas.
- Perbezaan dengan SystemVerilog : SystemVerilog menambah ciri berorientasikan objek dan keupayaan pengesahan lanjutan.
Kes Penggunaan Praktikal Verilog
Peranan Verilog dalam Reka Bentuk FPGA
FPGA ialah litar bersepadu yang boleh diprogramkan yang membolehkan konfigurasi perkakasan yang fleksibel. Verilog membolehkan mereka bentuk logik digital yang kompleks dengan cekap. Peranan utama termasuk:
- Prototip
- Digunakan untuk mengesahkan kelakuan litar pada peringkat awal pembangunan produk.
- Prototip pantas dengan penyesuaian mudah kepada perubahan spesifikasi.
- Pengesahan Tingkah Laku
- Simulasi dengan Verilog membantu mengenal pasti isu reka bentuk pada peringkat awal.
- Alat seperti ModelSim membolehkan jurutera membina testbench dan memerhati kelakuan sistem.
Aliran Asas Simulasi Litar
Langkah umum untuk simulasi berasaskan Verilog ialah:
- Huraikan litar
- Laksanakan litar sasaran menggunakan Verilog.
- Cipta testbench
- Testbench menentukan persekitaran untuk mengesahkan kelakuan litar.
- Contoh:
module Testbench; reg a, b; wire y; // Instantiate the module under test AND_gate uut ( .a(a), .b(b), .y(y) ); initial begin // Apply test patterns a = 0; b = 0; #10; a = 0; b = 1; #10; a = 1; b = 0; #10; a = 1; b = 1; #10; end endmodule
- Jalankan simulasi
- Laksanakan testbench dalam simulator dan sahkan kelakuan yang dijangka.
- Analisis keputusan
- Periksa output gelombang dan kenal pasti isu reka bentuk.

4. Contoh Reka Bentuk Praktikal Menggunakan Verilog
Pembelajaran melalui Kod Verilog Contoh
Contoh Reka Bentuk Kaunter (dengan Penjelasan Kod)
Kaunter adalah komponen asas dalam reka bentuk digital. Berikut ialah kaunter ringkas yang meningkat berdasarkan isyarat jam:
module Counter (
input wire clk, // clock input
input wire rst, // reset input
output reg [3:0] count // 4-bit counter output
);
always @(posedge clk or posedge rst) begin
if (rst)
count <= 4'b0000; // reset counter to 0
else
count <= count + 1; // increment on rising edge
end
endmodule
Penjelasan:
clkmengawal masa.rstmemulakan semula kaunter.- Kaunter meningkat dari 0 hingga 15 secara serentak dengan jam.
Contoh FSM (Finite State Machine) dan Aplikasi
FSMs digunakan untuk mereka bentuk litar dengan pelbagai keadaan. Berikut adalah contoh ringkas dengan tiga keadaan:
module FSM (
input wire clk, // clock input
input wire rst, // reset input
input wire in, // trigger input
output reg [1:0] state // current state
);
// State definitions
localparam STATE0 = 2'b00,
STATE1 = 2'b01,
STATE2 = 2'b10;
always @(posedge clk or posedge rst) begin
if (rst)
state <= STATE0; // initial state
else begin
case (state)
STATE0: state <= (in) ? STATE1 : STATE0;
STATE1: state <= (in) ? STATE2 : STATE0;
STATE2: state <= (in) ? STATE0 : STATE1;
default: state <= STATE0;
endcase
end
end
endmodule
Penjelasan:
- Keadaan ditakrifkan menggunakan
localparam. casemengendalikan peralihan berdasarkanin.- Struktur ini boleh digunakan pada pengawal atau litar penjanaan isyarat.
Reka Bentuk Penambah Ringkas (Mesra Pemula)
Penambah 2-bit asas:
module Adder (
input wire [1:0] a, // 2-bit input a
input wire [1:0] b, // 2-bit input b
output wire [2:0] sum // 3-bit output to handle carry
);
assign sum = a + b; // addition
endmodule
Penjelasan:
- Menggunakan
assignuntuk logik kombinasional. - Output 3-bit mengambil kira pembawa-keluar.
- Ini adalah blok binaan asas untuk logik aritmetik.
Isu Biasa dan Penyelesaian
Ralat Biasa (Simulasi & Sintesis)
- Ralat Simulasi
- Simptom: Isyarat menjadi tidak ditakrifkan (
x). - Punca: Kekurangan inisialisasi atau sambungan modul yang salah.
- Penyelesaian: Takrifkan nilai awal atau inisialisasi melalui testbench.
- Ralat Sintesis
- Simptom: Menggunakan konstruk yang tidak boleh disintesis (contohnya,
initial). - Punca: Penyertaan kod hanya untuk simulasi.
- Penyelesaian: Gunakan struktur yang boleh disintesis (seperti
always).
Menggunakan Alat Penyahpepijatan Secara Berkesan
Reka bentuk Verilog memerlukan penyahpepijatan yang kukuh. Alat biasa termasuk:
- Simulasi (contohnya, ModelSim)
- Periksa tingkah laku isyarat dan sahkan masa melalui paparan gelombang.
- Pemapar Gelombang
- Analisis secara visual isyarat input/output untuk mengenal pasti isu reka bentuk.
- Mesej Penyahpepijatan
- Gunakan
$displayuntuk cetak nilai semasa simulasi:initial begin $display("Initial state: %b", state); end

5. Sumber dan Alat untuk Pembelajaran Verilog
Sumber Pembelajaran yang Disyorkan
Buku & Tutorial untuk Pemula
Bagi pendatang baru, bahan pembelajaran yang boleh dipercayai adalah penting. Pilihan yang disyorkan termasuk:
- Buku
“Introduction to Digital Design with HDL”
- Menerangkan konsep asas kedua-dua Verilog dan VHDL.
“Verilog HDL: A Guide to Digital Design and Synthesis”
Buku bahasa Inggeris komprehensif yang meliputi asas hingga reka bentuk lanjutan.
“Digital Design and Verilog HDL Fundamentals”
Sesuai untuk pemula hingga pembelajar sederhana, dengan tumpuan kuat pada reka bentuk berasaskan Verilog.
- Tutorial Dalam Talian
YouTube
- Tutorial percuma tersedia dalam bahasa Inggeris dan Jepun.
- Membolehkan pelajar mengikuti bersama kod sebenar.
Laman Web
EDA Playground : Persekitaran berasaskan pelayar untuk menjalankan Verilog.
- ASIC World : Menawarkan tutorial dari sintaks kepada contoh reka bentuk praktikal.
Kursus Video dan Pembelajaran Tangan
- Udemy
- Kursus seperti “Verilog for Beginners” dan “Learn FPGA Design” menyediakan kandungan berstruktur.
- Coursera
- Kursus tahap universiti yang memberi tumpuan kepada reka bentuk perkakasan.
Alat yang Menyokong Pembangunan
Alat Pemodelan (ModelSim, Vivado)
- ModelSim
- Alat simulasi Verilog terkemuka.
Ciri-ciri:
- Antara muka mesra pengguna.
- Pemapar gelombang intuitif untuk penyahpepijatan.
- Vivado
- Suite reka bentuk FPGA Xilinx.
Ciri-ciri:
- Sokongan bersepadu dari RTL ke pelaksanaan.
- Sambungan lancar dengan papan FPGA Xilinx.
Memilih dan Memasang Alat Sintesis
- Quartus Prime
- Pakej pembangunan FPGA Intel, dengan edisi percuma tersedia.
- ISE Design Suite
- Digunakan untuk peranti FPGA Xilinx yang lebih lama.
6. Soalan Lazim Mengenai Pembelajaran Verilog
Bagaimana Pemula Sepatutnya Mula Belajar Verilog?
Soalan: Saya baru mula belajar Verilog. Apakah cara terbaik untuk bermula?
Jawapan:
- Mula dengan asas
- Mulakan dengan mereka bentuk litar ringkas seperti gerbang AND/OR. Memahami sintaks asas dan struktur modul adalah penting.
- Gunakan alat simulasi
- Alat seperti ModelSim atau Vivado membantu mengesahkan kod anda. Menjalankan simulasi mendalamkan pemahaman anda.
- Gunakan sumber yang boleh dipercayai
- Rujuk buku dan tutorial dalam talian untuk membina asas yang kukuh (lihat Seksyen 5 untuk cadangan).
- Cuba projek kecil
- Selepas belajar asas, cuba membina projek kecil seperti penghitung 4-bit atau FSM ringkas.
Adakah Saya Perlu Memilih VHDL atau Verilog?
Soalan: Bahasa mana yang patut saya belajar—VHDL atau Verilog? Bila setiap satu patut digunakan?
Jawapan:
- Bila memilih Verilog
- Sintaks Verilog yang ringkas menjadikannya mesra pemula, terutamanya bagi mereka yang mempunyai pengalaman pengaturcaraan C.
- Digunakan secara meluas untuk prototaip dan pembangunan FPGA.
- Bila memilih VHDL
- Ideal untuk sistem kritikal misi yang memerlukan pengesahan reka bentuk yang ketat.
- Pemeriksaan jenis yang kuat mengurangkan peluang ralat reka bentuk.
- Kriteria pemilihan
- Kemudahan pembelajaran : Verilog biasanya lebih mudah untuk pemula.
- Keperluan projek : Ikuti bahasa yang digunakan dalam persekitaran reka bentuk.
- Sokongan alat : Kebanyakan alat menyokong kedua-duanya, tetapi pemilihan bergantung pada FPGA/ASIC sasaran.
Kesilapan Biasa yang Perlu Dihindari oleh Pemula
Soalan: Apakah kesilapan yang biasa dibuat oleh pemula semasa belajar Verilog, dan bagaimana mereka boleh mengelakkannya?
Jawapan:
- Kekurangan inisialisasi
- Isyarat mungkin muncul sebagai
x(tidak ditakrif) semasa simulasi. - Penyelesaian: Sentiasa inisialisasi isyarat atau tetapkan nilai dalam testbench anda.
initial begin signal = 0; // initialize signal end
- Keliru antara penugasan blok dan bukan blok
- Penyalahgunaan
=(blok) dan<=(bukan blok) boleh menyebabkan tingkah laku tidak dijangka. - Penyelesaian: Gunakan penugasan bukan blok dalam blok
alwaysyang dikawal jam.
- Campur aduk kod yang boleh disintesis dan kod simulasi sahaja
- Memasukkan konstruk simulasi sahaja (contohnya,
initial) dalam logik yang boleh disintesis menyebabkan ralat. - Penyelesaian: Pisahkan logik yang boleh disintesis daripada blok simulasi sahaja.
- Salah faham tentang pelaksanaan selari
- Verilog menerangkan tingkah laku perkakasan selari, bukan logik perisian berurutan.
- Penyelesaian: Fahami bahawa setiap blok
alwaysberjalan secara bebas.

7. Bergerak ke Langkah Seterusnya dengan Verilog
Mengkaji Kemajuan Pembelajaran Verilog Anda
Senarai Semak Kajian
- Pemahaman sintaks asas : Pastikan anda boleh menerangkan modul, jenis data, dan struktur kawalan.
- Pengalaman reka bentuk praktikal : Penghitung, FSM, dan reka bentuk serupa sepatutnya terasa selesa.
- Penggunaan alat : Anda sepatutnya boleh mensimulasikan dan menyahpepijatan dengan ModelSim atau Vivado.
Menyediakan untuk Langkah Seterusnya
- Jika anda memahami asas, anda sudah sedia untuk meneruskan ke topik yang lebih maju.
- Gunakan langkah-langkah di bawah untuk mengembangkan kemahiran teknikal anda.
Maju ke Reka Bentuk FPGA
Belajar Asas FPGA
FPGA (Field-Programmable Gate Array) adalah salah satu platform paling praktikal untuk menerapkan kemahiran Verilog.
- Sediakan papan pembangunan FPGA
- Papan pemula yang disyorkan: Basys 3, Nexys A7 (Digilent)
- Sebab: Sokongan komuniti yang kuat dan integrasi mudah dengan Vivado.
- Mulakan dengan projek ringkas
- Mulakan dengan kedipan LED atau litar dikawal suis.
- Belajar pembahagian jam dan logik kawalan asas.
- Bergerak ke sistem yang lebih kompleks
- Reka pengawal multi-FSM, antara muka memori, dan sistem bersepadu.
Beralih ke SystemVerilog
Mengapa Mempelajari SystemVerilog?
- SystemVerilog memperluas Verilog dengan ciri pengesahan lanjutan dan berorientasikan objek.
- Berguna untuk membina testbench yang canggih dan sistem berskala besar.
Topik Utama untuk Dipelajari
- Testbench berasaskan kelas
- Membolehkan ujian rawak dan analisis liputan.
- Menggunakan antara muka
- Mempermudah komunikasi antara modul.
- Struktur kawalan lanjutan
- Pelajari ciri seperti
uniquedanpriorityuntuk meningkatkan keselamatan reka bentuk.
Bekerja pada Projek Dunia Sebenar
Sertai Projek Sumber Terbuka
- Reka bentuk pemproses RISC-V
- Modul DSP (Pemprosesan Isyarat Digital) ringkas
Mulakan Projek Anda Sendiri
- Cipta reka bentuk asal berdasarkan minat anda.
- Contoh: jam digital, pemproses audio, litar penapisan isyarat.
Langkah Pembelajaran Seterusnya yang Disyorkan
Peroleh Kemahiran Reka Bentuk Lanjutan
- Reka bentuk paip
- Pelajari asas yang digunakan dalam pemproses berprestasi tinggi.
- Memahami domain jam
- Kuasai teknik untuk mengendalikan isyarat merentasi pelbagai domain jam.
- Reka bentuk kuasa rendah
- Terapkan kaedah reka bentuk cekap tenaga untuk aplikasi dunia sebenar.


