hanbin08041813 发表于 2010-12-6 19:13:15

终于看到了希望——基于美女的VGA系统构架

16真彩色原理图:ADV7120 50M超频到65MHz
http://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 !!

yuphone 发表于 2010-12-6 19:16:22

cool

zxl2431 发表于 2010-12-6 19:30:54

顶顶更健康

RealityYuan 发表于 2010-12-6 19:31:46

牛擦·············

eworker 发表于 2010-12-6 19:31:55

做得很好

xhycopy 发表于 2010-12-6 19:35:25

挺好看的,强悍

lanseiboy 发表于 2010-12-6 19:37:47

Mark~

hanbin08041813 发表于 2010-12-6 19:41:53

回复【2楼】zxl2431
-----------------------------------------------------------------------

“重大的失败往往因为微小的细节”
别崇拜了看bug啊那个解决不了了

timthorpe 发表于 2010-12-6 19:42:45

崇拜%

xhycopy 发表于 2010-12-6 19:45:09

非常的棒,我也在做视频采集,一起来探讨一下

lieshi 发表于 2010-12-6 19:47:21

MARK

wzh6328 发表于 2010-12-6 19:53:09

能不能共享一下

hanbin08041813 发表于 2010-12-6 20:32:35

回复【8楼】timthorpe
-----------------------------------------------------------------------

那个问题 不知道怎么解释

hanbin08041813 发表于 2010-12-6 20:53:28

FPGA完了2年了,走过的路也不少,歪路也不少,做过的东西也不少。。。
好吧 我还是不自私了任何一个字母都是纯原创的
今天共享出来(1)共同学习(2)解决问题 (3)尊重原创 (4)虽然我知道有些高傲的人会说没什么价值
希望高手帮我一把把摄像头就在手上了,我确定硬件没问题,所以我们只考虑软件的问题
MT9D111美光200万 打算离开实验室前 做个有价值的东西出来
(1)为什么 图像 有闪点 好像不同色素结合处有银色的成分
(2)ColorTest 最后一排出现这种状况why啊?
(3)跨时钟域信号传输
(4)时序约束不懂啊
点击此处下载 ourdev_602769T4LXRC.rar(文件大小:15.71M) (原文件名:VGA_CLK_SYS.rar)

创建了一个 专门的 “视频图像识别处理”的群邀请更多的朋友159035222
谢谢

kneken 发表于 2010-12-6 20:56:04

mark

AG17 发表于 2010-12-6 21:11:31

mark

lsea 发表于 2010-12-6 21:22:46

美女漂亮 。o(∩_∩)o 哈哈

tony_tan 发表于 2010-12-6 22:06:23

mark

TigerRay 发表于 2010-12-6 22:19:26

牛X啊
!

quzegang 发表于 2010-12-6 23:00:53

mark

kanprin 发表于 2010-12-6 23:05:24

不错

longquan 发表于 2010-12-6 23:37:24

马克,楼主的模拟部分杂搞的,弄不好就偏色了

wwwdege 发表于 2010-12-7 06:40:32

mark

zbjzxc 发表于 2010-12-7 08:38:57

不错,记号~~

d20062303732 发表于 2010-12-7 08:41:26

markkkkk

jdh99 发表于 2010-12-7 08:46:48

good

cuison 发表于 2010-12-7 08:47:13

顶,赞一个!

hanbin08041813 发表于 2010-12-7 09:20:33

回复【22楼】longquan 大巅
-----------------------------------------------------------------------
其实可以用电阻模拟的 但是那个不好会偏色 也不稳定 所以用了ADV7120的芯片

tccaiming 发表于 2010-12-7 09:21:03

膜拜下~
路过顶~

wzh6328 发表于 2010-12-7 09:32:11

确认不是ADV7120的问题吗?

hanbin08041813 发表于 2010-12-7 09:39:31

确定一定以及肯定
觉得是时序约束 走线延时上的问题
跟 什么“LCD控制器”比起来,这个真的是需要精益求精啊

hanbin08041813 发表于 2010-12-7 09:44:06

最欠缺的是 时钟约束和时序分析
基础薄弱啊

lsw0136 发表于 2010-12-7 10:10:37

mark,学习

jiki119 发表于 2010-12-7 10:13:05

深有同感!
我用LPC2478+16色7寸真彩屏显示美女图片,纯软件操作的;
也是出过同样的问题;(美女发丝问题--_>色跳变问题)
后来还是一个年轻的同事帮我解决了。
就像你说的只是一个小小的问题而已;
但是缺严重影响了细节和感官!
不知道你解决了没有?

jiki119 发表于 2010-12-7 10:14:40

我估计跟我软件写的烦的是同样的问题!

jiki119 发表于 2010-12-7 10:18:16

FPGA我不懂,不过这个问题,我可能可以指点下,有意思的话,小窗联络我:QQ:651512647
因为我也翻过同样的问题,间隔了好长时间,才解决的。
你的软件硬件是一体的,当然还是有一点细节要解决。

format 发表于 2010-12-7 10:24:57

我承认

我是来看美女的~~~~

lrzxc 发表于 2010-12-7 10:47:57

回复【37楼】format
我承认
我是来看美女的~~~~
-----------------------------------------------------------------------

我也承认同37楼

jjj206 发表于 2010-12-7 11:05:46

贝多芬~

rlogin 发表于 2010-12-7 11:11:07

那个怎么解决的?

yuzr 发表于 2010-12-7 11:23:45

mark

niba 发表于 2010-12-7 11:24:56

好东西。。记号下

charlie2008 发表于 2010-12-7 11:31:19

mark!

wo_LKH 发表于 2010-12-7 11:39:15

50M超频65M怎么做到的??
为什么我做倍频的时候只有整数倍的呢????

请教了

roy2002 发表于 2010-12-7 11:46:59

嘿嘿,一看到有美女就跑进来了,呵呵,顶一下

hanbin08041813 发表于 2010-12-7 13:41:31

回复【34楼】jiki119
-----------------------------------------------------------------------

前辈请您指导一下迷津 重大的失败往往因为微小的细节
往往是 要做出来 不难 ,要做好真的很难
细节决定成败啊
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602886QL2Q9B.jpg
(原文件名:未命名.jpg)

hanbin08041813 发表于 2010-12-7 13:43:21

回复【44楼】wo_LKH <劳>
-----------------------------------------------------------------------

PLL啊直接给65MHz   ADV7120 一般这样超超没事的 很稳定

steven_sd 发表于 2010-12-7 13:53:54

顶,赞一个!

dmxfeng 发表于 2010-12-7 13:54:43

回复【37楼】format
我承认
我是来看美女的~~~~
-----------------------------------------------------------------------

hanbin08041813 发表于 2010-12-7 13:56:14

回复【49楼】dmxfeng
-----------------------------------------------------------------------

help please
等我做好了我直接摄像头给你们看美女好了!!!!
现在因为这点bug有点酸。。

hanbin08041813 发表于 2010-12-7 14:26:31

难道真的是那位前辈所谓的
CPU(NIOS II)到SRAM控制器(Verilog)之间没有数据锁存,造成了数据不能完全有效的写入??或者造成了亚稳态,是的X的出现??
难道????
我再试试看精益求精

hanbin08041813 发表于 2010-12-7 15:00:52

(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

我想还有很多地方可以优化吧   求教

lghtjpu 发表于 2010-12-7 15:45:04

mark

zgq800712 发表于 2010-12-7 15:57:17

I am Crazy Bingo !!
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_602917RXIUA1.JPG
(原文件名:Spartan3E插鱼.JPG)

GNMXD 发表于 2010-12-7 18:15:59

mark

hanbin08041813 发表于 2010-12-7 18:20:20

回复【54楼】zgq800712 SEED
-----------------------------------------------------------------------

啊???你是山寨的啊!!
帮我解决问题吧

hanbin08041813 发表于 2010-12-9 09:05:16

问题:

  博客园: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)
 



继续。。。。走一步 ,再走一步,。。。    

yuphone 发表于 2010-12-9 09:16:17

回复【57楼】hanbin08041813Crazy Bing
-----------------------------------------------------------------------

well done

robbinny 发表于 2010-12-9 09:33:29

马克,楼主太棒了!

Trylin 发表于 2010-12-9 12:29:52

mark

zgq800712 发表于 2010-12-9 12:33:44

温柔乡,英雄冢

xiao_L 发表于 2010-12-9 12:50:06

膜拜……

jinqiankun 发表于 2010-12-9 14:49:27

做下记号

jp19848 发表于 2010-12-12 18:17:55

mark下,好贴!!

lingaoxun 发表于 2010-12-12 19:25:34

flyingcys 发表于 2010-12-12 20:43:24

牛B

ljt8015 发表于 2010-12-12 21:03:44

mark!~

Fpang 发表于 2010-12-13 09:34:56

真的不错,有空研究下

winnerme 发表于 2010-12-16 18:07:40

mark!~

sharpufo 发表于 2010-12-19 03:59:33

GOOD!
WS地要求正面照,嘿嘿。

elecfun 发表于 2010-12-19 04:37:42

牛X

lzx996 发表于 2010-12-19 09:06:37

为看美女图而进来的

xhycopy 发表于 2010-12-25 13:13:13

相当不错!!!

HYFAVR 发表于 2011-1-5 19:15:38

一定要顶啊

weixintec 发表于 2011-1-5 19:24:35

相当不错

warmonkey 发表于 2011-1-5 20:25:30

你还是用专门的LCD测试图片吧,偏色错位之类的问题,可以很容易看出来。

gaoyukun 发表于 2011-1-6 21:14:18

帮顶,改天自己画画做做试试

hardship_life 发表于 2011-1-8 23:21:41

太强了,强顶,强支持!!

dory 发表于 2011-1-10 09:43:16

好东西。记号下!学习!!!

HYFAVR 发表于 2011-1-16 22:53:20

mark

songshanxiaozi 发表于 2011-1-22 19:55:47

梦里寻他千百度,木然回首,那人却在屏幕中

hanbin08041813 发表于 2011-1-24 23:09:11

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)

hanbin08041813 发表于 2011-1-24 23:29:36

回复【76楼】weixintec 伟欣科技
-----------------------------------------------------------------------

给个专门的LCD测试图片哈哈

flyingcys 发表于 2011-1-24 23:34:11

CrazyBingo 牛A&牛C

yxm433 发表于 2011-1-24 23:35:12

mark

bmagui 发表于 2011-1-25 08:41:24

mark

lyk07351 发表于 2011-1-25 09:30:09

好东东,看下

liu_xf 发表于 2011-1-25 14:49:48

我看了楼主的代码,发现一个问题:

MCU写RAM时,VGA不刷新

只有MCU不写RAM时,VGA才刷新


MCU写RAM总得要时间吧200ms300ms 或者是500ms

对于显示静态图片来说,这几百毫没什么影响

如果来个动态的,就不行了吧。。。

liu_xf 发表于 2011-1-25 14:53:55

RAM读写仲裁要做好

理论上,

要保证LCD刷新频率,并且不间断,VGA读RAM的优先级应该是最高的,

MCU写RAM应该是在RAM空闲的时候

c65193145 发表于 2011-1-26 20:28:31

回复【57楼】hanbin08041813 Crazy Bing
-----------------------------------------------------------------------

拜读。感谢

hwdpaley 发表于 2011-1-28 23:09:22

牛叉。

hanbin08041813 发表于 2011-2-9 10:55:00

回复【90楼】liu_xf 新发
-----------------------------------------------------------------------

恩 谢谢你 我知道这个问题
因为我的硬件中只有一块SRAM,没能实现乒乓操作,
(有人说可以一个SRAM+2个FIFO来实现,觉得SRAM速度跟不上,没去写)
如果真的要实现动态,我肯定会用乒乓
只不过上面的设计,我只是测试代码和硬件的

谢谢你
下一工程 来做摄像头的 。。。。。
等有时间在说 谢谢

lkwslk1 发表于 2011-2-9 13:43:12

m

HYFAVR 发表于 2011-2-10 10:30:30

mark!

leonplusplus 发表于 2011-2-10 10:34:03

”一个重大的失败,往往是因为一个微小的细节。。。“
这句话总结的好

jiki119 发表于 2011-2-10 10:42:08

曾经看到别人的经验,备品,一个节拍写入SRAM ,一个节拍读取用于VGA刷新,不知我说明白否,希望你再更进一步做成动态
刷新的,成本不用再增加!。

jrcsh 发表于 2011-2-10 11:32:29

~~~准备玩的东西先学习学习

jrcsh 发表于 2011-2-10 11:32:52

我想用 m0 来作 叠加

zzz1367 发表于 2011-2-10 11:37:43

mark

liguan1024 发表于 2011-2-10 12:58:41

mark
页: [1] 2
查看完整版本: 终于看到了希望——基于美女的VGA系统构架