我正在使用分立组件在数字电路上工作,以80x30文本模式驱动640x480 VGA显示器。
对于640x480的显示器,像素时钟为25.175MHz,周期约为40ns。我不明白我应该怎么能够经常向显示器提供新的像素。
我的电路的基本架构如下:
水平像素的二进制计数器以25.175MHz的频率计数到800(640个可见像素+ 160个前沿,同步,后沿)。在800处,增加垂直行计数器(并在525行处重置)
使用水平和垂直位置,导出当前字符的x,y坐标。
使用字符的x,y坐标,索引到视频内存中以检索ASCII字符。
使用ASCII字符在字符ROM中建立索引以获取字符的位模式
使用并行到串行移位寄存器,以像素时钟频率将8像素字符行转换为单个位
如果您遵循该链,则它会:计数器-> RAM-> ROM->并行于串行移位寄存器
使用我能找到的最快的组件,传播延迟和访问时间总计约为15ns + 20ns + 70ns + 15ns = 120ns,远大于25MHz的40ns周期。
在更高的分辨率和刷新率下,像素时钟可以远高于100MHz,这将是10ns的周期。
当RAM / ROM的访问时间已经远远超过它时,甚至不考虑系统中所有其他信号的情况下,如何能每10ns为显示器提供一个新的像素呢?