Master VHDL:Pengantar Komprehensif untuk Desain FPGA dan ASIC
Tutorial – Pengenalan VHDL
VHDL adalah akronim yang mengerikan. Itu singkatan dari V HSIC H perangkat keras D keterangan L bahasa. Akronim di dalam akronim, luar biasa! VHSIC adalah singkatan dari V ery H ya S pipis saya C terintegrasi sirkuit. Oleh karena itu, VHDL yang diperluas adalah V Sirkuit Terpadu Kecepatan Tinggi H perangkat keras D keterangan L bahasa. Fiuh, itu seteguk. VHDL adalah salah satu dari dua bahasa yang digunakan oleh pendidikan dan bisnis untuk merancang FPGA dan ASIC. Anda mungkin akan mendapat manfaat dari pengenalan FPGA dan ASIC terlebih dahulu jika Anda belum terbiasa dengan rangkaian menarik ini. VHDL dan Verilog adalah dua bahasa yang digunakan desainer digital untuk mendeskripsikan sirkuit mereka, dan keduanya berbeda secara desain dibandingkan bahasa perangkat lunak tradisional seperti C dan Java.
Untuk contoh di bawah ini, kita akan membuat file VHDL yang menjelaskan sebuah Gerbang Dan. Sebagai penyegaran, Gerbang Dan sederhana memiliki dua masukan dan satu keluaran. Outputnya sama dengan 1 hanya jika kedua inputnya sama dengan 1. Di bawah ini adalah gambar Gerbang And yang akan kita deskripsikan dengan VHDL.
Gerbang Dan
Mari kita mulai! Unit dasar VHDL disebut sinyal . Untuk saat ini mari kita asumsikan bahwa sebuah sinyal bisa berupa 0 atau 1 (sebenarnya ada kemungkinan lain, tapi kita akan membahasnya). Berikut ini beberapa logika dasar VHDL:
signal and_gate : std_logic;
and_gate <= input_1 and input_2;
Baris kode pertama mendefinisikan sinyal bertipe std_logic dan disebut and_gate. Std_logic adalah tipe yang paling umum digunakan untuk mendefinisikan sinyal, namun ada tipe lain yang akan Anda pelajari. Kode ini akan menghasilkan gerbang AND dengan satu output (and_gate) dan 2 input (input_1 dan input_2). Kata kunci “dan” dicadangkan dalam VHDL. Operator <=dikenal sebagai operator penugasan. Saat Anda mengurai kode di atas secara lisan, Anda dapat mengucapkan dengan lantang, “Sinyal dan_gerbang MENDAPAT input_1 dan di-ed dengan input_2.”
Sekarang Anda mungkin bertanya pada diri sendiri dari mana input_1 dan input_2 berasal. Sesuai dengan namanya, mereka adalah masukan ke file ini, jadi Anda perlu memberi tahu alat tentangnya. Input dan output ke file ditentukan dalam entitas . Entitas berisi port yang mendefinisikan semua input dan output ke file. Mari buat entitas sederhana:
entity example_and is
port (
input_1 : in std_logic;
input_2 : in std_logic;
and_result : out std_logic
);
end example_and;
Ini adalah entitas dasar Anda. Ini mendefinisikan entitas yang disebut example_and dan 3 sinyal, 2 input dan 1 output, semuanya bertipe std_logic. Satu kata kunci VHDL lainnya diperlukan untuk melengkapinya, yaitu arsitektur . Arsitektur digunakan untuk menggambarkan fungsionalitas entitas tertentu. Anggap saja sebuah makalah tesis:entitas adalah daftar isi dan arsitektur adalah isinya. Mari buat arsitektur untuk entitas ini:
architecture rtl of example_and is
signal and_gate : std_logic;
begin
and_gate <= input_1 and input_2;
and_result <= and_gate;
end rtl;
Kode di atas mendefinisikan arsitektur yang disebut rtl dari entitas example_and. Semua sinyal yang digunakan oleh arsitektur harus didefinisikan antara kata kunci “adalah” dan “mulai”. Logika arsitektur sebenarnya berada di antara kata kunci “mulai” dan “akhir”. Anda hampir selesai dengan file ini. Satu hal terakhir yang perlu Anda sampaikan pada alat adalah perpustakaan mana yang akan digunakan. Pustaka menentukan perilaku kata kunci tertentu dalam file Anda. Untuk saat ini, anggap saja Anda perlu memiliki 2 baris ini di bagian atas file Anda:
library ieee;
use ieee.std_logic_1164.all;
Selamat! Anda telah membuat file VHDL pertama Anda. Anda dapat melihat file lengkapnya di sini:
library ieee;
use ieee.std_logic_1164.all;
entity example_and is
port (
input_1 : in std_logic;
input_2 : in std_logic;
and_result : out std_logic
);
end example_and;
architecture rtl of example_and is
signal and_gate : std_logic;
begin
and_gate <= input_1 and input_2;
and_result <= and_gate;
end rtl;
Apakah sepertinya Anda harus menulis banyak kode hanya untuk membuat gerbang bodoh? Pertama-tama, dan gerbang tidaklah bodoh. Kedua, Anda benar; VHDL adalah bahasa yang sangat bertele-tele. Biasakan diri dengan kenyataan bahwa melakukan sesuatu yang sangat mudah dalam perangkat lunak akan memakan waktu lebih lama dalam HDL seperti Verilog atau VHDL. Tapi mintalah beberapa ahli perangkat lunak untuk mencoba menghasilkan gambar ke monitor VGA yang menampilkan Game of Life Conway dan saksikan kepala mereka berputar dengan takjub! Omong-omong, video itu dibuat dengan VHDL dan FPGA. Anda akan dapat segera melakukannya!
Selanjutnya kita akan membahas kata kunci VHDL mendasar lainnya:proses.