मैं एक FPGA (पैपिलियो डेवलपमेंट बोर्ड, जिसमें xilinx संयमी 3e है, vhdh का उपयोग करके) का उपयोग करना सीख रहा हूं।
मुझे एक आवक पल्स को एक (हार्ड कोडित) संख्या से विभाजित करने की आवश्यकता है।
मैं 3 विकल्प देख सकता हूं - मोटे तौर पर, स्यूडोकोड के रूप में (उदाहरण के रूप में 10 गिनती का उपयोग करके):
- 10 की तुलना में 1 से इनपुट बढ़ती बढ़त पर, 0 के लिए प्रारंभिक; यदि वे समान हैं, तो 0 पर रीसेट करें और आउटपुट पल्स को ट्रिगर करें
- 10 से प्रारंभिक, इनपुट बढ़ती बढ़त पर 1 से कम, 0 की तुलना में; यदि वे समान हैं, तो 10 पर रीसेट करें और आउटपुट पल्स को ट्रिगर करें
- 9 पर प्रारंभ करें, लेकिन सुनिश्चित करें कि कम से कम 1 अग्रणी "0" बिट है, जो मेरा आउटपुट बिट है। इनपुट राइजिंग एज घटने से 1. आउटपुट बिट के बढ़ते किनारे पर, रीसेट करें।
कर्तव्य चक्र महत्वहीन है।
क्या इनमें से एक दूसरों की तुलना में बेहतर है? वहाँ एक बेहतर तरीका है कि मैं के बारे में सोचा नहीं है?
क्या कोई "मानक" तरीका है जो कंपाइलर को अनुकूलन का सबसे अच्छा मौका देगा?