这两天在调VGA汉字显示,记一下经过。
我的板子是EP1C6,照我的设计,设置了一个4K的ROM和一个4K的RAM,在VGA的回扫周期,把ROM的字库搬到双口RAM去显示,之所以这么麻烦因为我想让它显示串口发送给它的字符。
VGA的同步生成是轻车熟路,在RAM显示时,MIF文件却更新不了,一番猛搜,才知道“Process->Update Memory file...”,搞定。
字符出来了,但是反的,以为是读写出问题了,后来发现是在“PCtoLCD2002”软件设置里面的字模顺序不对。
字可以显示了,但有几列错位了,第0列跑到第8列,折磨了我几天,终于发现是RAM写时序问题,由于延时,本次周期未能锁定地址数据,数据被延迟一个周期。把列指针直接减一,终于正常了。
总结一下,一定要细心,刚开始显示的东西全部乱了,反复检查后发现取(x,y)点地址竟被我写成(x*y),改为(x*`H_WIDTH+y)才正常;还有要特别注意时序问题,失之毫厘,谬以千里!
文章评论(0条评论)
登录后参与讨论