FPGA DAN VHDL Teori, Antarmuka dan Aplikasi
UU No 19
Tahun 2002
Tentang Hak Cipta
Fungsi dan Sifat hak Cipta Pasal 2 1. Hak Cipta merupakan hak eksklusif bagi pencipta atau pemegang Hak Cipta untuk mengumumkan atau memperbanyak ciptaannya, yang timbul secara otomatis setelah suatu ciptaan dilahirkan tanpa mengurangi pembatasan menurut peraturan perundang-undangan yang berlaku. Hak Terkait Pasal 49 1. Pelaku memiliki hak eksklusif untuk memberikan izin atau melarang pihak lain yang tanpa persetujuannya membuat, memperbanyak, atau menyiarkan rekaman suara dan/atau gambar pertunjukannya. Sanksi Pelanggaran Pasal 72 1. Barangsiapa dengan sengaja dan tanpa hak melakukan perbuatan sebagaimana dimaksud dalam pasal 2 ayat (1) atau pasal 49 ayat (2) dipidana dengan pidana penjara masing-masing paling singkat 1 (satu) bulan dan/atau denda paling sedikit Rp 1.000.000,00 (satu juta rupiah), atau pidana penjara paling lama 7 (tujuh) tahun dan/atau denda paling banyak Rp 5.000.000.000,00 (lima miliar rupiah). 2. Barangsiapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada umum suatu ciptaan atau barang hasil pelanggaran Hak Cipta sebagaimana dimaksud dalam ayat (1), dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak Rp 500.000.000,00 (lima ratus juta rupiah)
ii
FPGA DAN VHDL Teori, Antarmuka dan Aplikasi
Ferry Wahyu Wibowo
iii
Jl. Elang 3, No 3, Drono, Sardonoharjo, Ngaglik, Sleman Jl.Kaliurang Km.9,3 – Yogyakarta 55581 Telp/Faks: (0274) 4533427 Hotline: 0838-2316-8088 Website: www.deepublish.co.id E-mail:
[email protected] Katalog Dalam Terbitan (KDT) WIBOWO, Ferry W FPGA DAN VHDL: Teori, Antarmuka dan Aplikasi/ oleh Ferry Wahyu Wibowo.--Ed.1, Cet. 1--Yogyakarta: Deepublish, Januari 2014. xxii, 414 hlm.; 25 cm ISBN 978-Nomor ISBN 9786022802020 1. Program
I. Judul 005.3
Desain cover : Herlambang Rahmadhani Penata letak : Ika Fatria Iriyanti
PENERBIT DEEPUBLISH (Grup Penerbitan CV BUDI UTAMA) Anggota IKAPI (076/DIY/2012) Isi diluar tanggungjawab percetakan Hak cipta dilindungi undang-undang Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpa izin tertulis dari Penerbit.
iv
KATA PENGANTAR Buku ini hadir bertujuan untuk memperkenalkan field programmable gate array (FPGA) dan very high speed integrated circuit hardware description language (VHDL) sebagai salah satu bidang hardware dan software, sekaligus untuk menunjukkan penggunaan VHDL dalam suatu aplikasi perancangan sistem elektronik. Buku ini banyak mengambil dari prosiding dan jurnal yang telah dipublikasikan oleh penulis dan terdiri dari beberapa contoh implementasi FPGA yang memungkinkan untuk digunakan sebagai buku teks berbagai level dan sebagai buku referensi. Walaupun demikian, perkembangan tool, metodologi pengembangan, dan metodologi pengujian dalam rancang bangun perangkat keras berkembang sangat cepat dan perlu diikuti. Sintaks VHDL mirip dengan bahasa pemrograman seperti C dan Pascal, tetapi sifatnya berbeda. Bahasa C dan Pascal diadaptasi untuk central processing unit (CPU), yaitu mesin serial yang menampilkan satu instruksi pada suatu waktu, sedangkan VHDL diadaptasi untuk struktur paralel dalam perangkat keras. Pada dasarnya, kinerjanya selalu lebih baik menggunakan VHDL daripada menggunakan bahasa pemrograman konvensional untuk CPU. Hal ini berarti VHDL akan jauh lebih baik digunakan sebagai bahasa implementasi dalam bentuk bahasa software. Bahkan, penggunaan mikrokontroler dapat dirancang menggunakan VHDL daripada menggunakan CPU dan kode mesin.
v
Simulator telah dikembangkan lebih jauh di pasaran agar dapat mengeksekusi kode VHDL sebagai watak pengujian perancangan.
Kode
VHDL
dapat
dikirimkan
ke
Field
Programmable Gate Array (FPGA) atau gate matrix. Transformasi dari kode ke teknologi perangkat keras disebut sintesis. Tool sintesis secara fungsional harus membuat perangkat keras yang mempunyai watak sesuai dengan simulasi kode VHDL. Kesulitan penulisan kode VHDL untuk sintesis memungkinkan menggunakan tool sintesis yang berbeda dalam mengubah bentuk bagian yang berbeda dari bahasa VHDL. Beberapa perancang perangkat keras mendeskripsikan watak (behavior) dalam VHDL dibandingkan merancang menggunakan gerbang-gerbang logik yang memerlukan pengaturan komponen dan wiring untuk membuatnya. Pengaturan ini harus ada untuk produktivitas dan kualitas desain yang hendak dicapai dengan mengimplementasikan teori sistem digital. Berbeda pendeskripsian perancangan menggunakan bahasa tingkat tinggi berbasis teknologi lepas, dalam hal ini VHDL, perancang dapat berkonsentrasi pada pembuatan desain secara fungsional. VHDL menyediakan lebih banyak efisiensi desain dan berdayaguna daripada menggunakan desain tingkat gerbang. Penggunaan VHDL dalam kaitan tool sintesis menunjukkan bahwa teknologi dapat diubah secara cepat dan mudah. Fasilitas tersebut dapat dieksploitasi lebih lanjut yang dikenal sebagai purwarupa dari ASIC (Aplication Spesific Integrated Circuit) yang menggunakan FPGA. Metode, struktur yang baik, pengujian pengetahuan
dan
perancangan
VHDL
yang
teknologi baik vi
dan
lepas tepat.
membutuhkan Keuntungan
pendeskripsian rancangan dalam bahasa tingkat tinggi dan metode pengujian mempunyai porsi dalam buku ini. Semoga
buku
ini
bermanfaat
bagi
siapapun
yang
membacanya, khususnya yang akan memulai bidang reconfigurable computing. Buku ini masih kurang dari sempurna dan masih memerlukan pengembangan lagi, saran dan kritik senantiasa penulis terima dengan tangan terbuka. Terima kasih.
Yogyakarta, Januari 2014
Ferry Wahyu Wibowo
vii
SINGKATAN-SINGKATAN AC ADI AFG ALU ASCII ASIC ASM ASSP AVT BCD BER BIST BJT CAD CAE CDMA CLB CMOS CPC CPLD CPU DC DFT DRAM DSP DUT EBCDIC ECC EDA EEPROM
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
EGCS EPROM FAMOS
: : :
Alternating current Automated Design Implementation Attenuator frequency generator Arithmetic logic unit American Standard Code for Information Interchange Application specific integrated circuit Algorithmic state machine Application specific standard product Architecture verification test Binary coded decimal Bit error rate Built in self test Bipolar junction transistor Computer aided design Computer added engineering Coded division multiple access Configurable logic block Complementary metal oxide semiconductor Convolutional product code Complex programmable logic device Central processing unit Direct current Design for test Dynamic random access memory Digital signal processing Design under test Extended binary codec decimal interchange code Error correction code Electronic design automation Electrically erasable and programmable read only memory Elevator group control system Erasable and programmable read only memory Floating gate ovalanche metal oxide semiconductor
viii
FF FFT FPGA FPLA FSM GAL GCLK GPI GUI HDL HL I/O IC IEEE IOB IP IVT JEDEC JTAG LCA LCD LCS LE LED LSB LSI LUT MCM MGT MOS MOSFET MSB MSI MUX Opcode PACE PAL PALASM
: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
Flip-flop Fast fourier transform Field programmable gate array Field programmable logic array Finite state machine Generic array logic Global clock General purpose interconect Graphical user interface Hardware description language High level Input / output Integrated circuit Institute of Electrical and Electronic Engineers Input output block Intellectual property Implementation verification test Joint electron device engineering council Joint test action group Logic cell array Liquid crystal display Local control system Logic element Light emitting diode Least significant bit Large scale integration Look up table Multiple chip module Multi Gigabit Transceiver Metal oxide semiconductor Metal oxide semiconductor field effect transistor Most significant bit Medium scale integration Multiplekser Operation code Pinout and area constraints editor Programmable logic array PAL assembler and simulator
ix
PC PCB PIP PLA PLC PLD PMUX PROM R/C R&D RAM RCA ROM RTL SDF SerDes SNR SoC SOP SPI SRAM SSI TTL VHDL
: : : : : : : : : : : : : : : : : : : : : : : :
VHSIC VLSI VTP U-IOB UV Wi-MAX
: : : : : :
Personal computer Printed circuit board Programmable interconnect point Programmable logic array Programmable logic control Programmable logic device Programmable Multiplexer Programmable read only memory Resistance / capacitive Research and Development Random access memory Radio corporation of America Read only memory Register transistor logic (level) Standard delay format Serializer / deserializer Signal to noise ratio System on Chip Sum of product Serial peripheral interface Static random access memory Small scale integration Transistor transistor logic Very high speed integrated circuit hardware description language Very high speed integrated circuit Very large scale integration Verification test plan Unbonded input output block Ultra violet Worldwide interoperability for microwave access
x
DAFTAR ISI KATA PENGANTAR ..................................................................... v SINGKATAN-SINGKATAN ...................................................... viii DAFTAR ISI .................................................................................. xi DAFTAR GAMBAR .................................................................... xix BAB I 1.1. 1.2. 1.3. 1.4.
Prinsip–prinsip Sistem Digital .................................. 1 Pendahuluan ................................................................. 1 Perbandingan Elektronika Analog dan Digital ............ 2 Level logika digital ...................................................... 5 Sistem Bilangan Desimal ............................................. 5 1.4.1. Notasi Posisional ........................................... 6 1.5. Sistem Bilangan Biner ................................................. 7 1.5.1. Notasi Posisional ........................................... 7 1.6. Sistem Bilangan Oktal ................................................. 8 1.6.1. Notasi Posisional ........................................... 8 1.7. Sistem Bilangan Heksadesimal ................................. 10 1.7.1. Notasi Posisional ......................................... 10 1.8. Komplemen bilangan ................................................. 12 1.8.1. Komplemen-R ............................................. 12 1.8.2. Komplemen-(R-1) ....................................... 13 1.9. Sandi Biner ................................................................ 13 1.9.1. Sandi Binary Coded Decimal (BCD) .......... 14 1.9.2. Sandi Excess 3 (XS-3) ................................. 14 1.9.3. Sandi 8, 4, -2, -1 .......................................... 15 1.9.4. Sandi Gray ................................................... 15 1.9.5. Sandi Alfanumerik ...................................... 17 1.10. Bit Paritas .................................................................. 19 1.11. Logika Gerbang ......................................................... 20 1.11.1. Operator Logika Dasar ................................ 21 1.11.2. Tabel kebenaran untuk operator logika ....... 21 1.11.3. Gerbang Logika ........................................... 22 xi
1.11.4. Rangkaian logika kombinasional dari fungsi logika ................................................ 22 1.12. Referensi .................................................................... 24 1.13. Pertanyaan ................................................................. 24 BAB II 2.1. 2.2.
2.5. 2.6.
Programmable Logic Device ................................... 25 Pendahuluan .............................................................. 25 Metode Pemrograman Perangkat Keras ..................... 26 2.2.1. Teknologi Fusible Link ............................... 28 2.2.2. Teknologi Antifuse ...................................... 29 Piranti Mask-Programmed ........................................ 31 2.3.1. PROM ......................................................... 32 2.3.2. Teknologi berbasis EPROM ....................... 33 2.3.3. Teknologi berbasis EEPROM ..................... 35 2.3.4. Teknologi berbasis RAM–DRAM dan SRAM ......................................................... 36 PLD, ASIC dan FPGA .............................................. 43 2.4.1. Programmable Logic Device (PLD) ........... 43 2.4.1.1 PROM ......................................... 45 2.4.1.2 Programmable Logic Array (PLA) .......................................... 47 2.4.1.3 Programmable Array Logic (PAL) .......................................... 49 2.4.1.4 Complex Programmable Logic Device (CPLD) ................. 50 2.4.2. Application Spesific Integrated Circuit (ASIC) ......................................................... 53 2.4.3. Field Programmable Gate Array (FPGA) ........................................................ 57 Referensi .................................................................... 64 Pertanyaan ................................................................. 65
BAB III 3.1. 3.2. 3.3.
Field Programmable Gate Array ............................ 67 Pendahuluan .............................................................. 67 Reconfigurable Device .............................................. 70 Blok I/O Dasar .......................................................... 76
2.3.
2.4.
xii
3.4. 3.5. 3.6. 3.7. 3.8. 3.9.
Configurable Logic Block (CLB) .............................. 78 Blok Interkoneksi yang Dapat Diprogram ................. 81 Optimasi Perancangan untuk FPGA .......................... 82 Aliran Perancangan FPGA Xilinx ............................. 86 Referensi .................................................................... 87 Pertanyaan ................................................................. 88
BAB IV 4.1. 4.2. 4.3. 4.4.
Model Masukan Rancangan ................................... 89 Pendahuluan ............................................................... 89 Metode Masukan Rancangan ..................................... 91 Referensi .................................................................. 100 Pertanyaan ............................................................... 100
BAB V 5.1. 5.2. 5.3. 5.4. 5.5.
Metodologi Top-Down vs Bottom-Up.................... 101 Pendahuluan ............................................................. 101 Metodologi Perancangan terhadap EDA ................. 105 Implementasi Metodologi Perancangan .................. 109 Referensi .................................................................. 115 Pertanyaan ............................................................... 116
BAB VI 6.1. 6.2. 6.3.
Metode Perancangan ............................................. 117 Pendahuluan ............................................................. 117 Perancangan IC ........................................................ 119 Metodologi Perancangan Pewaktuan ....................... 122 6.3.1. Floorplanning dan Placement ................... 122 6.3.2. Floorplan Tingkat Tinggi .......................... 123 6.3.3. Floorplanning Terperinci .......................... 124 6.3.4. Sintesis Kendali Pewaktuan ...................... 126 6.3.5. Model Penyambungan ............................... 128 6.3.6. Placement and Route ................................. 130 6.3.7. Synthesis Back-Annotation ........................ 134 6.3.8. Verifikasi Pewaktuan ................................ 135 Referensi .................................................................. 137 Pertanyaan ............................................................... 138
6.4. 6.5.
xiii
BAB VII 7.1. 7.2. 7.3. 7.4. 7.5. 7.6. 7.7. 7.8. 7.9. 7.10.
Verifikasi Rancangan ............................................ 139 Pendahuluan ............................................................ 139 Verifikasi Perancangan ............................................ 140 Pembuktian Implementasi ....................................... 143 Jenis Verifikasi Uji .................................................. 149 Metode Verifikasi Uji .............................................. 150 Konfigurasi Pengujian ............................................. 151 Struktur Testbench ................................................... 152 Prosedur Verifikasi Pengaturan ............................... 154 Referensi .................................................................. 156 Pertanyaan ............................................................... 156
BAB VIII 8.1. 8.2. 8.3. 8.4. 8.5. 8.6. 8.7. 8.8.
VHDL ..................................................................... 157 Pendahuluan ............................................................ 157 VHDL ...................................................................... 159 Tahap Perancangan .................................................. 163 Struktur Kode VHDL .............................................. 165 Entity ....................................................................... 169 Architecture ............................................................. 170 Referensi .................................................................. 172 Pertanyaan ............................................................... 172
BAB IX 9.1. 9.2. 9.3. 9.4. 9.5. 9.6. 9.7. 9.8.
Mode Penyambungan ........................................... 173 Pendahuluan ............................................................ 173 Signal ....................................................................... 174 Variable ................................................................... 177 Perbandingan Signal dan Variable .......................... 178 Generic .................................................................... 179 Constant ................................................................... 180 Referensi .................................................................. 180 Pertanyaan ............................................................... 181
BAB X 10.1. 10.2. 10.3. 10.4.
Tipe Data, Obyek dan Konversi ........................... 183 Pendahuluan ............................................................ 183 Tipe Data yang Belum Terdefinisi .......................... 183 Tipe Data yang Dapat Didefinisikan Pengguna ...... 189 Subtype .................................................................... 190 xiv
10.5. 10.6. 10.7. 10.8. 10.9. 10.10.
Larik (Array) ............................................................ 191 Larik dalam Port ...................................................... 193 Record ...................................................................... 194 Konversi Data .......................................................... 194 Referensi .................................................................. 197 Pertanyaan ............................................................... 198
BAB XI Operator dan Atribut ............................................ 199 11.1. Operator ................................................................... 199 11.1.1. Operator Keluaran .................................... 199 11.1.2. Operator Logika ........................................ 200 11.1.3. Operator Aritmatika .................................. 201 11.1.4. Operator Pembanding ............................... 202 11.1.5. Operator Geser .......................................... 202 11.1.6. Operator Overloading ............................... 203 11.1.7. Penggunaan Operator ................................ 204 11.2. Atribut Data ............................................................. 204 11.2.1. Atribut Signal Enumerasi .......................... 205 11.2.2. Atribut Signal ............................................ 206 11.2.3. Atribut yang Didefinisikan Pengguna ....... 207 11.3. Referensi .................................................................. 208 11.4. Pertanyaan ............................................................... 208 BAB XII 12.1. 12.2. 12.3. 12.4. 12.5. 12.6.
Konkuren dan Sekuensial ..................................... 209 Kode Konkuren ........................................................ 209 Logik Kombinasional Versus Sekuensial ................ 209 Kode konkuren Versus Sekuensial .......................... 210 Deklarasi When ........................................................ 211 Generate .................................................................. 213 Block ........................................................................ 214 12.6.1. Simple Block ............................................. 214 12.6.2. Guarded Block ........................................... 215 12.7. Kode Sekuensial ...................................................... 216 12.7.1. Process ...................................................... 217 12.7.2. If ................................................................. 217 12.7.3. Wait ........................................................... 218 xv
12.7.4. Case ........................................................... 220 12.7.5. Case Versus if ........................................... 220 12.7.6. Case Versus When ..................................... 221 12.8. Referensi .................................................................. 221 12.9. Pertanyaan ............................................................... 222 BAB XIII 13.1. 13.2. 13.3. 13.4. 13.5. 13.6.
ROM dan RAM ..................................................... 223 Pendahuluan ............................................................ 223 Read-Only Memory (ROM) ..................................... 224 Perancangan ROM .................................................. 226 Random Access Memory (RAM) ............................. 231 Referensi .................................................................. 233 Pertanyaan ............................................................... 234
BAB XIV 14.1. 14.2. 14.3. 14.4. 14.5.
Finite State Machine .............................................. 235 Pendahuluan ............................................................ 235 Finite State Machine ............................................... 237 Prinsip Kerja Finite State Machine ......................... 238 Referensi .................................................................. 251 Pertanyaan ............................................................... 252
BAB XV Implementasi FPGA untuk Sorting ..................... 253 15.1. Pendahuluan ............................................................ 253 15.2. Rekonfigurasi Field Programmable Gate Array (FPGA) .................................................................... 254 15.2.1. Arsitektur FPGA ....................................... 256 15.2.2. Proses Implementasi FPGA ...................... 257 15.2.3. Optimasi Logik .......................................... 257 15.2.4. Pemetaan Teknologi .................................. 257 15.2.5. Penempatan ............................................... 258 15.2.6. Piranti Lunak Penjalaran ........................... 258 15.2.7. Bagian Pemrograman ................................ 258 15.3. VHDL Bahasa Pendukung FPGA ........................... 259 15.4. Mergesort ................................................................ 261 15.5. Rancangan Global ................................................... 262 15.5.1. Rangkaian Shift-Register ........................... 264 15.5.2. Multiplekser .............................................. 264 xvi
15.5.3. Rangkaian Pembanding (Comparator) ..... 265 15.5.4. Rangkaian Keluaran .................................. 265 15.6. Mergesort Berbasis FPGA ....................................... 266 15.7. Referensi .................................................................. 268 BAB XVI 16.1. 16.2.
16.3. 16.4. 16.5. 16.6. 16.7.
Implementasi FPGA untuk Arithmetic Logic Unit .......................................................................... 271 Pendahuluan ............................................................. 271 Arithmetic Logic Unit (ALU) .................................. 274 16.2.1. Unit Logik ................................................. 277 16.2.2. Unit Aritmetik ........................................... 278 Unit Shifter .............................................................. 279 Unit Multiplekser ..................................................... 281 Implementasi FPGA ................................................ 284 Referensi .................................................................. 286 Pertanyaan ............................................................... 288
BAB XVII Implementasi FPGA untuk Convolutional Encoder ................................................................... 289 17.1. Pendahuluan ............................................................. 289 17.2. Convolutional Code ................................................. 292 17.3. Field Programmable Gate Array (FPGA) ............... 294 17.4. Implementasi Convolutional Encoder dalam FPGA ....................................................................... 296 17.5. Referensi .................................................................. 302 17.6. Pertanyaan ............................................................... 304 BAB XVIII Interoperabilitas VHDL antara FPGA Xilinx dan Altera ............................................................... 305 18.1. Pendahuluan ............................................................. 305 18.2. Selayang Pandang VHDL ........................................ 307 18.2.1. Xilinx ISE .................................................. 311 18.2.2. Altera Max+Plus II .................................... 313 18.3. Interoperabilitas Xilinx ISE dan Max + Plus II 10.2 ................................................... 315 18.4. Referensi .................................................................. 321 18.5. Pertanyaan ............................................................... 322 xvii
BAB XIX Antarmuka pada FPGA Xilinx Spartan-3E ....... 323 19.1. Pendahuluan ............................................................ 323 19.2. Analog Capture Circuit ........................................... 324 19.2.1. Programmable Pre-Amplifier ................... 329 19.2.2. Analog-to-Digital Converter (ADC) ......... 336 19.3. Pemrosesan Sinyal Digital ...................................... 342 19.4. Digital-to-Analog Converter (DAC) ....................... 347 19.5. Referensi .................................................................. 357 19.6. Pertanyaan ............................................................... 358 BAB XX 20.1. 20.2. 20.3. 20.4.
20.5. 20.6.
Implementasi FPGA untuk Pengukuran Daya Listrik ........................................................... 359 Pendahuluan ............................................................ 359 FPGA Spartan-3E Starter Kit .................................. 360 Teori Daya Listrik ................................................... 363 Metodologi .............................................................. 366 20.4.1. Spesifikasi ................................................. 366 20.4.2. Verifikasi ................................................... 366 20.4.3. Implementasi ............................................. 367 20.4.4. Debug dan Pengujian ................................ 367 20.4.5. Hasil .......................................................... 367 Referensi .................................................................. 372 Pertanyaan ............................................................... 373
DAFTAR PUSTAKA ................................................................. 375 LAMPIRAN ................................................................................ 383 GLOSARIUM ............................................................................. 385 INDEKS
.................................................................................. 387
xviii
DAFTAR GAMBAR
Gambar 1.1 Gambar 1.2 Gambar 1.3 Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 2.10 Gambar 2.11 Gambar 2.12 Gambar 2.13 Gambar 2.14 Gambar 2.15 Gambar 2.16 Gambar 2.17 Gambar 2.18 Gambar 2.19 Gambar 2.20 Gambar 2.21 Gambar 2.22 Gambar 2.23 Gambar 3.1 Gambar 3.2
Perbandingan Analog dan Digital Secara Grafik ..................................................................... 4 Gerbang Logika ................................................... 22 Gerbang Kombinasional ...................................... 23 Metode Pemrograman Piranti .............................. 27 Prinsip Teknologi Fusible Link ........................... 28 Teknologi Antifuse............................................... 30 Prinsip Teknologi Antifuse .................................. 31 Prinsip Teknologi Prom ....................................... 33 Teknologi Berbasis MOS Vs EPROM ................ 34 Prinsip Teknologi EPROM.................................. 35 Teknologi EEPROM ........................................... 36 DRAM ................................................................. 37 Konfigurasi SRAM .............................................. 38 Blok SRAM 2 MXN ............................................ 39 Pemrograman FPGA pada SRAM ....................... 41 Konfigurasi SRAM pada FPGA .......................... 42 Pembagian Jenis-jenis PLD ................................. 44 Blok Diagram PLD .............................................. 45 PROM .................................................................. 46 Contoh Implementasi PROM pada Full Adder ................................................................... 47 PLA...................................................................... 48 PAL...................................................................... 49 Struktur CPLD ..................................................... 51 Blok PAL yang terdapat pada CPLD .................. 52 Gate Array ........................................................... 54 Arsitektur FPGA .................................................. 62 Skematik FPGA ................................................... 71 Arsitektur Virtex-Ii .............................................. 72
xix
Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 4.1 Gambar 4.2 Gambar 5.1 Gambar 5.2 Gambar 6.1 Gambar 6.2 Gambar 6.3 Gambar 6.4 Gambar 6.5 Gambar 7.1 Gambar 8.1 Gambar 8.2 Gambar 8.3 Gambar 8.4 Gambar 9.1 Gambar 9.2 Gambar 13.1 Gambar 13.2 Gambar 14.1 Gambar 14.2. Gambar 14.3 Gambar 14.4 Gambar 14.5 Gambar 15.1
Grafik Throughput vs Kinerja Aritmetik dari Jenis Virtex-4 ............................................... 74 Struktur Blok I/O Dasar ...................................... 77 CLB XC4000....................................................... 79 Interkoneksi yang dapat Diprogram .................... 82 Contoh Optimisasi Low Level Logic: 8-To1 MUX................................................................. 84 Tingkat Deskripsi Perancangan ........................... 91 Alur Computer Aided Design (CAD) .................. 94 Trend Kapasitas Teknologi FPGA Xilinx ......... 103 Alur Perancangan Sederhana ............................ 114 Hubungan Antara Kerapatan IC Dan Prosentase Placement & Routing ...................... 118 Floorplan Tingkat Tinggi.................................. 124 Floorplan dari Chip FPGA ............................... 125 Pengecekan Pewaktuan ..................................... 127 Placement and Routing...................................... 131 Struktur Testbench............................................. 152 Relasi Perancangan antara Kode VHDL Dan FPGA ......................................................... 165 Bagian Pokok Kode VHDL............................... 166 Bagian Pokok Library ....................................... 168 Mode Sinyal ...................................................... 170 Penyambungan Menggunakan Signal ............... 175 Perpaduan dan Pemisahan Sambungan ............. 175 Arsitektur ROM................................................. 225 Diagram Bentuk Gelombang Desain ROM ...... 230 Struktur Finite State Machine ........................... 237 State Diagram Pengendali Elevator .................. 241 State Diagram FSM untuk Lampu Lalu Lintas ................................................................. 243 Register Transfer Logic dari Gambar 14.3........ 250 Diagram Bentuk Gelombang Dari Gambar 14.3 .................................................................... 251 Arsitektur FPGA ............................................... 256 xx
Gambar 15.2 Gambar 15.3 Gambar 15.4 Gambar 15.5 Gambar 15.6 Gambar 15.7 Gambar 15.8 Gambar 15.9 Gambar 15.10 Gambar 15.11 Gambar 16.1 Gambar 16.2 Gambar 17.1 Gambar 17.2 Gambar 17.3 Gambar 18.1 Gambar 19.1 Gambar 19.2 Gambar 19.3 Gambar 19.4 Gambar 19.5 Gambar 19.6 Gambar 19.7 Gambar 19.8 Gambar 19.9 Gambar 19.10 Gambar 19.11
Pemrograman FPGA Melalui PC ...................... 259 Ringkasan Aliran VHDL ................................... 260 Ilustrasi Mergesort............................................. 261 Rancangan Modul Mergesort ............................ 263 Bagan Shift-Register ......................................... 264 Bagan Multiplekser ........................................... 264 Bagan Rangkaian Pembanding .......................... 265 Bagan Rangkaian Keluaran ............................... 265 Diagram Bentuk Gelombang Dari Mergesort 4x8-Bit ............................................. 266 Floorplan dari Rangkaian Mergesort................. 267 Bagan Desain ALU............................................ 282 Bagan RTL Rancangan ALU ............................ 285 Bagan Convolutional Encoder ........................... 293 Floorplan dari Convolutional Encoder .............. 300 Diagram Bentuk Gelombang dari Convolutional Encoder ...................................... 301 Alur Compiler VHDL........................................ 310 Bagan Sistem Perancangan................................ 323 Dua Saluran Analog Capture Circuit ................ 324 Skematik Amplifier dan ADC dari Linear Technology ........................................................ 325 Contoh Pengolahan Sinyal Analog pada ADC ................................................................... 326 Range Nilai Sinyal Terbaca pada ADC ............. 326 Blok FPGA untuk Mengendalikan Amplifier dan ADC ........................................... 327 Sinyal Digital yang Digunakan untuk Mengatur Gain ................................................... 331 Pewaktuan SPI ketika Berkomunikasi dengan Amplifier ............................................... 332 Antarmuka ADC ................................................ 337 Pewaktuan SPI ke ADC ..................................... 338 Top Level dari DSP ........................................... 343
xxi
Gambar 19.12 Gambar 19.13 Gambar 19.14 Gambar 19.15 Gambar 19.16 Gambar 20.1 Gambar 20.2 Gambar 20.3. Gambar 20.4 Gambar 20.5
Rangkaian Turunan dari Top Level Pengolah Sinyal ................................................. 344 Digital-To-Analog Converter dan Header yang Digunakan................................................. 347 Skematik Digital-To-Analog ............................. 348 Protokol Komunikasi SPI ke LTC2624 DAC .................................................................. 350 Top Level Rangkaian Pengendali DAC ............. 353 Fpga Xilinx Spartan-3E Starter Kit Board........ 361 Bagan Pengukuran Daya Listrik Berbasis FPGA ................................................................. 365 Rangkaian Pemrosesan Sinyal Digital Untuk Daya Sesaat dan Daya Aktif................... 366 Sinyal Sck (Atas) Dan Mosi (Bawah) ................ 368 Floorplan Desain pada FPGA Spartan-3E ........ 370
xxii