终于看到了希望——基于美女的VGA系统构架
16真彩色原理图:ADV7120 50M超频到65MHzhttp://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602751OAS3OL.png
视频转换芯片原理图 (原文件名:image_thumb_2.png)
Quartus II RTL: NIOS II + Verilog
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602752OQFBYD.png
RTL图 (原文件名:image_thumb_3.png)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602757ML2IG0.png
(原文件名:image_thumb_722.png)
SOPC CPU设计:SDRAM + Verilog接口
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602753NXG3OM.png
NIOS II(原文件名:image_thumb_1.png)
NIOS II:CPU—— Verilog协议 写BMP
原图:美女
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602754B887O2.png
美女原图 (原文件名:image_thumb_5.png)
VGA显示:背影杀手
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602755APSSKI.png
我亲爱的 (原文件名:image_thumb_6.png)
DIY ColorTest
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602756N0VIZN.jpg
DIY ColorTest (原文件名:20101205_thumb.jpg)
走了好多歪路,自己做的硬件,自己写的软件,身边没人帮助我,很孤独。。。
还有有一大帮网友亲友团,呼呼。。。
直到今天12-4 我终于悟出来了一个道理:“一个重大的失败,往往是因为一个微小的细节。。。”
不知道是“跨时钟域信号处理上的问题”,还是我代码质量的问题,你们看 那个美女 颜色有点点问题,那个ColorTest最后一行有点点缺失
对于跨时钟我采取的是FIFO的概念双时钟 存储SRAM
不知道各位知不知道,希望给我提供点思想
此项目是应用到视频监控上去的,硬件测试全部OK,愿与大家同甘共苦。。。
I am Crazy Bingo !! cool 顶顶更健康 牛擦············· 做得很好 挺好看的,强悍 Mark~ 回复【2楼】zxl2431
-----------------------------------------------------------------------
“重大的失败往往因为微小的细节”
别崇拜了看bug啊那个解决不了了 崇拜% 非常的棒,我也在做视频采集,一起来探讨一下 MARK 能不能共享一下 回复【8楼】timthorpe
-----------------------------------------------------------------------
那个问题 不知道怎么解释 FPGA完了2年了,走过的路也不少,歪路也不少,做过的东西也不少。。。
好吧 我还是不自私了任何一个字母都是纯原创的
今天共享出来(1)共同学习(2)解决问题 (3)尊重原创 (4)虽然我知道有些高傲的人会说没什么价值
希望高手帮我一把把摄像头就在手上了,我确定硬件没问题,所以我们只考虑软件的问题
MT9D111美光200万 打算离开实验室前 做个有价值的东西出来
(1)为什么 图像 有闪点 好像不同色素结合处有银色的成分
(2)ColorTest 最后一排出现这种状况why啊?
(3)跨时钟域信号传输
(4)时序约束不懂啊
点击此处下载 ourdev_602769T4LXRC.rar(文件大小:15.71M) (原文件名:VGA_CLK_SYS.rar)
创建了一个 专门的 “视频图像识别处理”的群邀请更多的朋友159035222
谢谢 mark mark 美女漂亮 。o(∩_∩)o 哈哈 mark 牛X啊
! mark 不错 马克,楼主的模拟部分杂搞的,弄不好就偏色了 mark 不错,记号~~ markkkkk good 顶,赞一个! 回复【22楼】longquan 大巅
-----------------------------------------------------------------------
其实可以用电阻模拟的 但是那个不好会偏色 也不稳定 所以用了ADV7120的芯片 膜拜下~
路过顶~ 确认不是ADV7120的问题吗? 确定一定以及肯定
觉得是时序约束 走线延时上的问题
跟 什么“LCD控制器”比起来,这个真的是需要精益求精啊 最欠缺的是 时钟约束和时序分析
基础薄弱啊 mark,学习 深有同感!
我用LPC2478+16色7寸真彩屏显示美女图片,纯软件操作的;
也是出过同样的问题;(美女发丝问题--_>色跳变问题)
后来还是一个年轻的同事帮我解决了。
就像你说的只是一个小小的问题而已;
但是缺严重影响了细节和感官!
不知道你解决了没有? 我估计跟我软件写的烦的是同样的问题! FPGA我不懂,不过这个问题,我可能可以指点下,有意思的话,小窗联络我:QQ:651512647
因为我也翻过同样的问题,间隔了好长时间,才解决的。
你的软件硬件是一体的,当然还是有一点细节要解决。 我承认
我是来看美女的~~~~ 回复【37楼】format
我承认
我是来看美女的~~~~
-----------------------------------------------------------------------
我也承认同37楼 贝多芬~ 那个怎么解决的? mark 好东西。。记号下 mark! 50M超频65M怎么做到的??
为什么我做倍频的时候只有整数倍的呢????
请教了 嘿嘿,一看到有美女就跑进来了,呵呵,顶一下 回复【34楼】jiki119
-----------------------------------------------------------------------
前辈请您指导一下迷津 重大的失败往往因为微小的细节
往往是 要做出来 不难 ,要做好真的很难
细节决定成败啊
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602886QL2Q9B.jpg
(原文件名:未命名.jpg) 回复【44楼】wo_LKH <劳>
-----------------------------------------------------------------------
PLL啊直接给65MHz ADV7120 一般这样超超没事的 很稳定 顶,赞一个! 回复【37楼】format
我承认
我是来看美女的~~~~
----------------------------------------------------------------------- 回复【49楼】dmxfeng
-----------------------------------------------------------------------
help please
等我做好了我直接摄像头给你们看美女好了!!!!
现在因为这点bug有点酸。。 难道真的是那位前辈所谓的
CPU(NIOS II)到SRAM控制器(Verilog)之间没有数据锁存,造成了数据不能完全有效的写入??或者造成了亚稳态,是的X的出现??
难道????
我再试试看精益求精 (1)CPU给SRAM控制器一个写信号
(2)给SRAM地址
(3)给SRAM写入数据(Data,CLK_L,CLK_H)
(4)SRAM控制器在写数据使能情况下读取到CPU的上升沿的时候就直接给SRAM写入一个数据
(5)循环
(6)CPU给SRAM控制器读使能,关闭写
(7)SRAM控制器从SRAM读取数据,直接输出到ADV7120
(8)ADV7120===> VGA
我想还有很多地方可以优化吧 求教 mark I am Crazy Bingo !!
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602917RXIUA1.JPG
(原文件名:Spartan3E插鱼.JPG) mark 回复【54楼】zgq800712 SEED
-----------------------------------------------------------------------
啊???你是山寨的啊!!
帮我解决问题吧 问题:
博客园:http://www.cnblogs.com/crazybingo/archive/2010/12/01/1892610.html
博客园:http://www.cnblogs.com/crazybingo/archive/2010/12/04/1896645.html
OURAVR:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4437397&bbs_page_no=1&search_mode=1&search_text=VGA&bbs_id=9999
经过了无数个无眠的夜晚,问题终于解决了。。。柳暗花明又一村。。。
经过了n个网友的帮助:狼来了、最后的红旗手、达克斯特、Neddy、七哥、湘雨潇潇等人的人心帮助下,以及万般努力的情况下终于解决了。。。
现在我把我的问题,把我的bug,把我的经历,都告诉你们
首先,有几个必须要了解的知识,这些都是我个人转载整理归纳总结的:
(1)影响FPGA设计中时钟因素的探讨:http://www.cnblogs.com/crazybingo/archive/2010/12/08/1900450.html
(2)门控时钟与多扇出问题解决方案:http://www.cnblogs.com/crazybingo/archive/2010/12/08/1900388.html
(3)FPGA你必须知道的那些事儿:http://www.cnblogs.com/crazybingo/archive/2010/12/07/1899597.html
(4)全局时钟--复位设计:http://www.cnblogs.com/crazybingo/archive/2010/12/04/1896593.html
接下来就剩下我的心里话了:
最重要的一句话是:“重大的失败,往往是因为微小的细节”,细节决定成败。
其次,学会FPGA真的挺简单的,相信给你一个月时间你要不能驱动VGA那可能智商不够吧,但是要想学好,没那么容易,往往因为细节,让你的东西永远不完美
最后,完美是没有极限的。。。
解释一下我的项目当时显示的美女出现边沿闪电的原因:
(1)时序约束,时钟优化,
(2)时序建立时间,保持时间的把握
(3)时序逻辑,组合逻辑传输延时
(4)最可怕的 时钟在寄存器之间的传输延时
(5)时序逻辑的信号滞后,超前
(6)跨时钟域信号传输,同步处理
(7)门控时钟,始终满天飞,(用最高时钟控制一切)
部分原因还是结合代码跟你们解释吧:
(1)输入时钟是CLOCK,CLOCK2 是50MHz的,经过综合器设置适当的时钟约束(105%)可以将相关的逻辑在布线时尽量布的靠近一点,从而减少走线的时延
(2)always@(posedge MCU_CLK or negedge RST_n)
MCU_CLK是CPU 的写时钟,没一个时钟的上升沿,verilog读取数据写入SRAM,在表上看着完全没有问题。
实际上,当然在写数据上没问题,但因为用的不是全局时钟,是门控时钟,会影响组合逻辑Tdelay,
我尝试了n遍,最后换成了使能时钟,跨时钟域信号同步处理(CPU 20Mhz,verilog 65MHz)reg同步时钟,写入SRAM,这样会更加的稳定,数据没有缺失
(3)always @ (negedge VGA_HS or negedge RST_n)
VGA驱动的地方,本来VS是在HS的上升沿变化的,为了达到的数据的稳定变化(排除异常),我用HS_CLK最为跳变时钟,自我感觉良好
但实际上在65MHz1024*768的吞吐率下,虽然VS本身的确没有任何问题,但是由于门控时钟的介入,使布线不稳定,重者造成设计混乱。门控时中较多,也会使得整个设计的最大工作速度下降,降低产品的性能。
因此因为这一步的出错,使得整个系统性能大大下降,数据出现了不稳定甚至亚稳态,数据不能够在保持时间内传输,以至于出现边缘闪电(变化快)
最后我还是通过判断hcnt写成了使能时钟(问题解决)
(4)位置有点点点点不正常,盯着他才能看出来,我在我的ColorTest观察过,实际上是因为时序逻辑,组合逻辑的问题
类似if( (hcnt >= H_DISP+H_FRONT) && (hcnt < H_DISP+H_FRONT+H_SYNC) )的地方,实际上你在时序逻辑判断时钟给一个信号赋值,但经过建立时间,组合延时,保持时间之后,已经是下一个clk了,数据的出现实际滞后了一个clk,所以要保证时序的绝对准确,要把条件减小1,这样因为超前+滞后 刚刚满足了时序
就在要回寝室的那一刻,我看到了亲爱的美女,完全不在有色差 ,开心,一切尽在时序中。。。
突然想起暑假的时候师父跟我说过:“为了系统的稳定以及高速时钟干扰,整个系统要用最高时钟控制,不能用门控时钟,只能用使能时钟”,NND问题就出在这里
经过了冰山火海,终于解决了,我提醒我自己,回去再好好研究FPGA的时序分析,研究时序约束,研究时域分析,研究异常问题,研究系统稳定性能问题。。。。
要做出一个东西简单,要做好一个东西真的没那么容易。。。。。
明天把图片放上来。。。。。
谢谢大家的关心。。。 时序分析,你完蛋了。。。
美女啊。。。ourdev_603400MB8SZU.JPG(文件大小:2.52M,只有400K以内的图片才能直接显示) (原文件名:IMG_1823.JPG)
继续。。。。走一步 ,再走一步,。。。 回复【57楼】hanbin08041813Crazy Bing
-----------------------------------------------------------------------
well done 马克,楼主太棒了! mark 温柔乡,英雄冢 膜拜…… 做下记号 mark下,好贴!! 牛B mark!~ 真的不错,有空研究下 mark!~ GOOD!
WS地要求正面照,嘿嘿。 牛X 为看美女图而进来的 相当不错!!! 一定要顶啊 相当不错 你还是用专门的LCD测试图片吧,偏色错位之类的问题,可以很容易看出来。 帮顶,改天自己画画做做试试 太强了,强顶,强支持!! 好东西。记号下!学习!!! mark 梦里寻他千百度,木然回首,那人却在屏幕中 http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613223CCIADV.jpg
(原文件名:22012011_011.jpg)
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613222B1BLZ0.jpg
(原文件名:22012011_007.jpg) 回复【76楼】weixintec 伟欣科技
-----------------------------------------------------------------------
给个专门的LCD测试图片哈哈 CrazyBingo 牛A&牛C mark mark 好东东,看下 我看了楼主的代码,发现一个问题:
MCU写RAM时,VGA不刷新
只有MCU不写RAM时,VGA才刷新
MCU写RAM总得要时间吧200ms300ms 或者是500ms
对于显示静态图片来说,这几百毫没什么影响
如果来个动态的,就不行了吧。。。 RAM读写仲裁要做好
理论上,
要保证LCD刷新频率,并且不间断,VGA读RAM的优先级应该是最高的,
MCU写RAM应该是在RAM空闲的时候 回复【57楼】hanbin08041813 Crazy Bing
-----------------------------------------------------------------------
拜读。感谢 牛叉。 回复【90楼】liu_xf 新发
-----------------------------------------------------------------------
恩 谢谢你 我知道这个问题
因为我的硬件中只有一块SRAM,没能实现乒乓操作,
(有人说可以一个SRAM+2个FIFO来实现,觉得SRAM速度跟不上,没去写)
如果真的要实现动态,我肯定会用乒乓
只不过上面的设计,我只是测试代码和硬件的
谢谢你
下一工程 来做摄像头的 。。。。。
等有时间在说 谢谢 m mark! ”一个重大的失败,往往是因为一个微小的细节。。。“
这句话总结的好 曾经看到别人的经验,备品,一个节拍写入SRAM ,一个节拍读取用于VGA刷新,不知我说明白否,希望你再更进一步做成动态
刷新的,成本不用再增加!。 ~~~准备玩的东西先学习学习 我想用 m0 来作 叠加 mark mark
页:
[1]
2