挖个坑,ASIC设计中,低电平和高电平复位,同步和异步复位
而同步复位和异步复位,没有明确的看法,求赐教
这不算是浪费时间吧,复位方案对片子影响还是蛮大的
不是说复位方案不重要,是这个问题再研究也提升不了你的竞争力。0复位,1复位都可以,同步异步复位也都可以。选择一个做对就好了,细枝末节的问题而已。
最重要的是统一,选定一个方案大家都follow。
没有不好的方案,
怕得是没有方案。
那比如同步复位,在遇到时钟信号比复位来的晚的情况下,电路就无法复位了,应该是存在这种情况的
这都是基本功啊。出校门的时候一定都要掌握好的。
clk,reset. clk is toggled after reset's edge.
reg reset_d0;
reg reset_d1;
always @(posedge clk or posedge reset)
if(reset)
begin
reset_d0 <= 1'b1;
reset_d1 <= 1'b1;
end else begin
reset_d0 <= reset;
reset_d1 <= reset_d0;
end
always @(posedge clk)
begin
if(reset_d1) begin
//reset logic
end else begin
//normal logic
end
end
其实很多时候会把你说的这种小于一个周期的外部复位过滤掉当毛刺处理
这样也可以么?同步加异步,两拍之后的reset_d1相当于内部条件复位了
有一种情况,就是外部时钟启动延迟,上电复位就无法正常复位电路。
应该是都可以,要不然也不会存在了。但是对一个具体电路和应用来说,总有个优劣,或者说,某种方式存在隐患?
计较这个真没啥意思,这个属于代码风格范畴,有的公司要求同步,有的公司要求异步。关键是统一。老板怎么定就怎么做。
唉,这就是传说中的文人相轻吗?
闻道有先后,术业有专攻,何必呢。
很诚恳的建议,没有轻视的意思了。谁都是从啥都不会过来的。但是这种时候要多读书,而不是纠结于一些风格和公司习惯的问题。这些知识随便找一些经典的设计书都有讲的,把时间花在啃这些书我觉得对楼主更有帮助。
一副 你境界到了自然会懂 的架势
不好
.226
哥们,你还是去多看看书再说吧,你现在处于大二到大三过渡期了,祝贺阿
异步复位,同步释放,这样真可以:)
更常见的是, 异步复位,下降沿两级DFF同步释放,后续电路用此信号进行异步复位
复位电路有很多种,如果没有发现问题按照自己习惯做就好了,这个到现在还真没有争论出哪种好那种坏
被你看出来了,其实我不是做design的,都是学校里学的。有什么好的design的书籍推荐一下?
这么做有问题的~~~
异步复位和同步复位 混用可以, 但不是这样用的。
你这样做,如果复位信号在时钟沿附近有效,
那后面的(posedge clk)逻辑会有metastable的。。
想同步,你至少也应该把复位信号同步两拍来用吧。。。
同步解开复位,可以保证后面的逻辑是没有问题的。至于复位的时候,亚稳态是会有的,但是不care。
你把复位用同步器做了之后逻辑就不对了,因为前提假设就是时钟晚于reset。
所以,还是推荐用同步复位的方法?
像这样:
always @ ( negedge clk or negedge reset_n)
if (!reset_n)
begin
rst_d1 <= 1'b0;
rst_d2 <= 1'b0;
end
else
begin
rst_d1 <= reset_n;
rst_d2 <= rst_d1;
end
always @ (posedge clk ) // 还是说这样更好(posedge clk or negedge rst_d2)?????
if (!rst_d2)
……
else
……