Saya berencana untuk merancang PCB FPGA khusus. PCB akan berisi sensor. Saya perlu membaca output dari sensor dan memprosesnya di prosesor. Saya telah menyelesaikan banyak proyek menggunakan FPGA, tetapi ini akan menjadi desain khusus pertama saya di mana saya perlu mempertimbangkan konfigurasi perangkat keras juga. Saya telah melakukan penelitian akhir-akhir ini, tetapi masih sulit bagi saya untuk memulai dari suatu titik. Oleh karena itu saya meminta Anda untuk membantu saya dan orang lain yang ingin merancang FPGA khusus mereka apa poin yang perlu mereka pertimbangkan pada setiap langkah. Apakah ada buku / sumber daya online yang dapat membantu kami dalam proses ini? Saya juga akan membuat dokumen setelah saya menyelesaikan proyek saya sehingga orang dapat memanfaatkannya.
9
Jawaban:
Di perusahaan saya, kami sebelumnya telah merancang beberapa papan FPGA khusus, dan baru-baru ini mulai menggunakan papan FPGA komersial ("COTS") dengan papan utama FMC kustom.
Tahap prototipe
Jika Anda masih dalam tahap definisi proyek awal, rencanakan untuk membeli setidaknya satu papan COTS FPGA untuk pembuatan prototipe. Anda dapat memasang salah satu sensor Anda ke header I / O dan melakukan proof-of-concept cepat. Itu memberi Anda gambaran bagaimana proyek dapat dilakukan ketika diskalakan ke banyak sensor, dan memperkirakan berapa banyak Anda dapat mendukung dengan FPGA yang diberikan.
Jika FPGA terlalu kecil atau terlalu lambat atau alatnya tidak memadai untuk pekerjaan itu, mudah untuk menukar FPGA COTS yang berbeda pada tahap ini. (Yah tidak mudah tapi setidaknya bisa diatur ...)
Jika firmware tidak berfungsi pada tahap ini, jelas karena masalah firmware, bukan kesalahan desain PCB khusus. Dengan custom firmware dan custom PCB, terkadang sulit untuk mengatakan sisi mana yang salah karena masalah.
Papan FPGA khusus versus papan FPGA Komersial Di Luar Shelf
Mendesain papan FPGA khusus masuk akal jika proyek akan memiliki siklus hidup pendek, volume tinggi, atau memerlukan faktor bentuk yang lebih kecil daripada yang dapat Anda capai dengan papan COTS FPGA dan papan tambahan PMOD atau FMC.
Jika siklus hidup proyek melebihi masa pakai produk dari chip memori DDR (beberapa tahun), maka mendesain papan induk FMC kustom mungkin merupakan alternatif yang lebih baik.
Biaya adalah faktor dalam keputusan ini. Kebanyakan papan COTS FPGA agak bertujuan umum, dirancang untuk fleksibilitas maksimum. Jika Anda membuat produk volume tinggi, sensitif biaya, mungkin ada baiknya membuat desain khusus; tetapi untuk volume rendah Anda mungkin lebih baik berkonsentrasi untuk membuat kartu anak.
Apa pun pendekatan yang Anda pilih, ada antarmuka tertentu yang memerlukan dokumentasi master yang jelas: pada antarmuka antara pin I / O tingkat atas FPGA dan bagian papan lainnya, dan pada antarmuka konektor di antara papan. Ini adalah tempat di mana pin lokasi, nama jaring internal, dan nama jaring eksternal kadang-kadang tidak cocok dan ditukar. Tabel adalah dokumentasi yang memadai; pastikan untuk menjaga tabel antarmuka ini versi dan di bawah kendali sumber. Sebelum mengirim file PCB ke fabrikasi, cetak salinan tabel antarmuka ini, salinan skema, dan salinan laporan pin / pad FPGA. Seret highlighter melintasi kertas untuk memeriksa setiap sinyal yang terhubung di mana seharusnya.
Untuk konektor, saya telah belajar cara yang sulit untuk menyediakan "gambar sistem" mekanis yang menunjukkan kedua papan dan konektor kawin bersama pada satu gambar berdimensi tunggal. Saya pertama kali terbakar oleh sistem konektor VME di mana pin "A1" pada satu konektor tidak memetakan untuk pin "A1" pada konektor lainnya. Saya juga melihat desainer lupa bahwa sepasang konektor sudut kanan menghasilkan koneksi gambar cermin (90 derajat + 90 derajat = 180 derajat). Ini adalah masalah ketika saya bertanggung jawab untuk motherboard dan beberapa manajer proyek lainnya bertanggung jawab untuk berbagai motherboard.
Kiat papan FPGA khusus
Mulailah dengan "desain referensi" dari vendor FPGA, dan kemudian abaikan bagian apa pun yang tidak diperlukan untuk aplikasi Anda. Jangan lepaskan kapasitor pintas apa pun dari FPGA, dan jangan coba-coba menggunakan lebih sedikit lapisan PCB. Perhatikan tumpukan lapisan (sering ditemukan di samping gambar bor); komponen nada halus biasanya menggunakan 0,5 oz tembaga daripada ketebalan 1 oz tembaga foil standar.
Paket BGA sangat menyebalkan. Hasil tidak pernah sebagus dengan paket TQFP atau TQFN, dan pengerjaan ulang BGA hampir mustahil. Bahkan memeriksa untuk masalah perakitan membutuhkan pencitraan X-Ray. Pastikan untuk menggunakan penyedia layanan Pembuatan Kontrak yang Anda percayai.
Pasokan daya selalu rumit ketika bekerja dengan papan FPGA. Persyaratan daya aktual dari FPGA sangat bergantung pada bitstream konfigurasi. Xilinx menyediakan alat "penaksir daya", tetapi perkiraan ini hanya valid jika firmware lengkap. Ada risiko ketika melakukan perubahan firmware menit terakhir, bahwa persyaratan daya lebih besar dari yang diharapkan. Berencana meninggalkan beberapa margin pasokan saat ini. Jika perkiraan daya awal mengatakan Anda membutuhkan 560mA, silakan dan gunakan regulator 1000mA. Arus keluaran ekstra yang tersedia tidak membahayakan, tetapi jika arus keluaran tidak mencukupi akan mengakibatkan perilaku sistem yang menyimpang.
Jika ada pin FPGA yang tidak dikomit, bawa sebanyak mungkin ke header. Ketika ada masalah, pin yang tidak terikat ini menjadi sumber diagnostik yang berharga untuk memeriksa sinyal di dalam FPGA.
sumber
Saya telah merancang lebih dari selusin papan berbasis FPGA yang menggunakan berbagai jenis FPGA mulai dari daya rendah Lattice Mach X02s hingga kinerja tinggi Virtex 6 dengan 24 saluran SERDES. Langkah-langkah normal yang saya ikuti adalah:
Temukan papan COT (mirip dengan MarkU) dan dapatkan gambaran kasar tentang sumber daya FPGA internal yang Anda perlukan, khususnya saya memperhatikan:
Menggunakan persamaan [P = (1/2) CV ^ 2 * (f)] di mana C = kapasitansi input, f = frekuensi. dari input FPGA Anda harus mengemudi (Untuk setiap sinyal!). Anda dapat mengetahui perkiraan kasus terburuk tentang seberapa besar daya yang diperlukan untuk menggerakkan semua sinyal output.
Anda juga perlu mempertimbangkan kehilangan daya yang terkait dengan resistor terminasi internal (berdasarkan standar I / O yang Anda gunakan)
Saya juga telah menggunakan alat TI Webbench belakangan ini dengan banyak keberhasilan:
TI Webbench (Saya tidak bekerja untuk TI)
Skema:
Siapkan skematis Anda dengan mengingat orang bodoh. Anda dan semua desainer HDL akan sering kembali ke skema ini, jadi buatlah mudah bagi semua orang untuk menemukan apa yang mereka butuhkan dengan cepat tanpa mengharuskan Anda di masa depan atau mereka untuk meriset seluruh skema untuk mengetahuinya jika Pin 20 adalah input jam. Ini termasuk banyak catatan tentang skema (jika mungkin), jelaskan tujuan rangkaian, hasil yang diharapkan, dan bahkan kekhawatiran. Karena FPGA dapat dipecah menjadi bank, pertimbangkan untuk memecah komponen FPGA menjadi beberapa bagian dan bahkan mungkin mendedikasikan seluruh halaman skematik untuk masing-masing bank.
PUT BESAR MENGUMUMKAN CATATAN DALAM SKEMATIK ANDA TENTANG MENCARI CLOCKS KE PIN YANG TEPAT: Saya membenturkan kepala ke banyak dinding ketika saya sedang membangun gambar pertama saya untuk desain dan mendapatkan sinyal jam yang ditakuti diarahkan pada pin yang diaktifkan non-jam ' . Hiduplah dalam ketakutan akan berbagai jenis pin jam pada FPGA. Pastikan Anda memahami bahwa beberapa pin jam dimaksudkan untuk digunakan pada kuadran FPGA atau Anda akan menghadapi semua orang yang mengatakan: "Hei, tahukah Anda ada pin jam tertentu yang dimaksudkan untuk digunakan pada kuadran FPGA". Hanya perlu 15 orang untuk memberi tahu Anda hal ini untuk memastikan Anda tidak pernah melakukannya lagi.
Habiskan BANYAK WAKTU PADA DESAIN KONFIGURASI FPGA: Pastikan Anda mengeluarkan pin JTAG bahkan jika Anda tidak berencana menggunakannya. Ini adalah perbedaan antara kesalahan yang bisa diterapkan dan cacat fatal.
Ketika ragu mengeluarkan tombol sinyal tambahan dan LED serta sakelar celup: Saya telah mencengkeram banyak pekerjaan tambahan yang terkait dengan merutekan sinyal tambahan ke breaker header LED, sakelar dan tombol celup tetapi selalu SELALU membantu.
Tata letak :
Berkomunikasi dengan rumah Fab lebih awal: Terutama jika Anda mungkin memerlukan perutean terkontrol impedansi meminta lapisan menumpuk untuk jumlah lapisan yang diinginkan. Jauh lebih mudah untuk merutekan sinyal berkecepatan tinggi ketika Anda memiliki lebar jejak yang ditentukan pertama kali untuk mengetahui bahwa Anda bisa menggunakan 6 mil jejak bukannya 8 mil jejak untuk mencapai impedansi 50 ohm Anda.
Mulailah dengan topi pintas: Desain sistem daya lebih awal. Hal pertama yang saya lakukan adalah mulai dengan menempatkan semua topi kecil di bawah FPGA atau dekat dengan pin. Yang lebih besar di luar FPGA dan rute seluruh rangkaian catu daya dan letakkan kira-kira di tempat yang saya harapkan. Dengan cara ini Anda tidak akan melawan puzzle perutean dan membuat kompromi.
Sinyal kecepatan tinggi kedua: Ini adalah sinyal yang tidak ingin Anda lompati terlalu banyak lapisan.
Saya selalu belajar lebih banyak hal dan akan sangat menyukai tips lain yang telah ditemukan oleh desainer lain jadi tolong tambahkan mereka.
sumber
Saya pikir titik awal yang baik untuk PCB kustom yang dilengkapi dengan FPGA akan menjadi papan desain referensi dari vendor FPGA. Anda dapat memeriksa desain ini sebagai contoh untuk catu daya, tetapi perlu diketahui bahwa papan desain referensi terkadang berukuran kurang. Kami mengalami banyak masalah dengan papan Xilinx ML605 kehilangan konfigurasi di sana, karena catu daya yang berukuran lebih kecil.
Menjawab komentar omid:
Salah satu rekan saya menerapkan algoritma perhitungan sistolik pada Virtex-6 LXT240. Input data dipasok oleh Gigabit Ethernet. Karena pendekatan sistolik FPGA hampir tidak melakukan apa-apa jika tidak ada data di input fifos atau terutama semua sandal jepit dari FPGA yang beralih dengan 200 MHz jika bingkai ethernet baru tiba. Ketidakseimbangan dalam perhitungan ini menyebabkan sirkuit catu daya TI mematikan papan ML605 yang hanya dapat dipulihkan dari keadaan ini dengan mengganti sakelar daya utama.
Kami memberikan desain ini ke departemen teknik elektro di universitas kami dan mereka menemukan, bahwa tidak ada cara untuk menyesuaikan koefisien regulator berdasarkan kapasitor yang dipasang.
Ya, bisa dikatakan: desain yang buruk atau menggunakan fifos yang lebih besar atau ...
Solusi rekan saya adalah pemanfaatan FPGA berkurang 80%.
Namun demikian, papan prototipe dan desain referensi harus mampu menangani beban kerja yang ekstrem, terutama jika papan ini memiliki FPGA yang tidak memiliki penggunaan daya seperti CPU.
sumber