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

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis

Ketersediaan FPGA yang lebih kuat dan lingkungan pemrograman yang lebih efektif telah membuat implementasi FPGA dapat diakses secara luas, namun penggunaan FPGA bisa terasa menakutkan.

Menguasai Desain FPGA Tertanam: Panduan Implementasi PraktisCatatan Editor: Seiring munculnya algoritma canggih untuk desain produk pintar, pengembang seringkali kesulitan mengimplementasikan sistem embedded yang mampu memenuhi kebutuhan pemrosesan algoritma tersebut. FPGA dapat menyediakan performa yang diperlukan, tetapi desain dengan FPGA lama dianggap terbatas pada ahli pemrograman FPGA. Namun hari ini, ketersediaan FPGA yang lebih kuat dan lingkungan pengembangan yang lebih efektif telah membuat pengembangan FPGA dapat diakses secara luas. Dalam cuplikan ini, Bab 4 dari buku Architecting High-Performance Embedded Systems, penulis meninjau secara komprehensif perangkat FPGA, bahasa implementasi, dan proses pengembangan FPGA serta walkthrough rinci tentang cara memulai implementasi FPGA dalam desain Anda. Cuplikan lengkap disajikan dalam rangkaian installment berikut:
1: Sumber daya hardware
2: Bahasa implementasi
3: Proses pengembangan
4: Membangun proyek
5: Implementasi (artikel ini)

Diadaptasi dari Architecting High-Performance Embedded Systems, oleh Jim Ledin.


Menguji Perilaku Logika

Penting untuk menguji perilaku logika menggunakan simulasi sebelum mencoba menjalankannya di FPGA. Hal ini karena jauh lebih mudah untuk mendeteksi dan memperbaiki masalah dalam lingkungan simulasi daripada dengan logika yang berjalan di dalam FPGA. Alat simulasi Vivado melakukan pekerjaan yang sangat baik dalam merepresentasikan perilaku rangkaian:

  1. Di sub-jendela Sources , klik kanan pada Simulation Sources dan pilih Add Sources…:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.18 – Pemilihan menu Add Sources… untuk Simulation Sources

  1. Di dialog Add Sources , pastikan Add or create simulation sources terpilih, lalu klik Next.
  2. Di dialog Add or Create Simulation Sources , klik Create File.
  3. Masukkan nama file vhdl dan klik OK.
  4. Klik Finish untuk menutup dialog Add or Create Simulation Sources , lalu klik OK di dialog Define Module dan klik Yes ketika ditanya apakah Anda yakin ingin menggunakan ini
  5. Double-klik Adder4 TestBench (Behavioral) (Adder4TestBench.vhdl) di bawah Simulation Sources. Hapus konten yang diisi otomatis dari jendela editor vhdl dan masukkan kode berikut ke dalam editor Adder4TestBench.vhdl :
library IEEE;   use IEEE.STD_LOGIC_1164.ALL;   use IEEE.NUMERIC_STD.ALL; entity ADDER4_TESTBENCH is end entity ADDER4_TESTBENCH; architecture BEHAVIORAL of ADDER4_TESTBENCH is   component ADDER4 is     port (       A4       : in    std_logic_vector(3 downto 0);       B4       : in    std_logic_vector(3 downto 0);       SUM4     : out   std_logic_vector(3 downto 0);       C_OUT4   : out   std_logic     );   end component;   signal a            : std_logic_vector(3 downto 0);   signal b            : std_logic_vector(3 downto 0);   signal s            : std_logic_vector(3 downto 0);   signal c_out &;      &;: std_logic;   signal expected_sum5: unsigned(4 downto 0);   signal expected_sum4: unsigned(3 downto 0);   signal expected_c   : std_logic;   signal error        : std_logic; begin   TESTED_DEVICE: ADDER4     port map (       A4     => a,       B4     => b,       SUM4   => s,       C_OUT4 => c_out     );   TEST: process   begin     -- Uji semua kombinasi dari dua penambahan 4-bit (256 total tes)     for a_val in 0 to 15 loop       for b_val in 0 to 15 loop         -- Set input ke komponen ADDER4         a <= std_logic_vector(to_unsigned(a_val, a'length));         b <= std_logic_vector(to_unsigned(b_val, b'length));         wait for 1 ns;         -- Hitung jumlah 5-bit dari dua nilai 4-bit         expected_sum5 <= unsigned('0' & a) + unsigned('0' & b);         wait for 1 ns;         -- Pecah jumlah menjadi output 4-bit dan bit carry         expected_sum4 <= expected_sum5(3 downto 0);         expected_c    <= expected_sum5(4);         wait for 1 ns;         -- Sinyal 'error' hanya akan menjadi 1 jika terjadi kesalahan         if ((unsigned(s) = unsigned(expected_sum4)) and             (c_out = expected_c)) then           error <= '0';         else           error <= '1';         end if;         -- Setiap perjalanan melalui loop dalam memakan waktu 10 ns         wait for 7 ns;       end loop;     end loop;     wait;   end process TEST; end architecture BEHAVIORAL;

Kode ini menguji fungsionality penambahan 4-bit dengan menyajikan semua kombinasi angka 4-bit ke masing-masing input A4 dan B4 dari komponen Adder4. Ini membandingkan output SUM4 dan C_OUT4 dari komponen Adder4 dengan nilai yang dihitung secara independen untuk input yang sama. Setelah setiap operasi penambahan, sinyal error diatur ke 0 jika output Adder4 cocok dengan nilai yang diharapkan, atau diatur ke 1 jika ada ketidakcocokan.

Kode di Adder4TestBench.vhdl mirip dengan kode software tradisional dalam cara menggunakan nested for loops untuk menerapkan semua kombinasi input uji ke komponen Adder4 yang sedang diuji. Kode yang menjalankan tes dalam mode simulasi non-synthesizable, yang berarti tidak secara murni merepresentasikan rangkaian logika hardware dan mampu melakukan operasi mirip software tradisional, seperti eksekusi iteratif for loops.

Namun, seperti dalam rangkaian fisik, sinyal yang diberi nilai dalam kode test bench menggunakan operator <= tidak dapat digunakan pada waktu yang sama dalam ekspresi berikutnya. Hal ini karena lingkungan simulasi merepresentasikan efek dunia nyata dari propagasi delay, yang signifikan bahkan dalam perangkat FPGA kecil. Tiga pernyataan wait for 1 ns; dalam kode test bench menghentikan operasi rangkaian untuk memberikan waktu propagasi delay. Delays 1 ns ini memberikan waktu untuk nilai sinyal yang dihitung tepat sebelum pernyataan wait untuk menyebar sehingga dapat digunakan dalam pernyataan berikutnya. Pernyataan akhir wait for 7 ns; dalam loop dalam adalah jeda yang memungkinkan kita untuk melihat hasil dari setiap iterasi loop simulasi dengan jelas di tampilan trace sinyal.

  1. Klik kanan Adder4 TestBench (Behavioral) (Adder4TestBench.vhdl) di bawah Simulation Sources dan pilih Automatic Update and Compile Order. Ini menetapkan ADDER4_TESTBENCH sebagai objek level atas untuk run simulasi:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.19 – Pemilihan menu untuk menetapkan Automatic Update and Compile Order

  1. Klik Run Simulation, lalu Run Behavioral Simulation di jendela Flow Navigator untuk memasuki mode simulasi. Jika Anda belum menyimpan file editor, Anda akan diminta untuk melakukannya. Klik Save. Simulasi kemudian akan berjalan:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.20 – Pemilihan menu Run Behavioral Simulation

  1. Ketika jendela SIMULATION dibuka, klik tombol maximize di jendela output simulasi dengan judul Untitled 1:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.21 – Jendela hasil simulasi

Waktu simulasi total setiap perjalanan melalui loop dalam adalah 10 ns. Karena ada 256 perjalanan melalui loop di Adder4TestBench.vhdl, waktu untuk menjalankan simulasi adalah 2560 ns.

  1. Setel waktu run simulasi ke 2560 ns di toolbar atas (langkah 1 dalam gambar berikutnya), tekan tombol restart yang mengarah ke kiri (langkah 2), lalu tekan tombol yang menghadap kanan untuk menjalankan simulasi selama 2560 ns (langkah 3), dan akhirnya tekan tombol Zoom Fit (langkah 4) untuk menskalakan rentang data output simulasi agar pas dengan jendela:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.22 – Hasil simulasi dari awal hingga akhir run

Anda dapat menggunakan ikon kaca pembesar untuk memperbesar setiap titik trace dan mengamati hasil setiap operasi penambahan yang dilakukan selama pengujian. Misalnya, gambar berikut menunjukkan nilai desimal 6 dan 2 ditambahkan untuk menghasilkan hasil 8 dengan carry 0. Nilai ini cocok dengan nilai yang diharapkan, yang menyebabkan error diatur ke 0. Sinyal error adalah 0 untuk semua 256 kasus uji, menunjukkan rangkaian logika kami lulus semua tes:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.23 – Tampilan diperbesar dari hasil simulasi

  1. Tutup mode simulasi dengan mengklik X di bar biru SIMULATION di atas data trace. Klik OK ketika ditanya apakah Anda ingin menutup simulasi.

Setelah lulus pengujian behavior, kita akan menentukan sinyal I/O yang digunakan dalam desain.

Menentukan Sinyal I/O

Langkah berikutnya adalah menghubungkan input dan output rangkaian kami ke perangkat hardware pada papan Arty. Input akan menjadi switch dan pushbutton papan, sedangkan output akan menjadi LED.

Langkah-langkah berikut akan membuat file constraints yang menggambarkan pin I/O yang akan kita gunakan pada perangkat FPGA dan fungsi yang terhubung ke pin-pin tersebut pada papan Arty. File constraints memiliki ekstensi xdc:

  1. Di sub-jendela Sources , klik kanan Constraints dan pilih Add Sources….
  2. Di dialog Add Sources , pastikan Add or create constraints terpilih, lalu klik Next.
  3. Di dialog Add or Create Constraints , klik Create File.
  4. Masukkan nama file Arty-A7-100.xdc (atau Arty-A7-35.xdc jika sesuai untuk perangkat Anda) dan klik OK.
  5. Klik Finish untuk menutup dialog Add or Create Constraints
  6. Perluas pohon sumber Constraints dan double-klik Arty-A7-35.xdc.
  7. Digilent menyediakan file constraints yang diisi sebelumnya untuk papan Arty A7 Kunjungi https://raw.githubusercontent.com/Digilent/digilent-xdc/master/Arty-A7-35-Master.xdc dan salin seluruh konten jendela browser ke jendela editor Arty-A7-35.xdc di Vivado. Jika sesuai untuk perangkat Anda, gunakan file di https://raw.githubusercontent.com/Digilent/digilent-xdc/master/Arty-A7-100-Master.xdc sebagai gantinya.
  8. Semua pin I/O di-comment out dalam file constraints oleh Uncomment baris yang sesuai dalam file dengan menghapus karakter # dari awal setiap baris. Kami akan menggunakan pin yang tercantum dalam bagian-bagian berikut di file Arty-A7-100.xdc: Switches, RGB LEDs (hanya led0_g, LED hijau pertama), LEDs, dan Buttons. Gambar berikut menunjukkan baris-baris ini setelah di-uncomment:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.24 – Jendela editor constraints

Di bagian berikutnya, kami akan membuat file VHDL level atas yang menghubungkan kode penambahan dengan perangkat I/O papan.

Membuat File VHDL Level Atas

Kami selanjutnya akan membuat file VHDL level atas yang menghubungkan komponen penambahan 4-bit kami dengan sinyal I/O papan yang sesuai:

  1. Di sub-jendela Sources, klik kanan pada Design Sources dan pilih Add Sources….
  2. Di dialog Add Sources , pastikan Add or create design sources terpilih, lalu klik Next.
  3. Di dialog Add or Create Design Sources , klik Create File.
  4. Masukkan nama file vhdl dan klik OK.
  5. Klik Finish untuk menutup dialog Add or Create Design Sources , lalu klik OK di dialog Define Module dan klik Yes ketika ditanya apakah Anda yakin ingin menggunakan ini
  6. Double-klik vhdl di bawah Design Sources. Hapus konten yang diisi otomatis dari jendela editor ArtyAdder.vhdl dan masukkan kode berikut ke dalam editor ArtyAdder.vhdl :
-- Load the standard libraries library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ARTY_ADDER is    port (        sw         : in STD_LOGIC_VECTOR (3 downto 0);        btn        : in STD_LOGIC_VECTOR (3 downto 0);        led        : out STD_LOGIC_VECTOR (3 downto 0);        led0_g     : out STD_LOGIC    ); end entity ARTY_ADDER; architecture BEHAVIORAL of ARTY_ADDER is -- Reference the previous definition of the 4-bit adder component ADDER4 is port (    A4       : in   std_logic_vector(3 downto 0);    B4       : in   std_logic_vector(3 downto 0);    SUM4     : out  std_logic_vector(3 downto 0);    C_OUT4   : out  std_logic ); end component; begin ADDER : ADDER4    port map (      A4        => sw,      B4        => btn,      SUM4      => led,      C_OUT4    => led0_g    ); end architecture BEHAVIORAL;

Kode ini memetakan nama sinyal untuk perangkat I/O yang disebut dalam Arty-A7-100.xdc sebagai sw (4 switch), btn (4 pushbutton), led (4 LED single-color), dan led0_g (saluran hijau dari LED multi-color pertama) ke input dan output ADDER4.

Sementara VHDL tidak case-sensitive, pemrosesan file constraint xdc di Vivado case-sensitive. Case yang digunakan dalam nama perangkat I/O yang didefinisikan dalam file xdc harus identik saat direferensikan dalam file VHDL. Secara khusus, nama sinyal I/O dalam VHDL harus lowercase dalam file ini karena mereka lowercase dalam file constraints.

Kami sekarang siap untuk mensintesis, mengimplementasikan, dan memprogram desain kami untuk papan Arty.

Mensintesis dan Mengimplementasikan Bitstream FPGA

Alternatifnya, Anda dapat memilih Generate Bitstream dan Vivado akan melakukan semua langkah yang diperlukan, termasuk sintesis, implementasi, dan pembuatan bitstream tanpa intervensi pengguna lebih lanjut. Jika terjadi fatal error, proses akan berhenti dan pesan error akan ditampilkan. Lakukan langkah-langkah berikut untuk menghasilkan bitstream:

  1. Klik Generate Bitstream untuk memulai build Anda mungkin ditanya apakah Anda ingin menyimpan editor teks. Klik Save. Anda mungkin diberitahu bahwa tidak ada hasil implementasi yang tersedia dan ditanya apakah OK untuk meluncurkan sintesis dan implementasi. Klik Yes:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.25 – Pemilihan menu Generate Bitstream

  1. Dialog Launch Runs kemudian Anda dapat memilih nilai untuk Number of jobs hingga jumlah core processor di komputer Anda. Menggunakan lebih banyak core membuat proses lebih cepat, tetapi dapat membebani mesin Anda jika Anda ingin terus menggunakannya selama proses build yang panjang. Klik OK untuk memulai build:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.26 – Dialog Launch Runs

  1. Selama proses build, Vivado akan menampilkan status di sudut kanan atas jendela utama. Jika perlu, Anda dapat membatalkan proses build dengan mengklik Cancel di sebelah tampilan status:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.27 – Tampilan status kompilasi

  1. Ketika proses build selesai, asumsikan tidak ada fatal error, dialog Bitstream Generation Completed akan meskipun opsi lain ditawarkan, kami akan langsung melanjutkan untuk mendownload bitstream ke papan Arty. Pilih Open Hardware Manager dan klik OK:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.28 – Dialog Bitstream Generation Completed

Selanjutnya, kami akan mendownload bitstream ke FPGA.

Mendownload Bitstream ke Papan

Lakukan langkah-langkah berikut untuk mendownload bitstream ke papan Arty A7:

  1. Dialog HARDWARE MANAGER akan muncul dan menunjukkan No hardware target is open.
  2. Hubungkan papan Arty A7-35 atau A7-100 Anda ke komputer dengan kabel USB Tunggu beberapa detik hingga papan dikenali, lalu klik Open target, lalu Auto Connect:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.29 – Pemilihan Open target dan Auto Connect

  1. Setelah beberapa detik, Vivado seharusnya menunjukkan bahwa papan terhubung. Klik Program device untuk mendownload bitstream FPGA ke Arty Anda akan diminta untuk memilih file bitstream. Jika Anda telah menggunakan struktur direktori yang sama dengan contoh ini, file akan terletak di C:/Projects/ArtyAdder/ArtyAdder.runs/impl_1/ARTY_ADDER.bit:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.30 – Dialog Program Device

  1. Klik Program untuk mendownload program ke perangkat FPGA dan memulainya
  2. Anda sekarang dapat menguji operasi program dengan I/O Arty Letakkan semua empat switch dalam posisi off (gerakkan switch menuju tepi papan yang berseberangan) dan jangan menekan salah satu dari empat pushbutton. Semua empat LED hijau harus mati.
  3. Jika Anda menyalakan switch individu atau menekan salah satu pushbutton, LED hijau yang sesuai harus menyala. Menyalakan kombinasi sembarang switch sambil menekan sejumlah pushbutton akan menjumlahkan angka 4-bit yang sesuai dan menyala LED dengan Jika ada carry (misalnya, nyalakan SW3 dan tekan BTN3 secara bersamaan), LED carry hijau akan menyala.

Proses pemrograman yang dilakukan di sini menyimpan program dalam RAM FPGA. Jika Anda menyetel ulang daya papan FPGA, Anda perlu mengulangi proses pemrograman untuk memuat ulang program. Alternatifnya, Anda dapat menyimpan file konfigurasi FPGA di memori flash papan seperti yang dijelaskan dalam bagian berikutnya.

Memprogram Bitstream ke Memori Flash Papan

Untuk mengonfigurasi FPGA setiap kali daya diberikan ke papan Arty, file konfigurasi FPGA harus disimpan ke memori flash di papan. Jika jumper MODE terpasang, FPGA akan mencoba mendownload file konfigurasi dari memori flash papan saat menyala. Memori ini terletak di chip terpisah berseberangan dengan FPGA Artix-7. Ikuti langkah-langkah berikut untuk memprogram file konfigurasi ke memori flash:

  1. Pasang jumper MODE di papan Arty jika belum terpasang
  2. Klik kanan Generate Bitstream dan pilih Bitstream Settings….
  3. Di dialog Settings , centang kotak di samping -bin_file dan klik OK:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.31 – Dialog Bitstream settings

  1. Di dialog utama Vivado, klik Generate Bitstream dan ulangi proses pembuatan bitstream. Klik Cancel ketika dialog Bitstream Generation Completed
  1. Di dialog Hardware, klik kanan nomor bagian FPGA (xc7a100t_0) dan pilih Add Configuration Memory Device…:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.32 – Pemilihan menu Add Configuration Memory Device…

  1. Ketik s25fl127 ke dalam Search Ini akan menampilkan satu nomor bagian yang cocok. Pilih bagian dan klik OK:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.33 – Dialog Add Configuration Memory Device

  1. Anda akan disajikan dengan dialog yang bertanya Apakah Anda ingin memprogram perangkat memori konfigurasi sekarang? Klik OK.
  2. Ini akan membuka dialog Program Configuration Memory Device yang meminta nama file konfigurasi. Klik tombol … di kanan Configuration file dan pilih C:/Projects/ArtyAdder/ArtyAdder.runs/impl_1/ARTY_ADDER.bin. Klik OK:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.34 – Dialog Program Configuration Memory Device

  1. Proses pemrograman akan memakan waktu beberapa detik Anda seharusnya menerima pesan yang menunjukkan sukses setelah file telah diprogram ke memori flash papan:

Menguasai Desain FPGA Tertanam: Panduan Implementasi Praktis
Gambar 4.35 – Dialog Program Flash complete

Setelah ini, setiap kali Anda menyetel ulang daya papan, program penambahan 4-bit akan dimuat dan berjalan. Akan memakan waktu lama untuk program dimuat dengan pengaturan yang kami gunakan untuk pemuatan file konfigurasi. Untuk menghindari menunggu FPGA memuat program, Anda dapat meningkatkan kecepatan pemuatan file konfigurasi dengan melakukan langkah-langkah berikut:

  1. Pilih Open Synthesized Design di Flow Navigator.
  2. Di menu utama Vivado, pilih Tools/Edit Device Properties….
  3. Di tab General , setel Enable Bitstream Compression ke TRUE.
  4. Di tab Configuration , setel Configuration Rate (MHz) ke 33, lalu klik OK.
  5. Hasilkan bitstream lagi, dan program memori flash seperti yang dijelaskan Anda perlu menghapus perangkat memori konfigurasi dan menambahkannya lagi untuk menampilkan opsi untuk memprogram ulang.
  6. Tutup Hardware Manager.
  7. Cabut kabel USB papan Arty dan colokkan lagi Program seharusnya berjalan hampir seketika saat menyala.

Bagian ini menyajikan contoh logika kombinatorial sederhana yang berinteraksi dengan sinyal pada pin I/O FPGA. Tujuan di sini adalah untuk mempersiapkan Anda dengan suite alat Vivado

tool dan untuk menunjukkan bagaimana alat digunakan untuk melakukan siklus pengembangan FPGA lengkap.

Ringkasan

Bab ini dimulai dengan diskusi tentang penggunaan efektif FPGA dalam arsitektur sistem embedded waktu nyata dan dilanjutkan dengan deskripsi perangkat FPGA standar dan komponen low-level yang terkandung di dalamnya. Rentang bahasa desain FPGA, termasuk HDL, metode diagram blok, dan bahasa pemrograman populer seperti C/C++, diperkenalkan. Garis besar proses pengembangan FPGA disajikan. Bab ini diakhiri dengan contoh lengkap siklus pengembangan FPGA, dimulai dari pernyataan kebutuhan dan berakhir dengan sistem fungsional yang diimplementasikan pada papan pengembangan FPGA berbiaya rendah.

Setelah menyelesaikan bab ini, Anda seharusnya tahu bagaimana FPGA dapat diterapkan secara efektif dalam arsitektur sistem embedded waktu nyata dan memahami komponen di dalam rangkaian terpadu FPGA. Anda telah mempelajari bahasa pemrograman yang digunakan dalam desain algoritma FPGA, langkah-langkah dalam siklus pengembangan FPGA, dan memahami urutan langkah dalam proses pengembangan FPGA.

Bab berikutnya akan memperluas proses pengembangan FPGA untuk menyediakan pendekatan lengkap untuk merancang sistem embedded waktu nyata yang mengandung FPGA. Ini juga akan memulai pengembangan prototipe sistem embedded high-performance, sebuah osiloskop digital, yang akan menjadi contoh untuk bab-bab berikutnya.

Direproduksi dengan izin dari Packt Publishing. Hak Cipta © 2021 Packt Publishing


Menguasai Desain FPGA Tertanam: Panduan Implementasi PraktisJim Ledin adalah CEO Ledin Engineering, Inc. Jim adalah ahli dalam desain dan pengembangan perangkat lunak dan hardware embedded, serta pengujian. Ia juga terampil dalam penilaian keamanan siber sistem embedded dan pengujian penetrasi. Ia memiliki gelar S.T. di teknik aerospace dari Iowa State University dan M.S. di teknik elektro dan komputer dari Georgia Institute of Technology. Jim adalah insinyur listrik profesional terdaftar di California, Certified Information System Security Professional (CISSP), Certified Ethical Hacker (CEH), dan Certified Penetration Tester (CPT).

Konten Terkait:

Untuk lebih banyak Embedded, berlangganan newsletter email mingguan Embedded.


Tertanam

  1. Desain Sistem Tertanam: Langkah, Prinsip, dan Aplikasi Dunia Nyata
  2. Meewarna Bagian Cetak 3D dengan Crayon Lilin: Teknik Pracetakan Baru
  3. Wawancara dengan Chief Technologist ANSYS tentang Mendorong Keberhasilan Cetak 3D Logam melalui Simulasi
  4. Memanfaatkan AI Embedded untuk Mengubah Big Data menjadi Wawasan Pintar yang Dapat Dindaklanjuti
  5. Menguasai USB-C: Tantangan Desain dan Solusi Praktis untuk Data dan Daya Kecepatan Tinggi
  6. Tren Desain Tertanam yang Mengubah Masa Depan Teknologi
  7. Foundries.io Berharap Menjadi Red Hat dari IoT dengan Solusi Linux & Zephyr Tangguh Prosesor
  8. Clientron PST650: Terminal POS All-in-One dengan Printer Termal Terintegrasi untuk Perhotelan & Retail
  9. MAXREFDES220# – Pemantauan Tekanan Darah Tanpa Manset dengan Sensor Optik
  10. Memaksimalkan Produksi dengan Perangkat Lunak Manufaktur Aditif Canggih