小梅哥FPGA时序约束笔记.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小梅哥FPGA 时序分析从遥望到领悟 小梅哥时序分析和时序约束视频课程 (一)学了4 年才学会——废话连篇 这么取名字,大概率会被人家笑话吧,一个呆头呆脑哈里哈气的憨厚形象跃然纸上。不 过呢,仗着自己脸皮不薄,又被人称为IT 直男,也就这么写了。 自己是从2014 年开始,每天和 FPGA 打交道的,刚开始嘛,做的都是入门级的功能, 写的都是入门级的程序,跑跑VGA 、写写SPI 也就差不多了,如果用到SDRAM,也顶多跑个 100MHz 到顶了 (虽然这个频率不高,但是不注意设计,即使是100M 也有跑不动的时候), 很少有关注性能的。 虽然不关注性能,但是也还是遇到过很多次因为性能问题导致设计不稳定的情况,典型 的例子就是之前有开发一个基于 CY7C68013 芯片的USB 传输模块,写出来的程序,在不同 的板子上工作,有的能正常通信,但是有的在通信过程中就会出现数据误码的情况,比如理 论上连续的两个数据应该是0x5555,0xAAAA ,但是实际收到的时候,可能就变成了0x5555, 0xEAAA 。 后来在基于 CYUSB3014 的USB3.0 芯片上也同样遇到了这个问题,网友用我们的板子, 用我们的程序一切都 OK ,但是把程序移植到自己的板子上去,就会经常出现误码的问题。 网友很无语,我也很无奈(PS:这些问题现在都已经帮客户解决了,毋庸担心)。 再有一个典型的例子就是,使用ADV7123 芯片完成数字RGB 时序到模拟VGA 信号的转 换时候,必须要将输送给ADV7123 芯片的时钟信号先取反再输出,否则当在VGA 显示屏上 显示时,就会出现图像的轮廓处出现大量杂色的情况(不知道自己是不是可以用这个思路去 做个轻量级的边缘检测系统,哈哈),不仅仅是ADV7123 转VGA ,即使是普通的RGB 接口 的TFT 屏,买回来的液晶厂家不一样,批次不一样,也会存在这样的现象。到最后就是,同 一个程序,用在不同批次的显示屏上,有的需要将输出时钟先取反,有的又不能取反。且不 说客户使用体验,就是自己,看到这种现象,也是钢牙崩碎不能忍。 所以,这一切的一切,问题到底在哪里呢?当时的我就知道,答案是时序出了问题。可 是,问题该怎么去解决呢? 一提起时序,又想起了经常就会有网友跑过来问我,基本原话就是“小梅哥,我现在准 备开始学习FPGA 了,但是听别人说,做FPGA 开发,最重要的就是时序,请问您有时序方 面的资料吗?“这样的问题,几乎每年都会遇到几次,问题内容惊人相似,我的答案也是惊 人的客(可)气:没有。 为啥这么回答呢?一是因为哪怕是在不久之前 (或者说写本文之前),我都确实是真的 没有这方面的资料,或者说没有能拿得出手的资料,所以不怕丢面子,实话实说罗,可以说, 到目前为止,网上能找到的真正能够让人一看就懂,真正能用的时序处理方面的资料确实比 较的少,希望通过网络博文之类的学会时序分析和约束的细节方法,难度很大;二是我认为, 刚开始学习FPGA,一上来就问时序这些东西,有点心高急躁,要学会FPGA,在时序之前, 还有超级多的东西要学习呢,FPGA 可编程原理、Verilog 基本语法、基于FPGA 的系统设计 常见方法、调试技巧、验证手段等,这些不学好,时序的资料看十遍也不一定能消化的掉。 第三嘛,则是感觉大家的认知可能有一定的偏差,单就“时序”这两个字来说,其涉及的内容 还是比较广的,从简单的说,UART 协议里面,一个起始位、8 个数据位、1 个停止位可以算 作是时序定义了(当然这里更应该说是协议的时序),一个DAC 芯片,使用SPI 接口,MOSI 接口上输出 16 位数据,高4 位为控制字,低 12 位为需要输出的电压值的数字编码也可以 算作是时序 (毕竟器件的规格书里面用的是timing 这个词)。再到 FPGA 里面最关心的,触 发器的输入端口的数据,需要在时钟信号上升沿之前多久稳定下来(setup time ),需要在时 钟信号上升沿之后再保持多久的稳定状态(hold time),这些都是时序。而我们在进行FPGA 系统设计的时候,开发过程的大部分时间都是在和简单的协议时序打交道。单纯的问一个时 序方面的资料,我也确实不知道他关心的是哪个时序(我猜他们想问的实际应该是 D 触发 器的建立时间,保持时间之类的时序吧)。 作为一个别人口中“卖板子” 的人,我本来没有必要去做这些事情,只需要服务好我的客 户,然后做一堆大家觉得

文档评论(0)

180****7982 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档