मैं 80x30 टेक्स्ट मोड में 640x480 VGA डिस्प्ले ड्राइव करने के लिए असतत घटकों का उपयोग कर एक डिजिटल सर्किट पर काम कर रहा हूं।
640x480 डिस्प्ले के लिए, पिक्सेल घड़ी 25.175MHz है, जिसकी अवधि लगभग 40ns है। मुझे समझ नहीं आ रहा है कि मैं यह प्रदर्शित करने के लिए एक नया पिक्सेल कैसे प्रदान कर सकता हूँ।
मेरे सर्किट की मूल वास्तुकला इस प्रकार है:
क्षैतिज पिक्सेल के लिए बाइनरी काउंटर 25.175MHz से 800 (640 दृश्यमान पिक्सेल + 160 सामने के पोर्च, सिंक, बैक पोर) के लिए गिना जाता है। 800 पर, वर्टिकल वर्टिकल लाइन काउंटर (और 525 लाइनों पर रीसेट)
क्षैतिज और ऊर्ध्वाधर स्थिति का उपयोग करते हुए, वर्तमान वर्ण के x, y को समन्वित करें।
X, y वर्ण का समन्वय, ASCII वर्ण को पुनः प्राप्त करने के लिए वीडियो मेमोरी में अनुक्रमणिका का उपयोग करना।
चरित्र के लिए बिट पैटर्न प्राप्त करने के लिए चरित्र ROM में अनुक्रमणिका के लिए ASCII वर्ण का उपयोग करें
पिक्सेल क्लॉक फ़्रीक्वेंसी पर 8 बिट्स के कैरेक्टर को व्यक्तिगत बिट्स में बदलने के लिए सीरियल शिफ्ट रजिस्टर के समानांतर का उपयोग करें
यदि आप श्रृंखला का अनुसरण करते हैं, तो यह जाता है: काउंटर -> रैम -> रोम -> सीरियल शिफ्ट रजिस्टर के समानांतर
सबसे तेज़ घटकों का उपयोग करके, मैं प्रचार देरी और पहुँच समय को जोड़कर लगभग 15ns + 20ns + 70ns + 15ns = 120ns, 25MHz के लिए 40ns की अवधि से बहुत अधिक हो सकता हूं।
यहां तक कि उच्च रिज़ॉल्यूशन और ताज़ा दरों पर, आप पिक्सेल घड़ियों को 100 मेगाहर्ट्ज से ऊपर रख सकते हैं, जो कि 10ns की अवधि होगी।
हर 10ns में नए पिक्सेल प्रदान करना कैसे संभव है जब रैम / रोम के लिए उपयोग का समय पहले से ही अच्छी तरह से ऊपर है, आपके सिस्टम के अन्य सभी संकेतों पर भी विचार नहीं कर रहा है?