Assalammu'alaikum wr.wb
SEJARAH FPGA
Secara umum FPGA akan lebih lambat jika dibandingkan dengan jenis chip yang lain seperti pada chip Application-Specific Integrated Circuit (ASIC). Hal ini karena FPGA menggunakan power/daya yang besar bentuk desain yang kompleks. Beberapa kelebihan dari FPGA antara lain adalah harga yang murah, bisa diprogram mengikuti kebutuhan, dan kemampuan untuk di program kembali untuk mengkoreksi adanya bugs. Jenis FPGA dengan harga murah biasanya tidak bisa diprogram dan dimodifikasi setelah proses desain dibuat (fixed-version). Chip FPGA yang lebih kompleks dapat diperoleh dari jenis FPGA yang dikenal dengan CPLD (Complex-Programmable Logic Device).
PRODUSEN FPGA
Minimal ada 5 perusahaan besar yang memproduksi FPGA. Dua yang pertama merupakan pemain utama di pasar FPGA:
•Xilinx yang punya nama besar dalam dunia FPGA, masih memimpin dalam densitas dan teknologi.
Sejarah Singkat FPGA VHDL
VHDL awalnya dikembangkan atas perintah dari AS Departemen
Pertahanan dalam rangka untuk mendokumentasikan perilaku ASICS bahwa perusahaan
pemasok yang termasuk dalam peralatan. That is to say, VHDL was developed as an
alternative to huge, complex manuals which were subject to
implementation-specific details. Artinya, VHDL dikembangkan sebagai alternatif
untuk besar, manual kompleks yang dikenakan detail implementasi khusus.
Versi pertamanya adalah VHDL 87 yang kemudian diperbarui
lagi dan disebut VHDL 93. VHDL merupakan bahasa pendeskripsian hardware pertama
yang distandardisasi oleh Institute of Electrical and electronics Engeneers,
melaui standard IEEE 1076. Kemudian sebuah standard tambahan, IEEE 1164 untuk
mengenalkan nilai system logic. Manfaat utama dari VHDL ketika digunakan untuk
mendesain sebuah sistem adalah kemampuannya untuk memodelkan sistem tersebut
serta mensimulasikannya sebelum
synthesis tools mentranslasikannya ke hardware.
Struktur dasar dari kode VHDL ditunjukkan pada gambar di
bawah ini berikut :
VHDL untuk FPGA Design (Xilinx) adalah 3 hari hands-on
kelas, menyiapkan insinyur untuk kesiapan proyek praktis untuk desain Xilinx
FPGA. Ini menyediakan pelatihan dasar dalam bahasa VHDL, coding untuk sintesis
RTL, mengeksploitasi fitur arsitektur perangkat target, menulis bangku uji dan
menggunakan alat VHDL dan aliran desain VHDL. Delegasi mengambil sebuah proyek
infra-struktur yang fleksibel yang mencakup satu set script, contoh desain,
modul dan file kendala untuk menggunakan, mengadaptasi dan memperpanjang pada
proyek-proyek mereka sendiri.
Meskipun penekanannya adalah pada praktis
VHDL-mengalir-keras untuk perangkat Xilinx FPGA, modul ini juga memberikan
landasan terbaik untuk mempelajari fitur yang lebih canggih dan penerapan VHDL
diperlukan oleh para desainer ASIC dan FPGA.
Karena Doulos adalah perusahaan independen, delegasi dapat
menggunakan pilihan mereka alat-alat desain selama lokakarya; lengkap simulasi
VHDL, sintesis dan alat programmable logic desain yang didukung. Workshop ini didasarkan
sekitar latihan dengan hati-hati dirancang untuk memperkuat dan menantang
luasnya belajar, dan terdiri dari sekitar 50% dari waktu kelas.
Gagasan untuk dapat mensimulasikan dokumentasi ini begitu
jelas menarik bahwa simulator logika dikembangkan yang dapat membaca file VHDL.
Langkah selanjutnya adalah pengembangan sintesis logika alat yang membaca VHDL,
dan output definisi pelaksanaan fisik sirkuit. alat sintesis modern dapat
mengekstrak RAM , counter , dan blok aritmatika keluar dari kode, dan menerapkannya
sesuai dengan apa yang user menentukan. Dengan demikian, kode VHDL yang sama
dapat disintesis berbeda untuk daerah terendah, terendah daya konsumsi, clock
speed tertinggi, atau persyaratan lainnya.
VHDL banyak meminjam dari bahasa pemrograman di kedua konsep
(misalnya, notasi slice untuk bagian pengindeksan sebuah array dimensi satu)
dan sintaks . VHDL memiliki konstruksi untuk menangani paralelisme yang melekat
dalam desain perangkat keras, tetapi konstruksi (proses) berbeda dalam sintaks dari
paralel dengan konstruksi di Ada (tugas). Seperti Ada, VHDL sangat diketik dan
tidak sensitif huruf . Ada banyak fitur dari VHDL yang tidak ditemukan di Ada,
seperti set diperpanjang operator Boolean termasuk nand dan juga, untuk secara
langsung merupakan usaha yang umum di hardware. VHDL juga memungkinkan array
untuk diindeks di kedua arah (menaik atau menurun) karena kedua konvensi
digunakan dalam perangkat keras, sedangkan Ada (seperti kebanyakan bahasa
pemrograman) menyediakan naik pengindeksan saja. Alasan kesamaan antara kedua
bahasa adalah bahwa Departemen Pertahanan yang diperlukan sebanyak mungkin
sintaks harus didasarkan pada Ada, untuk menghindari re-inventing konsep yang
telah diuji secara menyeluruh dalam pengembangan Ada.
Versi awal VHDL, dirancang untuk IEEE standar 1076-1987 ,
termasuk berbagai jenis data, termasuk numerik ( integer dan real ), logis (
bit dan boolean ), karakter dan waktu , ditambah dengan array dari disebut
bit_vector bit dan karakter disebut string .
Suatu masalah tidak diselesaikan dengan edisi ini,
bagaimanapun, adalah "multi-nilai logika", dimana drive's kekuatan
sinyal (tidak kuat, lemah atau) dan nilai-nilai yang tidak diketahui juga
dipertimbangkan. Ini diperlukan standar IEEE 1164 , yang mendefinisikan nilai
logika jenis-9: std_ulogic skalar dan vektor std_ulogic_vector versinya.
Isu kedua IEEE 1076 , pada tahun 1993, membuat sintaks lebih
konsisten, memungkinkan fleksibilitas yang lebih dalam penamaan, memperluas
character tipe untuk memungkinkan ISO-8859-1 karakter yang dapat dicetak,
menambahkan xnor operator, dll
Perubahan kecil dalam standar (2000 dan 2002) menambahkan
gagasan jenis dilindungi (mirip dengan konsep kelas di C + +) dan dihapus
beberapa pembatasan dari aturan pemetaan pelabuhan.
Selain standar IEEE 1164, standar beberapa anak
diperkenalkan untuk memperluas fungsi bahasa. IEEE standard 1076.2 added better
handling of real and complex data types. IEEE 1076,2 standar ditambahkan
penanganan lebih baik dari tipe data yang nyata dan kompleks. IEEE 1076,3
standar diperkenalkan signed dan unsigned jenis untuk memfasilitasi operasi
aritmatika pada vektor. IEEE 1076,1 standar (dikenal sebagai VHDL-AMS ) yang
disediakan-sinyal rangkaian desain ekstensi dan campuran analog.
Beberapa standar lain mendukung penggunaan VHDL lebih luas,
terutama VITAL (VHDL Inisiatif Menuju Perpustakaan ASIC) dan microwave ekstensi
desain sirkuit.
Pada bulan Juni 2006, Komite Teknis VHDL Accellera
(dilimpahkan oleh IEEE untuk bekerja pada update berikutnya standar) menyetujui
disebut Draft 3.0 dari VHDL-2006. Tetap menjaga kompatibilitas penuh dengan
versi yang lebih tua, ini standar yang diusulkan memberikan banyak ekstensi
yang membuat tulisan dan mengelola kode VHDL lebih mudah. Perubahan utama
meliputi penggabungan standar anak (1164, 1.076,2, 1.076,3) ke standar 1076
utama, satu set diperpanjang operator, sintaks yang lebih fleksibel 'kasus' dan
'menghasilkan' laporan, penggabungan VHPI (interface untuk C / C + + bahasa)
dan subset dari PSL ( Properti Spesifikasi Bahasa ). Perubahan ini harus
meningkatkan kualitas kode VHDL disintesis, membuat testbenches lebih
fleksibel, dan memungkinkan penggunaan lebih luas deskripsi VHDL untuk
sistem-tingkat.
Pada bulan Februari 2008, Accellera disetujui VHDL 4.0 juga
informal dikenal sebagai VHDL 2008, yang membahas lebih dari 90 masalah
ditemukan selama masa uji coba untuk versi 3.0 dan ditingkatkan termasuk jenis
generik. In 2008, Accellera released VHDL 4.0 to the IEEE for balloting for
inclusion in IEEE 1076-2008. The VHDL standard IEEE 1076-2008 was approved by
REVCOM in September 2008. Standar VHDL IEEE 1076-2008 telah disetujui oleh
RevCom pada bulan September 2008.
Adapun sala satu contoh library pada pemrograman VHDL
sebagai berikut :
OR gate:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
entity orgate is
port (A,B:in std_logic;
C:out std_logic);
end orgate;
architecture b of orgate is
begin
C<=A or B; end b;
Dan Salah satu contoh program vhdl dari sebuah D flip-flop
edge triggered positif dengan asynchronous Reset adalah sebagai berikut:
Funcition: Jika reset = 1 maka Q = 0
Jika CLK = 1 maka A = D
library ieee;
use ieee.std_logic_1164.all;
entity DFF_RST is
port (CLK, RESET, D : in std_logic;
Q : out std_logic); end DFF_RST;
architecture BEHAV_DFF of DFF_RST is
begin
DFF_PROCESS: process (CLK, RESET)
begin
if (RESET = ‘1’) then
Q <= ‘0’;
elsif (CLK’event and CLK = ‘1’) then
Q <= D;
end if;
end process;
end BEHAV_DFF;
DESAIN
Desain VHDL biasanya digunakan untuk menulis model teks
yang menggambarkan rangkaian logika. Seperti model diproses oleh program
sintesis, hanya jika itu adalah bagian dari desain logika. Sebuah program
simulasi digunakan untuk menguji desain logika dengan menggunakan model
simulasi untuk mewakili sirkuit logika yang antarmuka ke desain. Koleksi model
simulasi ini biasanya disebut testbench.
VHDL memiliki input file dan kemampuan keluaran, dan dapat
digunakan sebagai bahasa untuk keperluan umum untuk pemrosesan teks, tetapi
file yang lebih sering digunakan oleh testbench simulasi untuk data stimulus
atau verifikasi. Ada beberapa compiler VHDL yang membangun binari-binari
executable. Dalam hal ini, ada kemungkinan untuk menggunakan VHDL untuk menulis
testbench untuk memverifikasi fungsi dari desain menggunakan file pada komputer
host untuk menentukan rangsangan, untuk berinteraksi dengan pengguna, dan
membandingkan hasilnya dengan yang diharapkan. However, most designers leave
this job to the simulator. Namun, desainer yang paling meninggalkan pekerjaan
ini ke simulator. Hal ini relatif mudah bagi developer berpengalaman untuk
menghasilkan kode yang mensimulasikan berhasil tetapi itu tidak dapat
disintesis menjadi perangkat yang nyata, atau terlalu besar untuk praktis.
Satu perangkap tertentu adalah produksi disengaja transparan
kait daripada D-jenis flip-flop sebagai elemen penyimpanan. VHDL bukan bahasa
case sensitive. Satu dapat desain hardware di IDE VHDL (untuk implementasi FPGA
seperti Xilinx ISE, Altera Quartus, Synopsys Synplify atau Mentor Graphics
Designer HDL) untuk menghasilkan RTL skematik dari rangkaian yang diinginkan.
Setelah itu, skema yang dihasilkan dapat diverifikasi menggunakan software
simulasi yang menunjukkan bentuk gelombang input dan output dari sirkuit
setelah menghasilkan testbench sesuai. Untuk menghasilkan testbench sesuai
untuk sirkuit tertentu atau kode VHDL, masukan harus didefinisikan dengan
benar. Misalnya, untuk input jam, proses loop atau pernyataan iterasi
diperlukan. Keuntungan utama dari VHDL bila digunakan untuk desain sistem
adalah bahwa hal itu memungkinkan perilaku sistem perlu dijelaskan (model) dan
diverifikasi (simulasi) sebelum alat sintesis menterjemahkan desain ke dalam
perangkat keras yang nyata (gerbang dan kabel). Manfaat lain adalah bahwa VHDL
memungkinkan deskripsi sistem konkuren (banyak bagian, masing-masing dengan
perilakunya sendiri-sub, bekerja bersama-sama pada waktu yang sama). VHDL
adalah bahasa dataflow , tidak seperti bahasa komputasi prosedural seperti
BASIC, C, dan kode assembly, yang semuanya berjalan secara berurutan, satu
instruksi pada satu waktu. Titik akhir adalah bahwa ketika model VHDL
diterjemahkan ke dalam "gerbang dan kawat" yang dipetakan ke
perangkat programmable logic seperti CPLD atau FPGA , maka itu adalah
sebenarnya perangkat keras yang sedang diatur, daripada kode VHDL yang
"dieksekusi "seolah-olah pada beberapa bentuk chip prosesor.
CONTOH DESAIN
Contoh Desain Dalam VHDL, desain terdiri minimal dari
suatu entitas yang menggambarkan antarmuka dan arsitektur yang berisi
implementasi aktual. Selain itu, desain paling impor modul perpustakaan.
Beberapa desain juga mengandung beberapa arsitektur dan konfigurasi. Sederhana
and gerbang dalam VHDL akan terlihat seperti ini:
- (Ini adalah komentar VHDL)
- Impor std_logic dari perpustakaan IEEE library IEEE;
menggunakan IEEE semua.. std_logic_1164;
- Ini adalah entitas entitas ANDGATE adalah
port (
IN1: di std_logic;
IN2: di std_logic;
OUT1: std_logic keluar);
ANDGATE akhir;
arsitektur RTL dari ANDGATE adalah mulai
OUT1 <= IN1 dan IN2;
end RTL;
Sementara contoh di atas mungkin tampak sangat verbose untuk
pemula HDL, banyak bagian baik opsional atau perlu ditulis hanya sekali.
Umumnya fungsi sederhana seperti ini merupakan bagian dari modul perilaku yang
lebih besar, daripada memiliki modul terpisah untuk sesuatu yang sangat
sederhana. Selain itu, penggunaan unsur-unsur seperti jenis std_logic mungkin
pada awalnya tampaknya menjadi sebuah berlebihan.
Satu dapat dengan mudah menggunakan built-in tipe bit dan
menghindari impor perpustakaan di awal. Namun, dengan menggunakan ini bernilai
logika 9 ( U, X, 0, 1, Z, W, H, L, - ) bukan bit sederhana (0,1) menawarkan
simulasi yang sangat kuat dan alat debugging ke desainer yang saat ini tidak
tidak ada dalam HDL lain. Dalam contoh berikut, Anda akan melihat bahwa kode
VHDL dapat ditulis dalam bentuk yang sangat kompak. Namun, desainer yang
berpengalaman biasanya menghindari bentuk-bentuk kompak dan menggunakan gaya
yang lebih verbose coding untuk memudahkan pembacaan dan rawatan. Keuntungan
lain dengan gaya pengkodean verbose adalah jumlah kecil sumber daya yang
digunakan ketika pemrograman untuk Programmable Logic Device seperti CPLD [
rujukan? ].
Synthesizeable konstruksi dan VHDL template
Synthesizeable konstruksi dan VHDL template VHDL sering
digunakan untuk dua tujuan yang berbeda: simulasi desain elektronik dan
sintesis dari desain tersebut. Sintesis adalah proses di mana sebuah VHDL
disusun dan dipetakan ke dalam sebuah teknologi penerapan seperti FPGA atau
ASIC. Banyak FPGA vendor telah gratis (atau murah) alat untuk mensintesis VHDL
untuk digunakan dengan chip mereka, di mana alat ASIC seringkali sangat mahal.
Tidak semua konstruksi dalam VHDL cocok untuk sintesis. Sebagai contoh,
sebagian besar konstruksi yang menangani secara eksplisit dengan waktu seperti
menunggu selama 10 ns, tidak disintesis meskipun berlaku untuk simulasi.
Sementara alat sintesis yang berbeda memiliki kemampuan yang berbeda, ada
subset disintesis umum VHDL yang mendefinisikan bahasa apa konstruksi dan idiom
peta ke perangkat keras yang umum untuk peralatan sintesis banyak. 1.076,6 IEEE
mendefinisikan subset dari bahasa yang dianggap sebagai subset sintesis resmi.
Hal ini umumnya dianggap sebagai "praktek terbaik" untuk menulis kode
yang sangat idiomatic untuk sintesis sebagai hasil dapat benar atau suboptimal
untuk non-standar konstruksi. Beberapa contoh kode yang peta ke multiplexer
hardware tool berikut:
MUX template
MUX template The multiplexer , atau 'MUX' seperti yang
biasa disebut, adalah sederhana membangun sangat umum dalam desain hardware.
Contoh di bawah menunjukkan dua sederhana untuk satu MUX,
dengan masukan A dan B, selektor S dan output X:
- Template 1: X <= A ketika S = '1 'B lain;
- Template 2: dengan S pilih X <= A ketika '1 ',
B ketika orang lain;
- Template 3: proses (A, B, S)
mulai kasus S
ketika '= '1> X <= A;
ketika orang lain => X <= B;
kasus akhir; proses akhir;
- Template 4: proses (A, B, S)
mulai jika S = '1 'kemudian
X <= A;
lain
X <= B;
berakhir jika;
proses akhir;
- Template 5 - MUX 4:1, di mana S adalah bit
std_logic_vector 2:
proses (A, B, C, D, S) mulai
kasus S
ketika "00" => x <= A;
ketika "01" => X <= B;
ketika "10" => x <= C;
ketika orang lain => X <= D;
kasus akhir; proses akhir;
Tiga terakhir template menggunakan apa yang VHDL panggilan
'berurutan' kode. Bagian sekuensial selalu ditempatkan di dalam proses dan
memiliki sintaks yang sedikit berbeda yang mungkin mirip dengan bahasa
pemrograman yang lebih tradisional.
Latch template
Latch template Sebuah transparan latch pada dasarnya
adalah satu bit memori yang diperbarui bila memungkinkan sinyal yang
dibangkitkan:
-- latch template 1: - Latch template 1:
Q <= D when Enable = '1' else Q ; Q <= D ketika Enable
= '1 'Q lain;
-- latch template 2: - Latch template 2:
process ( D,Enable ) proses (D, Aktifkan)
begin mulai
if Enable = '1' then jika Enable = '1 'kemudian
Q <= D ; Q <= D;
end if ; berakhir jika;
end process ; proses akhir;
D-type flip-flop
D-type flip-flop D-type flip-flop sampel sinyal masuk atau
jatuh di tepi terbit jam. The DFF is the basis for all synchronous logic. The
DFF adalah dasar untuk semua logika sinkron.
-- simplest DFF template (not recommended) - Sederhana DFF
template (tidak disarankan)
Q <= D when rising_edge ( CLK ) ;
Q <= D saat rising_edge (CLK);
-- recommended DFF template: - Disarankan DFF template:
process
( CLK ) proses (CLK) begin mulai
-- use falling_edge(CLK) to sample at the falling edge
instead - Gunakan falling_edge (CLK) untuk sampel di pinggir jatuh bukan
if rising_edge ( CLK ) then jika rising_edge (CLK) kemudian
Q <= D ; Q <= D;
end if ; berakhir jika;
end process ; proses akhir;
-- alternative DFF template: - Template DFF alternatif:
process proses
begin mulai
wait until CLK = '1' ; menunggu sampai CLK = '1 ';
Q <= D ; Q <= D;
end process ; proses akhir;
-- alternative template expands the ''rising_edge'' function
above: - Template alternatif memperluas rising_edge''''fungsi di atas: process
( CLK ) proses (CLK) begin mulai
if CLK = '1' and CLK 'event then
--use rising edge, use "if CLK = '0' and
CLK'event"
instead for falling edge jika CLK = '1 'dan CLK' acara lalu
- naik tepi digunakan, menggunakan "jika = CLK '0 'dan CLK'event"
bukan untuk jatuh tepi Q <= D ; Q <= D;
end if ; berakhir jika;
end process ; proses akhir;
a Enable = '1 'maka - atau '0' jika Aktifkan aktif rendah
...
Q <= D ; Q <= D;
end if ; berakhir jika;
end if ; berakhir jika;
if RESET = '1' then -- or '0'
if RESET is active low... jika RESET = '1 'maka - atau '0'
jika RESET aktif rendah ...
Q <= '0' ; Q <= '0 ';
end if ; berakhir jika;
end process ; proses akhir;
Counter
Counter Contoh berikut adalah up-counter dengan reset
asynchronous, beban paralel dan lebar dikonfigurasi. It demonstrates the use of
the 'unsigned' type and VHDL generics . Ini menunjukkan penggunaan unsigned
'tipe' dan generik VHDL. Para generik sangat dekat dengan argumen atau template
dalam bahasa pemrograman tradisional lainnya seperti C atau C + +. Lebih
counter kompleks dapat menambahkan jika / kemudian / lain laporan dalam elsif
(CLK) rising_edge untuk menambahkan fungsi-fungsi lain, seperti menghitung
memungkinkan, berhenti atau berguling di beberapa nilai hitung, menghasilkan sinyal
output seperti sinyal jumlah terminal, dll Perawatan harus diambil dengan
pemesanan dan bersarang kontrol tersebut jika digunakan bersama-sama, untuk
menghasilkan prioritas yang diinginkan dan meminimalkan jumlah tingkat logika
diperlukan.
library IEEE; menggunakan IEEE semua.. std_logic_1164; IEEE.
Menggunakan numeric_std -. Semua, untuk jenis unsigned
counter_example entitas
generik (WIDTH: integer: = 32);
port (
CLK, RESET, LOAD: di std_logic;
DATA: di unsigned (WIDTH-1 downto 0);
Q: out unsigned (WIDTH-1 downto 0));
akhir counter_example entitas;
arsitektur counter_example_a dari counter_example adalah
sinyal cnt:
unsigned (WIDTH-1 downto 0);
mulai
proses (RESET, CLK) adalah
mulai
jika RESET = '1 'kemudian
cnt <= (orang lain => '0 ');
rising_edge elsif (CLK) kemudian
jika LOAD = '1 'kemudian
cnt <= DATA;
lain
cnt <= cnt + 1;
berakhir jika;
berakhir jika;
proses akhir;
Q <= cnt; a
rsitektur akhir counter_example_a;
Simulasi hanya konstruksi
Simulasi hanya konstruksi Sebuah subset besar VHDL tidak
dapat diterjemahkan ke dalam perangkat keras. subset ini dikenal sebagai
non-disintesis atau subset-satunya simulasi VHDL dan hanya dapat digunakan
untuk prototipe, simulasi dan debugging. Sebagai contoh, kode berikut akan
menghasilkan sebuah jam dengan frekuensi 50 MHz. Hal ini dapat, misalnya, akan
digunakan untuk menggerakkan input jam dalam desain selama simulasi. Hal ini,
bagaimanapun, simulasi hanya membangun dan tidak dapat diimplementasikan dalam
perangkat keras. Dalam hardware sebenarnya, jam dihasilkan secara eksternal,
bisa dikecilkan internal oleh logika pengguna atau perangkat keras khusus.
Simulasi hanya konstruksi dapat digunakan untuk membangun bentuk gelombang
kompleks dalam waktu yang sangat singkat. gelombang tersebut dapat digunakan,
misalnya, sebagai vektor uji untuk desain yang kompleks atau sebagai prototipe
dari beberapa logika disintesis yang akan diimplementasikan di masa depan.
proses
mulai
menunggu sampai MULAI = '1 '; - menunggu sampai START tinggi
for i in 1 sampai 10 loop - kemudian menunggu untuk periode
beberapa jam ... tunggu sampai rising_edge (CLK);
loop end;
for i in 1 sampai 10 loop - menulis angka 1 sampai 10 untuk
DATA, 1 setiap siklus DATA <= to_unsigned (i, 8);
tunggu sampai rising_edge (CLK);
loop end;
- Tunggu sampai perubahan output menunggu HASIL;
- Sekarang meningkatkan ACK untuk periode jam ACK <= '1
';
tunggu sampai rising_edge (CLK);
ACK <= '0 ';
- Dan seterusnya ... proses akhir;
Sekian dari kami akhir kata
Wasalammu'alaikum wr.wb
Sumber:
http://agfi.staff.ugm.ac.id/blog/index.php/2008/11/pengenalan-fpga/
WIKIPEDIA
http://de-lova.blogspot.com/2010/10/sejarah-singkat-fpga-vhdl.html
http://kecebong-vant.blogspot.com/2012/10/sejarah-dan-fungsi-fpga.html
Komentar ini telah dihapus oleh pengarang.
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapus