首页 > 技术 > 内容

Xilinx FPGA的同步复位和异步复位

时间:2026-01-23  作者:Diven  阅读:0

1. 普通逻辑的复位

对于xilinx 7系列的FPGA而言,flip-flop支持高有效的异步复/置位和同步复位/置位。对普通逻辑设计,同步复位和异步复位没有区别,当然由于器件内部信号均为高有效,因此推荐使用高有效的控制信号,最好使用高有效的同步复位。输入复位信号的低有效在顶层放置反相器可以被吸收到IOB中。

下面细说原因

先比较一下同步复位和异步复位的区别:

首先是同步复位,同步的控制信号包括同步置位/复位和使能,可以被吸收到LUT中,目的是为了防止控制集不同的LUT不能被综合到同一个slICe中,这样虽然提高了了LUT的使用率,却降低了slICe的使用率,得不偿失。

控制信号扇出不大于16的情况都可以尽可能的被吸收到同一个slice的LUT中去,在vivado中可以使用control_set_opt_threshold进行设置。

同步复位

always @(posedge I_sys_clk)

begin

if(I_rst)

begin

OUT1 《= 0;

end

else

begin

OUT1 《= &{a1,a2,a3,a4,a5,a6};

end

end

控制集优化为2时,可以看出复位信号中插入了LUT,但是由于在同一个slice中,使用造成的延时并不显著。注意对于扇出大的信号比如全局复位来说,这种控制集优化是不起作用的。

控制集合优化为0时,可以看出不会使用多于的LUT逻辑。

异步复位

always @(posedge I_sys_clk or posedge I_rst)

begin

if(I_rst)

begin

OUT1 《= 0;

end

else

begin

OUT1 《= &{a1,a2,a3,a4,a5,a6};

end

end

异步复位跟没有使用控制集综合出的结果相同,可以看出不会使用额外的LUT逻辑。

分析Recovery/Removal

异步复位有Recover time 和Remove time 的风险,也就是说recovery time和removal time都是检查异步信号(reset或preset或set)的释放沿,释放沿必须在时钟沿前面提前recovery time释放,或者在时钟沿后removal time之后释放。

顺便简单分析一下setup/hold,对于同一个时钟,肯定满足data_path》clk_path,而hold的要求很小,所以肯定满足。当data_path过长时,setup可能不满足。

假如不作同步的复位信号,那么recovery/removal都有可能不满足。

再考虑被本地时钟同步后的recovery/removal,同理复位信号对removal的时间要求很小,同步后的复位信号的延迟就能满足removal。由于设计中的全局复位信号一般有很大的扇出,布线的延时会很严重,因此recovery的要求变得严格。最好采用全局布线资源如BUFG,尽量用局部复位或者避免使用复位。

因此不管是同步复位还是异步复位,都要使用同步后的复位信号。复位信号进来后先用本地时钟打两拍。在多个时钟域的时候注意是本地时钟,不是全局时钟。并在rtl中注明是异步寄存器,使得综合工具把简单同步器综合在同一个slice中以减少延时,提高MTBF。

(* ASYNC_REG = “TRUE” *) (* keep = “true” *)reg system_reset_r;

(* ASYNC_REG = “TRUE” *) (* keep = “true” *)reg system_reset_r2;

综合的结果如图,同步化的异步复位。

2. 特殊资源的复位

使用xilinx 原语SRL16、SRL32、LUTRAM

由于是利用LUT完成的上述功能,没有复位接口。只能依靠 GSR方法来完成,不能使用复位。在为以上这些资源编写代码时,应注意避免在编码中使用复位,以此来保证综合工具综合出相应的电路。

使用复位信号

没有使用复位信号,可以看出综合工具自动把输入和输出寄存化,以满足更好的时序。

使用DSP48E1或BRAM

使用同步复位可以允许综合工具使用 DSP48E1或BRAM等专用资源内部的寄存器。这样能够改善设计中相应部分的器件总体使用率和性能,同时降低总体功耗。

下面以18X18的乘法器为例

同步复位

Module multi_18x18(

input I_rst ,

input I_sys_clk ,

input [17:0]I_data1 ,

input [17:0]I_data2 ,

output reg [35:0] O_data

);

reg[17:0]R_data1,R_data2;

always @(posedge I_sys_clk)

begin

if(I_rst)

begin

R_data1 《= 18‘d0;

end

else

begin

R_data1 《= I_data1;

end

end

always @(posedge I_sys_clk)

begin

if(I_rst)

begin

R_data2 《= 18’d0;

end

else

begin

R_data2 《= I_data2;

end

end

always @(posedge I_sys_clk)

begin

if(I_rst)

begin

O_data 《= 36‘d0;

end

else

begin

O_data 《= R_data1*R_data2;

end

end

endModule

异步复位,可以看出多使用了35个FF和18个LUT

猜您喜欢


NTC(Negative Temperature Coefficient)热敏电阻独特的温度感应能力,在众多温控电路中是不可少的配件。特别是在日本,SSM作为该...
2012-07-03 03:07:04
雪崩光电二极管(Avalanche Photodiode,简称APD)是高灵敏度的光电探测器,应用于光通信、激光雷达、医疗成像等领域。与传统的光电二极管相比,A...
2025-04-09 14:31:49
在现代家居生活中,面板开关和面板插座是不可少的电气配件。不仅承担着照明和电源连接的功能,更是家居美学的重要组成部分。如今的面板开关设计多样,材质各异,从经典的白...
2019-05-12 00:00:00
熔断器作为重要的保护元件,起到了防止电路过载和短路的关键作用。作为全球知名的电子元件制造商,SCHURTER高品质的熔断器产品赢得了的市场认可。本文将详细介绍S...
2023-09-01 23:00:30
发光二极管(LED)是应用于各类电子产品中的半导体器件,因其低能耗、高亮度和长寿命而备受青睐。本文将深入探讨发光二极管的工作原理,并介绍其在显示控制实验中的应用...
2025-04-03 19:31:39
溶剂基和水基粘合剂是现代工业和日常生活中常见的两种粘合剂类型。溶剂基粘合剂主要由有机溶剂和粘合成分组成,具有优良的粘合性能和快速干燥的特点,适用于木材、纸张、皮...
2014-04-21 00:00:00
结构胶是高强度粘合剂,应用于多个领域。在建筑行业,结构胶用于桥梁、隧道和高层建筑的结构连接,提供强大的支撑力和耐久性。汽车制造业也是结构胶的重要应用领域,用于车...
2013-06-15 00:00:00
应急照明集中电源,简单来说,就像一个备用电源管家,专门负责在正常供电中断时,为建筑物内的应急照明灯具提供电力,确保在紧急情况下,人们可以安全撤离或继续工作。的工...
2024-09-05 00:00:00
密封条在日常生活中是重要配件,应用于门窗、汽车、家电等领域。根据材质的不同,密封条主要分为橡胶密封条、塑料密封条和泡沫密封条。橡胶密封条具有优良的弹性和耐磨性,...
2014-06-14 00:00:00
NTC(Negative Temperature Coefficient)热敏电阻作为重要的温度感应元件,应用于温度控制、过热保护及温度测量等场景中。而在日本,...
2014-02-09 13:02:50