Anonim

Tentu saja, pendekatan paling sederhana adalah tidak melakukan apa-apa khusus untuk debug FPGA. Anda dapat memperlakukan FPGA seperti halnya IC lainnya dan memantau operasi dari luar dengan osiloskop, MSO, atau penganalisis logika. Namun, untuk desain dengan kompleksitas apa pun, metode ini tidak efektif dan juga tidak efisien. Berikut adalah beberapa pemikiran tentang cara mengeluarkan bug dari debugging FPGA.

Ada dua fase berbeda dalam membawa sistem FPGA ke pasar: fase desain dan fase debug dan verifikasi. Tugas utama dalam fase desain adalah entri, simulasi, dan implementasi. Tugas utama dalam fase debug dan verifikasi adalah memvalidasi desain dan memperbaiki bug yang ditemukan.

Bahkan dalam fase desain, debugging dimulai dengan penggunaan alat simulasi. Penggunaan simulasi yang tepat telah terbukti sebagai cara yang efektif untuk menemukan dan memperbaiki banyak kesalahan desain. Namun, simulasi tidak dapat diandalkan sebagai satu-satunya alat untuk men-debug desain FPGA.

n

Ada terlalu banyak hal yang tidak bisa ditangkap oleh simulasi. Pada fase desain Anda juga perlu melihat ke depan ke fase debug dan verifikasi dan merencanakan bagaimana Anda akan men-debug FPGA Anda di-sirkuit dan pada kecepatan. Ini akan mengarahkan Anda untuk menentukan pendekatan debug secara keseluruhan, membantu mengidentifikasi semua alat pengujian dan pengukuran yang diperlukan, dan mengidentifikasi dampak apa pun yang dimiliki metode debug yang dipilih terhadap desain papan.

Selama fase debug, Anda perlu menemukan masalah-masalah sulit yang tidak tertangkap oleh simulasi. Melakukan ini dengan cara yang efektif waktu adalah tantangan. Anda akan ingin memilih metodologi debug FPGA yang tepat dan memanfaatkan metodologi baru yang memungkinkan Anda melihat banyak sinyal FPGA internal menggunakan hanya beberapa pin FPGA. Dilakukan dengan benar, ini akan memungkinkan Anda untuk memecahkan masalah debug FPGA Anda yang paling sulit.

Pilihan utama yang perlu dibuat dalam fase desain adalah metodologi debug FPGA mana yang akan digunakan. Idealnya, Anda menginginkan metodologi yang portabel untuk semua desain FPGA Anda, memberi Anda wawasan tentang operasi FPGA dan operasi sistem, dan membantu menunjukkan dengan tepat dan menganalisis masalah yang sulit.

Ada dua metodologi dasar debug sirkuit FPGA: penggunaan penganalisis logika tertanam dan penggunaan peralatan uji eksternal, seperti osiloskop sinyal campuran atau penganalisis logika. Pilihan metodologi mana yang akan digunakan tergantung pada kebutuhan debug proyek Anda.

Vendor FPGA utama menawarkan inti penganalisis logika tertanam. Blok kekayaan intelektual ini dimasukkan ke dalam desain FPGA dan memberikan kemampuan memicu dan penyimpanan. Sumber daya logika FPGA digunakan untuk mengimplementasikan rangkaian pemicu dan blok memori FPGA digunakan untuk mengimplementasikan kemampuan penyimpanan.

JTAG digunakan untuk mengkonfigurasi operasi inti dan digunakan untuk meneruskan data yang diambil ke PC untuk dilihat. Karena embedded logic analyzers menggunakan sumber daya FPGA internal, mereka paling sering digunakan dengan FPGA yang lebih besar yang dapat menyerap overhead inti. Biasanya Anda ingin inti mengambil tidak lebih dari 5 persen dari sumber daya logika FPGA yang tersedia.

Karena beberapa keterbatasan metodologi penganalisis logika tertanam, banyak desainer FPGA telah mengadopsi metodologi yang menggunakan fleksibilitas FPGA dan kekuatan osiloskop sinyal campuran eksternal, atau penganalisis logika. Dalam metodologi ini, sinyal internal yang menarik dialihkan ke pin FPGA yang tidak digunakan, yang kemudian dihubungkan ke peralatan uji eksternal.

Pendekatan ini memanfaatkan memori akuisisi yang sangat dalam di peralatan uji eksternal, yang berguna ketika men-debug masalah di mana gejala dan penyebab sebenarnya dipisahkan oleh sejumlah besar waktu. Ini juga menawarkan kemampuan untuk mengkorelasikan sinyal FPGA internal dengan aktivitas lain dalam sistem.

Kedua metodologi dapat bermanfaat tergantung pada situasi Anda. Tantangannya adalah menentukan pendekatan mana yang sesuai untuk desain Anda (Lihat Tabel 1). Anda harus melihat faktor-faktor seperti apakah masalah akan diisolasi ke FPGA atau apakah Anda mengantisipasi masalah debug yang lebih besar yang akan mengharuskan Anda untuk mengkorelasikan aktivitas FPGA dengan aktivitas lain di papan Anda.

Faktor-faktor lain termasuk apakah Anda akan perlu melihat informasi waktu cepat selain hanya menyatakan data dan seberapa dalam penangkapan akan diperlukan. Sebagai patokan, faktor-faktor seperti kecepatan, kedalaman dan kompleksitas akan mengarah pada kebutuhan akan peralatan uji eksternal.

Faktor lain adalah apakah desain Anda terbatas pada pin atau sumber daya. Menggunakan penganalisis logika tertanam tidak memerlukan pin output tambahan tetapi sumber daya FPGA internal harus digunakan untuk mengimplementasikan fungsi penganalisa logika. Menggunakan peralatan uji eksternal membutuhkan penggunaan pin output tambahan tetapi meminimalkan (atau menghilangkan) kebutuhan untuk menggunakan sumber daya FPGA internal.

Untuk mengatasi beberapa pengorbanan, Anda mungkin ingin menggunakan perangkat lunak uji khusus bersama-sama dengan peralatan uji eksternal untuk memungkinkan Anda melihat bagian dalam desain FPGA Anda dan menghubungkan sinyal internal dengan sinyal eksternal. Ini dapat mengurangi atau menghilangkan proses pengkompilasi ulang desain Anda yang memakan waktu dan menyediakan akses ke beberapa sinyal internal per pin debug. Perangkat lunak ini juga memungkinkan Anda untuk menangani beberapa inti uji dalam satu perangkat (berguna untuk memonitor berbagai domain jam) dan beberapa perangkat FPGA pada rantai JTAG.

Dengan mempertimbangkan dengan cermat kebutuhan debug Anda selama fase desain, Anda akan lebih dapat memilih metodologi debug yang tepat. Alat analisis logika tertanam dan pendekatan peralatan uji eksternal memiliki kekuatan dan kelemahannya sendiri.