Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> VHDL

Menguasai VHDL & Verilog: Menulis Logika Kombinasional dan Sekuensial yang Rapi

Menggunakan Blok Process atau Always

Dalam VHDL dan Verilog, blok Process (VHDL) dan Always (Verilog) adalah konstruksi inti untuk mendeskripsikan perilaku hardware. Digunakan untuk memodelkan dua tipe logika yang berbeda:

  1. Logika kombinasi – output hanya bergantung pada input saat ini.
  2. Logika sekuensial – output bergantung pada input saat ini dan status masa lalu, biasanya didorong oleh clock.

Sementara banyak buku teks mengilustrasikan contoh kombinasi yang sederhana, desain dunia nyata hampir eksklusif bergantung pada blok sekuensial untuk mengimplementasikan register, mesin status, dan tahap pipeline.

Mengapa D Flip-Flop Penting

Di jantung setiap sirkuit sekuensial adalah D flip-flop, elemen minimal yang menangkap dan menyimpan satu bit data pada tepi clock. Memahami timing dan batasan setup/hold-nya esensial sebelum menyelami kode HDL yang lebih tinggi.

Menguasai VHDL & Verilog: Menulis Logika Kombinasional dan Sekuensial yang Rapi

Pembaca yang tidak akrab dengan dasar-dasar D flip-flop harus berhenti di sini untuk meninjau operasi flip-flop dasar.

Logika Kombinasi dalam Blok Process/Always

Meskipun memungkinkan, menggunakan blok Process atau Always hanya untuk penugasan kombinasi jarang direkomendasikan. Penugasan kontinu langsung lebih jelas dan kurang rentan kesalahan.

Contoh VHDL

process (input_1, input_2) begin and_gate <= input_1 and input_2; end process; 

Contoh Verilog

always @ (input_1 or input_2) begin and_gate = input_1 & input_2; end 

Daftar sensitivitas (misalnya, input_1, input_2) memastikan blok dieksekusi setiap kali sinyal yang terdaftar berubah. Namun, fungsionalitas yang sama dapat diekspresikan lebih ringkas dengan penugasan kontinu:

-- VHDL and_gate <= input_1 and input_2; 
// Verilog assign and_gate = input_1 & input_2; 

Pernyataan ini setara dalam efek tetapi penugasan kontinu lebih disukai untuk logika kombinasi murni.

Logika Sekuensial: Kasus Penggunaan Umum

Blok Process (VHDL) dan Always (Verilog) unggul saat memodelkan perilaku didorong clock. Pola typis termasuk daftar sensitivitas yang mencakup clock dan reset asinkron opsional:

Contoh Sekuensial VHDL

process (clk, rst_n) begin if rst_n = '0' then q <= '0'; elsif rising_edge(clk) then q <= d; end if; end process; 

Contoh Sekuensial Verilog

always @(posedge clk or negedge rst_n) begin if (!rst_n) q <= 1'b0; else q <= d; end 

Cuplikan ini mengilustrasikan bagaimana D flip-flop diinstansiasi implisit oleh HDL. Desainer harus menggunakan pola ini kapan pun sinyal harus diregistrasi atau status harus dipertahankan.

Praktik Terbaik

Dengan mengikuti pedoman ini, Anda akan menulis HDL yang efisien untuk disintesis dan mudah untuk diverifikasi.

VHDL

  1. Menguasai VHDL & Verilog: Menulis Logika Kombinasional dan Sekuensial yang Rapi
  2. Infrastruktur sebagai Kode: Manfaat, Tantangan, dan Praktik Terbaik
  3. Fungsi Logika Kombinatorial: Dasar-dasar dan Aplikasi Praktis
  4. Apa Itu Coding? Panduan Praktis Bahasa, Alur Kerja, dan Tantangan Umum
  5. Penguasaan Xilinx Vivado: Debugging Integrated Logic Analyzer (ILA) & Virtual Input/Output (VIO)
  6. Java Stack vs. Heap: Panduan Praktis Alokasi Memori
  7. Cara Membaca dan Menulis File CSV dalam Python: Panduan Komprehensif
  8. Logika Tangga 102: Manfaat, Kerugian, dan Kapan Menggunakannya
  9. Penulisan Prosedur Digital: Sederhana, Efisien, dan Terpercaya
  10. Memahami Perbedaan Kunci G-Code dan M-Code untuk Operator CNC