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

Menguasai std_logic VHDL: Status, Resolusi, dan Analisis Gelombang

Dalam VHDL, tipe std_logic adalah dasar untuk mewakili satu bit pada kawat fisik. Tidak seperti tipe integer biasa yang digunakan dalam tutorial sebelumnya, std_logic menawarkan himpunan nilai yang lebih kaya yang memodelkan perilaku sinyal digital dunia nyata dengan lebih akurat.

Sementara pin digital biasanya membawa logika tinggi ('1') atau logika rendah ('0'), sinyal fisik juga dapat muncul dalam keadaan high-impedance, lemah, atau tidak terdefinisi. Tipe std_logic menangkap semua kemungkinan ini, menjadikannya tipe yang paling sering digunakan dalam desain VHDL.

Artikel ini adalah bagian dari seri Tutorial VHDL Dasar.

Di bawah ini adalah daftar lengkap nilai yang dapat dipegang oleh sinyal std_logic:

'1'Logika 1
'0'Logika 0
'Z'High impedance
'W'Sinyal lemah; 0 atau 1 tidak terdefinisi
'L'Lemah 0 (pulldown)
'H'Lemah 1 (pullup)
'-'Don't care
'U'Belum diinisialisasi
'X'Tidak diketahui (beberapa driver)

Dalam sebagian besar tutorial kita akan fokus pada nilai utama '1' dan '0', dan sesekali 'U' dan 'X' untuk menyoroti kesalahan desain. Keadaan lainnya adalah fitur lanjutan yang berguna untuk memodelkan protokol seperti I²C atau membuat bus tri-state.

Beberapa proses mendorong sinyal std_logic yang sama, bahasa menggunakan fungsi resolusi untuk menentukan nilai yang dihasilkan. Mekanisme ini mencegah kesalahan waktu kompilasi atau waktu eksekusi dalam simulasi dan didefinisikan oleh tabel resolusi, seperti ditunjukkan di bawah.

U X 0 1 Z W L H -
U X X 1 1 1 1 1 X 1
U X 0 X 0 0 0 0 X 0
U U U U U U U U U U
U X X X X X X X X X
U X 0 1 Z W L H X Z
U X 0 1 W W W W X W
U X 0 1 L W L W X L
U X 0 1 H W W H X H
U X X X X X X X X -

Latihan

Tutorial video ini menunjukkan cara mendeklarasikan sinyal std_logic dan memvisualisasikannya dalam simulasi gelombang.

Kode VHDL akhir yang dihasilkan dalam latihan ini ditampilkan di bawah ini:

library ieee; use ieee.std_logic_1164.all; entity T10_StdLogicTb is end entity; architecture sim of T10_StdLogicTb is signal Signal1 : std_logic := '0'; signal Signal2 : std_logic; signal Signal3 : std_logic; begin process is begin wait for 10 ns; Signal1 <= not Signal1; end process; -- Driver A process is begin Signal2 <= 'Z'; Signal3 <= '0'; wait; end process; -- Driver B process(Signal1) is begin if Signal1 = '0' then Signal2 <= 'Z'; Signal3 <= 'Z'; else Signal2 <= '1'; Signal3 <= '1'; end if; end process; end architecture; 

Jendela gelombang di ModelSim setelah menekan run dan memperbesar timeline:

Menguasai std_logic VHDL: Status, Resolusi, dan Analisis Gelombang

Gelombang dengan kursor ditempatkan pada bagian lain dari siklus sinyal berulang:

Menguasai std_logic VHDL: Status, Resolusi, dan Analisis Gelombang

Analisis

Latihan ini mengilustrasikan fungsi resolusi VHDL dalam tindakan. Dengan memeriksa gelombang daripada mengandalkan output teks saja, kita mendapatkan gambaran yang lebih jelas tentang bagaimana beberapa driver berinteraksi pada sinyal std_logic.

Signal1 diubah oleh satu proses, jadi nilainya bergantian secara bersih antara '0' dan '1'. Sinyal yang didorong oleh Driver A dan Driver B menyelesaikan sesuai dengan tabel yang ditampilkan sebelumnya.

SinyalDriver ADriver BHasil
Signal2'Z''Z''Z'
Signal2'Z''1''1'
Signal3'0''Z''0'
Signal3'0''1''X'

Menguasai std_logic VHDL: Status, Resolusi, dan Analisis Gelombang

Kesimpulan

Lanjutkan ke tutorial berikutnya »

VHDL

  1. Kendala Utama Alur Kerja Pencetakan 3D & Solusi Terbukti
  2. Masalah Umum Sistem Pendinginan Mobil & Cara Mengdiagnosinya
  3. Membuka Data IoT: Bagaimana Manajemen Aturan Bisnis Mendorong Nilai Perusahaan
  4. Implementasi Linked List Dinamis di VHDL dengan Tipe Terlindung dan Pointer Akses
  5. Memanfaatkan Prosedur Dalam Proses untuk Desain FSM VHDL yang Lebih Bersih
  6. Menggunakan Fungsi Tidak Murni di VHDL: Meningkatkan Keterbacaan dan Pemeliharaan FSM
  7. Menguasai Fungsi VHDL: Panduan Praktis untuk Desain Efisien
  8. Panduan Keselamatan Engine Hoist: Praktik Terbaik untuk Tempat Kerja
  9. Penyebab Utama Kecelakaan Crane & Cara Mencegahnya
  10. Aplikasi Industri Utama Legasi A286: Kekuatan Tinggi & Tahan Karat