ASIC中的同步复位和异步复位

芯片设计中需要复位操作使电路进入稳定状态。复位操作分为同步复位和异步复位。

同步复位

同步复位指在时钟上升沿时复位信号才起作用,复位时需要时钟。

always @(posedge clk) begin
    if(!rst_n) 
		dout <= 0;
	else 
		dout <= din;
end

如上,当rst_n为0时,只有clk上升沿时,dout才为0,dout被同步复位。

同步复位优点:

1.电路都是同步复位;

2.可以过滤毛刺。

同步复位缺点:

1.复位信号的有效时间必须大于时钟周期,才能完成复位。

2.由于厂商目标库中只有异步复位端口,采用同步复位的话,会增加逻辑资源。

3.后端处理时需要区分复位信号和条件清零信号。

异步复位

异步复位不需要时钟沿,只要复位信号有效,就可以进行复位。

always @(posedge clk or negedge rst_n) begin
	if(!rst_n) 
		dout <= 0;
	else 
		dout <= din;
end

 如上RTL,rst_n信号放在敏感列表中。

异步复位优点:

1.异步复位方便识别,而且可以很方便实现全局复位。

2.厂商目标库内的触发器都有异步复位信号端口,可以节省逻辑资源。

异步复位缺点:

1.容易受到毛刺影响。

2.如果异步信号的撤离时刻恰好在亚稳态窗口内,会导致亚稳态。

异步复位同步释放

使用异步复位同步释放可以消除异步复位毛刺和亚稳态问题。实现的方法为,把是实际使用的异步复位信号用目标时钟做异步复位操作,然后用新的生成的复位信号做数据的复位信号。

reg    reset_n_1d;
reg    reset_n_2d;
reg    reset_n_3d;
wire   rst_n;

always @(posedge clk or negedge reset_n) begin
	if(!reset_n) 
		reset_n_1d <= 1'b0;
		reset_n_2d <= 1'b0;
		reset_n_3d <= 1'b0;
	else 
		reset_n_1d <= 1'b1;
        reset_n_2d <= reset_n_1d;
        reset_n_3d <= reset_n_2d;
end

assign rst_n = reset_n_3d;

always @(posedge clk or negedge rst_n) begin
	if(!rst_n) 
		dout <= 0;
	else 
		dout <= din;
end

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASIC是指专用集成电路,它通常用来实现特定的功能,如芯片上的控制逻辑或数据处理。在设计和实现ASIC电路时,复位Reset)是一项非常重要的功能,用于将电路恢复到初始状态。 在复位过程,我们通常会遇到两种不同的复位方式:异步复位同步复位异步复位是指在复位信号与时钟信号无关的情况下,可以随时触发复位操作。这意味着无论时钟信号的状态如何,只要有复位信号的触发,电路就会立即被复位异步复位具有简单、响应速度快的优点,可以快速将电路带回到初始状态。 然而,异步复位也存在一些缺点。首先,异步复位会引入额外的电路复杂性,导致电路噪声增加。其次,由于异步复位不考虑时钟信号的状态,可能会导致电路在不同的时钟相位下进行复位,从而引起不确定的电路行为。 相比之下,同步复位在时钟信号的边沿触发复位操作。这意味着复位信号只有在时钟信号的特定状态下被触发才会生效。同步复位可以避免异步复位的不确定行为,同时减少了电路复杂性和噪声干扰。 综上所述,异步复位具有简单、响应速度快的优点,适用于对性能要求较高的ASIC电路。而同步复位则更适用于对电路可靠性和预测性要求较高的情况。在实际应用,选择异步复位还是同步复位需要根据具体的设计要求和电路特性进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值