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

Tutorial - Menulis Kode Kombinasi dan Sekuensial

Menggunakan Proses VHDL atau Verilog Selalu Memblokir

Tutorial ini menunjukkan cara menulis blok VHDL atau Verilog yang terdapat dalam Proses atau Selalu Blokir masing-masing. Proses (dalam VHDL) dan Always Blocks (dalam Verilog) adalah hal mendasar dan perlu dipahami dengan baik. Mereka berperilaku dengan cara yang persis sama, jadi keduanya diperkenalkan di sini untuk Anda, jika Anda belajar hanya satu bahasa sekarang, perhatikan contoh yang difokuskan pada bahasa tertentu. Proses atau Selalu Blok digunakan dalam dua skenario utama:

  1. Untuk menentukan blok kombinasi logika
  2. Untuk menentukan blok berurutan logika

Skenario pertama adalah apa yang biasa terlihat di buku teks saat memperkenalkan Processes atau Always Blocks kepada siswa baru. Ini disajikan di sini untuk Anda, untuk membuat Anda sadar akan keberadaannya. Namun pada kenyataannya, Blok Proses/Selalu yang digunakan untuk mendefinisikan blok logika kombinasional terlihat jauh lebih jarang dalam kode "dunia nyata" daripada Blok Proses/Selalu yang digunakan untuk mendefinisikan logika sekuensial.

Pertanyaan pertama yang mungkin Anda tanyakan pada diri sendiri adalah apa perbedaan antara logika kombinasional dan sekuensial? Logika kombinasional (atau kombinatorial) adalah logika yang tidak memerlukan jam untuk beroperasi. Contoh gerbang-dan sebelumnya adalah contoh kombinasional. Logika sekuensial adalah logika yang memang membutuhkan jam untuk beroperasi. Blok bangunan paling mendasar dari logika sekuensial adalah D Flip-Flop (gambar di bawah).

D Flip-Flop!

Jika Anda tidak mengetahui cara kerja D Flip-Flop, segera hentikan membaca ini! Anda perlu memahami bagaimana sandal jepit digunakan di dalam FPGA sebelum Anda melanjutkan membaca. Siap? Bagus.

Proses kombinasi dalam VHDL:

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

Kombinasi Selalu Blokir di Verilog:

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

Dalam kode VHDL dan Verilog di atas, input_1 dan input_2 berada dalam apa yang disebut daftar sensitivitas . Daftar sensitivitas adalah daftar semua sinyal yang akan menyebabkan Proses/Selalu Blok dijalankan. Dalam contoh di atas, perubahan pada input_1 atau input_2 akan menyebabkan Blok Proses/Selalu dijalankan. Proses/selalu blok ini mengambil dua input, melakukan operasi "dan" pada mereka, dan menyimpan hasilnya dalam sinyal dan_gate. Ini adalah fungsi yang sama persis dengan kode ini:

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

Kedua contoh kode memiliki tujuan yang sama:untuk menetapkan sinyal and_gate. Perbedaannya adalah yang satu berada dalam Proses kombinasional/Selalu Blokir dan yang lainnya tidak. Oleh karena itu karena hasil yang sama dapat dicapai tanpa menggunakan Kombinasi Proses/Selalu Blok, saya tidak menyarankan desainer digital pemula menggunakan pernyataan ini dengan cara ini.

Cara kedua agar Process atau Always Block dapat digunakan (dan contoh yang jauh lebih menarik) adalah dengan mendefinisikan blok logika sekuensial. Sekali lagi, logika sekuensial adalah logika yang di-clock.


VHDL

  1. Tutorial - Menulis Kode Kombinasi dan Sekuensial
  2. Pro Dan Kontra Infrastruktur-sebagai-Code
  3. Pengantar Fungsi Logika Kombinasi
  4. Apa itu Pengkodean :Cara Kerja, Bahasa dan Tantangannya
  5. Menggunakan Integrated Logic Analyzer (ILA) dan Virtual Input/Output (VIO)
  6. Java Stack and Heap:Tutorial Alokasi Memori Java
  7. Cara Membaca File CSV dengan Python | Membaca dan Menulis File CSV
  8. Logika Tangga 102:Pro dan Kontra
  9. Prosedur penulisan:sederhana dan efisien dengan beralih ke digital
  10. Perbedaan Antara Kode G dan Kode M