Cara mencegah proyek berbasis FPGA agar tidak tersesat
Selama karir saya, saya telah terlibat dengan mengembangkan sejumlah desain FPGA untuk beberapa proyek yang sangat menarik. Sayangnya, saya juga terlibat dalam menyelamatkan beberapa desain FPGA yang telah tersesat. Saat saya mengerjakan desain masalah ini, menjadi jelas bahwa — meskipun aplikasi target dan anggota tim pengembangan berbeda — desain memiliki beberapa poin umum yang membuat mereka gagal bahkan sebelum insinyur pertama duduk untuk menulis baris pertama. kode HDL.
(Sumber:pixabay.com)
Dengan pemikiran ini, saya pikir saya akan melewati lima masalah umum yang saya amati sebagai bagian dari menyelamatkan proyek-proyek ini. Masalah-masalah tersebut adalah sebagai berikut:
#1: Perhatian pertama tidak hanya terkait dengan pengembangan berbasis FPGA, tetapi juga rekayasa secara umum. Masalahnya adalah tidak memiliki dasar persyaratan yang stabil saat memulai. Selalu ada keinginan untuk memulai proyek sementara persyaratan masih matang atas dasar bahwa kemajuan perlu ditunjukkan. Namun, jika kita terjun dan mulai mengembangkan tanpa sepenuhnya memahami persyaratan, maka — terlalu sering — kemajuan awal apa pun ternyata salah, dan melakukan koreksi hilir menimbulkan penundaan dan biaya tambahan. Apa yang dimulai terlalu dini sebenarnya adalah memasukkan risiko ke dalam pembangunan, dan risiko ini perlu dikurangi. Saya menghargai bahwa, tergantung pada aplikasi yang ada, kedalaman dan detail persyaratan dapat ditingkatkan. Saya mengharapkan lebih banyak, dan lebih rinci, persyaratan untuk sistem SIL4 daripada untuk sistem komersial. Namun panjang pendeknya, jika persyaratan tidak disepakati dan digarisbawahi sejak awal, maka akan terjadi scope creep. Meskipun desain mungkin telah dimulai dengan arsitektur yang masuk akal untuk persyaratan seperti yang dipahami, itu akan menjadi semakin rumit ketika pengembang mencoba untuk menyesuaikan fungsionalitas baru saat baseline matang. Tak lama, sesuatu akan pecah.
#2: Setelah memahami situasi kebutuhan, setiap anggota tim perlu memahami rencana pengembangan FPGA. Oleh karena itu, merupakan ide yang baik untuk memiliki rencana yang mendefinisikan pendekatan yang akan diikuti dari awal hingga pengiriman, mengidentifikasi langkah-langkah utama yang terlibat dan gerbang tinjauan rekayasa yang akan diterapkan selama proses pengembangan. Seiring dengan rencana, kita juga perlu mendokumentasikan arsitektur dan desain, mengidentifikasi masing-masing fungsi utama, memutuskan fungsi mana yang baru dikembangkan dan mana yang akan memanfaatkan IP pihak ketiga atau menggunakan kembali IP yang ada (lebih lanjut tentang ini nanti). Dokumentasi rencana, arsitektur, dan deskripsi desain gabungan ini akan memungkinkan tim teknik memahami dengan jelas tugas yang ada. Kami juga dapat melacak semua fungsi kembali ke kumpulan persyaratan untuk memastikan bahwa pendekatan yang diusulkan memenuhi semua persyaratan tingkat tinggi.
#3: Merancang modul dan FPGA keseluruhan akan memakan waktu; apa yang akan memakan waktu lebih lama, bagaimanapun, adalah memverifikasi desain, dan memastikan bahwa itu memenuhi persyaratannya. Verifikasi ini perlu mencakup tidak hanya secara fungsional logis, tetapi juga perlu dilakukan di semua kemungkinan kondisi pengoperasian perangkat. Pada gilirannya, ini berarti perlu untuk mengembangkan strategi verifikasi yang jelas untuk desain; ini bukan lagi sekadar menulis kode, melakukan beberapa simulasi, dan kemudian melemparkan desain ke perangkat keras.
#4: Kadang-kadang, kita semua begitu dekat dengan berbagai hal dan tenggelam dalam pemikiran kita sehingga menjadi sulit untuk melihat ketika kita melewatkan sesuatu. Untuk itulah ulasan desain teknik diciptakan. Dengan mengadakan tinjauan ini, kami dapat memastikan bahwa kami mengikuti praktik rekayasa yang baik dan mematuhi standar pengembangan internal. Secara signifikan, mereka juga memberikan kemampuan bagi insinyur independen untuk melihat desain — arsitektur dan implementasinya — untuk memastikannya akan menyediakan fungsionalitas yang diperlukan. Jika kami tidak meninjau desain seiring perkembangannya, kami akan gagal membangun kualitas dan kami akan meningkatkan masalah integrasi hilir.
#5: Sejauh ini, Anda mungkin telah memperhatikan bahwa sebagian besar poin yang saya kemukakan terkait dengan proses dan aspek rekayasa yang lebih luas, yang bertentangan dengan pengkodean desain itu sendiri. Tentu saja, mengembangkan kode itu penting, tetapi juga penting untuk memastikan bahwa kita memanfaatkan IP pihak ketiga dan menggunakan kembali IP internal. Idealnya, kita harus menggunakan kembali sebanyak mungkin blok IP yang ada dari perpustakaan kita. Jika ini tidak memungkinkan, kami — tentu saja — perlu mengembangkan modul baru. Dalam hal ini, membuat modul-modul baru ini sedemikian rupa sehingga dapat digunakan kembali dalam proyek-proyek masa depan harus menjadi yang utama dalam pikiran kita. Untuk membantu kami membuat blok baru ini, kami harus mempertimbangkan penggunaan alat Sintesis Tingkat Tinggi (HLS). Dengan memungkinkan kami bekerja pada tingkat abstraksi yang lebih tinggi, alat ini memberikan kemampuan untuk menjelajahi ruang solusi dengan lebih mudah dan mengurangi risiko, waktu pengembangan, dan biaya.
Poin yang disajikan di atas hanyalah beberapa hal yang saya perhatikan saat menyelamatkan desain FPGA. Saya akan sangat tertarik untuk mendengar pendapat Anda tentang proyek yang menyimpang.