Saya belajar menggunakan FPGA (papan pengembangan Papilio, yang memiliki xilinx spartan3e, menggunakan vhdl).
Saya perlu membagi pulsa yang masuk dengan nomor (hard code).
Saya dapat melihat 3 opsi - kira-kira, sebagai kodesemu (menggunakan 10 hitungan sebagai contoh):
- Inisialisasi ke 0, pada input edge meningkat meningkat sebesar 1, dibandingkan dengan 10; jika keduanya sama, reset ke 0 dan memicu pulsa output
- Inisialisasi ke 10, pada input edge naik berkurang 1, dibandingkan dengan 0; jika keduanya sama, reset ke 10 dan memicu pulsa output
- Inisialisasi ke 9, tetapi pastikan ada setidaknya 1 memimpin "0" bit, yang merupakan bit keluaran saya. Pada sisi input naik, turun 1. Pada sisi naik bit output, reset.
Siklus tugas tidak penting.
Apakah salah satunya lebih baik daripada yang lain? Apakah ada metode yang lebih baik yang belum saya pikirkan?
Apakah ada cara "standar" yang akan memberikan kompiler kesempatan terbaik untuk mengoptimalkan?