博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数码相框各模块时钟流详解
阅读量:4340 次
发布时间:2019-06-07

本文共 1184 字,大约阅读时间需要 3 分钟。

主要由sd卡模块、输入异步FIFO、SDRAM、输出异步FIFO、单口RAM、VGA模块组成。

1.sd卡模块:采用SPI模式读取SD卡中的数据,SPI工作在25Mhz(每bit),那么一字节需要多久?差不多是25M/8=3.125Mhz,这样的速度拿去在VGA(40~50Mhz)显示是远远不够的,因此需要用到下边的异步FIFO以及SDRAM。

 

2.输入异步FIFO模块:既然是异步,就得两个时钟,那么两个时钟分别是多少呢?和SD卡的接口,我认为只要大于3.125Mhz就可以了,因为SPI协议是串行按位读,可以在成功读取一个字节时,发送使能写FIFO的信号,这样,只要这个时钟大于3.125Mhz,都是可以顺利写入FIFO的。另外一个和SDRAM接口的clk需要多大时钟?根据SDRAM定的,100M就可以了。关于此FIFO需要注意的是,什么时候开始往SDRAM写,也就是读使能呢?可以根据FIFO已使用量来判断,若大于或等于512字节(对于列宽度为9的SDRAM,页模式可访问的长度是512个16bit数据,也就是一行的长度column[8:0]。)则发出写SDRAM使能,如此变可以将所有数据写入SDRAM。

 

3.SDRAM模块:这个就是Verilog控制SDRAM时序了,先留着。

 

4.输出异步FIFO:输入clk,毫无疑问和SDRAM一致,100M的。输出clk,由于输出是直接和单口ram相接的,所以也应是50M。什么时候读出数据呢?当VGA模块已经同步到x,y的显示区域时,使能读FIFO。

 

5.单口RAM模块:采用50Mclk,前边已经提到,SPI输出一字节是3.125M,为什么单口RAM可以跑50M呢?答案和上面红色字体一样,可以在色彩表数据成功锁存后,使能一个周期的wr_ram,这样,可以将数据写入ram。这一句:else if((cnt78 < 11'd1078) && wrf_wrreq) cnt78 <= cnt78+1'b1;仅在写FIFO一个周期信号有效时,cnt78才会加一,环环相扣,很是巧妙,,;又因为,色彩表数据存放在SD卡数据的前方(较之图像数据),因此完全保证了,后期译码时,ram中色彩表已经准备好。什么时候读ram?VGA计数到显示区域时,就会使能输出FIFO,数据输出,然后进入ram,然后进入VGA,从而完成图像的显示。

 

6.VGA模块:VGA显示是一个不断刷新的过程,x从0计数到行尾,伴随着y从0计数到列尾,因此是一个周而复始的读数据的过程。VGA模块时钟频率是这么计算的,比如800*600@72Hz,那么时钟频率约为:1040*666*72=49870080约50M,1040和666是这种格式的帧长。

转载于:https://www.cnblogs.com/fkl523/p/4075271.html

你可能感兴趣的文章
搜索框键盘抬起事件2
查看>>
阿里百川SDK初始化失败 错误码是203
查看>>
透析Java本质-谁创建了对象,this是什么
查看>>
BFS和DFS的java实现
查看>>
关于jquery中prev()和next()的用法
查看>>
一、 kettle开发、上线常见问题以及防错规范步骤
查看>>
eclipse没有server选项
查看>>
CRC码计算及校验原理的最通俗诠释
查看>>
使用Gitbook来编写你的Api文档
查看>>
jquery扩展 $.fn
查看>>
Markdown指南
查看>>
influxDB的安装和简单使用
查看>>
JPA框架学习
查看>>
JPA、JTA、XA相关索引
查看>>
机器分配
查看>>
php opcode缓存
查看>>
springcloud之Feign、ribbon设置超时时间和重试机制的总结
查看>>
观看杨老师(杨旭)Asp.Net Core MVC入门教程记录
查看>>
UIDynamic(物理仿真)
查看>>
Windows下安装Redis
查看>>