ฉันกำลังทำงานกับวงจรดิจิตอลโดยใช้ส่วนประกอบแยกเพื่อขับเคลื่อนการแสดงผล 640x480 VGA ในโหมดข้อความ 80x30
สำหรับการแสดงผล 640x480 นาฬิกาพิกเซลคือ 25.175MHz ซึ่งมีระยะเวลาประมาณ 40ns ฉันไม่เข้าใจว่าฉันควรจะให้พิกเซลใหม่แก่จอแสดงผลนี้บ่อยแค่ไหน
สถาปัตยกรรมพื้นฐานสำหรับวงจรของฉันเป็นดังนี้:
ตัวนับไบนารีสำหรับพิกเซลแนวนอนจะนับที่ 25.175MHz ถึง 800 (640 พิกเซลที่มองเห็น + 160 สำหรับระเบียงด้านหน้าซิงค์และระเบียงด้านหลัง) ที่ 800 เพิ่มตัวนับบรรทัดแนวตั้ง (และรีเซ็ตที่ 525 บรรทัด)
การใช้ตำแหน่งแนวนอนและแนวตั้งให้หาพิกัด x, y ของอักขระปัจจุบัน
ใช้ x, y พิกัดของตัวอักษรดัชนีในหน่วยความจำวิดีโอเพื่อดึงตัวอักษร ASCII
ใช้อักขระ ASCII เพื่อจัดทำดัชนีใน ROM อักขระเพื่อรับรูปแบบบิตสำหรับอักขระ
ใช้ขนานกับอนุกรม shift register เพื่อแปลงอักขระ 8 บรรทัดเป็นบิตแต่ละบิตที่ความถี่สัญญาณนาฬิกา
ถ้าคุณทำตามเชนมันจะไป: Counter -> RAM -> ROM -> Parallel กับ Serial Shift Register
เมื่อใช้ส่วนประกอบที่เร็วที่สุดที่ฉันพบการขยายเวลาและการเข้าถึงจะเพิ่มขึ้นประมาณ 15ns + 20ns + 70ns + 15ns = 120ns ซึ่งมากกว่าช่วง 40 40 สำหรับ 25MHz
ที่ความละเอียดและอัตราการรีเฟรชที่สูงขึ้นคุณสามารถมีนาฬิกาพิกเซลสูงกว่า 100MHz ซึ่งจะเป็นช่วงเวลา 10ns
เป็นไปได้อย่างไรที่จะมอบพิกเซลใหม่ให้กับจอแสดงผลทุก ๆ 10ns เมื่อเวลาในการเข้าถึง RAM / ROM นั้นเหนือกว่านั้นโดยที่ไม่ได้พิจารณาสัญญาณอื่น ๆ ทั้งหมดในระบบของคุณ