由于思路的局限性和重复性,模块的设计和仿真一般不由同一个人设计,要做到设计和仿真相分离。仿真人员不必了解里面代码里面具体实现过程,只需要了解所要完成的功能,实现的是黑盒测试。在这种层次上测试可以认为模块的接口是由一个输入和一个输出接口构成的。测试平台的目的就是向输入接口产生输入,从输出接口检查输出。模块端口的这些动作并不是随机的,在大多数数字系统中,对于某些端口只会产生有限的事务处理。通常的情况下,这些事务处理就是对模块中的存储单元进行读写数据的操作。
3.3LCD输出的时序图
3.3.1RGB控制部分
在RGB模式中,LCD数据的扫描是以行为单位的。HSYNC是水平同步信号。PCLK是象素时钟。ENABLE是数据使能信号,当它为高时,在PCLK的上升沿输出有效数据。P_DATA是输出的数据。
水平同步信号的上升沿到ENABLE的上升沿的间隔称为HBP。把ENABLE的下降沿到水平同步信号的下升沿的间隔称为HFP。把水平同步信号的低电平(非有效电平)持续时间称为HSW。
HSW存在的必要性:水平同步信号为低电平有效。在水平同步信号有效时,需要等待HBP的时间,才从数据线取数。由于水平同步信号的有效电平持续时间通常比无效电平长,因此占空比不是50%。无效电平短些比较好。
HBP和HFP存在的必要性:从道理上说,LCD使用矩阵寻址这两个阶段完全可以没有。但是考虑到从前CRT电子枪行扫描时,需要一个返回时间,而且目前的制式中,在有效信号的两端分别加入了消隐时间。就是为了做到一致,这二者才出来的。
3.3.2MCU控制部分
当lcd_conf[1]为1的时候启动了MCU模式, MCU模式只有2种操作, 往LCD里面写数据或者从LCD里面读数据. 首先在IDLE状态判断是进行写操作还是读操作. 如果是进行写操作, 就转到写状态去, 把数据写到LCD里面去, 输出的写信号置为低状态, 当计数器等于低状态设置周期数的时候,把写信号置为高状态。当计数器等于高状态设置周期数的时候, 表示一个写操作已经完成. 读操作也是同样的道理。
4. 结束语
经过测试和验证等,LCD输出的引脚HSYCN,VSYNC,DATA,CS等一些基本信号测试的结果跟设计的功能完全吻合,表明代码的设计已经完成,接下来要做的工作就是跑综合进行时序分析,最后就是后端布局布线等。