数字IC设计学习笔记_ 同步电路,异步电路,同步复位,异步复位

数字IC设计学习笔记

同步电路,异步电路,同步复位,异步复位

1. 同步电路,异步电路
2. 同步复位,异步复位
	2.1 同步复位与异步复位的对比
	2.2. 同步复位代码与结构
	2.3. 异步复位代码与结构
	2.4. 异步复位同步释放代码与结构

1. 同步电路,异步电路

  • 同步电路与异步电路的主要区别在于电路的触发是否与驱动时钟同步;
  • 从行为角度:所有电路是不是在时钟的有效边沿之下同步处理数据;
同步电路异步电路
时钟个数只有一个可为多个
时钟类型同源同相1. 不同源;2. 同源不同相
竞争冒险
设计耦合完全耦合,不利于面积和功耗优化不耦合,设计灵活
综合/分析简单复杂

2. 同步复位,异步复位

  • 2.1 同步复位与异步复位的对比
同步复位异步复位
特点复位信号只在时钟有效沿到来时才有效。(来自对DFF-D端的组合逻辑设置)无论时钟有效沿是否到来,只要复位信号有效,就复位。(来自对DFF的设置)
Verilogalways@(posedge clk)always@(posedge clk or negedge rst)
优点1. 有利于仿真器仿真 2. 能够滤除高于时钟频率的毛刺 3. 若为完全同步时序电路,则有利于时序分析.1. 设计简单 2. 节省资源(部分器件库有异步DFF) 3. 异步信号标识方便,利于使用FPGA的全局复位端口GSR
缺点1. 复位信号的有效时长必须大于时钟周期,否则无法识别,完成复位 2. 考虑组合逻辑延时,复位延时skew的问题 3. 积存的数据输入需要插入组合逻辑,消耗逻辑资源1. 异步信号易受毛刺影响 2. 易产生亚稳态(复位信号释放时正好在时钟信号有效沿附近)
总结推荐使用异步复位,同步释放
  • 2.2 同步复位代码与结构
module dff_syn(
	input clk,
	input rst_n,
	
	input din,
	
	output reg dout
);
	always@(posedge clk)
		if(!rst_n)
			dout <= 1'b0;
		else
			dout <= din;
endmodule

在这里插入图片描述

  • 2.3 异步复位代码与结构

module dff_asyn(
	input clk,
	input rst_n,
	
	input din,
	
	output reg dout
);

	always@(posedge clk or negedge rst_n)
		if(!rst_n)
			dout <= 1'b0;
		else
			dout <= din;
endmodule

在这里插入图片描述

  • 2.4 异步复位同步释放代码与结构
module asyn_dff_syn(
	input clk,
	input rst_n,
	
	input din,
	
	output wire dout
);
	reg din_reg0;
	reg din_reg1;
	
	always@(posedge clk or negedge rst_n)
		if(!rst_n)begin
			din_reg0 <= 1'b0;
			din_reg1	<= 1'b0;
		end 
		else begin
			din_reg0 <= din;
			din_reg1	<=	din_reg0;
		end
	assign dout = din_reg1;
	
endmodule

在这里插入图片描述


【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~


  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值