Η VHDL (VHSIC hardware description language) είναι μία γλώσσα περιγραφής υλικού που χρησιμοποιείται για σχεδίαση ψηφιακών συστημάτων όπως ολοκληρωμένα κυκλώματα κλπ.
Τα βασικά εργαλεία που χρειαζόμαστε για να εργαστούμε με την VHDL σε μια διανομή Linux είναι τα παρακάτω:
-
Επεξεργαστής κειμένου (editor)
-
Έναν προσομοιωτή για VHDL
-
Προαιρετικά ένα πρόγραμμα που να απεικονίζει γραφικά τα σήματα
Ως επεξεργαστή κειμένου μπορούμε να χρησιμοποιήσουμε οποιονδήποτε προτιμάμε, πχ vim, nano, gedit, κλπ. Για κονσόλα επίσης κάνει οποιαδήποτε, πχ gnome-terminal, kterm, xterm, κλπ.
Για τη προσομοίωση θα χρειαστούμε έναν προσομοιωτή VHDL. Μία επιλογή ανοιχτού κώδικα είναι ο GHDL.
Ο GHDL είναι βασισμένος στο GCC και λειτουργεί σε Linux, Mac και Windows. Διατίθεται υπό την άδεια GPL.
Για να ελέγξουμε το σχέδιο που έχουμε φτιάξει σε VHDL, πολλές φορές είναι χρήσιμη μία γραφική απεικόνιση των σημάτων μας.
Για τη γραφική απεικόνιση των σημάτων μπορούμε να χρησιμοποιήσουμε ένα πρόγραμμα που απεικονίζει γραφικά κυματομορφές. Μία επιλογή που είναι το GTKWave που μπορεί να συνδυαστεί εύκολα με το GHDL.
-- Hello world program.
use std.textio.all; -- Imports the standard textio package.
-- Defines a design entity, without any ports.
entity hello_world is
end hello_world;
architecture behaviour of hello_world is
begin
process
variable l : line;
begin
write (l, String'("Hello world!"));
writeline (output, l);
wait;
end process;
end behaviour;
Αφού γράψουμε το κώδικα μας, αποθηκεύουμε το αρχείο με κατάληξη .vhdl. Για να μεταγλωττίσουμε το κώδικα μας τρέχουμε σε ένα τερματικό:
$ ghdl -a hello.vhdl # παράγει αρχείο που περιγράφει την αρχιτεκτονική
$ ghdl -e hello_world # παράγει το εκτελέσιμο αρχείο
$ ghdl -r hello_world # εκτέλεση του αρχείου
> Hello world!
# Εναλλακτικά για γραφική απεικόνιση των σημάτων
$ ghdl -r hello_world --vcd=hello_world.vcd
$ gtkwave hello_world.vcd