异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。电路的稳定需要有可靠的建立时间和持时间,待下面介绍。
异步电路:
电路核心逻辑有用组合电路实现
异步时序电路的最大缺点是容易产生毛刺。
不利于器件移植
不利于静态时序分析(STA)、验证设计时序性能。
同步时序电路:
电路核心逻辑是用各种触发器实现
电路主要信号、输出信号等都是在某个时钟沿驱动触发器产生的
同步时序电路可以很好的避免毛刺
利于器件移植
利于静态时序分析(STA)、验证设计时序性能。
推荐的复位方式:异步复位、同步释放
描述代码及对应的RTL电路:
| HDL源代码 | 对应的RTL电路 |
module Rst_Circuit(
Rst_n,
Clk,
D,
Q
);
input Rst_n;
input Clk;
input D;
output Q;
reg Rst_Reg_n;
reg Q;
always @(posedge Clk)
begin
//将异步复位信号先用Clk同步一下
Rst_Reg_n <= Rst_n;
end
//如果没有加"or negedge Rst_Reg_n",将变成同步复位
always @(posedge Clk or negedge Rst_Reg_n)
begin
if (~Rst_Reg_n)
begin
Q <= 1'd0;
end
else
begin
Q <= D;
end
end
endmodule
|
注:最好在模块外面将异步复位信号同步好,再送至各模块,这样各个模块内部就不需要再分别单独同步了。
下面具体阐述一下同步、异步复位的区别,以及为什么要采用这种方式的原因。
复位电路是每个数字逻辑电路中最重要的组成部分之一。
复位电路有两个工作目的:
1、 仿真的时候使电路进入初始状态或者其它预知状态;
2、 对于综合实现的真实电路,通过复位使电路进入初始状态或者其它预知状态。
一般来说,逻辑电路的任何一个寄存器、存储器结构和其它逻辑单元都必须要附加复位逻辑电路,以保证电路能够从错误状态中恢复,可靠地工作。
常用的复位信号为低电平有效信号,在应用时外部引脚接上上拉电阻,这样能增加复位电路的抗干扰性能。
复位方式大致分为两类,即同步复位和异步复位。这两种复位方式各有优缺点,其应用场合也各不相同。
| 同步复位 | 异步复位 |
| 所谓同步复位是指当复位信号发生变化时,并不立刻生效,只有当有效时钟沿采样到已变化的复位信号后,才对所有寄存器复位。同步复位的应用要点如下:
| 所谓异步复位是指当复位信号有效沿到达时,无论时钟沿是否有效,都会立即对目标(如寄存器、RAM等)复位。异步复位的应用要点如下:
|
module Rst_Circuit(
Rst_n,
Clk,
D,
Q
);
input Rst_n;
input Clk;
input D;
output Q;
reg Q;
always @(posedge Clk) //同步复位
begin
if (~Rst_n)
begin
Q <= 1'd0;
end
else
begin
Q <= D;
end
end
endmodule
| module Rst_Circuit(
Rst_n,
Clk,
D,
Q
);
input Rst_n;
input Clk;
input D;
output Q;
reg Q;
//如果没有写"or negedge Rst_n",将变成同步复位
always @(posedge Clk or negedge Rst_n)
begin
if (~Rst_n)
begin
Q <= 1'd0;
end
else
begin
Q <= D;
end
end
endmodule
|
| |
| 同步复位的优点如下: | 异步复位的优点如下: |
| 同步复位的缺点如下:
| 异步复位的缺点如下:
|
推荐的复位电路设计方式是异步复位、同步释放。这种方式,可以有效地继承异步复位设计简单的优势,并克服异步复位的上述风险和缺陷。在FPGA和CPLD等可编程逻辑器件设计中,使用异步复位、同步释放可以节约器件资源,并获得稳定可靠的复位效果。
reg Rst_Reg_n;
reg Q;
always @(posedge Clk)
begin
Rst_Reg_n <= Rst_n; //将异步复位信号先用Clk同步一下
end
always @(posedge Clk or negedge Rst_Reg_n) //如果没有写"or negedge Rst_Reg_n",将变成同步复位
begin
if (~Rst_Reg_n)
begin
Q <= 1'd0;
end
else
begin
Q <= D;
end
end
这里使用时钟将外部输入的异步复位信号寄存一个节拍后,再送到触发器异步复位端口的设计方法的另一个好处在于,做STA(静态时序分析)分析时,时序工具会自动检查同步后的异步复位信号和时钟的到达(Recovery)/撤销(Removal)时间关系,如果因布线造成的skew导致该到达/撤销时间不能满足,STA工具会上报该路径,帮助设计者进一步分析问题
本文深入探讨了异步电路与同步电路的特性,包括它们在组合逻辑与时序逻辑中的应用,重点介绍了建立时间和保持时间的概念及其在同步电路设计中的重要性。同时,文章详细对比了同步复位与异步复位的特点,提供了推荐的复位方式,并阐述了在实际设计中如何应用这些概念以确保电路的稳定性和可靠性。
7708

被折叠的 条评论
为什么被折叠?



