DDR3调试记录

时间:2022-09-03 08:09:36

      FPGA采集视频数据并写到DDR3,然后从DDR3读出并送给显示终端显示。不能稳定显示。但用FPGA内部逻辑产生color bar写到DDR3后读出来显示正常。因此DDR3部分逻辑没有问题。怀疑FPGA采样问题。于是优化FPGA时序后。时序报告通过后,用碟机作为输入源显示有时会稳定一下过一会就花屏。用HDMI 信号发生器作为输入源。输入color bar 显示可以稳定时间长一些。但过一会也会花屏。但是输入高频类的图像一刻都不能稳定输出。于是更加怀疑FPGA采样的问题。于是将输出视频降到720P60fps(原为1080P60fps)。结果现象一致。因此可能不是采样时序的问题。检验输入的视频行场等信号(VS,HS,DE)。时序非常稳定,无异常。于是使用输入源的时序。FPGA视频数据输入IO悬空。给视频数据RGB给一个常数。发现显示正常。这时怀疑是不是FPGA IO电压不稳定导致的。然后输入一个纯色的图像(蓝色)。用示波器探FPGA的IO。B总线有些位管脚信号和DE一样。其它R,G的IO都为低电平。接着测试IO的供电电压3.3V。稳定正常。FPGA核电压1.5V也稳定。另外还进行了通过加入reveal。抓RGB采集的信号。B的数据在DE有效期间在8‘h99,8’h9a,8’h9b之间变化。R,B采集数据都为8‘h00。这些也就说明了IO采集时序问题,IO电压不稳问题是不存在的。

      分析这么久。是不是头有点晕乎乎的呢。呵呵………让大脑休息一下吧。闲扯一会儿。最近调试非常累,这几天每天加班到23:00的样子。前天还是我生日呢。结果那天从下午下班没吃饭调试到近23点。连续工作大概9个小时。中间喝过一杯水。加完班累的不行。回去洗了就睡。饭都没吃。生日就这么过了。那几天压力非常大。板子才回来几天。很多不确定因素。后天就要拿去参加展会了。老板下了命令。压力之大可想而知。苦逼的程序猿啊。大家是不是都一样呢。每次新板回来会有各种各样的问题。各种诡异各种纠结各种心情。呵呵。。。。结果脑细胞死了不少。其实FPGA工程师真不简单。不是光写几行代码而已。还必须有一定的电路分析能力。动手能力,至少焊接也得会啊。脑子要灵光。会灵活使用各种方式验证我们的设计。然后必须有一个好的心态。我觉得这是重要的。做技术的这一点都是必备的吧?呵呵……要成为一名真正的,合格的FPGA工程师远不止这些。我离它还有很远的路要走。这一路我会用博客记录下这沿途的风景。伴我一路前行!!!

    接着分析吧,既然IO采集时序ok,IO电压也稳定。那会是哪儿的问题呢。DDR3部分有问题?不是刚才验证没问题么?记得刚才给的是FPGA逻辑产生的color bar的数据吧。要不给高频的图像试试。变化比较快的数据。啊。。。。什么情况?竟然显示不正常,花屏。抓狂。。。到现在几乎很确定是DDR3的问题。换一块板发现还是有问题。我已经在奔溃的边缘了。老天不要再折磨我了。咬着牙换一块板然后祈祷。咦。。。。显示正常!!!我勒个去。真是有一种想赋诗的冲动。假如我生在陆游那个时代。“山重水复疑无路,柳暗花明又一村”将会是我杰作啊。哈哈。。。我在意淫中。大家此处可以忽略。扯远了。接着说吧。确定后这块板DDR3没问题后。烧录工程bit文件。一切正常。将之前的板拿去仔细检测。发现DDR3部分地址线数据线短路。两块板都是一样的问题。其实我们总共就焊接了三块板作为调试用。现在想起来都后怕。三块板有两块板焊接有问题。假如三块板都有问题。那会发生什么呢???我很期待。哈哈。。。开玩笑的。如果三块都有问题。会花更多的时间。然后可能会影响展会。。。然后后果不敢设想啊。然后。。。。

      好了,终于写完了!谢谢阅读!

DDR3调试记录的更多相关文章

  1. DDR3调试总结

    DDR3调试总结 本文为原创,转载请注明作者与出处 http://blog.csdn.net/hanfei_1/article/details/70546010 以前同是DDR3的无知少年,由于项目需 ...

  2. FPGA DDR3调试

    FPGA DDR3调试 Spartan6 FPGA芯片中集成了MCB硬核,它可以支持到DDR3.在Xilinx的开发工具Xilinx ISE中提供了MIG IP核,设计者可以用它来直接生成 DDR3 ...

  3. SPI 核软件调试记录

    SPI 核软件调试记录 1.首先说说int SpiFlashWaitForFlashReady(void)这一函数,基本上其它函数在执行的时候,都会事先执行一次此函数.    因为此函数的作用主要是用 ...

  4. Video Timing Controller v6.1软件调试记录

    Video Timing Controller v6.1软件调试记录 GUI配置: . case XVTC_VMODE_PAL: //576i@50 { TimingPtr->Interlace ...

  5. Video Test Pattern Generator(7.0)软件调试记录

    Video Test Pattern Generator(7.0)软件调试记录 . XVidC_VideoMode XVIDC_VM_576_50_I = XVIDC_VM_720x576_50_I ...

  6. MA82G5D16AS16 主频调试记录

    MA82G5D16AS16 主频调试记录 当 SCKS 设置 为 MCKDO / 128 时 MCU 的电流为 0.58mA,100UF 电容可以维持 0.5S,大概可以满足. 但是需要注意外围的线路 ...

  7. Apusic中间件结合MyEclipse进行远程调试记录

    Apusic中间件结合MyEclipse进行远程调试记录. 在金蝶域中正常部署应用. 启动金蝶中间件时使用"startapusic -ds"命令. 在MyEclipse的Run-- ...

  8. http://stblog.baidu-tech.com/?p=1684) coredump调试记录 - PHP篇 原创: 扶墙 贝壳产品技术 今天

    http://stblog.baidu-tech.com/?p=1684) coredump调试记录 - PHP篇 原创: 扶墙 贝壳产品技术 今天

  9. 基于freescale i.Mx6(ARM)的阿里云oss调试记录

    交叉编译阿里OSS调试记录 1.1 开通oss服务 具体参考以下链接: https://help.aliyun.com/document_detail/31884.html?spm=a2c4g.111 ...

随机推荐

  1. PHP获取当前页面的URL

    /** * 获取当前页面完整URL地址 * * @author 52php.cnblogs.com */ function http_get_page_url() { global $_G; if ( ...

  2. exception throw in progress runner thread_VS2015中SVN源代码无说明提交异常

    1-问题描述:通过SVN将代码变更提交服务器时,你可能会遇到以下异常:  exception throw in progress runner thread 2-解决办法: SVN代码源代码管理和TF ...

  3. 一个优秀windows C++程序员的知识体系[转]

    转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...

  4. Android 使用HttpClient方式提交GET请求

    public void httpClientGet(View view) { final String username = usernameEditText.getText().toString() ...

  5. ORACLE的RMAN

    1.什么是RMAN? RMAN可以用来备份和还原数据库文件.归档日志和控制文件.它也可以用来执行完全或不完全的数据库恢复. 注意:RMAN不能用于备份初始化参数文件和口令文件. RMAN启动数据库上的 ...

  6. set集合(一)

    set 叫做集合  作用:  去重(去除重复) 举例-- >>> name_list = ['alben','nichole','lucy','andy','tom','alben' ...

  7. laravel5.2之logout注销账号无效

    问题描述:laravel5.2的框架,使用框架auth用户认证后,进行账号注销退出的时候,无法实现. 只有清除浏览器缓存,才能实现账号退出. 解决办法: 改变路由 Route::get('auth/l ...

  8. 版本控制 version control

    而版本控制能记录所有的操作,如创建删除增加,并能返回到之前的版本.版本控制通常需要同一些远程仓库配合使用,如GitHub 廖雪峰教学有 https://www.liaoxuefeng.com/wiki ...

  9. Java的学习02

    今天依旧记录一下今天的学习的知识. /** * 测试StringBuilder StringBuffer,可变字符序列 * String对象称为“不可变对象"指的是对象内部成员变量的值无法再 ...

  10. Python splitlines()方法

    描述 Python splitlines() 按照行界符('\r', '\r\n', \n'等)分隔,返回一个包含各行作为元素的列表,默认不包含行界符. 能被识别的行界符: 行界符 描述 \n Lin ...