精华内容
下载资源
问答
  • 每日一题-5.11-异步设计

    千次阅读 2020-05-11 23:10:07
    11. 关于异步设计危害,下列说法错误的是()D A. 信号的时延随着每次布局布线的不同而不同,随着PVT的改变而改变,因此可靠性差,而且不容易移植。 B. 异步设计会产生毛刺 C. 异步设计不能进行静态时序分析 D...

    11. 关于异步设计的危害,下列说法错误的是()D

    A. 信号的时延随着每次布局布线的不同而不同,随着PVT的改变而改变,因此可靠性差,而且不容易移植。

    B. 异步设计会产生毛刺

    C. 异步设计不能进行静态时序分析

    D. 异步设计会带来很大的同步翻转噪声

    解析:同步翻转噪声指大量触发器在同一时刻进行电平切换,会在相邻管脚引入噪声,因此同步翻转噪声,需要同一时刻,而异步电路有两个时钟源。

    展开全文
  • 异步FIFO的verilog设计

    万次阅读 多人点赞 2019-05-10 09:50:46
    1.异步FIFO的概念 ...同步异步信号,避免亚稳态数据的危害 设计合适的FIFO指针,判断FIFO满或者空状态 3.同步FIFO的指针 同步FIFO有一个计数器用于计数存储的数目和读取的数目。当FIFO只有写操作没有读...

    1.    异步FIFO的概念

    异步FIFO为读取与写入采用不同的时钟,使用异步FIFO用于在不同的时钟域传输数据,主要用于跨时钟域传输多bit数据。

    2.    异步FIFO的设计难点

    同步异步信号,避免亚稳态数据的危害

    设计合适的FIFO指针,判断FIFO满或者空状态

    3.    同步FIFO的指针

    同步FIFO有一个计数器用于计数存储的数目和读取的数目。当FIFO只有写操作没有读操作计数值增加,当FIFO只有读操作没有写操作的时候计数值减小,当没有读写操作或者同时在进行读写操作的时候计数值保持不变。当计数器的计数值达到FIFO的总长度的时候FIFO满,当计数值为0的时候那么FIFO空。

    但是在异步FIFO设计中无法使用一个计数器来统计FIFO的数据的个数,因为两个异步的时钟需要去控制同一个计数器。因此在设计异步FIFO时候需要比较FIFO的读写指针位置。

    4.    异步FIFO的指针

    异步FIFO的写指针总是指向下一个要被写入的地址,当复位或者清空时候读写指针都指向FIFO缓冲区的0地址。同样的读指针总是指向当前FIFO中要被读出的数据所在的地址,当清空或者复位是指针指向0,当发生一次读操作时读指针所指的地址的数据被取出,然后指针地址增加。

    FIFO空的标志发生时是当读的指针和写的指针相等时。当读写指针复位到0的时候如清空FIFO等操作的时候,或者是当读的指针赶上了写指针。

    FIFO满的标志也是当读指针和写指针相等的时候。当写指针已经环绕一周,然后追上读指针的时候。因此就存在一个问题当读写指针相等的时候如何判断是读空还是写满。

    为了区分是读空还是写满,一种设计的方式是给读写指针添加一个额外的位。当写指针增加了以后超过了FIFO的存储空间的最后的地址,这时候指针自加就会使得额外添加的最高位翻转。同样的读指针也会进行相同的操作。因此当两个最高位是不同的时候就可以判断是写指针已经环绕追上了读指针,那么FIFO是处于写满状态,如果最高位是相同的那么是读指针追赶上了写指针,FIFO处于读空状态。

    图 1添加MSB用于区分写满与读空

    5.    读写指针计数器设计

    对于一个二进制计数器,当他的计数值从一个时钟域同步到另外一个时钟域的时候是危险的,因为可能存在n-bits数据同时变化的情况,如7计数到8对应的二进制是0111计数到1000,那么对应的所有的位均发生变化。

    一种通用的解决FIFO计数器的问题的方法是使用格雷码进行计数,格雷码对于相邻的两个计数值只允许一个位发生变化。因此就解决了欲在同一个时钟边沿同步多个bits的问题。

    6.    格雷码计数器问题引入

    考虑4位和3位的格雷码计数器如图 2。通过对二进制码的分析可以得出对于4位格雷码上半部分与下半部分是最高位反向其余位关于中点镜像。为了将4位的格雷码转化为3位的格雷码,同时使得最高位为附加位,用于区分写满与读空。我们希望4位格雷码的低3位重复第一部分的低3位,而不是关于中点的镜像。如果直接将下半部分的低3位格雷码编码改为上半部分的低3位一样的编码那么就不是真格雷码应为从7到8以及15到0时候会出现两bits发生变化。而真格雷码应该是在相邻的两个计数之间只有一个位发生变化。

    图 2四位格雷码

    7.     格雷码计数器设计

    格雷码计数器是不存在奇数长度的,因此设计出来的额FIFO的深度就是  。 二进制计数器咋每次自加都会检测是否为满或者空状态,从而保证不会出现溢出或者下溢。

    在图 3所示的格雷码计数器中二进制计数器的低(n-1)位可以直接作为FIFO存储单元的地址指针,将二进制数转化为格雷码传输给另外一个时钟域。

    图 3格雷码计数器

    8.    格雷码转二进制与二进制转格雷码

    二进制B[n:0]转化为格雷码G[n:0]

    G[n] = B[n]//保留最高位作为格雷码的最高位

    G[n-1:0] = B[n-1:0]^B[n:1]//次高位格雷码为二进制码的高位与次高位相异或其余类似

    格雷码G[n:0]转化为二进制B[n:0]

    B[n] = G[n]//保留最高位作为二进制码的最高位

    B[n-1:0] = G[n-1:0]^B[n:1]//次高位格雷码为二进制码的高位与次高位相异或其余类似

    9.    FIFO实现

    将地址指针转化为格雷码以后对于相邻的两个地址只有一个位数据发生变化,因此可以使用触发器来同步异步时钟的数据。

    图 4 FIFO结构框图

    10.    满和空信号的生成

    读空信号是在读时钟域生成的,从而保证能够实时的没有延迟的确定读空。当读空发生时是读指针追赶上写指针,两个指针值相同(包括扩展的最高位)。此时其格雷码也是相同的,因此设计相对简单。

    在FIFO设计中写满信号是在写时钟域生成的,从而保证能够实时的没有延迟的确定写满。当写指针追赶上读指针的时候发生,此时两个指针的二进制计数器的低(n-1)位相同最高位不同。但是由于扩展了格雷码,而对于n位格雷码其(n-1)位是关于中间值镜像对称的。

    图 5 有扩展位的格雷码编码

    考虑图 5对于3位的格雷码地址添加一个附加位用于区分写满与读空成为4位的格雷码编码。当FIFO空时即读指针赶上写指针,此时两个格雷码完全相同(包括扩展位)。当FIFO写满时候需要考虑如下3个条件

        写指针的格雷码与同步到写时钟域的读指针格雷码的最高位不同

        写指针的格雷码与同步到写时钟域的读指针格雷码的次高位不相等

        写指针的格雷码与同步到写时钟域的读指针格雷码的其余位都相等

    11.    不同的时钟速率同步的深入思考

    当异步FIFO来同步两个不同的时钟域的时候,显然两个时钟的速度是不一样的,考虑当一个快的时钟域的信号同步到慢的时钟域的时候可能会存在计数值跳跃,因为在慢的时钟域的一个周期快的时钟域的计数值可能已经增加了多次了,因此就会导致如下的两个问题:

        在同步格雷码的时候如果格雷码的值增加了2个然而只采样了一次就会出现多个位的数据发生变化,这种情况下会导致多bit数据同步问题吗?

        答案是否定的。在同步多bit数据的时候当多个数据位在同步上升沿变化时会出现问题。但是对于快的时钟域的写指针的格雷码在一个时钟周期只改变一位,因此在慢的时钟域周围最多只会有一个位发生变化。

        在慢的时钟域一个周期里面快的时钟域的计数器可能已经增加了几个计数值了,那么会存在快的时钟域的已经从满状态增加到(满+1)的状态,而没能检测出满吗?

        答案是否定的,应为满状态是在写时钟域产生的,如果写的时钟比读取的时钟快,当写指针赶上从读时钟域同步过来的读指针后,满状态会马上置位,因此就不会出现溢出。

    满与空状态能够准确的被置位,但是标志位清除有一定的延迟。

    当我们在写时钟域产生FIFO满的状态,当写指针追赶上读指针的时候马上产生满标志,此时当读指针增长了以后FIFO就不再满了,但是写时钟域不能马上检测到读指针已经增加了,需要经过两个时钟周期,使得读指针的数据同步到写时钟域以后才能够清空满状态。这样能够保证FIFO不会溢出,相同的读FIFO也存在这样的问题。

    /*异步fifo 参考文献  Simulation and Synthesis Techniques for Asynchronous FIFO Design*/
    
    module async_fifo(
    		rst_n			,
    		fifo_wr_clk	,
    		fifo_wr_en	,
    		r_fifo_full	,
    		fifo_wr_data,
    		
    		fifo_rd_clk	,
    		fifo_rd_en	,
    		fifo_rd_data,
    		r_fifo_empty	
    		
    //		fifo_wr_err,
    //		fifo_rd_err
    		
    	);
    
    		input rst_n			;
    		input fifo_wr_en	;
    		input	[15:0]fifo_wr_data;
    		input fifo_rd_en	;
    		input fifo_rd_clk;
    		input fifo_wr_clk;
    		output reg r_fifo_full	;
    		output [15:0]fifo_rd_data;
    		output reg r_fifo_empty	;
    		
    		
    //		output reg fifo_wr_err;
    //		output reg fifo_rd_err;
    		
    		reg	[9:0]  rdaddress; //RAM地址为9位地址 扩展一位用于同步
    		reg	[9:0]  wraddress;
    	
    		wire	[9:0]	gray_rdaddress;
    		wire	[9:0]	gray_wraddress;
    		
    		/*同步寄存器*/
    		reg	[9:0] sync_w2r_r1,sync_w2r_r2;
    		reg	[9:0] sync_r2w_r1,sync_r2w_r2;
    		
    		wire fifo_empty;
    		wire fifo_full;
    		
    		/*二进制转化为格雷码计数器*/
    		assign gray_rdaddress = (rdaddress >>1) ^ rdaddress;//(({1'b0,rdaddress[9:1]}) ^ rdaddress);
    		
    		/*二进制转化为格雷码计数器*/
    		assign gray_wraddress = (({1'b0,wraddress[9:1]}) ^ wraddress);
    		
    		assign fifo_empty = (gray_rdaddress == sync_w2r_r2);
    		
    		assign fifo_full = (gray_wraddress == {~sync_r2w_r2[9:8],sync_r2w_r2[7:0]});
    //		
    //		assign fifo_wr_err = (w_fifo_full && fifo_wr_en);
    //		assign fifo_rd_err = (fifo_empty && fifo_rd_en);
    	
    		ram  ram(
    			.data		(fifo_wr_data		),
    			.rdaddress(rdaddress[8:0]),
    			.rdclock	(fifo_rd_clk	),
    			
    			.wraddress(wraddress[8:0]),
    			.wrclock	(fifo_wr_clk	),
    			.wren		(fifo_wr_en	),
    			.q			(fifo_rd_data)
    			);	
    		
    		/*在读时钟域同步FIFO空 sync_w2r_r2 为同步的写指针地址 延迟两拍 非实际 写指针值 但是确保不会发生未写入数据就读取*/	
    		always@(posedge fifo_rd_clk or negedge rst_n)
    		if(!rst_n)
    			r_fifo_empty <= 1'b1;
    		else 
    			r_fifo_empty <= fifo_empty;
    
    
    			/*在写时钟域判断FIFO满 sync_r2w_r2 实际延迟两个节拍 可能存在非满判断为满 但不会导致覆盖*/
    		always@(posedge fifo_wr_clk or negedge rst_n)
    		if(!rst_n)
    			r_fifo_full <= 1'b1;
    		else 									
    			r_fifo_full <= fifo_full;//格雷码判断追及问题			
    			
    			
    		/*读数据地址生成*/
    		always@(posedge fifo_rd_clk or negedge rst_n)
    		if(!rst_n)
    			rdaddress <= 10'b0;
    		else if(fifo_rd_en && ~fifo_empty)begin
    			rdaddress <= rdaddress + 1'b1;
    		end
    		
    		/*写数据地址生成*/
    		always@(posedge fifo_wr_clk or negedge rst_n)
    		if(!rst_n)
    			wraddress <= 10'b0;
    		else if(fifo_wr_en && ~r_fifo_full)begin
    			wraddress <= wraddress + 1'b1;
    		end
    		
    		/*同步读地址到写时钟域*/
    		always@(posedge fifo_wr_clk or negedge rst_n)
    		if(!rst_n)begin
    			sync_r2w_r1 <= 10'd0;
    			sync_r2w_r2 <= 10'd0;
    		end else begin
    			sync_r2w_r1 <= gray_rdaddress;
    			sync_r2w_r2 <= sync_r2w_r1;		
    		end
    
    		/*同步写地址到读时钟域, 同步以后 存在延迟两个节拍*/
    		always@(posedge fifo_rd_clk or negedge rst_n)
    		if(!rst_n)begin
    			sync_w2r_r1 <= 10'd0;
    			sync_w2r_r2 <= 10'd0;
    		end else begin
    			sync_w2r_r1 <= gray_wraddress ;
    			sync_w2r_r2 <= sync_w2r_r1;		
    		end	
    	
    
    	
    endmodule
    

     

     

    参考文献 Simulation and Synthesis Techniques for Asynchronous FIFO Design

    展开全文
  • 1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信...2 异步设计中的亚稳态 触发器是FPGA设...

    1 引言

     

    基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免。如果对跨时钟域带来的亚稳态、采样丢失、潜在逻辑错误等等一系列问题处理不当,将导致系统无法运行。本文总结出了几种同步策略来解决跨时钟域问题。

     

    2 异步设计中的亚稳态

     

    触发器是FPGA设计中最常用的基本器件。触发器工作过程中存在数据的建立(setup)和保持(hold)时间。对于使用上升沿触发的触发器来说,建立时间就是在时钟上升沿到来之前,触发器数据端数据保持稳定的最小时间。而保持时间是时钟上升沿到来之后,触发器数据端数据还应该继续保持稳定的最小时间。我们把这段时间成为setup-hold时间(如图1所示)。在这个时间参数内,输入信号在时钟的上升沿是不允许发生变化的。如果输入信号在这段时间内发生了变化,输出结果将是不可知的,即亚稳态 (Metastability)。

     

     

     

    基于FPGA设计跨时钟域的同步策略

     

    一个信号在过渡到另一个时钟域时,如果仅仅用一个触发器将其锁存,那么采样的结果将可能是亚稳态。这也就是信号在跨时钟域时应该注意的问题。如图2所示。

     

     

    基于FPGA设计跨时钟域的同步策略

     

    信号dat经过一个锁存器的输出数据为a_dat。用时钟b_clk进行采样的时候,如果a_dat正好在b_clk的setup-hold时间内发生变化,此时b_ dat就既不是逻辑“1”,也不是逻辑“0”,而是处于中间状态。经过一段时间之后,有可能回升到高电平,也有可能降低到低电平。输出信号处于中间状态到恢复为逻辑“1”或逻辑“0”的这段时间,我们称之为亚稳态时间。

     

    触发器进入亚稳态的时间可以用参数MTBF(Mean Time Between Failures)来描述,MTBF即触发器采样失败的时间间隔,表示为:

     

     

    基于FPGA设计跨时钟域的同步策略

     

    其中fclock表示系统时钟频率,fdata代表异步输入信号的频率,tmet代表不会引起故障的最长亚稳态时间,C1和C2分别为与器件特性相关的常数。如果MTBF很大,就认为这个设计在实际工作中是能够正常运行的,不会因为亚稳态导致整个系统的失效。当触发器处于亚稳态,且处于亚稳态的时间超过了一个时钟周期,这种不确定的状态还会影响到下一级的触发器,最终导致连锁反应,从而使整个系统功能失常。

     

    3 同步策略

     

    在异步设计中,完全避免亚稳态是不可能的。因此,设计的基本思路应该是:首先尽可能减少出现亚稳态的可能性,其次是尽可能减少出现亚稳态并给系统带来危害的可能性。以下是根据实际工作总结出来的几种同步策略。

    3.1 双锁存器法

     

    为了避免进入亚稳态,应当使参数MTBF尽可能大。通常采用的方法是双锁存器法,即在一个信号进入另一个时钟域之前,将该信号用两个锁存器连续锁存两次(如图3所示)。理论研究表明这种设计可以将出现亚稳态的几率降低到一个很小的程度,但这种方法同时带来了对输入信号的一级延时,需要在设计时钟的时候加以注意。

     

     

    基于FPGA设计跨时钟域的同步策略

     

    对于上面的双锁存器法,如果a_clk的频率比b_clk的频率高,将可能出现因为dat变化太快,而使b_clk无法采样的问题。即在信号从快时钟域向慢时钟域过渡的时候,如果信号变化太快,慢时钟将可能无法对该信号进行正确的采样,所以在使用双锁存器法的时候,应该使原始信号保持足够长的时间,以便另一个时钟域的锁存器可以正确地对其进行采样。

     

    3.2 结绳法

     

    由于双锁存器法在快时钟域向慢时钟域过渡中可能存在采样失效的问题,我们引入了一种安全的跨时钟域的方法:结绳法。结绳法适合任何时钟域的过渡(clk1,clk2的频率和相位关系可以任意选定),如图4所示。

     

     

    基于FPGA设计跨时钟域的同步策略

     

    图4中的_clk1表示该信号属于clk1时钟域,_clk2的信号表示该信号属于clk2时钟域。在两次src_req_clk1之间被src_vld_clk1结绳(Pluse2Toggle)。将src_vld—clk1用双锁存器同步以后,该信号转换为dst_req_clk2(Toggle2Pluse)。同理,用dst_vld_clk2将dat_req_clk2结绳,dst_vld_clk2表明在clk2时钟域中,src_dat_clk1已经可以进行正确的采样了。最后将dst_vld_clk2转换为dst_ack_clk1(Synchronizer and Toggle2Pluse)。dst_ack_clk表明src_dat_clk1已经被clk2正确采样了,此后clk1时钟域就可以安全地传输下一个数据了。可以看出,结绳法的关键是将信号结绳以后,使其保持足够长的时间,以便另一个时钟可以正确采样。图5描述了结绳法的具体实现,主要包括3个基本单元:Pluse2Toggle、Synchronizer和Toggle2Pluse。

     

     

     

    基于FPGA设计跨时钟域的同步策略

     

    Pluse2Toggle模块负责将两个脉冲信号结绳,即将单脉冲信号延长;Synchronizer模块用双锁存器法将得到的信号过渡到另一个时钟域;Toggle2Pluse模块与Pluse2Toggle功能相对,即将延长的脉冲信号还原为单脉冲,这里用到了异或门。整体的设计思想就是用Pluse2Toggle将信号延长,用Synchronizer过渡,再用Toggle2Pluse还原,以保证另一个时钟域可以正确采样,而接收方用相反的流程送回响应信号。

     

    结绳法可以解决快时钟域向慢时钟域过渡的问题,且适用的范围很广。但是结绳法实现较复杂,在设计要求较高的场合应该慎用。

     

    4 结束语

     

    本文主要把FPGA异步时钟设计中产生的问题,原因以及解决问题所采用的同步策略做了详细的分析。其中双锁存器法比较适用于只有少数信号跨时钟域;结绳法比较适用快时钟域向慢时钟过渡的情况。所以,在实际的应用中,应根据自身设计的特点选择适当的同步策略。

    转载于:https://www.cnblogs.com/lueguo/p/3567521.html

    展开全文
  • 异步FIFO设计注意事项

    2019-08-25 22:21:05
    近日学习用到异步FIFO,...在FIFO的设计中,产生的原因主要由两点:一是逻辑电平的误判,也就是如果通过二进制作为指针来判断空满状态,因二进制数值变化引起的位数变化大,对电路的危害也随之增加,故在本设计中使...

    近日学习用到异步FIFO,故写下这篇博客记录学习心得。
    在我看来,异步FIFO的设计注意事项大体分为两点:

    1. 亚稳态的处理
    2. 空满状态的判断

    第一,来说一下亚稳态。亚稳态是指触发器无法在某个规定时间内达到一个可确认的状态。在FIFO的设计中,产生的原因主要由两点:一是逻辑电平的误判,也就是如果通过二进制作为指针来判断空满状态,因二进制数值变化引起的位数变化大,对电路的危害也随之增加,故在本设计中使用个格雷码。二是信号和时钟之间不满足要求,即建立时间和保持时间未满足,在这里通过打两级寄存器来消除亚稳态使信号稳定。

    第二,关于空满状态的判断,常使用的方法为附加位比较法。对于二进制指针而言,FIFO的满状态时写指针比读指针多循环了一次,而且两个数只是最高位不同,其余各位都相同。那么我就可以这样判断,如果读指针和写指针的最高位不同,而其他位都相同时,此时的状态为满状态。FIFO的空状态时写指针和读指针相同,那么此时读指针和写指针相等。这样读指针和写指针就变成了一个n位指针,其中低n-1位时用来存放FIFO存储器的地址,可以用来对2^(n-1)个存储单元寻址,而最高位则用来辨别空满状态。

    但是格雷码在判断空满状态时和二进制有出入。当格雷码由7到8时(0100到1100),可以看到指针的附加位改变,但是地址位并未变化,这是因为格雷码是一种镜像码造成的。所以我们需要附加位和地址位分开循坏,此时就需要既能产生n位格雷码又能产生n-1位格雷码的计数器,这种计数器被称为“两重格雷码计数器”。格雷码指针的空状态也是判断读指针和写指针是否相等。但是判断满状态和二进制指针有很大不同。首先应该明白数据存入的顺序并不是按照000递增开始的,而是随机的。例如一次写入数据是从十进制的地址6开始,连续写入8个数据,地址指向14,这是存储器存满8个数据,应该产生满状态输出。地址6的格雷码0101,地址14的格雷码1001。假如从十进制的地址2开始,结束地址指向10,此时地址2的格雷码为0011,地址10的格雷码为1111,观察两次例子,起始地址和结束地址的格雷码后两位都相同,前两位的异或值相等,并且起始地址和结束地址的首位是不同的。那么4位格雷码判断满状态就可以分为3步:首先后两位相同,然后前两位的异或值相等,最后首位不同。

    展开全文
  • 也就是要用一个反例来说明没有足够重视异步通信会给整个设计带来什么样的危害。  特权同学要举的这个反例是真真切切的在某个项目上发生过的,很具有代表性。它不仅会涉及使用组合逻辑和时序逻辑在异步通信中的优劣...
  • 异步本身呢是一种常见的信号处理,不过呢一旦处理不当就会引发多种电路危机,而这些电路危机大多与亚稳态有或多或少的关系。 亚稳态是我们老生常谈的问题了,再来复习一下什么是亚稳态呢。 在数字电路中信号处于...
  • 1、异步复位同步释放也会导致亚稳态 如在如下两种情况下,异步复位同步释放可能会在异步复位的时候产生亚稳态,并且会造成比较严重的影响。 情况1:同时钟域,前级reg有异步复位,后继reg没有复位信号 情况2:...
  • 异步电路处理的若干问题

    千次阅读 2016-05-08 11:27:29
    然而我看的一些经典的书籍都是这样说的”异步电路很难设计,最好全部使用同步技术进行设计,所有寄存器器使用一个全局时钟驱动“。可在实际项目中,我又发现现代芯片设计中很难只使用一个时钟,时钟分频逻辑、时钟...
  • 需求说明:IC设计基础内容 :异步时钟处理方法来自 :时间的诗原文:https://wenku.baidu.com/view/586e8afb7e21af45b307a8b8.html原文:http://ee.ofweek.com/2011-12/ART-11001-2800-28592636.html1 引言 基于...
  • FPGAy异步复位

    2018-08-05 22:02:42
    PGA设计中常见的复位方式即同步复位和异步复位。在深入探讨亚稳态这个概念之前, 特权同学也并没有对所谓的同步复位...态的危害之后,回过头来细细品味《Verilog HDL设计与验证》一书中关于复位的章节,可谓 受益匪浅。
  • 1 引言基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计... 2 异步设计中的亚稳态触发器是FPGA设计中最常用的基本器件。触发...
  • 为什么要异步复位,同步释放

    千次阅读 2017-06-08 10:02:13
    总结一下 异步复位是因为同步复位消耗资源。 而异步复位可能又出现和时序不匹配导致的复位不成功,以及,复位释放时数据亚稳态的情况,所以要同步释放
  • 两种异步时钟同步化区别分析

    千次阅读 2021-03-04 08:49:50
    在FPGA或者数字IC设计中肯定会涉及到同步和异步复位的问题,首先介绍一下同步复位和异步复位。 同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用...
  • 1数字电路设计中的几个基本概念: 1.1 建立时间和保持时间:     图1建立时间和保持时间关系图 建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据...
  • 同步异步复位分析

    千次阅读 2019-07-10 20:39:27
    【Verilog】 同步复位和异步复位比较 同步复位sync 异步复位async 特点 复位信号只有在时钟上升沿到来时才能有效。 无论时钟沿是否到来,只要复位信号...
  • 异步信号和同步信号

    千次阅读 2020-11-20 10:55:06
    区别同步信号与异步信号,要弄清楚信号变为有效状态时,它是否受CLK的限制. “异步”输入信号和时钟信号无关,输入信号变为有效状态时,器件的状态就会立即改变;而“同步”输入信号和时钟信号有关,实际上输入信号...
  • FPGA设计中的异步复位、同步释放思想 - 愣娃娃 - 博客园 <link rel="stylesheet" href="/css/blog-common.min.css?v=sqi5FxOybx6gjGoG6Zfy1wD-0AwznLNLYOVx7Y9tIN0" /> <link id="MainCss"...
  • 参考高级设计:http://www.eefocus.com/coyoo/blog/13-12/301064_679a3.html异步复位同步化(同步化的异步复位) 为了避免纯粹的同步复位和纯粹异步复位的问题,可以使用一种叫做同步化的异步复位,我们称其为第三...
  • Verilog中同步复位和异步复位比较

    万次阅读 多人点赞 2017-08-11 14:51:41
    【Verilog】 同步复位和异步复位比较    同步复位 sync 异步复位 async 特点 复位信号只有在时钟上升沿到来时才能有效。 无论时钟沿是否到来,只要复位信号有效,就进行复位。 Verilog描述 always@(posedge CLK)...
  • 一、特点: 同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下: always @ (posedge clk) begin ... 异步复位:它是指无...
  • verilog中的同步复位与异步复位

    千次阅读 2020-12-26 15:17:56
    异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下: always @ (posedge clk,negedge Rst_n) begin if (!Rst_n) … end 各自的优缺点: 1、总的来说,同步复位的优点大概...
  • 一、特点:  同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:  always @ (posedge clk) begin ... 异步
  • 上次提出了一个处于异步时钟域的MCU与FPGA直接通信的实现方式,其实在这之前,特权同学想列举一个异步时钟域中出现的很典型的问题。也就是要用一个反例来说明没有足够重视异步通信会给整个设计带来什么样的危害
  • 0.0 图文,公式详细介绍了什么是亚稳态/产生/消除/危害/稳定 认识FPGA触发器的亚稳态 浅谈IC设计中亚稳态的问题以及信号同步电路简单实现 亚稳态与跨时钟域 高级FPGA设计技巧!多时钟域和异步信号处理解决方案 ...
  • 异步复位、同步释放

    2019-08-03 22:28:11
    在深入探讨亚稳态这个概念之前,特权同学也并没有对所谓的同步复位和异步复位有太多的注意,而在实践中充分感受了亚稳态的危害之后,回过头来细细品味《Verilog HDL设计与验证》一书中关于复位的章节,可谓受益匪浅...
  • 三相异步电动机的微机保护设计

    千次阅读 2015-06-17 10:43:01
    三相异步电动机的应用几乎涵盖了工农业生产和人类生活的各个领域,在这些应用领域中电动机常常运行在环境恶劣的场合(如高温、高湿、尘埃、腐蚀等),导致电动机的过流、短路、断相、绝缘老化等事故频发,据调查全国...
  • 微服务访问安全设计方案全探索

    千次阅读 2017-03-13 10:13:26
    从传统单体应用架构到微服务架构,安全问题一直是人们关注的重点,文权与大家分享了关于微服务访问安全设计方案的探索与实践。我们首先从传统单体应用架构下的访问安全设计说起,然后分析现代微服务架构下,访问安全...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,542
精华内容 1,816
关键字:

异步设计危害