VGA 时序仿真分析-基于signalTapII

VGA 时序仿真分析-基于signalTapII

前段时间重新仿真分析了vga的时序,分析结果如下:

实验条件为640*[email protected],其中模拟生成待显示数据,经过SDRAM的缓存输出到VGA接口;

VGA 时序仿真分析-基于signalTapII

需要注意的几点:

1)hcnt=144时的下降沿送出第一数据给VGA接口芯片,hcnt=144+640-1=783时的下降沿送出最后一个数据(此处为第640个数据)给VGA接口芯片;

2)VGA控制器的时钟为25MHz,相位为0,VGA驱动芯片的时钟为25MHz,相位为-90°,相当于将VGA控制器的时钟取反,时序图中只给出了VGA控制器的时钟,所以时钟的上升沿为VGA控制器的有效边沿,时钟的下降沿为VGA驱动芯片的有效边沿,这点需要注意;

3)数据请求信号用于从FIFO中读出数据;

4)坐标lcd_xpos的取值范围为0~639,其中写入数据的位置为1~0;

5)坐标lcd_ypos的取值范围为0~479

时序分析:

hcnt=96+48=144时的下降沿将从FIFO(read端)中读出的第一个数据2输出给显示屏,理论上读出的第一个数据应该为1,怀疑是数据写入FIFO(read端)的问题;

VGA 时序仿真分析-基于signalTapII

FIFO中的数据有时没有1,可能是写入数据到FIFO不正确;

VGA 时序仿真分析-基于signalTapII

第一个读取的数据为2,最后一个读取的数据有时候为1有时候为640(即最后两个数据都为640),可能原因是SDRAM中的数据写入到FIFO中写的不对;

VGA 时序仿真分析-基于signalTapII

VGA 时序仿真分析-基于signalTapII

经过检查,发现从SDRAM中读出的数据写入到FIFO(read端)中请求信号晚了一个时钟,改正后的正确时序图如下:

VGA 时序仿真分析-基于signalTapII

VGA 时序仿真分析-基于signalTapII

另一个程序测试的正确的时序应该是下面这样:

第一个读出的数据为1,最后一个读出的数据为640;

VGA 时序仿真分析-基于signalTapII

VGA 时序仿真分析-基于signalTapII

第0行数据:

VGA 时序仿真分析-基于signalTapII

第479行数据:

VGA 时序仿真分析-基于signalTapII