有个笑话说,有个患者伤风了,所以去看医师,医师诊断后说,你得了伤风,可是我只会医治肺炎,不如你回家再浇点凉水,把病恶化成肺炎,那我能治了。这个笑话展现了庸医误人。可是另一方面,从逻辑上来讲,医师则是一个把不知道问题转化成已知问题的高手。
不说笑话,下面出两个标题,其分别是
问题1:运用数字电路,怎样将一个时钟域的上升沿,转化成另一个时钟域的脉冲信号(单周期信号)。
问题2:运用数字电路,怎样将一个时钟域的脉冲信号(单周期信号),转化成另一个时钟域的上升沿。
或许乍一看,这两个标题长处难度,特别是第二个问题,答上的就更少了。那再出第三道标题,会不会让这个问题变简略些那。
问题3:运用数字电路,怎样将一个时钟域的上升沿,转化成另一个时钟域的上升沿。
标题3,,就会让人觉得太简略了,这既是异步信号的同步化,存放两拍就能够了。这CLKA信号就被同步到CLKB的办法,有必定数字电路常识的都会 。不管CLKA与CLKB时钟频率的凹凸。
下面回到标题1,咱们依照那个庸医的做法,把不知道问题转化成已知问题,那这个问题就转化成了两个部分,A时钟域的上升沿转化成B时钟域的上升沿,,然后B时钟域的上升沿怎样变成其单脉冲信号。所以问题就很简略了,最终的输出 B &! B_r(B信号存放一拍)。 电路如下所示。
那回到标题2.这个问题就转化成了A时钟的脉冲信号转化成A信号的上升沿,而A信号的上升沿,再转化成B信号的上升沿。
那么,怎样将已是时钟信号的脉冲信号,转化成另一个时钟的脉冲信号?呵呵。
以上仅仅两个简略的电路,实践规划中,有许多能够进行规划,能够化繁为简或许化不知道为已知的办法。
例如,实践规划中,常常有规划变更的状况,比方,本来输出的信号A,可是需求输出信号B。那或许大多数状况,模块不必从头规划,只需求在原有输出信号(或许数据)A上,再增加相应的输出,或许封装一层接口,就能够快速满意需求。而且原有规划模块也能够复用,而且已验证充沛。经过化不知道问题为已知问题的方法,简化规划和验证,能够快速的规划需求。一方面,而这正是IP复用的优点,另一方面,原有规划怎样到达IP复用的规范,也是值得探究的部分。
这个故事,其实还有另一版别,那便是锤子和钉子,那便是假如你已经有一把锤子,那就看什么都是钉子。怎样将不知道问题转化成你的锤子能够处理的钉子,则是便是规划复用的问题了。