做修图网站电脑配置网址格式

当前位置: 首页 > news >正文

做修图网站电脑配置,网址格式,网站备案所需材料,wordpress 文章id排序文章目录 前言一、为什么需要复位呢#xff1f;二、同步复位1. 同步复位定义2. 同步复位的实现3. 同步复位的优点和缺点同步复位优点同步复位缺点 三、异步复位1. 异步复位定义2. 异步复位的实现3. 异步复位的优点和缺点异步复位优点异步复位缺点 四、异步复位同步释放1. reco… 文章目录 前言一、为什么需要复位呢二、同步复位1. 同步复位定义2. 同步复位的实现3. 同步复位的优点和缺点同步复位优点同步复位缺点 三、异步复位1. 异步复位定义2. 异步复位的实现3. 异步复位的优点和缺点异步复位优点异步复位缺点 四、异步复位同步释放1. recovery time和removal time2. 异步复位同步释放的含义3. 异步复位同步释放的实现4. 异步复位同步释放优点 总结 前言 复位信号在数字电路里面的重要性仅次于时钟信号。对一个芯片来说复位的主要目的是使芯片电路进入一个已知的确定的状态主要是触发器进入确定的状态。在一般情况下芯片中的每个触发器都应该是可复位的。 一、为什么需要复位呢 复位可以使电路从确定的初始状态开始运行 比如上电复位上电的时候为了避免上电后进入随机状态而使电路紊乱这个时候就需要上电复位。时序电路是一个双稳态电路上电之后必须要有一个初始态才可以正常运行。组合逻辑电路没有存储功能不需要复位信号。复位可以使电路从错误状态回到可以控制的确定状态 如果电路发生了异常比如状态不正常中断异常firmware程序跑飞这个时候就可以对电路进行复位让它从错误的状态回到一个正常的状态。电路仿真时需要电路具有已知的初始值 在仿真的时候信号在初始状态是未知状态(也就是所谓的x不过对信号初始化之后的这种情况除外因为仿真的时候对信号初始化就使信号有了初始值这就不是x了)。仿真的时候由于初始状态为未知态控制电路一开始就陷入了未知态。仿真跟实际电路不同仿真是“串行”的仿真时控制信号的初始不定态会导致后续的控制信号结果都是不定态也就是说初始的不定态对控制通道是致命的。 二、同步复位

  1. 同步复位定义 同步复位的前提是复位信号只会在时钟的有效边沿去影响或者复位flip-flop。Reset可以作为组合逻辑的一部分送给FF的D端。这种情况下reset只能放在if条件下。
  2. 同步复位的实现 一个简单的同步复位的D触发器代码如下示例 module sync_reset_dff_module (input clk,input rst_n, // Synchronous resetinput d,output reg q);always (posedge clk)if (!rst_n) q 1b0;else q d; endmodule3. 同步复位的优点和缺点 同步复位优点 1). 同步复位会综合成更小的触发器特别当reset生成逻辑电路作为触发器D输入但是这种情况下组合逻辑电路的数量变多所以总的门电路节省不是那么显著 2). 同步复位确保电路100%是同步的 有利于静态时序分析工具的分析 3). 抗干扰性高同步复位确保复位只发生在时钟有效边沿对小的复位毛刺来说时钟就像滤波器。 同步复位缺点 1). 大多数逻辑器件的目标库内的DFF都只有异步复位端口使用同步复位时综合器就会在寄存器的数据输入端插入组合逻辑占用更多的逻辑资源 2). 同步复位依赖于时钟如果电路中的时钟信号出现问题无法完成复位 3). 对复位信号的脉冲宽度有要求必须大于指定的时钟周期由于线路上的延迟可能需要多个时钟周期的复位脉冲宽度且很难保证复位信号到达各个寄存器的时序。 三、异步复位
  3. 异步复位定义 异步复位电路即复位信号不随着系统时钟的边沿触发起作用。拥有异步复位的寄存器在设计过程中就多了一个引脚复位引脚。
  4. 异步复位的实现 一个简单的异步复位的D触发器代码如下示例 module async_reset_dff_module (input clk,input rst_n, // Synchronous resetinput d,output reg q);always (posedge clk or negedge rst_n)if (!rst_n) q 1b0;else q d; endmodule3. 异步复位的优点和缺点 异步复位优点 1). 由于大多数的厂商标准单元库内的触发器都有异步复位端口那么就可以保证数据路径是干净的不会像同步复位一样插入额外的逻辑可以节约逻辑资源 2). 复位信号不依赖于时钟。 异步复位缺点 1). 复位信号容易受到毛刺的影响 2). 当复位结束时刻恰在亚稳态窗口内时无法决定现在的复位状态是1还是0会导致亚稳态。
    四、异步复位同步释放
  5. recovery time和removal time 在同步电路中输入数据需要与时钟满足setup time和hold time才能进行数据的正常传输防止亚稳态。同样的道理对于一个异步复位寄存器来说异步复位信号同样需要和时钟满足recovery time和removal time 才能有效进行复位操作和复位释放操作防止输出亚稳态。 recovery time恢复时间撤销复位时恢复到非复位状态的电平必须在时钟有效沿来临之前的一段时间到来才能保证时钟能有效恢复到非复位状态此段时间为recovery time即复位释放与下一个时钟有效边沿之间需要间隔的最小时间类似于同步时钟的setup time。 removal time 去除时间复位时在时钟有效沿来临之后复位信号还需要保持复位状态的一段时间为去除时间removal time即复位释放与上一个时钟有效边沿之间需要间隔的最小时间。类似同步时钟hold time。 异步复位信号一般会持续相对较长的时间保证寄存器能复位完成。但是由于复位信号是异步的我们不知道它会在什么时刻被释放。如果异步复位信号撤销时不满足recovery time和removal time时可能会造成亚稳态因为复位信号还没完全取消时触发器发现自己该采样了最终导致输出有可能是复位值0也有可能是采样到的D端的值输出不确定。 另外并不是复位信号撤销时才可能出现亚稳态复位信号一开始出现时同样可能会存在亚稳态只不过异步复位信号持续时间长即使第一个周期出现了亚稳态即第一个周期复位未成功下一个时钟周期也不会再出现亚稳态了。如果复位信号的变化只持续刚刚一个时钟周期那么复位信号开始和撤销时都可能会出现亚稳态。
  6. 异步复位同步释放的含义 所谓异步复位同步释放Synchronized Asynchronous Reset就是在复位信号到来的时候不受时钟信号的同步而是在复位信号释放的时候受到时钟信号的同步。 电路目的防止复位信号撤除时产生亚稳态事件。 异步复位显而易见reset_n异步复位后rst_n将拉低即实现异步复位。 同步释放这个是关键看如何实现同步释放即当复位信号reset_n撤除时由于双缓冲电路双寄存器的作用rst_n复位信号不会随着reset_n的撤除而撤除。
  7. 异步复位同步释放的实现 一个简单的异步信号同步化代码如下示例 //Synchronized Asynchronous Reset module sync_async_reset (input clk,input rst_async_n,output reg rst_sync_n ); reg rst_s1; always (posedge clk or negedge rst_async_n) beginif(!rst_async_n) beginrst_s1 1b0;rst_sync_n 1b0;endelse beginrst_s1 1b1;rst_sync_n rst_s1;end end endmodule当异步复位信号撤销时用来同步的第二个寄存器输入的数据仍然是0因此第二个寄存器是不会出现亚稳态的。第一个寄存器虽然可能出现亚稳态即使其出现了亚稳态这个亚稳态还需要通过第二个寄存器这时第二个寄存器就起到了打拍的作用。也就是说第二级的亚稳态只可能是上一级寄存器传播过来的但是这个亚稳态经过第二级寄存器后其大概率已经稳定下来了就算稳定下来不为1也就相当与复位信号多持续了一个周期而已。因此我们可以看出使用异步复位同步释放时异步复位撤销后需要额外等待一个时钟周期。
  8. 异步复位同步释放优点 异步复位同步释放既解决了同步复位的资源消耗问题又解决了异步复位的亚稳态问题其根本思想是异步信号同步化。 总结 不同的复位方式有各自的优缺点。但是在工程中一般都用异步复位的方法最好是异步复位同步释放的方法。