Bir FPGA (vhdl kullanarak bir xilinx spartan3e olan Papilio geliştirme kartı) kullanmayı öğreniyorum.
Gelen nabzı (sabit kodlu) bir numaraya bölmem gerekiyor.
Ben yaklaşık 3 seçenek görebilirsiniz - kabaca, sözde kod olarak (örnek olarak 10 sayım kullanarak):
- 0'a sıfırlayın, giriş yükselen kenarda 1 artarak 10 ile karşılaştırın; eşitse, 0'a sıfırlayın ve çıkış darbesini tetikleyin
- 10'a sıfırlayın, giriş yükselen kenarda 1 azalır, 0 ile karşılaştırın; eşitse, 10'a sıfırlayın ve çıkış darbesini tetikleyin
- 9 olarak başlat, ancak çıkış bitim olan en az 1 önde gelen "0" bit olduğundan emin ol. Giriş yükselen kenarında 1 azalır. Çıkış bitinin yükselen kenarında sıfırlayın.
Görev döngüsü önemsizdir.
Bunlardan biri diğerlerinden daha mı iyi? Aklıma gelmediğim daha iyi bir yöntem var mı?
Derleyiciye en iyi optimizasyon şansını verecek "standart" bir yol var mı?