Anda di halaman 1dari 10

INSTITUT TEKNOLOGI DEL

MATERI PRAKTIKUM
PRAKTIKUM SISTEM TERTANAM
(14S4003)
Semester I Tahun Ajar 2019/2020

Tanggal Sesi : 26 September 2019


Modul : 2
Topik : Switches, Lights, and Multiplexers
Aktifitas : Mahasiswa mempelajari dan melakukan perancangan
rangkaian digitial menggunakan Board FPGA ALTERA DE1
Tujuan praktikum : Tujuan dari latihan ini adalah untuk mempelajari cara
menghubungkan perangkat input dan output sederhana ke
chip FPGA dan mengimplementasikan rangkaian yang
menggunakan perangkat ini. Switch SW17−0 pada papan
DE1 akan digunakan sebagai input ke rangkaian. LED dan
dan 7-segmen display akan digunakan sebagai perangkat
output.
Waktu pengerjaan : 2 jam
Setoran : File proyek hasil pengerjaan contoh program dikompres
menjadi file dengan ekstensi .zip. Nama file dengan format:
pst_m02_NIM.zip. NIM diganti dengan NIM Anda.
Batas penyerahan : 26 September 2019 sebelum pukul 22.00 WIB
Tempat Penyerahan : http://ecourse.del.ac.id
Sarana : Board FPGA ALTERA DE1
Quartus II version 13.0 Web Edition
Referensi : Buku Manual Board FPGA ALTERA DE1

Part I
Board DE1 menyediakan 10 toggle switch, yang disebut SW9−0, yang dapat
digunakan sebagai input ke rangkaian, dan 10 red lights, yang disebut
LEDR9−0, yang dapat digunakan untuk menampilkan nilai output. Gambar 1
menunjukkan entitas VHDL sederhana yang menggunakan switch ini dan
menunjukkan statusnya pada LED. Karena ada 10 switch dan lampu akan
lebih mudah untuk mewakili mereka sebagai array dalam kode VHDL,
seperti yang ditunjukkan. Gunakan statement assignment tunggal untuk
semua 10 output LEDR, yang setara dengan individual assignment.
LEDR(9) <= SW(9);
LEDR(8) <= SW(8);
:::
LEDR(0) <= SW(0);

GFP-SISTAN-2019/2020 Halaman 1 dari 10


Board DE1 memiliki koneksi kabel antara chip FPGA dan switch dan lampu.
Untuk menggunakan SW9−0 dan LEDR9−0, Anda perlu memasukkan proyek
Quartus II Anda ke penugasan pin yang benar, yang diberikan dalam
Manual Pengguna DE1. Sebagai contoh, manual menentukan bahwa SW0
terhubung ke pin FPGA L22 dan LEDR0 terhubung ke pin R20. Cara yang
baik untuk membuat penugasan pin yang diperlukan adalah mengimpor ke
perangkat lunak Quartus II file bernama DE1_pin_assignments.qsf, yang
disediakan pada CD Sistem DE1 dan di bagian Program Universitas dari
situs web Altera. Prosedur untuk membuat tugas pin dijelaskan dalam
Pengantar Quartus II tutorial menggunakan VHDL Design, yang juga
tersedia dari Altera.
Penting untuk diperhatikan bahwa assignments pin dalam file
DE1_pin_assignments.qsf berguna hanya jika nama pin yang diberikan
dalam file sama persis dengan nama port yang digunakan dalam entitas
VHDL Anda. File ini menggunakan nama SW [0] .. SW [9] dan LEDR [0]..
LEDR [9] untuk switch dan LED, yang merupakan alasan untuk
menggunakan nama-nama ini pada Gambar 1 (perhatikan bahwa
Perangkat lunak Quartus II menggunakan [] tanda kurung siku untuk
elemen array, sementara sintaks VHDL menggunakan () kurung bulat).
LIBRARY ieee;
USE ieee.std_logic_1164.all;
- - Simple module that connects the SW switches to the LEDR lights
ENTITY part1 IS
PORT ( SW : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
LEDR : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); - - red LEDs
END part1;
ARCHITECTURE Behavior OF part1 IS
BEGIN
LEDR <= SW;
END Behavior;

Lakukan langkah-langkah berikut untuk mengimplementasikan rangkaian


yang sesuai dengan kode pada Gambar 1 pada board DE1:
1. Buat proyek Quartus II baru untuk rangkaian Anda. Pilih Cyclone II
EP2C20F484C7 sebagai chip target, yang merupakan chip FPGA pada
board Altera DE1.
2. Buat entitas VHDL untuk kode pada Gambar 1 dan sertakan dalam
proyek Anda.
3. Masukkan dalam proyek Anda assignments pin yang diperlukan
untuk board DE1, seperti yang dibahas di atas. Kompilasi proyek.
4. Download rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas sirkuit dengan mengubah switch dan mengamati
output yang dihasilkan pada LED.

GFP-SISTAN-2019/2020 Halaman 2 dari 10


Part II
Gambar 2a menunjukkan rangkaian sum-of-products yang
mengimplementasikan multiplekser 2-ke-1 dengan input select. Jika s = 0
output m multiplexer sama dengan input x, dan jika s = 1 output sama
dengan y. Bagian b dari gambar memberikan tabel kebenaran untuk
multiplexer ini, dan bagian c menunjukkan simbol sirkuitnya.

Multiplekser dapat dijelaskan oleh pernyataan VHDL berikut:


m <= (NOT (s) AND x) OR (s AND y);

Anda harus menulis entitas VHDL yang mencakup empat pernyataan


penugasan (assignment statements) seperti yang ditunjukkan di atas untuk
menggambarkan rangkaian yang diberikan pada Gambar 3a. Sirkuit ini
memiliki dua input empat-bit, X dan Y, dan menghasilkan output empat-bit
M. Jika s = 0 maka M = X, sedangkan jika s = 1 maka M = Y. Kami mengacu
pada rangkaian ini sebagai multiplexer 2-ke-1 lebar 4-bit. Ini memiliki
simbol sirkuit yang ditunjukkan pada Gambar 3b, di mana X, Y, dan M
digambarkan sebagai kabel empat-bit. Lakukan langkah-langkah yang
ditunjukkan di bawah ini.
1. Buat proyek Quartus II baru untuk sirkuit Anda.
2. Sertakan file VHDL Anda untuk multiplekser 2-ke-1 dengan lebar 4-
bit dalam proyek Anda. Gunakan saklar SW9 pada papan DE1 sebagai
input, aktifkan SW3−0 sebagai input X dan SW7−4 sebagai input Y.
Hubungkan switch SW ke lampu merah LEDR dan hubungkan output
M ke lampu hijau LEDG3−0.

GFP-SISTAN-2019/2020 Halaman 3 dari 10


3. Masukkan dalam proyek Anda assignment pin yang diperlukan untuk
board DE1. Sebagaimana dibahas dalam Bagian I, penugasan ini
memastikan bahwa port input dari kode VHDL Anda akan
menggunakan pin pada FPGA Cyclone II yang terhubung ke switch
SW, dan port output dari kode VHDL Anda akan menggunakan pin
FPGA yang terhubung ke Lampu LEDR dan LEDG.
4. Kompilasi proyek.
5. Download rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas multiplekser 2-ke-1 dengan lebar 4-bit dengan
mengubah status switch dan mengamati output pada LED.

Part III
Pada Gambar 2 diperlihatkan multiplexer 2-ke-1 yang memiliki dua select
input x dan y. Untuk bagian ini, pertimbangkan rangkaian di mana keluaran
m harus dipilih dari tiga input u, v, dan w. Bagian a dari Gambar 4
menunjukkan bagaimana kita dapat membangun multiplekser 3-ke-1 yang
dibutuhkan dengan menggunakan dua multiplexer 2-ke-1. Rangkaian
menggunakan input select 2-bit s1s0 dan mengimplementasikan tabel
kebenaran yang ditunjukkan pada Gambar 4b. Simbol sirkuit untuk
multiplexer ini diberikan pada bagian c dari gambar.
Ingat dari Gambar 3 bahwa multiplexer 2-ke-1 dengan lebar-4-bit dapat
dibangun dengan menggunakan empat instance dari multiplexer 2-ke-1.
Gambar 5 menerapkan konsep ini untuk menentukan multiplekser

GFP-SISTAN-2019/2020 Halaman 4 dari 10


multipleks 3-ke-1 lebar dua-bit. Rancangan ini berisi dua contoh rangkaian
pada Gambar 4a.

Lakukan langkah-langkah berikut untuk menerapkan multiplexer 3-ke-1


lebar dua-bit.
1. Buat proyek Quartus II baru untuk sirkuit Anda.
2. Buat entitas VHDL untuk multiplexer 3-ke-1 lebar dua-bit.
Hubungkan input select ke switch SW9−8, dan gunakan switch SW5−0
untuk menyediakan tiga input 2-bit U ke W. Hubungkan switch SW ke
lampu merah LEDR dan hubungkan output M ke lampu hijau
LEDG1−0.
3. Masukkan dalam proyek Anda assignment pin yang diperlukan untuk
board DE1.
4. Kompilasi proyek.
5. Download rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas multiplekser 3-ke-1 lebar dua-bit dengan mengubah
status switch dan mengamati LED. Pastikan bahwa setiap input U ke
W dapat dipilih dengan benar sebagai output M.

GFP-SISTAN-2019/2020 Halaman 5 dari 10


Part IV
Gambar 6 menunjukkan modul decoder 7-segmen yang memiliki input c1c0
dua-bit. Decoder ini menghasilkan tujuh output yang digunakan untuk
menampilkan karakter pada layar 7-segmen. Tabel 1 daftar karakter yang
harus ditampilkan untuk setiap penilaian c1c0. Untuk menjaga desain tetap
sederhana, hanya tiga karakter yang termasuk dalam tabel (ditambah
karakter ‘kosong’, yang dipilih untuk kode 11).
Ketujuh segmen dalam tampilan diidentifikasi oleh indeks 0 hingga 6 yang
ditunjukkan pada gambar. Setiap segmen diterangi dengan mengubah ke
nilai logika 0. Anda harus menulis entitas VHDL yang
mengimplementasikan fungsi logika yang mewakili sirkuit yang diperlukan
untuk mengaktifkan masing-masing dari tujuh segmen. Gunakan hanya
assignment statement VHDL sederhana dalam kode Anda untuk
menentukan setiap fungsi logika menggunakan ekspresi Boolean.

Lakukan langkah-langkah berikut:


1. Buat proyek Quartus II baru untuk sirkuit Anda.
2. Buat entitas VHDL untuk decoder 7-segmen. Hubungkan input c1c0 ke
switch SW1−0, dan hubungkan output decoder ke tampilan HEX0 pada
board DE1. Segmen dalam tampilan ini disebut HEX00, HEX01,..,
HEX06, sesuai dengan Gambar 6. Anda harus menyatakan port 7-bit
HEX0 : OUT STD_LOGIC_VECTOR(0 TO 6);
pada kode VHDL Anda sehingga nama-nama output ini sesuai dengan

GFP-SISTAN-2019/2020 Halaman 6 dari 10


nama yang sesuai dalam Manual Pengguna DE1 dan file
DE1_pin_assignments.qsf.
3. Setelah membuat assignment pin board DE1 yang diperlukan,
kompilasi proyek.
4. Download rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas rangkaian dengan mengubah switch SW1−0 dan
mengamati tampilan 7-segmen.

Part V
Pertimbangkan rangkaian yang ditunjukkan pada Gambar 7. Ini
menggunakan multiplexer 3-ke-1 lebar dua-bit untuk mengaktifkan
pemilihan tiga karakter yang ditampilkan pada layar 7-segmen.
Menggunakan decoder 7-segmen dari Bagian IV sirkuit ini dapat
menampilkan karakter apa pun D, E, 1, dan 'kosong'. Kode karakter
ditetapkan sesuai Tabel 1 dengan menggunakan switch SW5−0, dan karakter
tertentu dipilih untuk ditampilkan dengan mengatur switch SW9−8.
Garis besar kode VHDL yang mewakili rangkaian ini disediakan pada
Gambar 8. Perhatikan bahwa kita telah menggunakan rangkaian dari
Bagian III dan IV sebagai sub- rangkaian dalam kode ini. Anda harus
memperluas kode pada Gambar 8 sehingga menggunakan tiga tampilan 7-
segmen, bukan hanya satu. Anda akan perlu menggunakan tiga contoh dari
masing-masing sub- rangkaian. Tujuan dari rangkaian Anda adalah untuk
menampilkan kata apa pun pada empat layar yang terdiri dari karakter
dalam Tabel 1, dan dapat merotasi kata ini secara melingkar di seluruh
tampilan ketika switch SW9−8 diaktifkan. Sebagai contoh, jika kata yang
ditampilkan adalah dE1, maka rangkaian Anda harus menghasilkan pola
output yang diilustrasikan pada Tabel 2.

GFP-SISTAN-2019/2020 Halaman 7 dari 10


LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY part5 IS
PORT ( SW : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
HEX0 : OUT STD_LOGIC_VECTOR(0 TO 6));
END part5;

ARCHITECTURE Behavior OF part5 IS


COMPONENT mux_2bit_3to1
PORT ( S, U, V, W : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
M : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
END COMPONENT;

COMPONENT char_7seg
PORT ( C : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
Display : OUT STD_LOGIC_VECTOR(0 TO 6));
END COMPONENT;

SIGNAL M : STD_LOGIC_VECTOR(1 DOWNTO 0);


BEGIN
M0: mux_2bit_3to1 PORT MAP (SW(9 DOWNTO 8), SW(5 DOWNTO 4), SW(3 DOWNTO 2),
SW(1 DOWNTO 0), M);
H0: char_7seg PORT MAP (M, HEX0);
END Behavior;

LIBRARY ieee;
USE ieee.std_logic_1164.all;
- - implements a 2-bit wide 3-to-1 multiplexer
ENTITY mux_2bit_3to1 IS
PORT ( S, U, V, W : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
M : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));
END mux_2bit_3to1;
ARCHITECTURE Behavior OF mux_2bit_3to1 IS
… code not shown
END Behavior;

LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY char_7seg IS
PORT ( C : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
Display : OUT STD_LOGIC_VECTOR(0 TO 6));
END char_7seg;
ARCHITECTURE Behavior OF char_7seg IS
… code not shown
END Behavior;

Figure 8. VHDL code for the circuit in Figure 7.

Lakukan langkah-langkah berikut.


1. Buat proyek Quartus II baru untuk sirkuit Anda.
2. Sertakan entitas VHDL Anda dalam proyek Quartus II. Hubungkan
switch SW9−8 ke input yang dipilih dari masing-masing tiga instance
dari multiplekser 3-ke-1 tiga-bit yang lebar. Juga hubungkan SW5−0 ke

GFP-SISTAN-2019/2020 Halaman 8 dari 10


setiap instance dari multiplexer sebagaimana diperlukan untuk
menghasilkan pola karakter yang ditunjukkan pada Tabel 2.
Hubungkan output dari tiga multiplexer ke 7-segmen menampilkan
HEX2, HEX1, dan HEX0.
3. Sertakan penugasan pin yang diperlukan untuk papan DE1 untuk
semua sakelar, LED, dan tampilan 7-segmen. Kompilasi proyek.
4. Unduh rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas rangkaian dengan mengatur kode karakter yang tepat
pada switch SW5−0 dan kemudian toggling SW9−8 untuk mengamati
rotasi karakter.

Part VI
Perluas desain Anda dari Bagian V sehingga menggunakan keempat
tampilan 7-segmen pada papan DE1. Sirkuit Anda harus dapat
menampilkan kata-kata dengan tiga (atau lebih sedikit) karakter pada
empat layar, dan memutar kata yang ditampilkan saat itu switch SW9−8
diaktifkan. Jika kata yang ditampilkan adalah dE1, maka rangkaian Anda
harus menghasilkan pola yang ditunjukkan pada Tabel 3.

Lakukan langkah-langkah berikut:


1. Buat proyek Quartus II baru untuk sirkuit Anda dan pilih chip target
sebagai Cyclone II EP2C20F484C7.
2. Sertakan entitas VHDL Anda dalam proyek Quartus II. Hubungkan
switch SW9−8 ke input yang dipilih dari setiap instance dari
multiplexer di sirkuit Anda. Juga hubungkan SW5−0 ke setiap
instance dari multiplexer sebagaimana diperlukan untuk
menghasilkan pola karakter yang ditunjukkan pada Tabel 3.
(Petunjuk: untuk beberapa input dari multiplexer Anda ingin
memilih karakter 'kosong'.) Sambungkan output dari multiplexer
Anda ke display 7-segmen HEX3,.., HEX0
3. Sertakan penugasan pin yang diperlukan untuk papan DE1 untuk
semua sakelar, LED, dan tampilan 7-segmen.Kompilasi proyek.
4. Download rangkaian yang dikompilasi ke dalam chip FPGA. Uji
fungsionalitas rangkaian dengan mengatur kode karakter yang tepat

GFP-SISTAN-2019/2020 Halaman 9 dari 10


pada switch SW5−0 dan kemudian toggling SW9−8 untuk mengamati
rotasi karakter.

GFP-SISTAN-2019/2020 Halaman 10 dari 10

Anda mungkin juga menyukai