80x30 metin modunda 640x480 VGA ekran sürmek için ayrık bileşenler kullanan bir dijital devre üzerinde çalışıyorum.
640x480 ekran için piksel saati 25.175MHz'dir ve bu süre 40ns civarındadır. Ekrana bu kadar sık nasıl yeni bir piksel sağlayabildiğimi anlamıyorum.
Devrem için temel mimari aşağıdaki gibidir:
Yatay pikseller için ikili sayaç 25.175 MHz'de 800'e kadar sayar (640 görünür piksel + ön sundurma, senkronizasyon, arka sundurma için 160). 800'de dikey satır sayacını artırın (ve 525 satırda sıfırlayın)
Yatay ve dikey konumu kullanarak, geçerli karakterin x, y koordinatlarını elde edin.
ASCII karakterini almak için x, y karakter koordinatı, video belleğine indeks kullanarak.
Karakter için bit kalıbı elde etmek üzere karakter ROM'unda dizinlemek için ASCII karakterini kullanın
8 piksel karakter satırını piksel saat frekansında ayrı bitlere dönüştürmek için seri kaydırma yazmacına paralel kullanın
Zinciri takip ederseniz, gider: Sayaç -> RAM -> ROM -> Seri Vites Kaydına Paralel
Bulabildiğim en hızlı bileşenleri kullanarak, yayılma gecikmeleri ve erişim süresi yaklaşık 25ns + 20ns + 70ns + 15ns = 120ns, 25MHz için 40ns süresinden çok daha fazladır.
Daha yüksek çözünürlüklerde ve yenileme hızlarında, 10 MHz'lik bir dönem olacak 100MHz'in üzerinde piksel saatlerine sahip olabilirsiniz.
Sisteminizdeki diğer tüm sinyalleri göz önünde bulundurmadan bile, RAM / ROM için erişim süresi zaten çok yukarıda olduğunda, ekrana her 10 saniyede bir yeni pikseller sağlamak nasıl mümkün olur?