Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Sumber Daya Hardware FPGA untuk Sistem Tersemat Berkinerja Tinggi

Sumber Daya Hardware FPGA untuk Sistem Tersemat Berkinerja TinggiCatatan 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:

Persyaratan Teknis

File untuk bab ini tersedia di https://github.com/PacktPublishing/Architecting-High-Performance-Embedded-Systems.

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:

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.

Reprinted with permission from Packt Publishing. Copyright © 2021 Packt Publishing


Sumber Daya Hardware FPGA untuk Sistem Tersemat Berkinerja TinggiJim 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:

Untuk lebih banyak konten Embedded, berlangganan newsletter harian mingguan Embedded.


Tertanam

  1. Hindari Kejutan Biaya dalam Desain Perangkat Keras Terkoneksi: Strategi Terbukti
  2. Desain Sistem Tertanam: Langkah, Prinsip, dan Aplikasi Dunia Nyata
  3. Eclipse IoT: Paket Terpadu Open-Source untuk Pengembangan IoT Cepat
  4. Membangun Mesin Status dengan Pengembangan Berbasis Uji dalam C Terintegrasi
  5. Memanfaatkan AI Embedded untuk Mengubah Big Data menjadi Wawasan Pintar yang Dapat Dindaklanjuti
  6. Cypress Meningkatkan Pengembangan IoT dengan Dukungan Penuh Device-to-Cloud ModusToolbox
  7. FPGA MachXO3D Lattice Memperkuat Keamanan Hardware dengan Fitur Root-of-Trust
  8. MAXREFDES220# – Pemantauan Tekanan Darah Tanpa Manset dengan Sensor Optik
  9. Meningkatkan Java 9: Try-With-Resources yang Ditingkatkan untuk Kode yang Lebih Bersih
  10. Memaksimalkan Produksi dengan Perangkat Lunak Manufaktur Aditif Canggih