我是靠谱客的博主 现实外套,最近开发中收集的这篇文章主要介绍异步复位,同步复位,异步复位同步释放,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.异步复位

异步复位:异步复位是指无论时钟是否到来,只要复位信号有效,就对系统进行复位。

代码如下:

module asy(clk,rst_n,d,q);
input wire clk;
input wire rst_n;
input wire d;

output reg q;

always@(posedge clk or negedge rst_n)//�첽��λ
	begin
		if(!rst_n)
			q<=0;
		else
			q<=d;
	end
endmodule 

RTL图如下:

异步复位的优缺点:(优点:占用较少逻辑单元。缺点:可能会产生竞争冒险)

testbench如下:

`timescale 1ns/1ns  
module tb_asy;

reg clk;
reg rst_n;
reg d;

wire q;


initial
	begin
		clk=0;
		rst_n=0;
		#55 rst_n=1;
		#55 rst_n=0;
	    #55 rst_n=1;
		#55 rst_n=0;
	end
always #10 clk=~clk;

asy asy(
	.clk(clk),
	.rst_n(rst_n),
    .d(d),
	.q(q)
	);
endmodule 

仿真结果如下:

2.同步复位

同步复位:复位信号只有在时钟上升沿到来时才有效。

代码如下:

module syn(clk,rst_n,d,q);
input wire clk;
input wire rst_n;
input wire d;

output reg q;

always@(posedge clk)
	begin
		if(!rst_n)  //同步复位
			q<=0;
		else
			q<=d;
	end
endmodule 

RTL图如下:

同步复位的优缺点:(优点:可以尽量点少竞争冒险的可能。缺点:会占用更多的逻辑单元)

testbench如下:

`timescale 1ns/1ns  
module tb_syn;
reg clk;
reg rst_n;
reg d;
wire q;

initial
	begin
		clk=0;
		rst_n=0;
		#55 rst_n=1;
		#55 rst_n=0;
	    #55 rst_n=1;
		#55 rst_n=0;
	end
always #10 clk=~clk;

syn syn(
	.clk(clk),
	.rst_n(rst_n),
    .d(d),
	.q(q)
	);
endmodule 

仿真结果如下:

3.异步复位同步释放

 

最后

以上就是现实外套为你收集整理的异步复位,同步复位,异步复位同步释放的全部内容,希望文章能够帮你解决异步复位,同步复位,异步复位同步释放所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部