Sumber Daya Hardware FPGA untuk Sistem Tersemat Berkinerja Tinggi
Catatan Editor: Seiring munculnya algoritma canggih untuk desain produk cerdas, pengembang seringkali kesulitan mengimplementasikan sistem tersemat yang dapat memenuhi tuntutan pemrosesan terkait. FPGA dapat memberikan performa yang diperlukan, namun merancang dengan FPGA selama ini dianggap sebagai domain ahli pemrograman FPGA. Namun saat ini, ketersediaan FPGA yang lebih kuat dan lingkungan pengembangan yang lebih efektif telah membuat pengembangan FPGA dapat diakses secara luas. Dalam cuplikan ini dari Bab 4 *Architecting High-Performance Embedded Systems*, penulis menawarkan tinjauan menyeluruh tentang perangkat FPGA, bahasa implementasi, dan proses pengembangan, serta panduan terperinci tentang cara mulai mengimplementasikan FPGA dalam desain Anda sendiri. 1: Sumber daya hardware (artikel ini) 2: Bahasa implementasi 3: Proses pengembangan 4: Membangun proyek 5: Implementasi
Adaptasi dari *Architecting High-Performance Embedded Systems*, oleh Jim Ledin.
Membuat Program FPGA Pertama Anda
Bab ini dimulai dengan diskusi tentang penggunaan efektif perangkat FPGA dalam sistem tersemat real-time dan dilanjutkan dengan deskripsi elemen fungsional yang terdapat dalam FPGA standar. Ini memperkenalkan rentang bahasa desain FPGA—termasuk Hardware Description Languages (HDL), metode diagram blok, dan bahasa pemrograman perangkat lunak populer seperti C dan C++—dan memberikan gambaran umum proses pengembangan FPGA. Bab ini diakhiri dengan contoh lengkap siklus pengembangan FPGA, dari pernyataan persyaratan sistem hingga sistem yang berfungsi sepenuhnya yang diimplementasikan pada papan pengembangan FPGA hemat biaya.
Setelah menyelesaikan bab ini, Anda akan memahami bagaimana FPGA dapat diterapkan dalam arsitektur sistem tersemat real-time, komponen kunci dari IC FPGA, bahasa pemrograman yang digunakan untuk merancang algoritma FPGA, dan urutan langkah demi langkah untuk mengembangkan aplikasi berbasis FPGA. Anda juga akan melalui contoh pengembangan FPGA lengkap pada papan hemat biaya menggunakan alat FPGA gratis.
Kami akan membahas topik berikut:
Menggunakan FPGA dalam desain sistem tersemat real-time
Menggunakan FPGA dalam desain sistem tersemat real-time
Seperti yang diringkas dalam bagian Elemen FPGA dari Bab 1, perangkat FPGA typikal berisi sejumlah besar tabel pencarian, flip-flop, elemen RAM blok, irisan DSP, dan komponen lainnya. Sementara berguna untuk memahami kemampuan terperinci dari setiap komponen, pertimbangan yang paling kritis adalah bahwa nomor bagian FPGA tertentu berisi sejumlah terbatas dari setiap sumber daya, dan desain tidak dapat melebihi batas tersebut saat ditargetkan pada model tertentu.
Lebih produktif untuk melihat proses pengembangan dari perspektif pernyataan persyaratan sistem tersemat. Anda dapat mulai dengan menargetkan model yang nyaman memenuhi persyaratan tersebut. Seiring kemajuan desain, Anda mungkin menemui batas sumber daya atau menemukan bahwa fitur yang diperlukan hilang. Pada titik itu, memilih target yang lebih canggih dan melanjutkan pengembangan adalah hal yang mudah. Sebaliknya, jika Anda menemukan bahwa FPGA yang dipilih memiliki sumber daya berlebih, beralih ke bagian yang lebih kecil dapat mengurangi biaya, jumlah pin, ukuran kemasan, dan konsumsi daya.
Beralih FPGA yang ditargetkan dalam keluarga yang sama biasanya lancar, dengan artefak desain sepenuhnya dapat digunakan kembali. Beralih keluarga atau vendor mungkin memerlukan upaya tambahan. Poin utama adalah model tertentu tidak perlu dipilih di awal; fokus terlebih dahulu pada memvalidasi FPGA sebagai solusi yang viable, kemudian pilih vendor dan keluarga perangkat yang sesuai.
Contoh proyek dalam buku ini menggunakan keluarga alat Vivado Xilinx. Sementara lisensi Vivado diperlukan untuk beberapa keluarga Xilinx, perangkat Artix-7 yang digunakan di sini didukung secara gratis. Artix-7 menggabungkan performa tinggi, daya rendah, dan biaya sistem yang terjangkau. Keluarga dan suite alat serupa tersedia dari vendor lain.
Pengembangan FPGA adalah proses yang melibatkan dan memerlukan berbagai data analisis dan desain. Untuk menjaga diskusi tetap konkret, kami akan menggunakan Vivado selama buku ini. Setelah Anda menguasai teknik ini, Anda dapat menerapkannya pada alat vendor lain.
Bagian-bagian berikut membahas fitur pengdiferensiasi utama dari keluarga dan model FPGA, termasuk kapasitas RAM blok, tipe sinyal I/O, sumber daya on-chip khusus, dan kehadiran core prosesor tersemat.
RAM Blok dan RAM Terdistribusi
RAM Blok mengimplementasikan wilayah memori khusus dalam FPGA. Wilayah memori ditentukan oleh lebar bit (biasanya 8 atau 16 bit) dan kedalaman (jumlah lokasi penyimpanan). Total RAM blok biasanya diekspresikan dalam kilobit (Kb) dan bervariasi di seluruh keluarga dan model.
Banyak FPGA juga menyediakan RAM terdistribusi, yang dibangun dari logika tabel pencarian untuk membentuk segmen kecil 16-bit. Ini dapat digabungkan menjadi blok yang lebih besar saat diperlukan. RAM terdistribusi ideal untuk penyimpanan sementara hasil perantara, sedangkan RAM blok digunakan untuk cache atau buffer I/O.
RAM blok dapat single-port atau dual-port. RAM dual-port, dengan dua port baca/tulis, sangat berguna untuk menghubungkan subsystem yang beroperasi pada kecepatan jam yang berbeda, memungkinkan transfer data tanpa gangguan.
RAM blok dapat beroperasi dalam mode FIFO, menyediakan sinyal untuk status penuh, kosong, hampir penuh, dan hampir kosong. Kontrol yang cermat pada operasi tulis dan baca mencegah kehilangan atau korupsi data.
Pin I/O FPGA dan Fitur Terkait
Pin I/O FPGA mendukung berbagai standar kecepatan tinggi. Selama desain, pengembang menetapkan fungsi ke pin tertentu dan mengonfigurasi standar antarmuka setiap pin. Sinyal adalah single-ended atau differential.
Sinyal single-ended merujuk ke ground dan secara historis menggunakan rentang TTL/CMOS. FPGA modern mendukung rentang tegangan lebih rendah—LVTTL (0–3,3 V) dan varian LVCMOS (1,2, 1,5, 1,8, 2,5, 3,3 V)—mengurangi konsumsi daya dan meningkatkan kecepatan. Standar single-ended kecepatan tinggi mencakup HSTL dan SSTL.
Signalisasi diferensial, yang menggunakan pasang pin, disukai untuk link data kecepatan tinggi karena noise common-mode sebagian besar dibatalkan. Standar diferensial mencakup HSTL, SSTL, dan LVDS. LVDS, diperkenalkan pada 1994, memberikan arus konstan 3,5 mA dan mengubah arah untuk mewakili bit data. Mencocokkan impedansi garis transmisi (100 Ω untuk LVDS) ke impedansi terminasi sangat penting untuk menghindari refleksi.
Sumber Daya Hardware Khusus
FPGA seringkali mencakup hardware khusus untuk fungsi yang mendapatkan manfaat dari implementasi yang tetap dan efisien:
Antarmuka DRAM eksternal, biasanya mendukung DDR3
Konverter analog-ke-digital
Loop terkunci fasa untuk menghasilkan beberapa frekuensi jam
Hardware MAC pemrosesan sinyal digital
Hardware khusus seperti unit MAC memberikan performa jauh di luar yang dapat dicapai dengan logika yang disintesis.
Core Prosesor
Beberapa keluarga FPGA mengintegrasikan core prosesor keras—misalnya, Xilinx Zynq-7000 menggabungkan ARM Cortex-A9 dengan struktur FPGA. Ketika desain tidak memerlukan core keras, prosesor lunak dapat diinstantiasi dari sumber daya FPGA. Prosesor lunak sangat dapat dikonfigurasi tetapi biasanya tidak cocok dengan performa core keras.
Bagian selanjutnya akan memperkenalkan bahasa pemrograman utama dan metode entri data yang digunakan untuk mengembangkan algoritma FPGA.
Jim Ledin adalah CEO Ledin Engineering, Inc. Jim adalah ahli dalam desain dan pengembangan perangkat lunak dan hardware tersemat, pengujian. Ia juga ahli dalam penilaian keamanan siber sistem tersemat dan uji penetrasi. Ia memiliki gelar S.T. dalam teknik penerbangan dan antariksa dari Iowa State University dan M.S. dalam teknik elektro dan komputer dari Georgia Institute of Technology. Jim adalah insinyur elektro profesional terdaftar di California, CISSP, CEH, dan CPT.
Konten Terkait:
Alat open-source membantu menyederhanakan pemrograman FPGA
Mengimplementasikan algoritma floating-point dalam FPGA atau ASIC
Memanfaatkan FPGA untuk deep learning
Alat perangkat lunak memigrasikan kode GPU ke FPGA untuk aplikasi AI
FPGA menggantikan ASIC dalam Subaru Eyesight ADAS berbasis visi
Bagaimana FPGA berbasis flash menyederhanakan persyaratan keamanan fungsional
Memanfaatkan manfaat FPGA instant-on
Konfigurasi FPGA menggunakan flash NOR kecepatan tinggi
Bagaimana teknologi FPGA berevolusi untuk memenuhi persyaratan sistem menengah baru
Untuk lebih banyak konten Embedded, berlangganan newsletter harian mingguan Embedded.