x
x

FPGA研发之道(17)-化繁为简

发布时间:2014-12-4 15:06    发布者:看门狗
关键词: FPGA
作者:阿昏豆

    有个笑话说,有个病人感冒了,于是去看医生,医生诊断后说,你得了感冒,但是我只会治疗肺炎,不如你回家再浇点凉水,把病恶化成肺炎,那我能治了。这个笑话展示了庸医误人。但是另一方面,从逻辑上来讲,医生则是一个把未知问题转化成已知问题的高手。

      不说笑话,下面出两个题目,其分别是

问题1:运用数字电路,如何将一个时钟域的上升沿,转换成另一个时钟域的脉冲信号(单周期信号)。

问题2:运用数字电路,如何将一个时钟域的脉冲信号(单周期信号),转换成另一个时钟域的上升沿。

可能乍一看,这两个题目优点难度,特别是第二个问题,答上的就更少了。那再出第三道题目,会不会让这个问题变简单些那。

问题3:运用数字电路,如何将一个时钟域的上升沿,转换成另一个时钟域的上升沿。

1.gif

        题目3,,就会让人觉得太简单了,这既是异步信号的同步化,寄存两拍就可以了。这CLKA信号就被同步到CLKB的方法,有一定数字电路知识的都会 。不论CLKA与CLKB时钟频率的高低。

     下面回到题目1,我们按照那个庸医的做法,把未知问题转换成已知问题,那这个问题就转化成了两个部分,A时钟域的上升沿转换成B时钟域的上升沿,,然后B时钟域的上升沿如何变成其单脉冲信号。所以问题就很简单了,最后的输出 B &! B_r(B信号寄存一拍). 电路如下所示。

2.gif

    那回到题目2.这个问题就转换成了A时钟的脉冲信号转换成A信号的上升沿,而A信号的上升沿,再转换成B信号的上升沿。

3.gif

  那么,如何将已是时钟信号的脉冲信号,转换成另一个时钟的脉冲信号?呵呵。

  以上只是两个简单的电路,实际设计中,有许多可以进行设计,可以化繁为简或者化未知为已知的方法。

   例如,实际设计中,经常有设计变更的情况,比如,原来输出的信号A,但是需要输出信号B。那可能大多数情况,模块不用重新设计,只需要在原有输出信号(或者数据)A上,再添加相应的输出,或者封装一层接口,就可以快速满足需求。并且原有设计模块也可以复用,并且已验证充分。通过化未知问题为已知问题的方式,简化设计和验证,能够快速的设计需要。一方面,而这正是IP复用的好处,另一方面,原有设计如何达到IP复用的标准,也是值得探索的部分。

     这个故事,其实还有另一版本,那就是锤子和钉子,那就是如果你已经有一把锤子,那就看什么都是钉子。如何将未知问题转化成你的锤子可以解决的钉子,则是就是设计复用的问题了。
本文地址:https://www.eechina.com/thread-134686-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • EtherCAT®和Microchip LAN925x从站控制器介绍培训教程
  • MPLAB®模拟设计器——在线电源解决方案,加速设计
  • 让您的模拟设计灵感,化为触手可及的现实
  • 深度体验Microchip自动辅助驾驶应用方案——2025巡展开启报名!
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表