Deneyimli bir mühendis olarak ( FPGA tasarımı ve gömülü sistemlerle 3 yıl ), size FPGA'nın veri sayfasını ve kullanıcı kılavuzunu kontrol etmeniz gerektiğini söylüyorum. Bu basit bir cevap değil.
Sen yapmak zorunda tasarım uyan FPGA tipi Seçtiğin. Bazı FPGA'larda Async sıfırlama için tasarlanmış FlipFlop'lar , bazıları da Senkronizasyon sıfırlama için tasarlanmıştır.
Ne tür FlipFlop'lara sahip olduğunuz için FPGA kullanım kılavuzunu kontrol etmeniz gerekir.
Uygulayıcı / Haritacı, kodunuzu FPGA ilkel türüyle eşleştirdiğinizde sıfırlamanız için özel yollar seçer ( kod daha yüksek frekanslarda çalışabilir ve daha az yer kaplar ).
Tasarımınız HERHANGİ BİR durumda çalışacaktır , ancak bazen FPGA Uygulayıcısı mantığınızı çalıştırmak için daha fazla yol açar ( daha fazla mantık ekler ), ancak bu daha düşük maksimum frekansa ve / veya daha fazla FPGA kaynaklarına neden olur.
Örnek: Xilinx'in ZYNQ'su ile test edilmiştir ( FPGA senkronize sıfırlama için tasarlanmıştır - ilkel kullanıcı kılavuzuna bakın ). Senkronizasyonu sıfırdan senkronize olarak değiştirerek , maksimum kararlı frekans 220MHz'den 258MHz'e gitti ve bu yüzden frekans marjımı geçtim .
Ayrıca Uygulayıcı'nın saat ve sıfırlama sinyalinin ne olduğunu bilmediğini de ekleyebilirim. Flipflop pinlerini isimlere göre değil, ORDER ile sinyallere atar. Bu nedenle, bazı FPGA'larda, uygulayıcı, uygulayıcının hangi FPGA'ya ayarlandığına bağlı olarak, VHDL'de "process () başladıktan sonra saat olarak, bazıları sıfırlama olarak ilk sinyali seçer.