qwerttt 发表于 2014-1-16 16:45:18

怎样解决VGA显示中,读写SRAM冲突?1024*768@60Hz

系统中的一个模块,显示简单的内容
MCU<--------->CPLD<-------------->1片SRAM
                      |
                      |
                     VGA
显示分辨率是1024*768@60
使用512k*16bit的SRAM
即一次可以读出两个像素字节
使用verilog

现在只能静态的画面,即只能连续读SRAM
当需要修改画面,就会打断读SRAM,打断VGA显示

ximuyi 发表于 2014-1-16 17:09:05

MCU干嘛用的?
可以尝试两片SRAM

hell-prototypes 发表于 2014-1-16 17:17:29

利用 行场消隐 的时间做写操作, 会影响帧速,但不会很闪。

qwerttt 发表于 2014-1-16 17:19:04

MCU把图片数据,发给CPLD,然后存入SRAM
最后显示

2片SRAM贵呀
刚开始设想一片SRAM应该可以完成

qwerttt 发表于 2014-1-16 17:38:04

hell-prototypes 发表于 2014-1-16 17:17
利用 行场消隐 的时间做写操作, 会影响帧速,但不会很闪。

现在MCU发数周期1.6uS
但MCU并不知道现在是否是消隐时间
增加MCU读CPLD状态,判断是否消隐时刻

ximuyi 发表于 2014-1-16 17:38:06

我之前在做一个类似的项目,也是只用一片SDRAM,发现也是行不通
因为竞争冒险问题,不能同时对SDRAM进行读和写的操作,所以后来就想到用两片

Oliver 发表于 2014-1-17 10:15:23

本帖最后由 Oliver 于 2014-1-17 10:16 编辑

你XGA屏幕是8位RGB还是16位RGB哦

如果是8位肯定没问题的,如果是16位的必须用-8的SRAM

另外如果您TFT是16位RGB,那SRAM容量还差256KWORD

qwerttt 发表于 2014-1-17 12:30:46

Oliver 发表于 2014-1-17 10:15
你XGA屏幕是8位RGB还是16位RGB哦

如果是8位肯定没问题的,如果是16位的必须用-8的SRAM


8位色
用的10ns的SRAM,一个周期读出2字节
能指点下吗?
现在我预先读出6字节缓存,然后用类似乒乓操作的方式,送显示
但要写的时候也会被打断读缓存

Oliver 发表于 2014-1-17 13:02:54

这个不象C语言那么好搞,谈不上指点

你需要建一个SRAM模型,然后写代码测试,
既然SRAM带宽是RGB的2倍或者以上,那肯定可以的,

慢慢调试代码看波形吧


PS,网上可以下SRAM模型,你的代码必须要做到1CLK读/写,并且读写转换不需要插入NOP

蓝色风暴@FPGA 发表于 2014-1-18 23:35:28

这个当然需要进行带宽计算
按你SRAM跑100MHz带宽为100M*16
那么你显示输入输出的带宽是多少?

yanzhe128 发表于 2014-1-19 22:33:13

你要算下带宽啊,1024*768*60*8bit 输出带宽(还没带上消隐)大概是400多mbps,输出时钟大概50多M。SRAM需要读写两路,所以需要输出带宽的两倍也就是800mbps,因为位宽是16bit 所以频率也是50多M。因为用的CPLD面积小,节省冲裁资源,就用最简单的方法----就是读写时分复用各占25M的时钟去轮询。这样设计刚刚好也没什么压力,但是就是帧缓存要做两帧乒乓操作而你的容量貌似不够

gzhuli 发表于 2014-1-19 23:14:17

所以早期电脑显卡用的是双口RAM。
页: [1]
查看完整版本: 怎样解决VGA显示中,读写SRAM冲突?1024*768@60Hz