Anda di halaman 1dari 35

KEMENTRIAN RISET TEKNOLOGI DAN PENDIDIKAN TINGGI

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA


ELECTRONIC ENGINERING POLYTECHNIC INSTITUTE OF SURABAYA
(EEPIS)
JL. RAYA ITS KEPUTIH SUKOLILO SURABAYA 60111 INDONESIA
TELP.(031) 5947280 FAX. (031) 5946114

PIRANTI TERPROGRAM

LAPORAN

JUDUL : Perancangan Finite State Machine

PERCOBAAN : 5

NAMA : Made Wira Narendra Wirsuyana

KELAS : 2 D3 EB

NRP : 1103191043

DOSEN : Pak Arif Irwansyah

TANGGAL : 5 April 2021


Percobaan 5
Perancangan Finite State Machine
1.1.Tujuan :
• Mampu merancang dan mendemonstrasikan rangkaian digital elektronik dengan
menggunakan metode Finite State Machine pada FPGA serta melaporkan hasil
percobaannya.

1.2. Landasan Teori

Bahasa formal dapat dikatakan sebagai entitas abstrak, yaitu sekumpulan simbol alphabet
tertentu. Namun bahasa juga dapat dipandang sebagai entitas-entitas abstrak yang dapat dikenali
atau dibangkitkan melalui suatu mesin komputasi. Mesin yang dapat mengenali bahasa kelas ini
adalah Finite State Machine.

Definisi Finite State Machine

Untuk definisi Finite State Machine (FSM) sendiri bermacam-macam. Finite State
Machine (FSM) sendiri kadang juga disebut Finite State Automata (FSA). Berikut beberapa
definisi Finite State Machine (FSM):

1. FSM didefenisikan sebagai perangkat komputasi yang memiliki input berupa string dan output
yang merupakan satu dari dua nilai yang dapat di-accept dan reject (Rich : 2009).

2. Finite Automata adalah model matematika sistem dengan masukan dan keluaran diskrit. Sistem
dapat berada di salah satu dari sejumlah berhingga konfigurasi internal disebut state (Hariyanto :
2004).

3. FSM adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku
atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian)
dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada
pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika
mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen
dalam sistemnya itu sendiri. Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan
oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa
aksi yang sederhana atau melibatkan rangkaian proses yang relatif kompleks (Setiawan : 2006).

Selain itu, FSM juga didefinisikan sebagai sebuah metodologi perancangan sistem kontrol yang
menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State
(Keadaan), Event (kejadian) dan Action (aksi).

Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state
yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau
event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri
(misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh
sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi
yang sederhana atau melibatkan rangkaian proses yang relative kompleks. Berdasarkan sifatnya,
metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian
yang bersifat reaktif dan real time. Salah satu keuntungan nyata penggunaan FSM adalah
kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan
sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya
juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi,
perancangan perangkat lunak game, aplikasi WEB dan sebagainya.

Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan
menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-
statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi
kesalahan logika.

Diagram FSM

Diagram tersebut memperlihatkan FSM dengan dua buah state dan dua buah input serta empat buah
aksi output yang berbeda : seperti terlihat pada gambar, ketika sistem mulai dihidupkan, sistem
akan bertransisi menuju state0, pada keadaan ini sistem akan menghasilkan Action1 jika terjadi
masukan Event0, sedangkan jika terjadi Event1 maka Action2 akan dieksekusi kemudian sistem
selanjutnya bertransisi ke keadaan State1 dan seterusnya.

Secara formal FSM dinyatakan oleh 5 tupel atau M=(Q, ∑, δ, S, F),


(Utdirartama, 2001) dimana:
Q = himpunan state/kedudukan
∑ = himpunan symbol input/masukan/abjad
δ = fungsi transisi
S = state awal/ kedudukan awal (initial state), S Q
F = himpunan state akhir, F Q
Jenis-jenis FSM
FSM terdiri dari dua jenis, yaitu FSM ber-output dan FSM tidak ber-output. FSM tidak ber-output
digunakan untuk pengenalan bahasa dalam komputer, dengan input yang dimasukkan akan
diperoleh apakah input tersebut dikenal oleh bahasa komputer atau tidak. Salah satu penggunaan
FSM tidak ber-output adalah program compiler, yaitu program untuk memeriksa apakah perintah
yang digunakan pengguna benar atau salah. Sementara untuk FSM ber-output digunakan untuk
merancang mesin atau sistem (Zen, 2008). Dan FSM yang akan digunakan dalam penelitian ini
adalah FSM ber-output, dan untuk selanjutnya akan dituliskan dengan FSM saja.
Ada dua metode utama untuk memperlakukan FSM untuk menghasilkan output. Yaitu Moore
Machine dan Mearly Machine yang dinamakan berdasarkan penemunya.
a. Moore State Machine

Moore Machine adalah tipe dari FSM dimana output dihasilkan dari state. Pada gambar diatas
mencontohkan dimana state mendefenisikan apa yang harus dilakukan (Brownlee, 2010). Keluaran
pada Moore Machine diasosiasikan sebagai state (Hariyanto, 2004). Dan pada penelitian ini,
penulis menggunakan Moore Machine.
b. Mearly State Machine

Mearly Machine berbeda dengan Moore Machine dimana keluarannya merupakan hasil dari
transisi antar state (Brownlee, 2010). Keluaran pada Mearly Machine diasosiasikan sebagai transisi
(Hariyanto, 2004)
Kelebihan dan Kekurangan FSM
FSM memiliki beberapa kelebihan (Brownlee, 2010), diantaranya :
1. Sederhana, sehingga mudah diimplementasikan
2. Bisa diprediksi responnya
3. Komputasi ringan
4. Relatif fleksibel
5. Merupakan metode AI lama yang bisa digunakan pada berbagai sistem
6. Mudah ditransfer dari abstrak menjadi kode program
Selain memiliki banyak kelebihan, FSM juga mempunyai beberapa kelemahan (Brownlee, 2010),
diantaranya :
1. Karena sifatnya bisa diprediksi, maka implementasi pada game kurang disukai
2. Implementasi pada sistem yang lebih besar lebih sulit karena pengaturan dan pemeliharaannya
jadi kompleks
3. Sebaiknya hanya digunakan pada sistem dimana sifat sistem bisa didekomposisi menjadi state.
4. Kondisi untuk transisi state adalah tetap
Teknik Pemodelan FSM
Finite State Machine bukanlah metode yang baru. FSM sudah lama ada dan konsep dekomposisi
biasanya sudah dipahami dan sering digunakan oleh orang-orang yang memiliki pengalaman dalam
membuat program komputer atau desain program komputer. Ada beberapa teknik pemodelan
abstrak yang bisa digunakan untuk membantu defenisi atau pemahaman dan desain dari FSM,
mayoritas teknik ini berasal dari disiplin ilmu desain atau matematika (Lee: 1998).
1. Diagram Transisi State Juga dikenal sebagai Diagram Gelembung (Bubble Diagram).
Menunjukkan
relasi antara state dengan input yang menyebabkan transisi state.
2. Diagram Pengambilan Keputusan State-Aksi. Diagram Alir sederhana dengan tambahan
gelembung yang menunjukkan penungguan terhadap input.
3. Diagram Grafik State Salah satu bentuk dari notasi UML yang berfungsi untuk menunjukkan
sifat
individu dari objek sebagai nomor state dan transisi dari state tersebut.
4. Analisa Hirarki Perintah Meskipun tidak seperti state, ini merupakan teknik dekomposisi
perintah yang
melihat dari sudut pandang bagaimana caranya perintah dibagi jadi sub perintah dan urut sesuai
urutan kejadiannya.
Bentuk Implementasi
Ada beberapa bentuk FSM, diantaranya:
1. Naive Approach
Menggunakan conditional statement (if-else atau switch-case) tanpa memecah object menjadi
object2x yang lebih kecil sesuai state nya. Untuk agen yang cuma punya state yang sedikit, metode
ini masih memungkinkan. Tapi kalau sudah kompleks, penggunaan metode ini jelas tidak
dianjurkan, karena akan membentuk ‘spaghetti code’ dan monolithic conditional statement. Selain
itu juga tidak scalable, tidak fleksibel, dan proses debugging menjadir lebih rumit.
2. Embedded Rules
Bentuk ini adalah kebalikan dari bentuk Classical Approach, yang berarti state transition
didefinisikan di state itu sendiri. Dan sama dengan Classical Approach, bentuk ini juga akan
menawarkan fleksibilitas dan skalabilitas yang baik, namun dengan efek samping agak sulit untuk
di-mantain karena aturan2x transisi diletakkan di state sehingga ketika terjadi penambahan atau
pengurangan state, maka harus dilakukan update juga terhadap state2x yang terkait.

1.3.Peralatan yang dibutuhkan


• Komputer yang sudah terinstall software XILINX ISE Design Suite 14.7 dan Adept
Digilent.
• BASYS 2 FPGA board.

1.4.Langkah Percobaan

1. Buka software ISE Design Suite 14.7


2. Klik pada tombol “New Project” untuk membuat project baru.

3. Beri nama project dan letakkan project pada folder yang ditentukan serta Top-
level source type adalah HDL
4. Setting jenis FPGA dan konfigurasi lainnya sesuai gambar dibawah, dimana

Family: Spartan-3E

Device: XC3S100E atau XC3S250E, tergantung jenis chip board anda

Package: CP132

Speed: -4

Preferred Language: VHDL


5. Klik Next dan anda akan mendapat konfirmasi konfigurasi yang telah dilakukan.
Selanjutnya klik Finish

6. Selanjutnya buat file VHDL dengan cara klik kanan pada nama project,
selanjutnya pilih New Source

7. Implementasikan rancangan dan VHDL berikut, buat VHDL yang lengkap


selanjutnya simulasikan.
8. A. Tugas Mealy
B. Tugas Moore
12. Lakukan pengecekan penulisan,dengan cara RUN Check Syntax sebagaimana
gambar berikut.

Lanjutkan ke langkah 13, jika tidak ada error.


15. Selanjutnya membuat file Test Bench untuk kedua program VHD tersebut.

16. Mensimulasikan program Test Bench apakah sudah sesuai dengan program VHD
atau belum, jika belum revisi Kembali program VHD dan jalankan Kembali
program Test Bench sampai hasil yang diinginkan sesuai.

17. Mengimplementasikan program VHD tersebut ke dalam board FPGA.

➢ TUGAS PRAKTIKUM 4
Tugas untuk dikerjakan
a. Membuat program mealy.
b. Membuat program moore.

1.5. Data Hasil Percobaan


A. Hasil Percobaan (Tugas Mealy) :

1. Membuka software ISE Design Suite 14.7

2. Meng-lik tombol “New Project” untuk membuat project baru.


3. Memberi nama project dan letakkan project pada folder yang ditentukan serta
Top-level source type adalah HDL
4. Mensetting jenis FPGA dan konfigurasi lainnya sesuai gambar dibawah, dimana

Family: Spartan-3E

Device: XC3S100E atau XC3S250E, tergantung jenis chip board anda

Package: CP132

Speed: -4

Preferred Language: VHDL


5. Meng-klik Next dan anda akan mendapat konfirmasi konfigurasi yang telah
dilakukan. Selanjutnya klik Finish

6. Selanjutnya membuat file VHDL dengan cara klik kanan pada nama project,
selanjutnya pilih New Source
7. Memilih jenis source VHDL Module dan berilah nama

8. Selanjutnya langsung meng-klik Next kemudian Finish, karena saya akan


membuat port secara manual dengan text.
9. Maka saya akan mendapatkan file baru (*.vhd), tetapi tanpa deskripsi port yang
akan digunakan. Sebagaimana gambar dibawah:

10. Untuk percobaan 1 ini saya akan membuat Shift Register. Dimana input akan
didapatkan dari I, shift, clock, dan output akan keluar ke Q. Prinsip kerja dari
program ini yaitu menggeser isi dari register shift “111” akan digeser dengan
input dari I, dan register paling kanan yang sudah tergeser akan keluar melalui
output Q.
11. Edit VHDL code menjadi seperti berikut:

12. Melakukan pengecekan penulisan,dengan cara RUN Check Syntax sebagaimana


gambar berikut.
Lanjutkan ke langkah 13, jika tidak ada error.
13. Selanjutnya membuat simulasinya menggunakan testbench terlebih dahulu agar
kita tahu apakah program sudah berjalan dengan yang diharapkan atau belum.
Untuk programnya dapat dilihat dibawah ini :
Kemudian menjalankan simulate behavioral model, setelah dijalankan simulasinya
didapat hasil simulasi seperti di bawah ini
14. Selanjutnya RUN Synthesize

15. Lakukan Generate Programming File untuk mendapatkan bit file yang akan di
upload ke FPGA. Apabila tidak ada error, maka anda akan mendapatkan bit file.
B. Hasil Percobaan (Tugas Moore) :
1. Membuat file baru untuk percobaan 2 yaitu ALU, kemudian mengedit program
VHD dengan program seperti di bawah ini:
2. Melakukan check syntax agar dapat mengetahui apakah syntax sudah benar atau
masih terdapat error pada program.
3. Melakukan simulasi dengan membuat file Test Bench terlebih dahulu agar dapat
mengetahui apakah hasil yang keluar sudah sesuai dengan keinginan program
VHD atau masih terdapat kesalahan pada program VHD.
4. Mengedit program Test Bench dengan program seperti dibawah ini:
5. Setelah membuat file Test Bench dan saat dijalankan hasil simulasi akan telrihat
seperti di bawah ini :

6. Selanjutnya RUN Synthesize

7. Lakukan Generate Programming File untuk mendapatkan bit file yang akan di
upload ke FPGA. Apabila tidak ada error, maka anda akan mendapatkan bit file.
1.6. Analisa dan Kesimpulan
ANALISA
Pada praktikum piranti terprogram ini, saya melakukan percobaan “Finite State Machine”.
Dengan melakukan percobaan ini maka saya diharapkan mampu Mampu merancang dan
mendemonstrasikan rangkaian digital elektronika dengan menggunakan metode Finite State
Machine pada FPGA serta melaporkan hasilnya. Seperti yang kita tahu Field-Programmable
Gate Array (FPGA) merupakan sebuah IC digital yang sering digunakan untuk
mengimplementasikan rangkaian digital. FPGA berbentuk komponen elektronika dan
semikonduktor yang terdiri dari komponen gerbang terprogram (programmable logic) dan
sambungan terprogram (interkoneksi) atau programmable device besar yang tersusun atas
modul-modul logika independen yang dapat di konfigurasi oleh pemakai yang di hubungkan
melalui kanal-kanal routing yang dapat di program.
Pada praktikum ini terdapat 2 tugas percobaan, tugas pertama yang saya kerjakan yaitu
membuat program mealy dari gambar yang diberikan pada tugas. Hal yang saya lakukan paling
awal seperti biasa yaitu membuat “New Project” pada software ISE Design Suite dan kemudian
memberikan nama file dan mensetting Top-level source type-nya HDL, selanjutnya mengatur
format konfigurasi file sebagai berikut:

Family: Spartan-3E

Device: XC3S100E atau XC3S250E, tergantung jenis chip board anda

Package: CP132

Speed: -4

Preferred Language: VHDL

Kemudian membuat New Source File untuk deskripsi port hardware yang nantinya akan
ditulis dengan syntax sebagai berikut:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity t_mealy is
port(
x : in std_logic;
clock : in std_logic;
reset : in std_logic;
parity : out std_logic_vector(2 downto 0)
);
end t_mealy;

architecture Behavioral of t_mealy is


type state_type is (s0,s1,s2);
signal state, next_state : state_type;

begin

SYNC_PROC : process (clock, reset)


begin
if (reset='1') then
state <= s0;
elsif (clock'event and clock='1') then
state <= next_state;
end if;
end process;

NEXT_STATE_DECODE : process (state,x)


begin

case (state) is

when s0 =>
if (x ='1') then
parity <= "010";
next_state <= s1;
elsif (x='0') then
parity <= "000";
next_state <= s0;
end if;
when s1 =>
if (x='1') then
parity <= "010";
next_state <= s1;
elsif (x='0')then
parity <= "100";
next_state <= s2;
end if;
when s2 =>
if (x='1') then
parity <= "010";
next_state <= s1;
elsif (x='0')then
parity <= "110";
next_state <= s0;
end if;
when others =>
next_state <= s0;
end case;
end process;
end Behavioral;

Setelah itu selesai selanjutnya melakukan pengecekan syntax untuk melihat apakah syntax
telah benar. Selanjutnya melakukan simulasi testbench terlebih dahulu agar mengetahui
apakah program sudah berjalan seperti yang diharapkan atau tidak sehingga resiko upload
ulang dapat diminamlisir. Hasil dari program testbench yang sudah tertera pada data hasil
praktkum terlihat seperti berikut :
Terlihat bahwa di simulasi kondisi awal yaitu saat reset aktif maka parity akan ke state
0, kemudian pada state S0 yang diberi input x = 1 maka state akan berpindah ke state 2 dan
menghasilkan output 2 kemudian saat di state S1 diberi input x = 0 maka state akan
berpindah ke S2 dan menghasilkan output 4, selanjutnya saat S2 diberi input x = 1 maka
state akan berpindah kembali ke S1 dan menghasilkan output 2 dan kembali seperti kondisi
tadi diberikan input x = 1 dan akan berpindah ke S2 dengan output 4 kemudian saat berada
di S2 diberikan input x = 0 dan menghasilkan output 6 dan state akan kembali ke S0. Dari
simulasi tersebut sudah terbukti sesuai dengan gambar dari FSM Mealy pada tugas.
Setelah memasukkan koding inisiasi selanjutnya menjalankan Synthesize dan jika sudah
sukses selanjutnya meng-Generating Programming File agar mendapatkan file bit yang siap
untuk diupload pada hardware FPGA.
Selanjutnya hal ke-2 yang saya kerjakan yaitu membuat program dari tugas moore
seperti pada gambar tugas, dimana langkah-langkah awal sama seperti percobaan 1, yang
berbeda hanya kodingan program seperti di bawah ini:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity t_moore is
port(
x_in : in std_logic;
y_in : in std_logic;
enable : in std_logic;
clock : in std_logic;
reset : in std_logic;
z_out : out std_logic
);
end t_moore;

architecture Behavioral of t_moore is


type state_type is (start,one1,two1s,found_it);
signal state, next_state : state_type;

begin

SYNC_PROC : process (clock, reset, enable, x_in, y_in)


begin
if (reset='1') then
state <= start;
elsif (clock'event and clock='1') then
state <= next_state;
end if;

case (state) is
when start =>
if ((x_in='1') AND (enable='1'))then
next_state <= one1;
else
next_state <= start;
end if;
when one1 =>
if ((x_in='1')AND (enable='1')) then
next_state <= two1s;
elsif ((x_in='0')AND(enable='1')) then
next_state <= start;
else
next_state <= one1;
end if;
when two1s =>
if ((x_in='0')AND (enable='1')) then
next_state <= found_it;
else
next_state <= two1s;
end if;
when found_it =>
if ((x_in='0')AND(enable='1')) then
next_state <= start;
elsif ((x_in='1')AND(enable='1')) then
next_state <= one1;
else
next_state <= found_it;
end if;
end case;
end process;

OUTPUT_DECODE : process(state)
begin
case (state) is
when start =>
z_out <= '0';
when one1 =>
z_out <= '0';
when two1s =>
z_out <= '0';
when found_it =>
z_out <= NOT y_in;
end case;
end process;
end Behavioral;

Selanjutnya sama seperti percobaan yaitu melakukan simulasi testbench, untuk program
testbench terlihat seperti pada data hasil percobaan dan hasil dari testbench terlihat seperti
dibawah ini :

Terlihat pada hasil simulasi pada keadaan awal state akan berada di start kemudian saat
state start diberi input x_in = 1 dan enable = 1 maka state akan berpindah ke one1 dengan
z_out = 0 kemudian saat berada di state one1 diberi input x_in=1 dan enable=1 maka akan
berpindah ke state two1s dengan output z_out = 0, kemudian saat dalam state two1s diberi
input x_in = 0 dan enable = 1 maka state akan berpindah ke found_it dengan outputnya
yaitu z_out = not y_in dimana y_in disini 0 maka jika di not kan hasilnya 1, kemudian saat
berada di state found_it diberi input x_in=1 dan enable=1 maka state akan berpindah ke
one1 dengan output 0 kemudian diberi input kembali seperti penjelasan awal tadi sehingga
akan kembali ke found_it dengan output 1.
Setelah memasukkan koding inisiasi selanjutnya menjalankan Synthesize dan jika sudah
sukses selanjutnya meng-Generating Programming File agar mendapatkan file bit yang
siap untuk diupload pada hardware FPGA.

KESIMPULAN
Setelah melakukan Tugas pada praktikum ke-5 kali ini, didapat sebuah analisa dan dari
analisa itu didapat sebuah kesimpulan yaitu :
a. Field-Programmable Gate Array (FPGA) merupakan sebuah IC digital yang sering
digunakan untuk mengimplementasikan rangkaian digital.
b. . FSM adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan
tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State
(Keadaan), Event (kejadian) dan action (aksi).
c. Sebelum membuat file Implementation ke hardware, sebelumnya harus membuat simulasi
dari program tersebut agar dapat mengetahui apakah program yang dibuat sudah benar apa
tidak. Hal itu dilakukan agar resiko mengupload ulang program ke hardware tidak
dilakukan.
d. FSM terdiri dari dua jenis, yaitu FSM ber-output dan FSM tidak ber-output. FSM tidak ber-
output digunakan untuk pengenalan bahasa dalam komputer, dengan input yang dimasukkan
akan diperoleh apakah input tersebut dikenal oleh bahasa komputer atau tidak. Salah satu
penggunaan FSM tidak ber-output adalah program compiler, yaitu program untuk
memeriksa apakah perintah yang digunakan pengguna benar atau salah. Sementara untuk
FSM ber-output digunakan untuk merancang mesin atau sistem. Dan FSM yang akan
digunakan dalam penelitian ini adalah FSM ber-output, dan untuk selanjutnya akan
dituliskan dengan FSM saja.
e. Ada dua metode utama untuk memperlakukan FSM untuk menghasilkan output. Yaitu
Moore Machine dan Mearly Machine yang dinamakan berdasarkan penemunya
f. Moore Machine adalah tipe dari FSM dimana output dihasilkan dari state. Pada gambar
diatas mencontohkan dimana state mendefenisikan apa yang harus dilakukan. Keluaran pada
Moore Machine diasosiasikan sebagai state. Dan pada penelitian ini, penulis menggunakan
Moore Machine.
g. Mealy Machine berbeda dengan Moore Machine dimana keluarannya merupakan hasil dari
transisi antar state. Keluaran pada Mealy Machine diasosiasikan sebagai transisi.
h. FPGA ini merupakan IC tipe HDL yang mana pemakai dapat mendesain hardware sesuai
yang diinginkan di dalam IC FPGA.

Anda mungkin juga menyukai