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

Menguasai Pernyataan Konkuren dalam VHDL: Panduan Praktis

Pernyataan konkuren dalam VHDL adalah penugasan sinyal yang terletak langsung dalam arsitektur, di luar blok process apa pun. Ini juga disebut sebagai tugas konkuren atau proses konkuren.

Saat Anda menulis pernyataan konkuren, Anda secara efektif membuat proses yang secara otomatis sensitif terhadap setiap sinyal yang muncul di sisi kanan penugasan. Dengan kata lain, tugas konkuren adalah sintaktis gula untuk proses dengan daftar sensitivitas lengkap.

Singkatan ini sangat berguna saat Anda ingin mengimplementasikan logika kombinatorial sederhana yang mendorong satu sinyal. Alih-alih mengeja konstruksi process lengkap dengan daftar sensitivitas, Anda dapat menetapkan langsung ke sinyal target dalam tubuh arsitektur.

Tutorial ini adalah bagian dari seri Tutorial VHDL Dasar.

Saat digunakan dengan benar, niat kode tetap sangat jelas—tidak perlu membingungkan desain dengan proses untuk setiap bit yang ingin Anda nyalakan.

Latihan

Dalam video ini kita mempelajari cara membuat pernyataan konkuren:

Kode akhir yang kita buat dalam tutorial ini:

library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity T13_ConcurrentProcsTb is end entity; architecture sim of T13_ConcurrentProcsTb is signal Uns : unsigned(5 downto 0) := (others => '0'); signal Mul1 : unsigned(7 downto 0); signal Mul2 : unsigned(7 downto 0); signal Mul3 : unsigned(7 downto 0); begin process is begin Uns <= Uns + 1; wait for 10 ns; end process; -- Process multiplying Uns by 4 process is begin Mul1 <= Uns & "00"; wait on Uns; end process; -- Equivalent process using sensitivity list process(Uns) is begin Mul2 <= Uns & "00"; end process; -- Equivalent process using a concurrent statement Mul3 <= Uns & "00"; end architecture; 

Jendela gelombang di ModelSim setelah kita menekan run, dan memperbesar timeline:

Menguasai Pernyataan Konkuren dalam VHDL: Panduan Praktis

Kita dapat melihat dari gelombang bahwa Mul1, Mul2, dan Mul3 berperilaku sama persis. Ini memastikan bahwa pernyataan konkuren dan dua proses yang kita tulis sepenuhnya setara.

Pernyataan konkuren beroperasi sama seperti proses: semua sinyal yang muncul di sisi kanan dari <= secara implisit ditambahkan ke daftar sensitivitasnya. Akibatnya, sinyal di sisi kiri diperbarui setiap kali salah satu sinyal yang dievaluasi berubah.

Dalam contoh ini kita mengalikan sinyal Uns dengan 4 menggunakan geser bit ke kiri. Semua sinyal kami bertipe unsigned, jadi kompiler memperlakukan mereka sebagai nilai numerik. Menambahkan dua bit nol ke kanan bilangan biner setara dengan mengalikan dengan 4.

Menguasai Pernyataan Konkuren dalam VHDL: Panduan Praktis

Kesimpulan

Lanjutkan ke tutorial berikutnya »

VHDL

  1. Contoh Prosedur VHDL: Meningkatkan Vektor Logika Standar
  2. Membuat Daftar String dalam VHDL: Praktik Terbaik & Contoh
  3. Membuat Testbench yang Diakibatkan Tcl untuk Modul Kode-Kunci VHDL
  4. Mengakhiri Simulasi Testbench VHDL dengan Elegan
  5. Implementasi Pengontrol PWM dalam VHDL: Desain, Simulasi, dan Demo FPGA
  6. Merancang Ring Buffer FIFO VHDL yang Kuat di Block RAM
  7. Cara Membuat Testbench Self-Checking di VHDL – Panduan Praktis
  8. Implementasi Linked List Dinamis di VHDL dengan Tipe Terlindung dan Pointer Akses
  9. Memanfaatkan Prosedur Dalam Proses untuk Desain FSM VHDL yang Lebih Bersih
  10. Menguasai Fungsi VHDL: Panduan Praktis untuk Desain Efisien